- Gazebo model_states
Gazebo有一个服务/gazebo/get_model_state
和一个话题/gazebo/model_states
来反馈model的状态。
服务/gazebo/get_model_state
:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201208160829744.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjI2MjUw,size_16,color_FFFFFF,t_70)
话题/gazebo/model_states
:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201208161136722.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjI2MjUw,size_16,color_FFFFFF,t_70)
/gazebo/get_model_state
消息类型:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201208161645107.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjI2MjUw,size_16,color_FFFFFF,t_70)
/gazebo/model_states
消息类型:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201208161517668.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjI2MjUw,size_16,color_FFFFFF,t_70)
- 方案选择
方案一:写一个client,请求/gazebo/get_model_state服务的数据,并发给话题/odom,广播从odom到base_link的tf变换。
方案二:写一个话题/gazebo/model_states的订阅者,由于数据是数组形式的,所以需要查询model_name来确定数组下标,以此来根据name确定pose和twist。
方案一博主已经写好:
可参考下载:
https://download.csdn.net/download/qq_42226250/13582472
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201208162909939.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjI2MjUw,size_16,color_FFFFFF,t_70)
效果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201208190209290.gif)
方案二博主只想了思路,考虑到一旦gazebo world里面的模型过多,查询起来很耗费资源,感觉方案不是最优,所以就没有写,感兴趣的小伙伴可以写着试一下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)