ROS建图故障:LaserScan随运动偏移,机器人位置固定
SLAM Toolbox仿真建图异常问题
问题现象
使用slam_toolbox基于仿真数据建图时,出现以下异常:
- LaserScan数据随机器人运动发生偏移
- 机器人模型始终停留在(0,0)位置,尽管
/odom话题的里程计数据已更新
数据通过UDP套接字发送至ROS节点:
receiver_node负责发布/odom话题receiver_node2负责发布/scan话题
所用Launch文件
<launch> <arg name="open_rviz" default="true" /> <node pkg="slam_toolbox" type="sync_slam_toolbox_node" name="slam_toolbox" output="screen"> <rosparam command="load" file="$(find analyzer_lab)/config/mapper_params_online_sync.yaml" /> </node> <node pkg="analyzer_lab" type="receiver_node" name="receiver_node" output="screen"/> <node pkg="analyzer_lab" type="receiver_node2" name="receiver_node2" output="screen"/> <param name="robot_description" command="$(find xacro)/xacro --inorder $(find turtlebot3_description)/urdf/turtlebot3_waffle.urdf.xacro laser_visual:=true" /> <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" /> <node pkg="dynamic_transform_publisher" type="dynamic_transform_publisher" name="dynamic_tf_pub" > <rosparam> frame_id: odom child_frame_id: base_footprint x: 0.0 y: 0.0 z: 0.0 roll: 0.0 pitch: 0.0 yaw: 0.0 use_rpy : True </rosparam> </node> <node pkg="dynamic_transform_publisher" type="dynamic_transform_publisher" name="dynamic_tf_pub1" > <rosparam> frame_id: base_link child_frame_id: wheel_left_link x: 0.0 y: 0.115 z: 0.0 roll: 0.0 pitch: 0.0 yaw: 0.0 use_rpy : True </rosparam> </node> <node pkg="dynamic_transform_publisher" type="dynamic_transform_publisher" name="dynamic_tf_pub2" > <rosparam> frame_id: base_link child_frame_id: wheel_right_link x: 0.0 y: -0.115 z: 0.0 roll: 0.0 pitch: 0.0 yaw: 0.0 use_rpy : True </rosparam> </node> <!-- rviz --> <group if="$(arg open_rviz)"> <node pkg="rviz" type="rviz" name="rviz" required="true" args="-d $(find analyzer_lab)/rviz/gmapping.rviz" /> </group> </launch>
相关图示
帧与变换关系

节点与话题拓扑

初始状态

机器人小幅左转后状态

已尝试的解决方法
- 反转变换关系
- 使用
dynamic_transform_publisher替代robot_state_publisher并添加仿真joint_states数据
以上方法均未解决问题,寻求协助。
内容的提问来源于stack exchange,提问作者Jakub Mikluš
相关产品推荐
相关产品推荐

