在ROS中仿真模型中添加gps传感器
- 获取gps传感器模型包
- 为自己的机器人添加gps传感器
- 将gps之中的经度纬度坐标转化为自己地图中的坐标
1.获取gps传感器模型包
[link]http://wiki.ros.org/hector_gazebo/
第一步是你ubuntu的版本,根据自己版本进行选择;
第二步下载链接,有时候出现网络卡顿,可能打不开,注意耐心等待。
2.为自己的机器人添加gps传感器
随后就是将gps传感器模型加载到自己的机器人模型(我的机器人模型是turtlebot3中的机器人模型)的.xacro模型中,我在书上找了很久的资料,改过很多次发现都是不对的,也看了古月居的视频,发现还是有些差距。最终我找到了十分近似的插入方法,方法可查看链接。最终代码需要根据自己的原来机器人模型进行修改。
[link]https://blog.csdn.net/qq_44725448/article/details/116655579/
代码中间需要修改gps的gazebo插件,具体修改如下:
<gazebo>
<plugin name="gps" filename="libhector_gazebo_ros_gps.so">
<updateRate>10.0</updateRate>
<topicName>sensor_msgs/NavSatFix</topicName>
<gaussianNoise>0.0 0.0 0.0</gaussianNoise>
<offset>0 0 0</offset>
<velocityGaussianNoise>0 0 0</velocityGaussianNoise>
<frameId>base_link</frameId>
</plugin>
</gazebo>
最终加载gazebo模型
输入命令
$ rostopic list
若是可以看到/sensor_msgs/NavSatFix话题即可。
3.将gps之中的经度纬度坐标转化为自己地图中的坐标
利用下面命令可以获取的机器人定位信息
$ rostopic echo /sensor_msgs/NavSatFix
但是你发现你所获取的都是经度纬度的坐标,想要获取做自己的地图的坐标需要写一些代码,c++代码可通过链接查看。
链接: [link]https://blog.csdn.net/qinqinxiansheng/article/details/111291110
但是这里main函数中订阅的话题名必须修改为你的话题名,这里应该是//sensor_msgs/NavSatFix。最终你通过编译运行该cpp文件,即可获取你机器人的地图坐标。