说明:
介绍如何创建ros2的软件包
概念:
可以将包视为ROS 2代码的容器。
如果您希望能够安装代码或与他人共享代码,则需要将其组织在一个软件包中。
使用软件包,您可以发布ROS 2的工作,并允许其他人轻松构建和使用它。
ROS 2中的软件包创建使用ament作为其构建系统,并使用colcon作为其构建工具。
您可以使用官方支持的CMake或Python创建软件包。
步骤:
进入工作空间
cd ~/dev_ws/src
创建ros2包
~/dev_ws/src$ ros2 pkg create --build-type ament_cmake --node-name my_node my_package
going to create a new package
package name: my_package
destination directory: /home/ubuntu/dev_ws/src
package format: 3
version: 0.0.0
description: TODO: Package description
maintainer: ['ubuntu <ubuntu@todo.todo>']
licenses: ['TODO: License declaration']
build type: ament_cmake
dependencies: []
node_name: my_node
creating folder ./my_package
creating ./my_package/package.xml
creating source and include folder
creating folder ./my_package/src
creating folder ./my_package/include/my_package
creating ./my_package/CMakeLists.txt
creating ./my_package/src/my_node.cpp
编译包
cd ~/dev_ws
~/dev_ws$ colcon build --symlink-install --packages-select my_package
Starting >>> my_package
Finished <<< my_package [1.03s]
Summary: 1 package finished [1.13s]
可以通过–packages-select指定编译的包
重新加载工作空间
cd ~/dev_ws
. install/setup.bash
运行包
~/dev_ws$ ros2 run my_package my_node
hello world my_package package
软件包解析:
包目录结构:
~/dev_ws/src/my_package$ tree
.
├── CMakeLists.txt #告诉编译器如何编译的文件
├── include
│ └── my_package #自定义的头文件
├── package.xml #包相关信息文件
└── src
└── my_node.cpp #源文件,具体实现功能的文件
3 directories, 3 files