鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    ros多机器人gazebo

    已定时 已固定 已锁定 已移动
    动手学ROS2
    多机器人 ros gazebo
    3
    5
    294
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • F
      fcnb
      最后由 小鱼 编辑

      我在多机器人仿真时候,查看tf树不知道为什么会多出来odom->base_footprint

      替代文字

      这是我的launch文件

      <launch>
          <!-- 机器人初始化位置参数 -->
        <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/>
        <arg name="robot_name"  default="tb3_0"/>
        <arg name="robot_x_pos" default="0.0"/>
        <arg name="robot_y_pos" default="0.0"/>
        <arg name="robot_z_pos" default=" 0.0"/>
        <arg name="robot_yaw"   default=" 0.0"/>
      
        <include file="$(find gazebo_ros)/launch/empty_world.launch">
          <arg name="world_name" value="$(find turtlebot3_gazebo)/worlds/turtlebot3_house.world"/>
          <arg name="paused" value="false"/>
          <arg name="use_sim_time" value="true"/>
          <arg name="gui" value="true"/>
          <arg name="headless" value="false"/>
          <arg name="debug" value="false"/>
        </include>
      
        <!-- 创建机器人 -->
        <group ns = "$(arg robot_name)">
          <!-- 导入机器人参数 -->
          <param name="robot_description" command="$(find xacro)/xacro --inorder $(find turtlebot3_description)/urdf/turtlebot3_$(arg model).urdf.xacro" />
          <!-- 机器人位置发布节点 -->
          <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" output="screen">
            <param name="publish_frequency" type="double" value="50.0" />
            <param name="tf_prefix" value="$(arg robot_name)" />
          </node>
          <!-- <node pkg="tf2_ros" type="static_transform_publisher" name="base_to_odom" args="0 0 0 0 0 0 /$(arg robot_name)/odom /$(arg robot_name)/base_footprint"/> -->
      
          <node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-urdf -model $(arg robot_name) -x $(arg robot_x_pos) -y $(arg robot_y_pos) -z $(arg robot_z_pos) -Y $(arg robot_yaw) -param robot_description" />
      
        </group>    
      
      </launch>
      小鱼小 1 条回复 最后回复 回复 引用 0
      • F
        fcnb
        最后由 编辑

        屏幕截图 2024-09-21 211617.png

        1 条回复 最后回复 回复 引用 0
        • 小伊小
          机器人小伊
          最后由 编辑

          在你的ROS多机器人仿真环境中,odom -> base_footprint 的TF(Transform Frame)链接通常是由某个导航或定位节点(如amcl、gmapping、move_base等)自动创建的,用于表示机器人估计的里程计位置(odometry)与其基础框架(base_footprint)之间的关系。这个链接对于机器人导航和定位至关重要,因为它提供了机器人在环境中的估计位置。

          然而,在你的launch文件中,并没有直接创建这个TF链接的代码。这个链接可能是由以下几个原因自动生成的:

          1. 导航或定位节点:如果你的系统中运行了如amcl(自适应蒙特卡洛定位)或gmapping(基于SLAM的地图构建)等节点,它们可能会自动发布odom -> base_footprint的TF。这些节点通常依赖于机器人的里程计数据(如轮式编码器)来估计机器人的位置。

          2. 其他依赖包:你的ROS环境可能包含其他依赖包,这些包在启动时自动启动了相关节点,这些节点负责发布TF。

          3. Gazebo插件:在Gazebo中,可能有一些插件(如差分驱动插件)在模拟时自动发布里程计数据,这些数据随后被ROS节点(如robot_localization)用来计算并发布odom -> base_footprint的TF。

          解决方案

          如果你不希望看到这个TF链接,或者它对你的仿真造成了干扰,你可以考虑以下几种方法:

          • 检查并禁用相关节点:检查你的ROS环境中是否有运行amcl、gmapping、robot_localization等节点,并尝试禁用它们来看是否会影响TF树。

          • 修改URDF/Xacro文件:虽然这通常不会直接影响TF树中的odom -> base_footprint链接,但确保你的URDF/Xacro文件中没有错误地定义了与里程计相关的TF。

          • 使用TF过滤器:如果你需要保留这个TF链接但想在某些情况下忽略它,你可以考虑使用TF过滤器(如tf_filter_chain)来动态地修改TF树。

          • 检查Gazebo插件:确保Gazebo中使用的插件(如差分驱动插件)没有错误地发布里程计数据。

          调试建议

          • 使用rostopic echo:查看是否有与里程计相关的主题(如/odom)正在发布数据。
          • 使用tf_tree和tf_echo:使用rosrun tf view_frames和rosrun tf tf_echo来查看和测试TF树中的链接。
          • 检查ROS日志:查看ROS的日志文件,看是否有关于TF或相关节点的错误或警告信息。

          通过这些步骤,你应该能够诊断出odom -> base_footprint TF链接的来源,并根据需要调整你的ROS环境。


          以上为生成回答,仅供参考~

          我是小伊,已接入ChatGpt,所有回复,仅供参考~

          F 1 条回复 最后回复 回复 引用 0
          • 小鱼小
            小鱼 技术大佬 @fcnb
            最后由 编辑

            @fcnb 大概率是两轮差速插件发布的

            新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

            1 条回复 最后回复 回复 引用 0
            • F
              fcnb @小伊
              最后由 编辑

              @小鱼 可是我一样的代码在melodic上面完美运行,真的搞不懂什么原因

              1 条回复 最后回复 回复 引用 0
              • 第一个帖子
                最后一个帖子
              皖ICP备16016415号-7
              Powered by NodeBB | 鱼香ROS