1. 创建服务接口包

命令

1
2
3
4
ros2 pkg create face_interfaces \
--build-type ament_cmake \
--dependencies rosidl_default_generators sensor_msgs \
--license Apache-2.0

依赖rosidl_default_generators

类型:ROS 2 的 CMake 包(CMake package)

作用:生成 ROS 2 消息、服务和动作所需的 接口代码

功能

  • 当你定义一个 .msg.srv.action 文件时,rosidl_default_generators 会负责生成对应的语言绑定(C++、Python 等)。
  • 没有它,ROS 2 无法把你写的消息文件转换成可以在节点里直接用的类。

依赖sensor_msgs

类型:ROS 2 消息包(message package)

作用:提供标准化的传感器数据消息类型。

包含的消息

  • Image:相机图像
  • CameraInfo:相机内参
  • LaserScan:激光雷达扫描
  • Imu:惯性测量单元数据
  • 等等

CMakeLists.txt

1
2
3
4
5
rosidl_generate_interfaces(
${PROJECT_NAME}
"srv/FaceDetector.srv"
DEPENDENCIES sensor_msgs
)

package.xml

1
<member_of_group>rosidl_interface_packages</member_of_group>

查看信息

1
ros2 interface show face_interfaces/srv/FaceDetector