Package组成
package.xml
: 提供包的信息(版本, 维护者…)CMakeLists.txt
: CMake system的输入, 以编译软件包, 描述如何构建代码,从何处安装- 每个package带自己的文件夹: 不嵌套, 不共享
文件结构
- workspace_folder/
- src
- CMakeLists.txt
- package_1/
- CMakeLists.txt
- package.xml
…- package_n/
- CMakeLists.txt
- package.xml
创建Package
catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
- 忘记添加依赖包
# 移动到source space
cd ~/catkin_ws/src
# 用catkin_create_pkg脚本新建包, 依赖std_msgs,roscpp,rospy
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
# 编译
cd ~/catkin_ws
catkin_make
# 添加workspace到ROS环境
. ~/catkin_ws/devel/setup.bash
rospack
: 查看依赖项rospack depends1 beginner
直接依赖项rospack depends beginner
间接依赖项
编译Packages
source /opt/ros/melodic/setup.bash
catkin_make # 编译任何src中的工程
catkin_make install # 选择编译
catkin_make --source my_src # 不在默认src
catkin_make install --source my_src