您当前的位置: 首页 > 

鱼香ROS

暂无认证

  • 0浏览

    0关注

    498博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Gazebo与RViz联合仿真时odom消失

鱼香ROS 发布时间:2022-10-11 18:37:10 ,浏览量:0

Gazebo与RViz联合仿真时odom消失

鱼香ROS介绍:

鱼香ROS是由机器人爱好者共同组成的社区,欢迎一起参与机器人技术交流。 进群加V:fishros2048

文章信息:

标题:Gazebo与RViz联合仿真时odom消失 原文地址:https://fishros.org.cn/forum/topic/34 关键词: 参与者: 924453613,小鱼,小伊, 版权声明: 文章中所有知识产权归鱼香ROS及原作者所有。

1. 924453613听着歌说:

irobot.urdf(sw2urdf导出urdf+differ_controller+laser) odom_gazebo.launch odom_rviz.launch

联合仿真时出现问题: 7c1df1f4-4baa-4e77-8c43-f9ef1e6d6809-图片.png

RViz单独仿真无问题: e42204f9-29e3-4787-b953-9bb97dce057c-图片.png

2. 924453613看着电脑说:

irobot.urdf



  
    
      
        
      
      
        
      
    
  
  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
        
        
        
        
  
  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
    
    
    
    
    
  
  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
    
    
    
    
    
  
  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
    
    
    
    
    
  
  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
    
    
    
    
    
  
  
    
      
      
      
    
    
      
      
        
      
      
        
      
    
    
      
      
        
      
    
  
  
    
    
    
    
    
  

  
    Gazebo/Black
  
  
    Gazebo/Green
  
  
    Gazebo/Red
  
  
    Gazebo/Red
  
  
    Gazebo/White
  
  
    Gazebo/White
  
  
    Gazebo/White
  
  
  
    transmission_interface/SimpleTransmission
    
      hardware_interface/VelocityJointInterface
    
    
      hardware_interface/VelocityJointInterface
      1
    
  
  
    transmission_interface/SimpleTransmission
    
      hardware_interface/VelocityJointInterface
    
    
      hardware_interface/VelocityJointInterface
      1
    
  
  
    
      Debug
      true
      /
      1
      true
      true
      100.0
      true
      left_wheel_joint
      right_wheel_joint
      0.277
      0.073
      1
      30
      1.8
      cmd_vel
      odom
      odom
      base_footprint
    
  
  
   
    
      0 0 0 0 0 0
      true
      5.5
      
        
          
            360
            1
            -3
            3
          
        
        
          0.10
          30.0
          0.01
        
        
          gaussian
          0.0
          0.01
        
      
      
        /scan
        laser_link
      
    
   


odom_gazebo.launch


  
  
  
  
  

odom_rviz.launch


    
  
  
  
  
    
    
  

3. 小鱼苦兮兮的说:

初步估计是TF问题,晚点我看一下,代码可以改成用代码块包裹一下,太长了,不好看。

4. 924453613掰着手指头说:

[[topic:post_is_deleted]]

5. 小伊掰着手指头说:

@924453613 每个帖子都可以再次编辑和删除的,不用再发一个哈哈,菜单在右下角。

6. 小鱼看着代码说:

@924453613 需要补充一些内容

  • 补充一下rqt_tf_tree的截图
  • 补充一下gazebo版本系统版本和ros版本
  • 补充config/diff_controller.yaml文件内容

同时做如下的尝试:

  • odom_rviz.launch删除arbotix节点后运行
7. 924453613吃着火锅说:

@小鱼 rqt_tf_tree 1e0c4984-ca45-444b-833e-16f44c9069b3-图片.png

ubuntu18.04-melodic-gazebo11 78ade14f-5a98-41ca-bd76-316985a0b9d3-图片.png

config/diff_controller.yaml

