目录
- 一、工作空间
- 二、创建工作空间
- 三、编译空代码的工作空间
- 四、功能包
- 五、创建功能包
- 六、设置和检查环境变量
- 七、功能包中的两个重要文件
一、工作空间
存放工程开发相关文件的文件夹。类似一个IDE(例如Pycharm)新建一个工程,就是一个工作空间。包含4个文件夹:
src:代码空间(Source Space):放置功能包代码
build:编译空间(Build Space):编译过程中产生的中间文件,不用过多关注
devel:开发空间(Development Space):放置编译生成的可执行文件、库、脚本
install:安装空间(Install Space):存放可执行文件,与上面有一定重复
二、创建工作空间
主要使用的命令行如下:
mkdir -p ~/catkin_ws/src //创建一个src文件夹
cd ~/catkin_ws/src //进入该文件夹
catkin_init_workspace //将当前文件夹变为工作空间,使其拥有工作空间的属性
注:“~/”意为当前用户名目录;“-p”意为递归创建目录,即直接创建多级目录。
src文件夹即代码空间,不能自行用别的名称代替
三、编译空代码的工作空间
要编译工作空间,先要回到工作空间的根目录。
主要命令行如下:
cd ~/catkin_ws
catkin_make //编译指令,将src里的源码都进行编译
执行完以上步骤没有生成install文件夹,要生成install文件夹,输入
catkin_make install
install中生成了可执行文件。
执行完以上步骤一个空的工作空间创建好了,并且空的代码空间(功能包)编译完成。
四、功能包
功能包是放置ROS源码的最小单元。
上面我们创建了一个空的工作空间,src文件夹里面没写东西,现在我们创建一个自己的功能包。
注意同一工作空间下,不允许存在同名功能包;不同工作空间下,允许存在同名功能包。
五、创建功能包
命令行
catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
<package_name>为包名
[depend]为依赖,即指明编译的时候需要ROS中的其他功能包,如需要调用python、C++库,就要指明rospy、roscpp
cd ~/catkin_ws/src
catkin_create_pkg test_pkg std_msgs rospy roscpp
创建完成功能包后需要编译功能包,步骤和第三步一样
cd ~/catkin_ws
catkin_make
六、设置和检查环境变量
编译完功能包后,为了运行,先设置环境变量,以便系统找到我们的工作空间和功能包。
source devel/setup.bash
检查环境变量
echo $ROS_PACKAGE_PATH
echo为打开环境变量,通过 ROS_PACKAGE_PATH 查找所有ros功能包的路径。
前面source了 devel/setup.bash ,现在就会包含这个路径:
七、功能包中的两个重要文件
1、package.xml
使用xml语言描述功能包相关的信息:
2、CMakeLists.txt
描述功能包里的编译规则,使用CMake语法。
参考视屏:古月居ROS入门21讲