ROS-学习笔记(3)-- 工作空间、功能包的创建与编译

1. 学习资料

2. ROS 工作空间与功能包

ROS的工作空间相当于一个完整的工程,工作空间中有源码文件、二进制文件等,具体的,可以被分为 /src,/build,/devel和**/install**四个文件夹。

2.1 工作空间的简介

(1)src

src,代码空间,即Source Space, 用来储存ROS的功能包的源码文件。

(2)build

build, 编译空间,即Build Space, 用来储存编译过程中产生的中间文件,不需要什么关注。

(3)devel

devel, 开发空间,即Development Space, 用来放置编译生成的可执行文件,开发中。

(4) install

install, 安装空间,即Install Space, 同样用来存放可执行文件,但与开发空间不同的是,用于开发后可执行文件的存放,即安装。

2.2 工作空间、功能包的创建与编译

功能包的创建是在工作空间创建完成的基础上完成的,首先完成一个空工作空间的创建,其次在该工作空间中添加创建功能包。

2.2.1 工作空间的创建与编译

(1)工作空间创建

工作空间的创建包括目录的创建与空间的初始化,创建一个名称为"test"的工作空间:

mkdir -p ~/test/src

创建完工作空间后,对空间进行初始化,这里使用catkin的初始化工具,需要注意的是,需要进入src目录完成初始化工作

cd ~/test/src
catkin_init_workspace

在这里插入图片描述

(2)工作空间的编译

进过(1)完成工作空间的创建后,在工作空间的根目录下使用catkin_make命令编译整个工作空间

cd ~/test/
catkin_make

在这里插入图片描述

通过catkin_make指令,在根目录下会自动生成,develbuild两个文件夹,此时没有install文件夹,如需同时创建install文件夹,就需要使用:

catkin_make install
(3)环境变量的设置

经过(2)的编译过程,在devel中会产生环境变量设置的脚本,使用source指令使该环境变量生效(在工作空间的根目录下):

source devel/setup.bash

并且可以使用如下指令检查是否生效:

echo $ROS_PACKAGE_PATH

在这里插入图片描述

过程总结
配置环境变量
编译工作空间
创建工作空间
配置devel下变量配置文件
根目录下使用catkin_make编译
src下初始化工作空间
创建工作空间目录

2.2.2 功能包的创建与编译

(1)功能包的创建

ROS使用catkin_create_pkg创建功能包,并且需要在代码空间src文件夹下进行创建,创建包的语法如下:

catkin_create_pkg <package_name> [depend1][depend2][depend3]

其中第二个参数是功能包的名称,后面用中括号扩起的参数是依赖包的名称,例如,我们创建一个名为 test_pkg的功能包,依赖包为 roscpp,rospy,std_msgs如下:

cd ~/test/src
catkin_create_pkg test_pkg roscpp rospy std_msgs

在这里插入图片描述

创建完成后在src/test文件夹下会生成 CMakeList.txtpackage.xml两个重要的文件,前者记录包编译的规则后者记录包的依赖、开源许可等信息。

  • 需要强调的是,在同一个工作下,同名功能包不能存在
(2)功能包的编译

创建完一个新的功能包之后,进入工作空间的根目录,对功能包进行编译:

cd ~/test
catkin_cmake

在这里插入图片描述

(3)环境变量的配置

环境配置与工作空间创建时的配置方法一致,

source ~\test\devel\setup.bash

同样也可以验证以下是否生效。

过程总结
配置环境变量
编译工作空间
创建功能包
devel配置devel下变量配置文件
工作空间根目录下使用catkin_make编译
src下创建功能包
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值