【ROS学习笔记】5.创建工作空间和编译功能包

基于B站ROS公开课:【古月居】古月·ROS入门21讲
基于Ubuntu 20.04.1、Noetic版本
修正错误,并详述Python版本部署

目录(本节基于P9)

*
1 What is Workspace(工作空间)
2 创建工作空间

+ 创建
+ 编译空代码的工作空间
3 创建功能包

+ 创建
+ 编译新的功能包
4 设置和检查环境变量

+ 设置
+ 检查
5 功能包中的两个重要文件

+ package.xml
+ CMakeLists.txt

1 What is Workspace(工作空间)

工作空间(Workspace):存放工程开发相关文件的文件夹。类似一个IDE(例如Pycharm)新建一个工程,就是一个工作空间。包含4个文件夹:

  • src: 代码空间(Source Space):放置功能包代码
  • build: 编译空间(Build Space):编译过程中产生的中间文件,不用过多关注
  • devel: 开发空间(Development Space):放置编译生成的可执行文件、库、脚本
  • install: 安装空间(Install Space):存放可执行文件,与上面有一定重复
    例图:
    【ROS学习笔记】5.创建工作空间和编译功能包

; 2 创建工作空间

创建

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

我们先创建一个src文件夹,然后进入该文件夹
第3行 catkin_init_workspace意为将当前文件夹变为工作空间,使其拥有工作空间的属性
注:”~/”意为当前用户名目录;”-p”意为递归创建目录,即直接创建多级目录。
src文件夹即代码空间,不能自行用别的名称代替

【ROS学习笔记】5.创建工作空间和编译功能包

编译空代码的工作空间

要编译工作空间,先要回到工作空间的根目录。

cd ~/catkin_ws
catkin_make

第二行 catkin_make为编译指令,将src里的源码都进行编译。

【ROS学习笔记】5.创建工作空间和编译功能包
这里没有生成install文件夹,要生成install文件夹,输入 catkin_make install
【ROS学习笔记】5.创建工作空间和编译功能包
这样一个空的工作空间创建好了,并且空的代码空间(功能包)编译完成。

3 创建功能包

功能包是放置ROS源码的最小单元。
上面我们创建了一个空的工作空间,src文件夹里面没写东西,现在我们创建一个自己的功能包。
注意同一工作空间下,不允许存在同名功能包;不同工作空间下,允许存在同名功能包。

创建

指令格式: catkin_create_pkg <package_name> [depend1] [depend2] [depend3]</package_name>

cd ~/catkin_ws/src
catkin_create_pkg test_pkg std_msgs rospy roscpp

【ROS学习笔记】5.创建工作空间和编译功能包
创建成功,我们可以打开文件夹见到我们的目录结构(上图)。

编译新的功能包

回到工作空间根目录,再编译一下。

cd ~/catkin_ws
catkin_make

【ROS学习笔记】5.创建工作空间和编译功能包

4 设置和检查环境变量

设置

编译完功能包后,为了运行,先设置环境变量,以便系统找到我们的工作空间和功能包。

source ~/catkin_ws/devel/setup.bash

检查

echo $ROS_PACKAGE_PATH

echo为打开环境变量,通过 ROS_PACKAGE_PATH 查找所有ros功能包的路径。
前面source了 devel/setup.bash ,现在就会包含这个路径:

【ROS学习笔记】5.创建工作空间和编译功能包

5 功能包中的两个重要文件

package.xml

使用xml语言描述功能包相关的信息:
(后面的课会用到)

【ROS学习笔记】5.创建工作空间和编译功能包

; CMakeLists.txt

描述功能包里的编译规则,使用CMake语法。
(后面的课会越来越多的用到)

【ROS学习笔记】5.创建工作空间和编译功能包

Original: https://blog.csdn.net/takedachia/article/details/122497067
Author: takedachia
Title: 【ROS学习笔记】5.创建工作空间和编译功能包

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/598043/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球