一、检查别人的功能包依赖
当移植别人的功能包到本机时,需要在工作空间目录下检查功能包依赖是否健全
rosdepc install -i --from-path src --rosdistro humble -y
此处使用的rosdistro为ROS2 Humble LTS版本,根据需要修改此处
#All required rosdeps installed successfully
当返回该语句时,说明功能包的依赖健全
这是一个良好的习惯
二、自己创建功能包
ROS官方关于创建功能包的资料
ROS 2 中的包使用 ament 作为其构建系统,并使用 colcon 作为其构建工具
不同的包的存放位置都为工作空间下的src
功能包中有些文件是必须包含的,这对于c++与python来说有些不同
For C++
CMakeLists.txt 记录功能包编译规则
package.xml 描述功能包属性的信息,包含功能包的依赖信息、版权信息等
For Python
package.xml 包含这个包的元信息(版权信息以及依赖声明等)
setup.py 包含如何安装这个包的指导内容和“entry_points”配置的程序入口
setup.cfg 当包有执行性文件时,这个文件是必须的,以便于ros2 run 可以执行相应的文件
/- 一个与你的包同名的目录,方便ROS2 tools查找你的包,这个目录下包含__init__.py
1.创建功能包:
在工作空间的src目录下
python
ros2 pkg create --build-type ament_python <package_name>
例子:
ros2 pkg create --build-type ament_python learning_pkg_python
C++
ros2 pkg create --build-type ament_cmake <package_name>
例子:
ros2 pkg create --build-type ament_cmake learning_pkg_cplus
三、功能包相关的其他指令
1. 列出可执行文件
可以添加后缀(包名),来列出某个功能包的可执行文件
ros2 pkg executables packagename
2. 列出所有包
ros2 pkg list
3. 输出包所在前缀位置
ros2 pkg prefix packagename
4. 列出包的清单描述信息
ros2 pkg xml packagename