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系统基础操作)

猜你喜欢

转载自blog.csdn.net/weixin_44911075/article/details/114165868