ROS学习笔记四
一、工作空间
工作空间(workspace)是一个存放工程开发相关文件的文件夹。 类似于windows系统中我们所建立的工程文件。
src - 代码空间(Source Space)
放置功能包,包括其代码,配置文件等等。
build - 编译空间(Build Space)
放置编译过程中产生的中间文件。
devel - 开发空间(Development Space)
放置编译生成的可执行文件,库,脚本等。
install - 安装空间(Install Space)
存放install指令安装成功后的文件。
下图源自古月《ROS入门21讲》
二、创建工作空间
创建工作空间
$ mkdir -p ~/catkin_ws/src
$ cd~/catkin_ws/src
$ catkin_init_workspace
其中工作空间名字可自定义,但其后一定要是src
mkdir -p:递归创建目录,即使上级目录不存在,会按照目录层级自动创建目录。
catkin_init_workspace:将该文件夹初始化成工作空间属性。
编译工作空间
$ cd~/catkin_ws/
$ catkin_make
回到工作空间根目录下进行编译。
在根目录下使用
$ catkin_make install
可以产生install文件夹
扫描二维码关注公众号,回复:
12569775 查看本文章
设置环境变量
$ source devel/setup.bash
检查环境变量
$ echo $ROS_PACKAGE_PATH
三、创建功能包
catkin_create_pkg package_name depend1 depend2 depend3
package_name:功能包的名字
depend:该功能包所需的依赖
同一工作空间下,不允许存在同名功能包,不同工作空间下,允许存在同名功能包。
创建功能包
$ cd/catkin_ws/src
$ catkin_create_pkg test_pkg std_msgs rospy roscpp
std_msgs:ROS定义的标准信息结构
其中:
CMakeLists.txt和package.xml是每个功能包必须有的两个文件,可以区分功能包文件夹与普通文件夹
编译功能包
$ cd~/catkin_ws
$ catkin_make
$ source~/catkin_ws/devel/setup.bash
当要运行功能包中的某个程序时,需要先设置工作空间的环境变量
可以用
$ echo $ROS_PACKAGE_PATH
进行检查
package.xml文件
该文件储存功能包的有关信息,作者,版本,开源程度等以及功能包的依赖,后续新增依赖可以在这里手动添加。
cMakeList.txt
描述功能包的编译规则。
往期链接
ROS学习笔记三(ROS命令行工具的使用)
ROS学习笔记二(ROS的核心概念)
ROS学习笔记一(Linux系统基础操作)