对于两轮差速中,gazebo启动报这种错误,导致无论怎样节点diff_drive始终跑不起来 。最终仿真的车子始终跑不起来。
本文将详细阐述在解决这个bug中踩过的坑,或者说是见过哪些千奇百怪的问题吧。刚开始以为是自己gazebo的模型的某个配置项没有设置成功,就一个一个改成true,结果连这个属性都没找着,首先怀疑是不是漏看了,于是开始很开心的浪费时间查找第二遍,依旧没有,于是我又开始进一步猜测莫非是gazebo的有些界面我没打开,一顿乱操作,还是没有解决,不过倒是把gazebo玩明白了。
接下来,反过头来去看之前学过的关于urdf机器人模型格式文件,对照给的学习文档,不断检查文件是否写错,写漏掉。但是依旧是没有,你以为这样就成功了?并没有
再接着,我发现这个是有一个两轮差速是有一个插件的,叫做diff_drive,并且学习文档中有给出diff_drive在github中的位置,我就寻思是不是我的项目里面没有这个文件。打开一看原来是一个cpp的文件,里面代码还很长,我想不太可能是这个吧,毕竟还没有做一个项目中出现问题会去拉取某个文件的地步。于是我在这持坚定不拉取的态度。(ps后来还真和这个有关)
然后,我学后面的文档,文档是gazebo_imu,竟然发现文档中列出的动态库我很多都没有,就是那些该死的.so文件,于是认真了看启动gazebo时抛出的红色文字,发现这些文件的缺失确确实实会导致启动程序出现error。在我查看了鱼香ros2的官方文档之后,发现竟然没有人发起request是关于这个错误的,(ps如果你现在有看见这个错误,大概率就是我提出来的)最后实在是觉得有必要问问有经验的朋友,就加了ros鱼香的qq群,进去之后,也没有人回答我的问题。
最后,不是当然不是,我觉得是不是我的ros2对应的版本下载有问题,有些会安装在ros2的安装目录的动态链接库没有,于是我又一次卸载了安好的humble版本,开始安装鱼香给的,安装过程还挺慢的,此时有种预感,或许就安装成功了,毕竟这一次安装的时间确实是比第一次安装ros2长,然而然而你没有猜错,我又一次失败了,此时中午睡觉都不爽了。
再接着qq群里依旧没有人回答本菜鸡的问题,于是你们想的没错,我开始想着能不能不跑啊,但是后面的实验都是基于此的,于是在我不断仔细阅读文档中,我发现我可以自己去编译这些cpp文件,生成.so文件这样就能运行,于是我又一次尝试,结果发现连编译都成问题,说是缺少对应的头文件。于是又放弃了。
最后的最后,我在仔细阅读这些文档,发现这不就是gazebo的插件没有弄吗,于是就开始尝试再次安装一下gazebo-ros对应的插件,发现竟然成功了。我想我不是按照这里一步步来的吗,原来鱼香ros在这里出现一点点的错误,后面的命令缺少了-pkgs
最终安装命令
sudo apt install ros-humble-gazebo-ros-pkgs
问题成功解决