ROS2 入门应用 元功能包(C++)

  • 1. 基本文件
  • 2. 创建
  • 3. 编译


1. 基本文件

使用官方支持的CMake创建功能包,需要一些基本文件:

  • package.xml :包含功能包的元信息的清单文件
  • CMakeLists.txt :编译文件

最简单的文件夹可能就是:

my_package/
     CMakeLists.txt
     package.xml

在工作空间的src文件夹创建功能包,使工作空间的顶层保持洁净
一个简单的工作空间可能是这样的:

workspace_folder/
    src/
      package_1/
          CMakeLists.txt
          package.xml

      package_2/
          setup.py
          package.xml
          resource/package_2
      ...
      package_n/
          CMakeLists.txt
          package.xml

2. 创建

在ROS 2中创建新功能包的命令语法:

ros2 pkg create --build-type ament_cmake <package_name>

这里创建一个功能包 my_package
将使用可选参数--build-type,选择ament_cmake模式
将使用可选参数--node-name,创建一个简单的Hello World类型可执行文件my_node

ros2 pkg create --build-type ament_cmake <package_name>

现在在工作空间ros2_ws的src目录中有一个名为my_package的新文件夹
自动生成的文件和文件夹:

CMakeLists.txt  include  package.xml  src

在功能包的src文件夹中存放自定义c++功能源文件my_node.cpp
在功能包的include文件夹中存放自定义的头文件

3. 编译

在工作空间根目录中运行colcon build来一次构建一个或者多个功能包

因为在《ROS2 入门应用 工作空间》已经有了功能包ros_tutorials
可以使用可选参数--packages-select,指定构建功能包

cd ~/ros2_ws
colcon build --packages-select my_package

或者构建全部功能包

cd ~/ros2_ws
colcon build

打开一个新终端,运行功能包的节点:

ros2 run my_package my_node

# hello world my_package package