前言
首先,能看到这篇文章,说明咱们都是一起踩坑的兄弟!
给你一个大大的拥抱!说一句,兄弟,你不是一个人,我们与你同在!
早在学习ROS之初,古月老师就建议我们安装ubuntu18.04,以及对应的ROS版本,但是我一想着20.04都出来了,不是最新,心里实在不爽。这不,这会教我做人。
回归正题。
正文
在学习古月居《ROS理论与实践》课程第6讲的时候,我们会用到gazebo,用来加载我们的机器人仿真模型。xacro格式是urdf格式的升级版,我们要踩的坑也在这里。
xacro调用宏的方式在noetic这个版本发生了变换,多了一个前缀:xacro:
如果直接运行老师给的代码,gazebo是加载不出模型的,比如这样:
所以,我们要对代码调用宏的地方进行修改。
古月老师给的代码是这样的:
现在我们要改为这样:
类似的其他所有调用宏的地方都要改过来,比如轮子的宏调用,惯性矩阵的宏调用:
改为:
我算了一下:两个万向轮,一个左轮,一个后轮,一个球体惯性矩阵,二个圆柱体惯性矩阵,再加上一个总的宏调用,一共要修改8处宏调用。哪里的宏调用没修改,哪个link就不会显示出来。
修改后再编译执行:
catkin_make
roslaunch mbot_gazebo view_mbot_gazebo_empty_world.launch
现在就可以在gazebo中看到我们的模型了!激动不,反正我当时挺激动的,毕竟弄了一下午,午觉也没睡,就快崩溃了,我相信你懂的。
感觉好难是不是?
是的,ROS的学习曲线是很陡峭的,但是我希望我们都能坚持下来,没有解决不了的bug。在解决bug的过程中,你可能想摔键盘,但是只有你自己懂在解决bug后获得的快感,以及在这个过程中你的心态慢慢变得强大。
Anyway,一起加油!一起进步!