# 该文件是控制器配置,一个机器人模型可能有多个控制器,比如: 底盘、机械臂、夹持器(机械手)....
# 因此,根 name 是 controller
controllers: {
   # 单控制器设置
   base_controller: {
          #类型: 差速控制器
       type: diff_controller,
       #参考坐标
       base_frame_id: base_footprint, 
       #两个轮子之间的间距
       base_width: 0.277,
       #控制频率
       ticks_meter: 2000, 
       #PID控制参数,使机器人车轮快速达到预期速度
       Kp: 12, 
       Kd: 12, 
       Ki: 0, 
       Ko: 50, 
       #加速限制
       accel_limit: 1.0 
    }
}

删除arbotix结果 83430e43-1a52-4ccc-b5cc-7aac581c3b72-图片.png

8. 小鱼笑嘻嘻的说:

@924453613 看一下rqt_grapher,有几个joint_states的发布者。

9. 924453613看着电脑说:

@小鱼 只有一个 00a1b395-d203-4bff-a528-aa63fc73557a-图片.png

10. 小鱼看着电脑说:

@924453613 这个rqt_graph看起来非常不对劲。因为两轮差速这边也会发布机器人的joint_states,所以不需要再启动joint_state_publisher

修改odom_rviz.py


    
  
  
  
    
    
  

11. 924453613掰着手指头说:

@小鱼 有rqt_graph了 RViz中tf还是断开的 8bbac2b3-e02d-4d7a-9be9-3000decff09b-图片.png

12. 小鱼看着天空说:

@924453613 你看这里,一个话题有两个发布者,robot_state_publisher都不知道听谁的,所以导致TF错误,按照我上一条回复把joint_state_publisher干掉试试。

13. 924453613听着歌说:

@小鱼 干掉之后是这样的 RViz中tf还是断开的 e857fe89-24e4-407a-b58c-d15300f80029-图片.png

14. 小鱼听着歌说:

@924453613 现在还是有两个发布者在发布joint_states,只需要一个gazebo即可,请按照之前帖子里的提示删掉arbotix控制器程序。

另外需要注意的是,arbotix的功能和urdf中配置的differential_drive_controller功能是相同(从两者的配置可以看出,都有轮子名称,轮子间距等配置),但differential_drive_controller才是用于gazebo仿真使用的。

15. 924453613看着代码说:

@小鱼 感谢鱼总这么晚还在解答我的问题 我删除arbotix后 我重新查看tf树发现以下问题 1.odom到base_link断开 2.tf树与最初发布帖子时不同 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7dG7i3QA-1665484583961)(https://fishros.org.cn/static/files/60cf532a37a05cc07b5ff14a79ba6526.png)] rqt_graph如下 0c36c124-3303-4ca1-8f9d-b07d81b02d22-图片.png

16. 小鱼听着歌说:

@924453613 首先恭喜你,离成功越来越近了,注意两轮差速模型的配置项robotBaseFrame,该项为其发布的joint_states参考的frame名称。

    
      base_footprint
    

尝试进一步修改:

  1. base_footprint->base_link,这样gazebo发布数据时应该会将base_link->left/right_joint
  2. 尝试删除静态发布footprint->base_link,因为在我看来,它也是多余的,两者之间的关系在URDF中已经给出。
  
17. 924453613看着电脑说:

@小鱼 感谢鱼总,目前tf树仍有问题,夜已深鱼总早点休息,明早我会继续尝试,非常感谢。 38ce58a1-cd0f-4612-9bd8-4ece42e04c6c-图片.png

18. 小鱼听着歌说:

@924453613 ok,目前看到对应的tf还是没有链接起来,需要注意的地方就是上文中提到的,可以多次修改尝试,祝早日成功,早点休息。

19. 924453613听着歌说:

@小鱼 非常感谢鱼总的解答目前已经解决,问题大概率是出现在odom_rviz.launch中重复出现了/arbotix,导致tf树出错了,谢谢👍 f6cf5071-6fe9-4246-b209-2d915ce5dbce-图片.png

20. 小鱼喜滋滋的说:

@924453613 很高兴能够看到该问题被解决掉,如果方便可以贴一下解决后的代码在本帖子中,方便其他小伙伴在遇到相同问题提供帮助。

关注
打赏
1666092100
查看更多评论
立即登录/注册

微信扫码登录

0.0386s