第九讲:创作工作空间与功能包
一、工作空间:workspace
是一个存放工程开发相关文件的文件夹。
src: 代码空间, 功能包源码
build: 编译空间,中间文件,二进制文件
devel: 开发空间,里面放置在开发过程当中的可执行文件 及 一些库文件
install: 安装空间,存放编译生成的可执行文件
二、创建工作空间
1. 创建工作空间
(1)mkdir 创建一个文件夹,名字为 catkin_ws(可以自定义),src 是固定写法(不能自定义)
(2)进入到src文件夹
(3) 使用catkin_init_workspace 把当前文件夹变成ROS 工作空间的一个属性
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
2. 编译工作空间
(1) 回到工作空间的根目录 catkin_ws/ 下面
(2) 使用 catkin_make 进行编译 ,
cd ~/catkin_ws/
catkin_make
3. 设置环境变量
编译成功之后设置环境变量
source devel/setup.bash
4. 检查环境变量
echo $ROS_PACKAGE_PATH
实际操作:
(1) 把工作空间建立在home文件夹下面。鼠标右击在终端打开。
创建文件夹:输入下面的指令,此时在home文件夹下有catkin_ws文件夹,里面有src文件夹,用来存放包及源码
初始化为一个ROS的workspace: 回车后产生一个CMakeLists.txt文件
(2) 编译:
首先回到工作空间的根目录:cd .. 回到 catkin_ws
输入编译命令: catkin_make 回车编译
编译成功之后,在根目录下产生两个文件夹。没有install文件夹
产生install文件夹:
这样就可以在工作空间中进行开发了。。。。
三、创建功能包
功能包:放置ROS里面源码的一个最小单元,所有源码必须全部放到功能包里面,不能直接放到src下面进行编译
创建功能包:catkin_creat_pkg <package_name> [depend1][depend1][depend3]
【package_name:包名;depend:依赖(可以有多个)】
catkin_creat_pkg test_pkg std_msgs rospy roscpp
创建成功。test_pkg下面的 src 用来放代码的cpp文件,,include用来放置头文件 .h 文件
接下来,编译功能包,还是回到根目录: 此时会去编译test_pkg包
如果要运行功能包里面的一个程序,就需要先设置工作空间的环境变量:
source devel/setup.bash
设置了环境变量之后系统才能找到我们的工作空间。找到其中对应的功能包。
检查环境变量:echo $ROS_PACKAGE_PATH