系统状态与诊断接口
约 983 字大约 3 分钟
开发者可通过标准的ROS2话题(Topic)、服务(Service)和动作(Action)机制,便捷地获取机器人状态、发送控制指令,实现复杂任务的编程与集成。
Topic:订阅式话题,接收方订阅某个消息,发送方根据订阅列表向接收方发送消息,主要用于中高频或持续的数据交互。
Service:问答式服务,通过请求实现数据获取或操作。用于低频或功能切换时的数据交互。
Action:持续式动作,用于长时间运行的任务,支持任务执行过程中的状态反馈和取消操作,适用于复杂动作控制和任务执行。
| Topic | /supervisor/system_status | |
|---|---|---|
| 生效版本 | ≥V0.2 | |
| 接入方式 | 发布(publish) | |
| 接口说明 | 系统监控节点(supervisor)实时发布机器人系统的当前运行状态,包括当前模式和开机启动模式
| |
| 接口参数 | current_mode:当前系统模式uint8 mode{ //模式值,枚举 0; //未定义 1; //自动 2; //遥操 3; //建图 4; // ACT 99; // 待命,所有服务停止 } string mode_name{ //模式名称 "UNDEFINED"; //未定义 "TELEOPERATION"; //遥操作模式 "MAPPING"; //建图模式 "AUTONOMOUS"; //自动模式 "ACT"; //特定操作模式 "STANDBY"; //待命模式,所有服务停止 } | |
startup_mode:系统开机启动时的初始状态uint8 mode{ //模式值,枚举 0; //未定义 1; //自动 2; //遥操 3; //建图 4; // ACT 99; // 待命,所有服务停止 } string mode_name{ //模式名称 "UNDEFINED"; //未定义 "TELEOPERATION"; //遥操作模式 "MAPPING"; //建图模式 "AUTONOMOUS"; //自动模式 "ACT"; //特定操作模式 "STANDBY"; //待命模式,所有服务停止 } | ||
| Topic | /supervisor/change_system_mode | |
|---|---|---|
| 生效版本 | ≥V0.2 | |
| 接入方式 | Action
| |
| 接口说明 | 切换当前系统模式 | |
| 接口参数 | Goal:目标,客户端发送给服务器的请求,包含两个字段 target_mode{ //要切换的目标模式值 1; //自动 2 ; //遥操 3; //建图 4; //ACT } bool startup:是否设置为开机自启,false 表示不开机自启,true表示开机自启 | |
| Result:服务器执行完成后返回给客户端的结果,包含两个字段 bool success:模式切换是否成功,false表示模式未切换,true表示模式切换成功 string message:模式切换执行结果的描述信息,如 “切换至自动模式成功” | ||
| Feedback:服务器在执行过程中周期性地向客户端发送的进度反馈,包含两个字段 float32 progress:模式切换的进度,取值为 [0.0, 100.0] string status:当前执行切换的实时状态描述,如 “正在关闭当前服务” | ||