ROS2 学习笔记13:创建 ROS2 包
Background 背景
1 什么是ROS2 包
包可以视为你的ros2
代码的容器.如果你想安装你的程序或者分享给别人,你需要(把代码)有组织放到一个包里面。有了包,你可以分享ros2
工作内容,别人可以方便地编译以及使用。
ros2
包创建使用ament
作为编译系统,colcon
作为编译工具。使用CMake
或者python
来创建一个包,这些是官方支持的,当然也存在其他构建方式。
2 ROS2包的组成
ROS2
CMake
或者python
包 应至少包含以下相关文件:
CMake
:
CMakeLists.txt
:描述如何编译代码的文件
include/<package_name>
:包含包的公共头文件的目录
package.xml
:包含包的基本信息的文件
src
:包含包源代码的目录
python
:
package.xml
:包含包的基本信息的文件
resource/<package_name>
:包的标记文件
setup.cfg
:该文件的作用是,让ros2 run
指令可以找到包里面的可执行文件
setup.py
:安装该包的使用说明
/<package_name>
:一个和包名同名的目录,可让ros2
工具用来找到你的包,其包含__init__.py
最简单的包文件结构如下:
备注: 不同版本略有差异
CMake
:
my_package/
CMakeLists.txt
include/my_package/
package.xml
src/
python
:
my_package/
package.xml
resource/my_package
setup.cfg
setup.py
my_package/
3 工作空间的包
一个工作区可以包含任意数量的软件包,每个软件包都有自己的文件夹。您也可以在一个工作区中包含不同构建类型的软件包(CMake
、Python
等)。但不能嵌套软件包。
最佳做法是在工作区中建立一个 src
文件夹,并在其中创建软件包。这样可以保持工作区顶层的 “干净”。
工作空间可能是这样的
workspace_folder/
src/
cpp_package_1/
CMakeLists.txt
include/cpp_package_1/
package.xml
src/
py_package_1/
package.xml
resource/py_package_1
setup.cfg
setup.py
py_package_1/
...
cpp_package_n/
CMakeLists.txt
include/cpp_package_n/
package.xml
src/