差速轮底盘与导航
差速轮底盘控制
差速轮使能
命令字: 0x2900
参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | int | 1:使能驱动 |
请求示例:
json
{
"enable": 1
}差速轮急停
命令字: 0x2901
参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| stop | int | 1:执行快速停止 |
请求示例:
json
{
"stop": 1
}底盘速度设置
命令字: 0x2902
参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| v | double | 线速度,单位:m/s |
| omega | double | 角速度,单位:°/s |
请求示例:
json
{
"v": 0.3,
"omega": 20.0
}差速轮故障复位
命令字: 0x2903
参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| reset | int | 1:执行故障复位 |
请求示例:
json
{
"reset": 1
}设置底盘控制模式
命令字: 0x2904
参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| mode | int | 底盘控制模式;0:遥控,1:导航,2:空闲 |
请求示例:
json
{
"mode": 1
}导航
下发导航路径
命令字: 0x2910
参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| pathId | int | 路径编号 |
| goal_yaw | double | 终点航向角,单位:rad |
| v_ref | double | 默认路径参考速度,单位:m/s |
| direction | int | 行进方向;1:前进,-1:后退;可选,默认1 |
| points | object[] | 路径点列表 |
| points[].x | double | map 坐标系 X 位置,单位:m |
| points[].y | double | map 坐标系 Y 位置,单位:m |
| points[].v_ref | double | 当前点参考速度,单位:m/s;可选 |
请求示例:
json
{
"pathId": 1,
"goal_yaw": 1.57,
"v_ref": 0.4,
"direction": 1,
"points": [
{
"x": 0.0,
"y": 0.0,
"v_ref": 0.3
},
{
"x": 1.0,
"y": 0.5
}
]
}停止导航
命令字: 0x2911
参数说明:
无请求参数。
请求示例:
json
{}IMU yaw 设置
命令字: 0x2912
参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| yaw | double | IMU 航向角,单位:rad |
| ts_ms | int | 上位机时间戳,单位:ms |
请求示例:
json
{
"yaw": 1.57,
"ts_ms": 100000
}更新 map 到 odom 坐标变换
命令字: 0x2913
参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| dx | double | map 到 odom 的 X 方向平移量,单位:m |
| dy | double | map 到 odom 的 Y 方向平移量,单位:m |
| dyaw | double | map 到 odom 的航向角偏差,单位:rad |
| ts_ms | int | 上位机时间戳,单位:ms |
请求示例:
json
{
"dx": 0.1,
"dy": 0.2,
"dyaw": 0.05,
"ts_ms": 100000
}查询导航状态
命令字: 0x2914
参数说明:
无请求参数。
请求示例:
json
{}回复导航状态
命令字: 0x2915
参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| ok | int | odom 坐标是否有效;0:无效,1:有效 |
| odom | object | 里程计信息 |
| odom.x | double | odom 坐标系 X 位置,单位:m |
| odom.y | double | odom 坐标系 Y 位置,单位:m |
| odom.yaw | double | 航向角,单位:rad |
| odom.v | double | 线速度,单位:m/s |
| odom.w | double | 角速度,单位:rad/s |
| ts_ms | int | 控制器本地 monotonic_ms,单位:ms |
| mode | int | 底盘控制模式;0:遥控,1:导航,2:空闲 |
| tf_state | int | TF 状态;0:从未收到 TF,1:TF 正常,2:TF 短暂超时,3:TF 长时间断流 |
| imu_fresh | int | IMU 是否超时;1:未超时,0:超时 |
| tracking | int | 是否正在跟踪路径;1:正在跟踪,0:未跟踪 |
| cursor | int | 当前路径最近点索引,内部从0开始 |
| path_size | int | 当前正在跟踪的路径点数量 |
响应示例:
json
{
"ok": 1,
"odom": {
"x": 0.0,
"y": 0.0,
"yaw": 0.0,
"v": 0.0,
"w": 0.0
},
"ts_ms": 100000,
"mode": 0,
"tf_state": 0,
"imu_fresh": 1,
"tracking": 1,
"cursor": 2,
"path_size": 10
}重置里程计位姿
命令字: 0x2916
参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| x | double | 重置后的 odom 坐标系 X 位置,单位:m |
| y | double | 重置后的 odom 坐标系 Y 位置,单位:m |
| yaw | double | 重置后的航向角,单位:rad |
请求示例:
json
{
"x": 0.0,
"y": 0.0,
"yaw": 0.0
}导航模式原地旋转
命令字: 0x2917
参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| angle | double | 相对旋转角度,单位:° |
| speed | double | 最大旋转角速度,单位:°/s |
请求示例:
json
{
"angle": 90.0,
"speed": 30.0
}