一、工作空间
工作空间(workspace)(缩写ws)
工作空间是存放工程开发相关文件的文件夹
代码空间(source space)(src)是用来放置功能包的,所有功能包的代码、配置文件等都存放在src
编译空间(build space)(build)是放置编译过程中间所产生的文件(基本不用关心)
开发空间(development space)(devel)是放置编译生成的库、脚本等
安装空间(install space)(install)和devel还是存在重复部分,可能用不到这部分
1. 创建工作空间
终端输入
mkdir catkin_ws // 创建catkin_ws的文件
cd catkin_ws //打开catkin_ws这个文件
mkdir src //然后在catkin_ws这个文件里再创建src这个文件
cd src //打开src这个文件
mkdir catkin_ws
cd catkin_ws
mkdir src
cd src
注意:
终端输入cd …可以返回上一级目录
catkin是ROS里面的一个工具
2. 编译工作空间
终端输入
catkin_make //在catkin_ws这个工作空间开始进行编译
此时,catkin_ws中有bulid文件、devel文件,若缺少install文件(安装空间),则在终端输入
catkin_make install
3. 设置环境变量
终端输入
source devel/setup.bash
4. 检查环境变量
终端输入
echo $ROS_PACKAGE_PATH
二、功能包
1. 创建功能包
终端输入
cd catkin_ws/src //在catkin_ws/src/这个文件夹里面再进行创建
然后在src文件夹内
catkin_create_pkg test_pkg std_msgs rospy roscpp
它的格式为:
catkin_create_pkg [package_name] [std_msgs] [rospy] [roscpp]
[package_name]
可以写[test_pkg]
(即自己命名的名称),后三个[ ]
表示依赖的库
运行功能包里面某个程序,要先设置环境变量,如下面第2点
注意:在功能包test_pkg
创建成功后,里面的两个重要文件是CMakeLists.txt
和package.xml
,他们是任何一个功能包里面必须存在的两个文件,里面有具体的信息(包括所依赖的第三方功能包)
2. 编译功能包
终端输入
source devel/setup.bash //设置环境变量
然后再输入
echo $ROS_PACKAGE_PATH //查找ROS所有功能包的路径,目的是找到所写的功能包
ROS单独编译某个文件的指令
catkin_make -DCATKIN_WHITELIST_PACKAGES=”需要编译的包名”
注意:
同一个工作空间下,不允许存在同名功能包
不同工作空间下,允许存在同名功能包