总览
功能包内容-文件夹结构
Python功能包
$ ros2 pkg create --build-type ament_python --dependencies [deps] --node-name my_node my_package
文件:
setup.cfg:setuptools 可执行文件放在 lib 中
setup.py:setuptools 的安装脚本
CMake功能包
$ ros2 pkg create --build-type ament_cmake --dependencies [deps] --node-name my_node my_package
-
功能包的元信息
-
列出包的依赖项
依赖关系 -
依赖项可以是其他 ROS 包和系统库(例如 Boost)
-
依赖项:
<buildtool_depend>:编译工具需要
<exec_depend>:执行时需要(例如 Python 脚本)
<build_depend>:编译所需(例如 rclcpp、ament_cmake)
<test_depend> :运行单元测试所需
<build_export_depend> : 如果导出的头文件依赖于其他头文件
:多合一(<build_depend>、<build_export_depend> 和 <exec_depend>)
Colcon
在编译 src/ 时候创建 build/ install/ log/
-
用于开发
源代码空间(src/):
包含功能包的源版本
编译空间(build/):
调用 CMake 并生成工件的位置 -
准备安装
安装空间(install/):
准备发布的独立包
包结构类似于 /opt/ros/
环境设置文件
编译工作空间示例:
进入工作空间目录:$ cd ~/devel_ws
初始化 ROS 2 安装工作空间 $ source /opt/ros/foxy/setup.bash
安装 rosdep 包的所有依赖项:下载并安装 ROS 包所需的依赖项。
第一次,需要运行:
$ sudo rosdep init
$ rosdep update
安装功能包的所有依赖项
然后可以使用:
$ rosdep install --from-paths src --ignore-src --rosdistro foxy -y
编译工作空间
$ colcon build --symlink-install
在工作空间中编译 colcon 后,导入 ROS 环境:
$ source <ws-path>/install/setup.bash(包括 /opt/ros/<distro>/setup.bash)
参考:https://blog.csdn.net/ZhangRelay/article/details/119320130