在ROS2中,如何按照标准流程正确地创建一个新的功能包?
时间: 2024-12-08 20:20:49 浏览: 45
在Robot Operating System (ROS2) 中,创建一个新的功能包(也称为节点包)通常涉及以下几个步骤:
初始化项目目录:
- 在终端或命令行中,选择一个合适的目录并创建新文件夹,比如
my_package
。mkdir my_package cd my_package
- 在终端或命令行中,选择一个合适的目录并创建新文件夹,比如
设置CMakeLists.txt:
- 在新文件夹中创建一个名为
CMakeLists.txt
的文件,这是CMake用于管理构建配置的主要文件。 - 添加基本的ROS2支持,如找到ROS的安装路径等。
- 在新文件夹中创建一个名为
cmake_minimum_required(VERSION 3.5)
project(my_package)
find_package(rclcpp REQUIRED)
- 创建节点:
- 创建包含实际功能的C++源文件,例如
src/my_node.cpp
。 - 使用
rclcpp::Node
为基础创建一个新的ROS2节点,并定义其生命周期函数。
- 创建包含实际功能的C++源文件,例如
#include <rclcpp/rclcpp.hpp>
#include "my_node.hpp"
int main(int argc, char * argv[])
{
rclcpp::init(argc, argv);
auto node = rclcpp::Node::make_shared<MyNode>("my_node");
rclcpp::spin(node);
rclcpp::shutdown();
return 0;
}
定义消息和服务:
- 如果需要自定义的消息或服务,可以在
msg
和srv
目录下创建.msg
、.srv
文件,分别表示ROS2的消息和服务。
- 如果需要自定义的消息或服务,可以在
添加构建规则:
- 在
CMakeLists.txt
中添加必要的构建规则,包括消息和服务的生成以及节点的链接。
- 在
测试和发布:
- 使用
colcon build
命令构建新的功能包。 - 测试新节点是否正常工作,可以使用
ros2 run
命令。 - 若要将节点打包成发布的二进制包,使用
colcon package
。
- 使用
版本控制和提交:
- 将整个项目结构添加到Git或其他版本控制系统中,并定期提交更新。
相关推荐

















