概念
工作空间是一个存放工程开发相关文件的文件夹
步骤
1.创建工作空间
在home下新建一个文件夹,比如叫catkin_ws,在它的下面新建一个src文件夹,以后用来放源代码,在src里面打开terminal,初始化,结束后会多出一个CMakeLists.txt文件。
catkin_init_workspace
2.编译工作空间
切换到catkin_ws进行编译(编译均是在catkin_ws进行)。编译完后会多出build和devel两个文件夹。
cd ..
catkin_make
- 参考链接
https://zhuanlan.zhihu.com/p/64559374
- src源文件空间:这个文件夹放置各个功能包和一个用于这些功能包的CMake配置文件。CMakeLists.txt。由于ROS中的源码采用catkin工具进行编译,而catkin工具又是基于cmake技术的,所以我们会在src源文件空间和各个功能包中都会见到一个文件CMakeLists.txt,这个文件就是起编译配置的作用。
- build编译空间:这个文件夹放置CMake和catkin编译功能包时产生的缓存、配置、中间文件等。
- devel开发空间:这个文件夹放置编译好的可执行程序,这些可执行程序是不需要安装就能直接运行的。一旦功能包源码编译和测试通过后,可以将这些编译好的可执行文件直接导出与其他开发人员分享。
3.设置环境变量
- 目的:为了让Linux找到ROS功能包的位置
source devel/setup.bash
这么写只会在当前终端生效,如若要使得每次打开新的terminal都有用,那么需要跟之前安装系统一样,将其写到相应的文件中去。可以打开~/.bashrc,写入路径。用下面的方法,或者参照安装时的方法,用echo写入。
gedit ~/.bashrc
terminal加上这样的一句使环境变量生效
source ~/.bashrc
4.检查环境变量
打开新的终端,讲道理现在是已经OK了,那么检查一下环境变量验证一下。
echo $ROS_PACKAGE_PATH
打印出来的路径以冒号分割,可以看到一个是之前安装的时候的默认路径,一个是刚设置的catkin_ws的路径,说明设置成功。
5.创建功能包
格式
catkin_create_pkg <pkg_name> depend1 depend2 ...
切换到src目录下,创建功能包并且指定依赖(std_msgs rospy roscpp等)
cd ~/catkin_ws/src
catkin_create_pkg communication std_msgs rospy roscpp
communication里面的文件,package.xml文件里面主要是包的信息(比如各种depend)。后期如果要加依赖则需要在这里修改。
6.编译功能包
cd ~/catkin_ws
catkin_make
和之前不同的,如下图,打印的东西会多出这个说明
- 同一个工作空间内不允许存在同名功能包,不同的工作空间下则允许
7.查找功能包所在的路径
rospack find roscpp_tutorials