You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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š

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 12:17:34