TRON 2 DOCS
产品文档/TRON 2/SDK · 上层任务控制
TRON 2 · 使用与开发

上层 · 双足与双轮足控制

仅双足/双轮足

3.8 双足/双轮足协议接口定义

该机器人接口设计遵循与遥控器操控一致的流程和状态流转,确保调用顺序、响应时序及状态过渡与遥控器控制逻辑严格对齐。用户通过接口调用可获得如同使用遥控器的直观体验,同时支持遥控器与接口间的无缝切换,实现统一、稳定的机器人操控效果。 产品手册示意图

3.8.1 起立状态

3.8.1.1 请求:request_stand_mode

{
  "accid": "SF_TRON2A_001",  // 机器人序列号,注意修为您机器人的序列号;
  "title": "request_stand_mode",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
  }
}

3.8.1.2 响应:response_stand_mode

{
  "accid": "SF_TRON2A_001",
  "title": "response_stand_mode",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "success"  // success: 成功, fail_imu: IMU 错误, fail_motor: 电机错误
}

3.8.1.3 消息推送:notify_stand_mode

机器人站起过程失败或完成后,主动推送此消息。

{
  "accid": "SF_TRON2A_001",
  "title": "notify_stand_mode",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "success"  // success: 成功, fail_imu: IMU 错误, fail_motor: 电机错误
  }
}

3.8.2 行走状态

3.8.2.1 请求:request_walk_mode

{
  "accid": "SF_TRON2A_001", // 机器人序列号,注意修为您机器人的序列号;
  "title": "request_walk_mode",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
  }
}

3.8.2.2 响应:response_walk_mode

{
  "accid": "SF_TRON2A_001",
  "title": "response_walk_mode",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "success"  // success: 成功, fail_imu: IMU 错误, fail_motor: 电机错误
}

3.8.2.3 消息推送:notify_walk_mode

机器人站起过程失败或完成后,主动推送此消息。

{
  "accid": "SF_TRON2A_001",
  "title": "notify_walk_mode",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "success"  // success: 成功, fail_imu: IMU 错误, fail_motor: 电机错误
  }
}

3.8.3 控制行走

3.8.3.1 请求:request_twist

请按 30Hz 及以上发送指令。

  • 掌足模式下按如下规则:
{
  "accid": "SF_TRON2A_001", // 机器人序列号,注意修为您机器人的序列号;
  "title": "request_twist",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "x": 0.0,   //  前进后退速度比值,取值范围[-1, 1]
    "y": 0.0,   //  横向行走速度比值,取值范围[-1, 1]
    "z": 0.0    //  旋转角速度比值,取值范围[-1, 1]
  }
}
  • 轮足模式下按如下规则:
{
  "accid": "WF_TRON1A_075", // 机器人序列号,注意修为您机器人的序列号;
  "title": "request_twist",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "x": 0.0,   //  前进后退速度(m/s),取值范围[-3.0, 3.0];同时注意,楼梯模式下发速度需要大于1.5,否则上不了楼梯
    "y": 0.0,   //  横向行走速度为0.0(m/s),轮足模式下不支持横向移动
    "z": 0.0    //  旋转角速度(m/s),取值范围[-1.5, 1.5]
  }
}

3.8.3.2 响应:无

3.8.3.3 消息推送:notify_twist

机器人行走失败时,主动推送此消息。

{
  "accid": "SF_TRON2A_001",
  "title": "notify_twist",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "fail_motor"  // fail_imu: IMU 错误, fail_motor: 电机错误
  }
}

3.8.4 调整机器身高

3.8.4.1 请求:request_base_height

{
  "accid": "SF_TRON2A_001", // 机器人序列号,注意修为您机器人的序列号;
  "title": "request_base_height",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "direction": -1  // 1:表示升高,-1:表示降低
                     // 每次调用此请求会使机器人身高相应升高或降低 5cm
  }
}

3.8.4.2 响应:response_base_height

{
  "accid": "SF_TRON2A_001",
  "title": "response_base_height",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "success"  // success: 成功, fail_status: 则表示机器人当前状态不允许调整身高
  }
}

3.8.4.3 消息推送:无

3.8.5 蹲下

