ROS学习笔记2_ROS工作空间与功能包

程序的工程-------ROS的工作空间(workspace)

存放工程开发相关文件的文件夹。

src:代码空间(source space)

build:编译空间(build space)

devel:开发空间(development space)

install:安装空间(install space)

如何创建工作空间

创建工作空间,其中-p是创建多级目录的时候必须要写的。最后的src作为代码空间的标志。

mkdir -p ~/catkin_ws/src

之后进入这个文件夹,将该文件夹初始化为工作空间的属性。

cd ~/catkin_ws/src
catkin_init_workspace

之后返回上一级目录

随后输入make指令,该指令用于编译src目录下所有的源码文件,之后在workspace文件夹下产生devel和build目录。

catkin_make

ROS学习笔记2_ROS工作空间与功能包_第1张图片

 但是这步并没有产生Install文件夹,如果要产生必须要在make后加install,install目录下存在编译后的可执行文件。devel内存放开发过程中的一些可执行文件以及库。build存放的是编译过程中的一些中间文件,主要是二进制文件。

catkin_make install

ROS学习笔记2_ROS工作空间与功能包_第2张图片


在工作空间中创建功能包

功能包是ROS中放置源码的最小单元。因此ROS的所有源码必须放在功能包而不是直接放在src目录下直接进行编译。

注意要在src目录下创建功能包。

创建指令格式为 catkin_create_pkg[depend1][depend2][depend3]

下面是例子,其中std_msgs为ROS定义的标准消息结构,rospy和roscpp是ros在编译中需要调用的python和C++接口来写程序。

catkin_create_pkg test_pkg std_msgs rospy roscpp

提示相关文件已经创建
ROS学习笔记2_ROS工作空间与功能包_第3张图片


 工作空间环境变量设置

这是针对catkin工作空间的环境变量设置,只有经过设置才能让系统找到工作空间和功能包。

source devel/setup.bash

 检查环境变量

echo $ROS_PACKAGE_PATH

发现显示的前半部分就是刚刚src所在的位置,设置成功。

 


可以查看一下package.xml文件的内容,其中包含了一系列和这个功能包相关的信息,便于功能包使用者在遇到问题的时候及时找到人来解决。

ROS学习笔记2_ROS工作空间与功能包_第4张图片

同时包含了告知编译器需求的第三方功能包,如果之后发现还有额外需要的功能包,也可以在该文件下手动添加。

ROS学习笔记2_ROS工作空间与功能包_第5张图片

 


 查看CMakeLists.txt中的内容。

其主要描述功能包中的编译规则,使用的语法是cmake的语法。 可以通过编写该文件来控制功能包的编译过程。

ROS学习笔记2_ROS工作空间与功能包_第6张图片

 注:同一个工作空间下,不允许存在同名功能包;不同工作空间下,允许存在同名功能包。

你可能感兴趣的:(笔记,学习,自动驾驶,人工智能,ubuntu,linux)