ROS创建功能包

 

Create Package

# 创建工作空间
$ mkdir -p learning_ros/src && cd learning_ros/src
# 创建功能包
$ catkin_create_pkg <pkg_name> <pkg_dependency1> <pkg_dependency2> ... <pkg_dependencyn>
$ catkin_create_pkg test_pkg std_msgs roscpp
# 编译
$ catkin_make
# 查看当前的环境变量 ROS_PACKAGE_PATH
$ echo $ROS_PACKAGE_PATH
> /opt/ros/melodic/share  # 发现默认就有这里面的功能包
# 设置环境变量
$ source devel/setup.bash
# 再次查看环境变量 ROS_PACKAGE_PATH
$ echo $ROS_PACKAGE_PATH
> <path_to_<learning_ros>>/src:/opt/ros/melodic/share
# 可以发现新增了一个路径,也可以推断这个环境变量就是ros查找功能包的路径

Ps: 同一个工作空间不能有同名功能包,不同工作空间则可以

引申

如何添加新的依赖包?

进入功能包,找到 package.xml

<!-- package.xml file -->
<!-- 找到 build_depend build_export_depend exec_depend 相关字眼 --> 

<build_depend>roscpp</build_depend>
<build_depend>std_msgs</build_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>std_msgs</exec_depend>

<!-- 因此想要添加新的功能包依赖,直接新增 -->
<build_depend>pkg_name</build_depend> <!-- 编译依赖 -->
<exec_depend>pkg_name</exec_depend> <!-- 运行时依赖 -->

实例见 自定义消息结构