注意:自己写的代码只要需要用到ros节点的(句柄,topic),都必须得做成工作空间源码包形式,即有cmakelists还有package.xml,,cmakelists里的catkin等路径都得配置好,否则那些句柄什么的都会报错,如下图所示的该种ros代码的cmakelists
ROS工作空间的创建方法如下
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
source devel/setup.bash
在catkin_init_workspace后,在src文件夹下会产生一个带锁的CMakelists.txt,这个CMakelists.txt我的理解是管理各个源码包所用,什么是源码包?我们下载的dso-ros,vins等包都是源码包,直接往工作空间的src文件夹里扔的,如下图所示,源码包在src文件夹里都是并行的关系,如下图dso_ros-master和time都是源码包
在源码包里是这样的
可以看到,源码包里就全是自己的工程文件了,而且ROS的源码包里一定会有一个对口ROS的配置文件package.xml,可以看出是规定了catkin_make对这个包的一些编译依赖的配置,还有一些基本信息,这些都是ROS特有的
再接下来就可以catkin_make了,在工作空间里会出现devel文件夹,在lib里面就可以找到编译出的可执行文件了