diff --git a/src/nav2_turtlebot_simulator/launch/simulator.launch.py b/src/nav2_turtlebot_simulator/launch/simulator.launch.py index fc822f7..4ade9a5 100644 --- a/src/nav2_turtlebot_simulator/launch/simulator.launch.py +++ b/src/nav2_turtlebot_simulator/launch/simulator.launch.py @@ -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', diff --git a/src/nav2_turtlebot_simulator/models/mkmini_gazebo/model.sdf b/src/nav2_turtlebot_simulator/models/mkmini_gazebo/model.sdf index 20fede0..9f1bce5 100644 --- a/src/nav2_turtlebot_simulator/models/mkmini_gazebo/model.sdf +++ b/src/nav2_turtlebot_simulator/models/mkmini_gazebo/model.sdf @@ -25,7 +25,7 @@ -0.30 -0.36 0 0 0 01.00.020.010.020 0 0 1.5708 0 00.140.100 0 0 1.5708 0 00.140.100.04 0.04 0.04 10.04 0.04 0.04 1 base_linkrear_right_wheel0 1 0 - 0 0 0.52 0 0 00.20.0010.0010.001 + 0 0 0.6 0 0 00.20.0010.0010.001 0.0750.100.85 0.12 0.10 10.85 0.12 0.10 1 true10false3601-3.141593.14159161-0.260.260.2018.00.02~/out:=/raw/lidarsensor_msgs/PointCloud2os_lidar