本科时候图方便仅仅使用了Windows下的V-REP(想想用gazebo还要学Linux和ROS就好麻烦…),最近由于需要学习了ROS,也算是填上本科时候埋下的坑(>﹏<)。
本文主要针对 ROS wiki教程 基于ROS Noetic踩得雷做一下总结,关于如何学习ROS,可以参考知乎高赞,马学长的回答 ROS学习入门(抛砖引玉篇) 。
目前有在维护的版本有Kinetic、Melodic以及Noetic。由于我的Ubuntu版本是20.04,所以选择了Noetic,并且Noetic是最新版本,会维护到2025年。
在安装Ubuntu系统的时候切记主分区要大于15G,我最开始分了10G结果ROS安一半,它满了!!!弄得我又重装了一遍系统…
这部分按照教程来做就可以了,注意Hydro版本和非Hydro版本的命令区别。
在新增ROS消息和服务以后我们要对Catkin_package.txt进行修改,增加依赖,生成器,调用生成。
因为好多部分教程都要求找到注释代码,修改以后去掉注释,使代码生效。例如下面这样: 我又…是图方便,没有查找注释代码,直接将修改代码添加到尾部,当时觉得反正那部分也是注释无效的,结果又开启了找BUG之旅…
最后发现CMakeList.txt文件必须遵循如下的格式,不然就无法正确地编译: 1.查找编译依赖的其他CMake/Catkin包(声明依赖库):find_package() 2.添加消息/服务/操作文件:add_message_files()… 3.调用消息/服务/操作生成:generate_messages()
roswtf 可以检查你的ROS系统并尝试发现问题。
当我运行roswtf时发现系统报错,需要更新rosdep。
而当我按照提示运行命令rosdep update时又会发现:
卑微的我又按照提示安装了python3-rosdep2 本以为按照提示将缺少的软件包安装以后就万事大吉,结果当运行roscore的时候原本正常的ROS开始报错!
于是我就经历了卸ROS,安ROS,Google+Baidu无限的月读轮回当中╥﹏╥ 最后偶然发现,在安装rosdep的过程当中,第一行提示正在卸载ros-noetic-desktop-full,what!!!???原来是rosdep在安装的过程中偷偷摸摸把我的ros-noetic卸载了,于是我在安装rosdep以后重装了一遍ros,这时候在运行roscore、roswtf就没问题啦!