ZSL-1 SDK API 定义
1. HighLevel函数介绍
class HighLevel
该类包含控制四足机器人应用功能的方法,用户可以使用这些方法来进行上层控制和获取数据。
1.1 初始化
函数原型
1 | |
功能概述 与机器狗建立通信,机器狗端ip默认"192.168.234.1", 如更改机器人ip,需从该接口传入新ip
参数说明
| 参数名 | 类型 | 说明 | 选项 | 备注 |
|---|---|---|---|---|
| local_ip | string& | 用户主机IP地址 | 必选项 | - |
| local_port | int | 用户主机端口 | 必选项 | - |
| dog_ip | string& | 机器狗IP地址 | 可选项 | 默认"192.168.234.1") |
返回值 无
备注 通信建立失败时,终端输出失败日志
1.2 检查通讯状态
函数原型
1 | |
功能概述 检查机器人通讯状态
参数说明
无
返回值类型:bool
| 返回值 | 说明 |
|---|---|
| true | 连接正常 |
| false | 连接失败 |
备注 可做心跳检测
1.3 站起
函数原型
1 | |
功能概述 控制机器狗站立
参数说明
无
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0 | 进入状态正常 |
| 0x3012 | 电机数据丢失 |
| 0x3010 | 电机失能 |
| 0x3011 | 电机故障 |
| 0x3009 | 电机角度超限 |
| 0x3007 | 状态机切换失败 |
| 0x3013 | 速度命令过大 |
备注 机器狗正常站立,移动中不可直接切入此状态
1.4 趴下
函数原型
1 | |
功能概述 控制机器狗站低
参数说明
无
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0 | 进入状态正常 |
| 0x3012 | 电机数据丢失 |
| 0x3010 | 电机失能 |
| 0x3011 | 电机故障 |
| 0x3009 | 电机角度超限 |
| 0x3007 | 状态机切换失败 |
| 0x3013 | 速度命令过大 |
备注 机器狗站低,关节锁定,移动中不可直接切入此状态
1.5 阻尼
函数原型
1 | |
功能概述 控制机器狗紧急趴下
参数说明
无
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0 | 进入状态正常 |
| 0x3012 | 电机数据丢失 |
| 0x3010 | 电机失能 |
| 0x3011 | 电机故障 |
| 0x3009 | 电机角度超限 |
| 0x3007 | 状态机切换失败 |
| 0x3013 | 速度命令过大 |
备注 机器狗进入阻尼状态,趴下
1.6 移动
函数原型
1 | |
功能概述 控制机器狗运动
参数说明
| 参数名 | 类型 | 说明 | 选项 | 备注 |
|---|---|---|---|---|
| vx | float | 前向速度 | 必选项 | 不进行移动时需传入0,范围(-3m/s ~ -0.05m/s; 0.05m/s ~ 3m/s) |
| vy | float | 侧向速度 | 必选项 | 不进行移动时需传入0,范围(-1.0m/s ~ -0.1m/s;0.1m/s ~ 1.0m/s) |
| yaw_rate | float | 绕Z轴角速度 | 必选项 | 不进行移动时需传入0,范围(-3.0rad/s ~ -0.02rad/s;0.02rad/s ~ 3.0rad/s) |
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0 | 进入状态正常 |
| 0x3012 | 电机数据丢失 |
| 0x3010 | 电机失能 |
| 0x3011 | 电机故障 |
| 0x3009 | 电机角度超限 |
| 0x3007 | 状态机切换失败 |
| 0x3013 | 速度命令过大 |
备注 仅在机器狗站立状态下切入,控制狗按指定速度运动。
1.7 原地跳
函数原型
1 | |
功能概述 控制机器狗垂直跳跃
参数说明
无
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0 | 进入状态正常 |
| 0x3012 | 电机数据丢失 |
| 0x3010 | 电机失能 |
| 0x3011 | 电机故障 |
| 0x3009 | 电机角度超限 |
| 0x3007 | 状态机切换失败 |
| 0x3013 | 速度命令过大 |
备注 仅在站立状态下切入,移动中不可切换状态
1.8 向前跳
函数原型
1 | |
功能概述 控制机器狗向前跳
参数说明
无
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0 | 进入状态正常 |
| 0x3012 | 电机数据丢失 |
| 0x3010 | 电机失能 |
| 0x3011 | 电机故障 |
| 0x3009 | 电机角度超限 |
| 0x3007 | 状态机切换失败 |
| 0x3013 | 速度命令过大 |
备注 仅在站立状态下切入,移动中不可切换状态
1.9 后空翻
函数原型
1 | |
功能概述 控制机器狗后空翻
参数说明
无
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0 | 进入状态正常 |
| 0x3012 | 电机数据丢失 |
| 0x3010 | 电机失能 |
| 0x3011 | 电机故障 |
| 0x3009 | 电机角度超限 |
| 0x3007 | 状态机切换失败 |
| 0x3013 | 速度命令过大 |
备注 仅在站立状态下切入,移动中不可切换状态 此特技功能专为媒体展示、产品演示等特殊场景设计。 高频次使用此功能将显著加速电机、关节等核心部件的磨损,从而可能导致产品性能下降或缩短使用寿命。 请务必谨慎使用。
1.10 打招呼
函数原型
1 | |
功能概述 控制机器狗打招呼
参数说明
无
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0 | 进入状态正常 |
| 0x3012 | 电机数据丢失 |
| 0x3010 | 电机失能 |
| 0x3011 | 电机故障 |
| 0x3009 | 电机角度超限 |
| 0x3007 | 状态机切换失败 |
| 0x3013 | 速度命令过大 |
备注 仅在站立状态下切入,移动中不可切换状态 此特技功能专为媒体展示、产品演示等特殊场景设计。 高频次使用此功能将显著加速电机、关节等核心部件的磨损,从而可能导致产品性能下降或缩短使用寿命。 请务必谨慎使用。
1.11 双腿站立
函数原型
1 | |
功能概述 控制机器狗双腿站立
参数说明
| 参数名 | 类型 | 说明 | 选项 | 备注 |
|---|---|---|---|---|
| vx | float | 前向速度 | 必选项 | 不移动则传入0,范围(-0.5~-0.2 / 0.2~0.5m / s) |
| yaw_rate | float | 绕Z轴角速度 | 必选项 | 不移动则传入0,范围(-1~-0.2 / 0.2~1.0rad / s) |
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0 | 进入状态正常 |
| 0x3012 | 电机数据丢失 |
| 0x3010 | 电机失能 |
| 0x3011 | 电机故障 |
| 0x3009 | 电机角度超限 |
| 0x3007 | 状态机切换失败 |
| 0x3013 | 速度命令过大 |
备注 仅在站立状态下切入,移动中不可切入该状态 退出双腿站立状态需调用cancelTwoLegStand(),不响应其他接口 通过参数可控制狗按指定速度运动。 此特技功能专为媒体展示、产品演示等特殊场景设计。 高频次使用此功能将显著加速电机、关节等核心部件的磨损,从而可能导致产品性能下降或缩短使用寿命。 请务必谨慎使用。
1.12 退出双腿站立
函数原型
1 | |
功能概述 控制机器狗退出双腿站立
参数说明
无
返回值 无
备注 机器狗退出双腿站立状态,机器狗双腿站立状态下切入
1.13 姿态控制
函数原型
1 | |
功能概述 控制机器狗原地扭动和身体高度变化
参数说明
| 参数名 | 类型 | 说明 | 选项 | 备注 |
|---|---|---|---|---|
| roll_vel | float | 绕X轴角速度 | 必选项 | 不进行控制则传入0,范围(-0.5rad/s~0.5rad/s) |
| pitch_vel | float | 绕Y轴角速度 | 必选项 | 不进行控制则传入0,范围(-0.5rad/s~0.5rad/s) |
| yaw_vel | float | 绕Z轴角速度 | 必选项 | 不进行控制则传入0,范围(-0.5rad/s~0.5rad/s) |
| height_vel | float | 垂直高度速度 | 必选项 | 不进行控制则传入0,范围(-0.5m/s-0.5m/s) |
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0 | 进入状态正常 |
| 0x3012 | 电机数据丢失 |
| 0x3010 | 电机失能 |
| 0x3011 | 电机故障 |
| 0x3009 | 电机角度超限 |
| 0x3007 | 状态机切换失败 |
| 0x3013 | 速度命令过大 |
备注 机器狗站立状态下切入,控制狗按指定速度原地扭动,身体高度变化。
1.14 获取姿态四元数
函数原型
1 | |
功能概述 获取机器狗当前姿态四元数
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [w, x, y, z] | 包含4个元素的向量,分别对应四元数的四个分量 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
1.15 获取姿态欧拉角
函数原型
1 | |
功能概述 获取机器狗当前姿态的欧拉角(滚转角、俯仰角、偏航角)
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [roll, pitch, yaw] | 包含 3 个元素的向量,单位为弧度(rad),分别对应绕 X、Y、Z 轴的旋转角 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
1.16 获取加速度
函数原型
1 | |
功能概述 获取机器狗身体的加速度数据(机体坐标系)
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [ax, ay, az] | 包含 3 个元素的向量,单位为 m/s²,分别对应 X、Y、Z 轴方向的加速度 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
1.17 获取角速度
函数原型
1 | |
功能概述 获取机器狗身体的角速度数据(机体坐标系)
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [gx, gy, gz] | 包含 3 个元素的向量,单位为 rad/s,分别对应 X、Y、Z 轴方向的角速度 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
1.18 获取原点坐标系位置
函数原型
1 | |
功能概述 获取机器狗在上电原点坐标系中的位置坐标
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [x, y, z] | 包含 3 个元素的向量,单位为米(m),表示当前位置 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
1.19 获取原点坐标系速度
函数原型
1 | |
功能概述 获取机器狗在上电原点坐标系中的移动速度
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [vx, vy, vz] | 包含 3 个元素的向量,单位为米/秒(m/s),分别对应上电原点坐标系 X、Y、Z 轴方向的速度 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
1.20 获取自身移动速度
函数原型
1 | |
功能概述 获取机器狗在机体坐标系中的移动速度
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [vx, vy, vz] | 包含 3 个元素的向量,单位为 m/s,分别对应机体坐标系 X、Y、Z 轴方向的速度 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
1.21 获取电量
函数原型
1 | |
功能概述 获取机器狗电量
参数说明
无
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0-100 | 范围: 0-100 |
备注 返回值范围 0-100, 0为无电, 100为满电
1.22 获取控制模式
函数原型
1 | |
功能概述 获取机器狗当前控制模式
参数说明
无
返回值类型:uint32_t
| 返回值 | 说明 |
|---|---|
| 0 | 设备趴下,电机进入阻尼状态 |
| 1 | 站立状态/打招呼状态 |
| 10 | 设备趴下,短时间后电机进入自由状态 |
| 18 | 移动状态 |
| 21 | 动作状态(姿态模式、跳跃模式、双腿站立等) |
| 51 | 趴下状态 |
备注 返回的状态为最后一次设备执行的状态,若执行动作后没有收到移动指令,则返回的永远是动作状态。
1.23 获取Abad关节角度
函数原型
1 | |
功能概述 获取各条腿的髋关节外展 / 内收关节(Abad Joint)的当前角度
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [FR, FL, RR, RL] | 包含 4 个元素的向量,分别对应右前、左前、右后、左后的 Abad 关节角度(单位:rad) |
备注 单位rad,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
1.24 获取Hip关节角度
函数原型
1 | |
功能概述 获取各条腿的髋关节俯仰关节(Hip Joint)的当前角度
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [FR, FL, RR, RL] | 包含 4 个元素的向量,分别对应右前、左前、右后、左后的 Hip 关节角度(单位:rad) |
备注 单位rad,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
1.25 获取Knee关节角度
函数原型
1 | |
功能概述 获取各条腿的膝关节(Knee Joint)的当前角度
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [FR, FL, RR, RL] | 包含 4 个元素的向量,分别对应右前、左前、右后、左后的 Knee 关节角度(单位:rad) |
备注 单位rad,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
1.26 获取Abad关节的角速度
函数原型
1 | |
功能概述 获取各条腿 Abad 关节的当前角速度
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [FR, FL, RR, RL] | 包含 4 个元素的向量,单位为 rad/s,分别对应右前、左前、右后、左后的关节角度 |
备注 单位rad/s,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
1.27 获取Hip关节角速度
函数原型
1 | |
功能概述 获取各条腿 Hip 关节的当前角速度
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [FR, FL, RR, RL] | 包含 4 个元素的向量,单位为 rad/s,分别对应右前、左前、右后、左后的节角度 |
备注 单位rad/s,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
1.28 获取Knee关节角速度
函数原型
1 | |
功能概述 获取各条腿 Knee 关节的当前角速度
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [FR, FL, RR, RL] | 包含 4 个元素的向量,单位为 rad/s,分别对应右前、左前、右后、左后的关节角度 |
备注 单位rad/s,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
1.29 获取Abad关节扭矩
函数原型
1 | |
功能概述 获取各条腿 Abad 关节的当前输出扭矩
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [FR, FL, RR, RL] | 包含 4 个元素的向量,单位通常为 N・m,对应顺序同关节扭矩 |
备注 单位通常为 N・m,分别对应右前、左前、右后、左后的 Knee 关节扭矩
1.30 获取相Hip关节扭矩
函数原型
1 | |
功能概述 获取各条腿 Hip 关节的当前输出扭矩
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [FR, FL, RR, RL] | 包含 4 个元素的向量,单位通常为 N・m,对应顺序同关节扭矩 |
备注 单位通常为 N・m,分别对应右前、左前、右后、左后的 Knee 关节扭矩
1.31 获取Knee关节扭矩
函数原型
1 | |
功能概述 获取各条腿 Knee 关节的当前输出扭矩
参数说明
无
返回值类型:vector
| 返回值 | 说明 |
|---|---|
| [FR, FL, RR, RL] | 包含 4 个元素的向量,单位通常为 N・m,对应顺序同关节扭矩 |
备注 单位通常为 N・m,分别对应右前、左前、右后、左后的 Knee 关节扭矩