3.8.5.1 请求:request_sitdown

{
  "accid": "SF_TRON2A_001", // 机器人序列号,注意修为您机器人的序列号;
  "title": "request_sitdown",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {}
}

3.8.5.2 响应:response_sitdown

{
  "accid": "SF_TRON2A_001",
  "title": "response_sitdown",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "success"  // success: 成功, fail_imu: IMU 错误, fail_motor: 电机错误
  }
}

3.8.5.3 消息推送:notify_sitdown

机器人蹲下过程失败或完成后,主动推送此消息。

{
  "accid": "SF_TRON2A_001",
  "title": "notify_sitdown",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "success"  // success: 成功, fail_imu: IMU 错误, fail_motor: 电机错误
  }
}

3.8.6 开启楼梯模式(仅适用于双轮足形态)

3.8.6.1 请求:request_stair_mode

{
  "accid": "WF_TRON2A_001", // 机器人序列号,注意修为您机器人的序列号;
  "title": "request_stair_mode",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
      "enable": true  // true: 开启楼梯模式, false: 关闭楼梯模式
  }
}

3.8.6.2 响应:response_stair_mode

{
  "accid": "WF_TRON2A_001",
  "title": "response_stair_mode",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "success"  // success: 成功, fail_imu: IMU 错误, fail_motor: 电机错误
  }
}

3.8.6.3 消息推送:无

3.8.7 紧急停止

3.8.7.1 请求:request_emgy_stop

{
  "accid": "SF_TRON2A_001", // 机器人序列号,注意修为您机器人的序列号;
  "title": "request_emgy_stop",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {}
}

3.8.7.2 响应:response_emgy_stop

{
  "accid": "SF_TRON2A_001",
  "title": "response_emgy_stop",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "success"  // success: 成功, fail_imu: IMU 错误, fail_motor: 电机错误
  }
}

3.8.7.3 消息推送:无

3.8.8 开启 IMU 数据

3.8.8.1 请求:request_enable_imu

该功能用于开启 IMU 数据推送,开启后系统将主动推送 IMU 数据。

{
  "accid": "SF_TRON2A_001", // 机器人序列号,注意修为您机器人的序列号;
  "title": "request_enable_imu",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
      "enable": true  // true: 开启IMU, false: 禁用IMU
  }
}

3.8.8.2 响应:response_enable_imu

{
  "accid": "SF_TRON2A_001",
  "title": "response_enable_imu",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "success"  // success: 成功, fail_imu: IMU
  }
}

3.8.8.3 消息推送:notify_imu

开启 IMU 数据后,系统将主动推送包含 IMU 状态的消息。

{
  "accid": "SF_TRON2A_001", 
  "title": "notify_imu", 
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
      "euler": [0.0, 0.0, 0.0],     // 欧拉角 [roll, pitch, yaw] in degrees
      "acc": [0.0, 0.0, 0.0],       // 加速度 [x, y, z] in m/s²
      "gyro": [0.0, 0.0, 0.0],      // 陀螺仪角速度 [x, y, z] in rad/s
      "quat": [0.0, 0.0, 0.0, 0.0]  // 四元数 [w, x, y, z]
  }
}

3.8.9 摔倒恢复

3.8.9.1 请求:request_recover

当机器人摔倒后,可以调用此接口让机器人自动爬起来并恢复到行走模式。

{
  "accid": "SF_TRON2A_001", // 机器人序列号,注意修为您机器人的序列号;
  "title": "request_recover",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {}
}

3.8.9.2 响应:response_recover

{
  "accid": "SF_TRON2A_001",
  "title": "response_recover",
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
    "result": "success"  // success: 成功收到指令,开始恢复爬起, fail_no_fallover: 当前没摔倒
  }
}

3.8.9.3 消息推送:notify_recover

完成恢复爬起后,推送此消息。

{
  "accid": "SF_TRON2A_001", 
  "title": "notify_recover", 
  "timestamp": 1672373633989,
  "guid": "746d937cd8094f6a98c9577aaf213d98",
  "data": {
      "result": "success"  // success: 摔倒恢复成功, fail_recover: 摔倒恢复失败
  }
}
继续阅读双足/双轮足 · C++ / Python 示例