跳到主要内容

轮臂机器人基础使用

说明

为方便使用,轮臂机器人上肢半身的控制接口与全身上肢接口完全一致,可以适配所有上肢相关案例,配置方式具体可参考上肢控制模式实物运行-轮臂机器人篇章,上肢控制接口详见接口使用文档,下面主要说明底盘的控制使用以及二次开发接口

软件使用

  1. Leju Design
  • 功能:用于修改编辑使用 Leju Mobile 扫描建立的地图,包含创建地图功能点、预定义任务等功能
  • 使用手册:Design使用手册
  1. Leju Mobile
  • 功能:主要用于遥控机器人实现扫描建图,执行预定义任务、实时监控等
  • 使用手册:Mobile使用手册

开发接口

  • 目前与底盘的通信主要采用WebSocket的通讯方式,包括请求(Request)与订阅(Subscribe)两种方式。
  • 接口文档下载:接口文档
  • 数据字典下载:数据字典下载
  • 示例代码:示例代码

1. 订阅 (Subscribe)

  • 概述 订阅机制允许客户端接收底盘系统推送的消息,如状态更新、事件通知等。客户端通过建立WebSocket连接并发送订阅请求,底盘系统将根据请求的内容推送相应的消息。

  • WebSocket连接

  • 连接建立:客户端使用WebSocket协议连接到底盘服务器的特定端点。

  • 心跳机制:为保持连接活性,客户端与服务器之间定期交换心跳消息。

  • 订阅请求格式

{
"type": "subscribe",
"body": {
"topics": ["topic1", "topic2"]
}
}
  • type:标识请求类型,订阅请求为subscribe

  • body

    • topics:一个字符串数组,表示客户端想要订阅的主题列表。
  • 订阅响应格式

{
"type": "notification",
"body": {
"topic": "topic1",
"message": {
// 根据topic不同,消息内容会有所差异
}
}
}
  • type:标识响应类型,通知为notification

  • body

    • topic:与订阅请求中的主题对应,标识消息所属的主题。
    • message:具体的消息内容,格式依据主题而定。
  • 支持的订阅主题 以下是目前支持的订阅主题及其简要说明:

  1. 状态更新 (status_update):订阅底盘的状态更新,如电池电量、位置信息等。
  2. 错误日志 (error_log):接收底盘系统产生的错误日志。
  3. 事件通知 (event_notification):底盘系统发生特定事件时的通知,如充电完成、进入故障状态等。
  • 示例:订阅状态更新
{
"type": "subscribe",
"body": {
"topics": ["status_update"]
}
}

响应示例:

{
"type": "notification",
"body": {
"topic": "status_update",
"message": {
"battery_level": 75,
"position": {
"x": 10.5,
"y": -3.2
}
}
}
}

2. 请求 (Request)

  • 概述 请求机制允许客户端向底盘系统发送指令或请求,以控制机器人的行为或查询状态。客户端通过建立WebSocket连接并发送请求消息,底盘系统处理这些请求并返回相应的响应。

  • 请求消息格式

{
"type": "request",
"body": {
"action": "get_status",
"params": {}
}
}
  • type:标识请求类型,普通请求为request

  • body

    • action:字符串,表示请求的动作或意图,如get_statusstart_move等。
    • params:一个对象,包含执行动作所需的参数。
  • 响应消息格式

{
"type": "response",
"body": {
"status": "success",
"data": {
// 根据请求的动作,数据内容会有所不同
},
"error": null
}
}
  • type:标识响应类型,响应为response

  • body

    • status:表示处理结果的状态,如successerror
    • data:请求成功时返回的数据。
    • error:请求失败时的错误信息。
  • 支持的请求动作 以下是目前支持的请求动作及其简要说明:

  1. 获取状态 (get_status):请求底盘的当前状态,如电池电量、位置等。
  2. 启动移动 (start_move):指令底盘开始移动到指定位置。
  3. 停止移动 (stop_move):指令底盘停止当前的移动。
  4. 充电 (start_charge):指令底盘前往充电站进行充电。
  • 示例:请求获取状态
{
"type": "request",
"body": {
"action": "get_status",
"params": {}
}
}

响应示例:

{
"type": "response",
"body": {
"status": "success",
"data": {
"battery_level": 85,
"position": {
"x": 5.0,
"y": 2.3
}
},
"error": null
}
}