当前位置: 首页 > article >正文

《ROS2 机器人开发 从入门道实践》 鱼香ROS2——第4章内容

第4章 服务和参数——深入ROS2通信

4.2 用Python服务通信实现人脸检测

4.2.1 自定义服务接口

1. 创建接口功能包

终端中输入

ros2 pkg create chapt4_interfaces --dependencies sensor_msgs rosidl_default_generators --license Apache-2.0
  • ros2 pkg create 功能包名称 --dependencies 依赖

 ROS2提供的用于创建功能包的命令行工具

  • sensor_msgs ROS2中的消息定义功能包,定义了各种各样传感器数据的消息类型,比如,LaserScan消息类型用于表示激光雷达扫描得到的数据,包含了扫描角度范围、距离信息等关键数据;Image消息类型可以用来传递摄像头拍摄到的图像相关信息,像图像的宽度、高度、编码格式以及像素数据等。
  • rosidl_default_generators用于生成ROS接口相关的代码,当你定义了自定义的消息类型(.msg文件)、服务类型(.srv文件)或者动作类型(.action 文件)后,需要通过代码生成工具将这些接口定义转换为不同编程语言(如C++、Python等)可用的代码形式,rosidl_default_generators就是承担这样的角色,它能根据你的接口定义自动生成相应的代码,方便在不同语言环境下进行接口的实现和调用。

2. 创建srv消息文件FaceDetector.srv

sensor_msgs/Image image # 人脸图像
---
int16 number
float32 use_time
int32[] top
int32[] right
int32[] bottom
int32[] left

3. 修改CMakeLists.txt

rosidl_generate_interfaces(${PROJECT_NAME}
  "srv/FaceDetector.srv"
  DEPENDENCIES sensor_msgs
)

4. 修改package.xml

  <member_of_group>rosidl_interface_packages</member_of_group>

<member_of_group> 标签所包裹的内容(即 rosidl_interface_packages)表示当前所涉及的元素(比如某个功能包)隶属于名为 rosidl_interface_packages 的分组,照该分组预先设定好的构建规则、依赖处理方式等来对这个功能包进行相应的构建操作


http://www.kler.cn/a/451458.html

相关文章:

  • 【设备 磁盘】重要备份存放U盘的风险 + winhex 磁盘清零(清理windows无法格式化的磁盘)
  • C语言从入门到放弃教程
  • 100V宽压输入反激隔离电源,适用于N道沟MOSFET或GaN或5V栅极驱动器,无需光耦合
  • 778-批量删除指定文件夹下指定格式文件(包含子孙文件夹下的)
  • 服务器压力测试怎么做
  • 单机游戏《野狗子》游戏运行时提示dbghelp.dll缺失是什么原因?dbghelp.dll缺失要怎么解决?
  • WebAuthn 项目常见问题解决方案
  • C++抽象类与类继承相关注意事项 [学习笔记]
  • select 1 from table的作用 详解
  • 【ue5学习笔记2】在场景放入一个物体的蓝图输入事件无效?
  • sentinel学习笔记8-系统自适应与黑白名单限流
  • LabVIEW实现GSM/GPRS通信
  • LeetCode 3138.同位字符串连接的最小长度:计数(一个数最多128个因数)
  • Python中定位元素包含文本信息的详细解析与代码示例
  • QWebChannel实现与JS的交互
  • 使用React构建一个掷骰子的小游戏
  • skywalking 搭建
  • 【漫话机器学习系列】016.误差中的偏差(BIAS)
  • 【漏洞复现】CVE-2015-5531 Arbitrary File Reading
  • 序列化和反序列化(二)
  • ML-Agents 概述(二)
  • windows C++ TCP客户端
  • 类设计者的核查表
  • 微软远程桌面APP怎么用
  • 算法专题——双指针
  • 机器学习之scikit-learn(简称 sklearn)