gazebo仿真初学者可以试试这个ros小车
目录
- 前言
- 项目介绍
- 具体步骤
- 如何编译
- 使用
- rviz显示模型
- 显示传感器数据
- 总结
前言
我目前发现,github上的ros项目,很多都不适合初学者,他们只说了自己这个项目,没有说自己这个项目依赖于其他人的项目,就导致你下载下来,catkin_make的时候,报错了,然后你就不了了之了,因为初学者根本看不懂这些。
项目介绍
项目主要是通过rviz和gazebo加载这个机器人小车,小车上搭载了雷达 imu 深度相机等传感器。此外,该通过rviz加载传感器获取的数据。
代码我放网盘了,要的自取,文章看不懂的,多看几遍,先跑一遍,然后去学习源码。
gazebo仿真初学者demo.zip链接:https://pan.quark.cn/s/fc84dbd003bc
具体步骤
项目地址:https://gitee.com/rugels/simulation_unitree
首先进入该目录,如果没有,自己创建一个
cd catkin_ws/src/
然后你在下载这个项目
git clone https://gitee.com/rugels/simulation_unitree.git
由于里面涉及到velodyne雷达,因此需要下载相关代码。
git clone https://github.com/lmark1/velodyne_simulator.git
进入simulation_unitree包,我们目前只需要mbot目录,其他的可以不要,因为是初学者,其他的也需要安装其他的包,如果没有安装,就会导致编译失败,你就运行不了了。
注意,如果你没有安装velodyne_simulator,编译也会报错,因为这个项目 中间,使用到了velodyne_simulator中的velodyne_description中的urdf中的xacro文件。
最后,当你两个都下载好,在catkin_ws/src目录下
并且宇树的项目包,只剩下这个mbot文件夹(这是宇树的代码.txt只是 我用来记录这个是什么项目的,大家不需要,我健忘),因为其他文件夹的存在,会导致你编译报错。
如何编译
重新打开一个终端
cd catkin_ws/
catkin_make
等待一会。编译成功就行,编译成功后,如果你没有将source 写进bashrc文件
可以看看我这一篇:https://blog.csdn.net/knighthood2001/article/details/142829109?spm=1001.2014.3001.5501
使用
rviz显示模型
打开终端
输入
roslaunch mbot_description display_mbot_xacro.launch
这时候就打开rviz显示出这个模型了。
显示传感器数据
打开终端,输入
roslaunch mbot_gazebo mbot_nav_gazebo.launch
这时候,打开了gazebo,里面 加载了小车,还有环境。
如果你想要 获取传感器数据。
可以重新打开一个终端,输入
rviz
首先将小车模型导入进来
导入进来后,能够发现小车是白色的,这时候我们选一下fixed frame(这个具体我也不清楚,我这是选择这个,就能够正常显示小车模型,如果你们不行的话,去搜搜rviz导入模型是白色的)
这样就能显示出小车的正常模型了。接着,我们可以导入传感器数据。
这里需要设置一下话题以及激光的大小。不设置话题,就没有数据,不设置激光大小,你可能看不出来。
你也可以设置三维点云数据
同样也可以设置大小。
你也可以导入相机获取的内容
因此,传感器还是比较全的,你甚至可以导入imu获取的内容。
你可以将你现在的操作,保存下来,这样 以后 就不用每次打开rviz,都要重新搞了。
这里选择一下路径,我这里是在mbot_gazebo目录下创建了config目录 ,用来 存放我保存的rviz文件。(这个操作我之前就搞过了,因此不重复了)
这样你下次就能直接导入该rviz,不需要配置了 。
当然,还有比较好的 方法,就是将这个rviz写入launch中,运行一行launch命令,它能够自动你配置好的rviz。
具体做法就是在mbot_nav_gazebo.launch中添加这句话。
<!-- 打开rviz -->
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find mbot_gazebo)/config/save.rviz"/>
最后打开终端,输入
roslaunch mbot_gazebo mbot_nav_gazebo.launch
他打开就是这样,不需要自己去设置了。
如果一次打开不行,退出重新试一下。
总结
这个项目代码,就比较适合 初学者,去看、去学习xacro,launch代码是如何写的,里面的具体内容指的是啥。