一、工作空间类型
工作空间(workspace) 是一个存放相关文件的文件夹,子文件夹包括
-
/src
代码空间(source space)用于存放功能包的代码、配置文件、lauch文件等等
-
/build
编译空间(build space)用于放置编译过程中产生的中间文件,一般不用管
-
/devel
开发空间(development space)用于放置编译过程中生成的可执行文件,包括一些库和脚本等等
-
/install
安装空间(build space)用于放置安装成功之后的一些命令
二、创建工作空间
(一)、创建工作空间
-
$ mkdir -p ~/catkin_ws/src
catkin_ws可以修改,但src不可以改
由于$ mkdir -p
作用为创建多级目录,故这一步等价于
$ mkdir catkin_ws
$ cd catkin_ws
$ mkdir src
-
$ cd ~/catkin_ws/src
-
$ catkin_init_workspace
输入后按tab自动补全,将src文件夹的属性定义为工作空间
回车,屏幕会显示
lacyexsale@lacyexsale-KLV-WX9:~/catkin_ws/src$ catkin_init_workspace
Creating symlink "/home/lacyexsale/catkin_ws/src/CMakeLists.txt" pointing to "/opt/ros/noetic/share/catkin/cmake/toplevel.cmake"
(二)、编译工作空间
-
$ cd ~/catkin_ws/
回到工作空间根目 -
$ catkin_make
编译工作空间src中的所有工作包源码 -
$ catkin_make install
手动创建install安装空间
(三)、设置环境变量
-
$ source devel/setup.bash
(四)、检查环境变量
-
$ echo $ROS_PACKAGE_PATH
(五)、创建功能包
-
$ cd ~/catkin_ws/src
-
$ catkin_create_pkg test_pkg std_msg rospy roscpp
编译工作空间src中的所有工作包源码
这行代码的语法结构为$ catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
其中,<package_name>为功能包名,[depend]为依赖
(六)、编译功能包
-
$ cd ~/catkin_ws/
-
$ catkin_make
编译工作空间src中的所有工作包源码 -
$ source ~/catkin_ws/devel/setup.bash
配置环境变量 -
$ echo $ROS_PACKAGE_PATH
再检查一下环境变量
如果已经在catkin_ws目录下,上面几句就不用加~/catkin_ws/了
注:
- 同一个工作空间下,不允许存在同名功能包(如test_pkg)
- 不同工作空间下,允许存在同名功能包