fix: align MKMini lidar and world obstacles
This commit is contained in:
@@ -220,6 +220,24 @@ def create_mkmini_world(gazebo_dir):
|
||||
except ValueError:
|
||||
continue
|
||||
|
||||
# The MKMini lidar is centered at 0.52 m. Raise the original 0.5 m white
|
||||
# pillars so they remain observable obstacles instead of falling below the
|
||||
# scan plane.
|
||||
for element in (*model.findall('.//collision'), *model.findall('.//visual')):
|
||||
cylinder = element.find('./geometry/cylinder')
|
||||
if cylinder is None:
|
||||
continue
|
||||
if cylinder.findtext('radius') != '0.15' or cylinder.findtext('length') != '0.5':
|
||||
continue
|
||||
cylinder.find('length').text = '0.8'
|
||||
pose = element.find('pose')
|
||||
if pose is None:
|
||||
continue
|
||||
values = pose.text.split()
|
||||
if len(values) == 6:
|
||||
values[2] = '0.4'
|
||||
pose.text = ' '.join(values)
|
||||
|
||||
model_tree.write(
|
||||
os.path.join(model_dir, 'model.sdf'),
|
||||
encoding='utf-8',
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<link name="rear_right_wheel"><pose>-0.30 -0.36 0 0 0 0</pose><inertial><mass>1.0</mass><inertia><ixx>0.02</ixx><iyy>0.01</iyy><izz>0.02</izz></inertia></inertial><collision name="collision"><pose>0 0 0 1.5708 0 0</pose><geometry><cylinder><radius>0.14</radius><length>0.10</length></cylinder></geometry></collision><visual name="visual"><pose>0 0 0 1.5708 0 0</pose><geometry><cylinder><radius>0.14</radius><length>0.10</length></cylinder></geometry><material><ambient>0.04 0.04 0.04 1</ambient><diffuse>0.04 0.04 0.04 1</diffuse></material></visual></link>
|
||||
<joint name="rear_right_joint" type="revolute"><parent>base_link</parent><child>rear_right_wheel</child><axis><xyz>0 1 0</xyz></axis></joint>
|
||||
|
||||
<link name="os_lidar"><pose>0 0 0.52 0 0 0</pose><inertial><mass>0.2</mass><inertia><ixx>0.001</ixx><iyy>0.001</iyy><izz>0.001</izz></inertia></inertial>
|
||||
<link name="os_lidar"><pose>0 0 0.6 0 0 0</pose><inertial><mass>0.2</mass><inertia><ixx>0.001</ixx><iyy>0.001</iyy><izz>0.001</izz></inertia></inertial>
|
||||
<visual name="visual"><geometry><cylinder><radius>0.075</radius><length>0.10</length></cylinder></geometry><material><ambient>0.85 0.12 0.10 1</ambient><diffuse>0.85 0.12 0.10 1</diffuse></material></visual>
|
||||
<sensor name="lidar_3d" type="ray"><always_on>true</always_on><update_rate>10</update_rate><visualize>false</visualize><ray><scan><horizontal><samples>360</samples><resolution>1</resolution><min_angle>-3.14159</min_angle><max_angle>3.14159</max_angle></horizontal><vertical><samples>16</samples><resolution>1</resolution><min_angle>-0.26</min_angle><max_angle>0.26</max_angle></vertical></scan><range><min>0.20</min><max>18.0</max><resolution>0.02</resolution></range></ray><plugin name="mkmini_lidar" filename="libgazebo_ros_ray_sensor.so"><ros><remapping>~/out:=/raw/lidar</remapping></ros><output_type>sensor_msgs/PointCloud2</output_type><frame_name>os_lidar</frame_name></plugin></sensor>
|
||||
</link>
|
||||
|
||||
Reference in New Issue
Block a user