组成部分:

  • package.xml: 提供元信息
  • CMakeLists.txt: 为 CMake 编译用

注:同目录中只能有一个包,不能嵌套和共享目录

举个栗子:

ROS/                        -- 工作目录
    src/                    -- 源码目录
        CMakeLists.txt      -- 顶端编译文件,由 catkin 提供
        Package_1/          -- 包1
            CMakeLists.txt  -- 包1 的编译文件
            package.xml     -- 包1 的清单文件
        ...
        Package_n/          -- 包n
            CMakeLists.txt  -- 包n 的编译文件
            package.xml     -- 包n 的清单文件
创建

先弄个工作目录和源码目录

mkdir -p ~/ROS/src
cd ~/ROS/src

创建名字为 echo_hello 的包

catkin_create_pkg echo_hello std_msgs rospy roscpp

命令帮助:catkin_create_pkg 包名 [依赖包1] [依赖包2] ...

构建工作目录,添加环境变量

cd ~/ROS
catkin_make
. ~/ROS/devel/setup.*sh

查看 echo_hello 包直接依赖关系

rospack depends1 echo_hello

查看间接依赖关系

rospack depends echo_hello
定制包

编辑 ~/ROS/src/echo_hello/package.xml

描述标签

<description>The echo_hello package</description>

维修工人标签 =v=

<maintainer email="[email protected]">user</maintainer>

许可证标签

<license>TODO</license>

依赖关系标签

<buildtool_depend>catkin</buildtool_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>

<run_depend>rospy</run_depend>
<run_depend>std_msgs</run_depend>
组建包
cd ~/ROS

catkin_make [构建目标] [CMake 编译选项]
catkin_make install     # 可选

构建成功后会产生以下三个目录

build
devel
src