跳转至

ZSL-1 SDK API 定义

1. HighLevel函数介绍

class HighLevel

该类包含控制四足机器人应用功能的方法,用户可以使用这些方法来进行上层控制和获取数据。


1.1 初始化

函数原型

1
initRobot(local_ip, local_port, dog_ip)

功能概述 与机器狗建立通信,机器狗端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
checkConnection()

功能概述 检查机器人通讯状态

参数说明

返回值类型:bool

返回值 说明
true 连接正常
false 连接失败

备注 可做心跳检测


1.3 站起

函数原型

1
standUP()

功能概述 控制机器狗站立

参数说明

返回值类型:uint32_t

返回值 说明
0 进入状态正常
0x3012 电机数据丢失
0x3010 电机失能
0x3011 电机故障
0x3009 电机角度超限
0x3007 状态机切换失败
0x3013 速度命令过大

备注 机器狗正常站立,移动中不可直接切入此状态


1.4 趴下

函数原型

1
lieDown()

功能概述 控制机器狗站低

参数说明

返回值类型:uint32_t

返回值 说明
0 进入状态正常
0x3012 电机数据丢失
0x3010 电机失能
0x3011 电机故障
0x3009 电机角度超限
0x3007 状态机切换失败
0x3013 速度命令过大

备注 机器狗站低,关节锁定,移动中不可直接切入此状态


1.5 阻尼

函数原型

1
passive()

功能概述 控制机器狗紧急趴下

参数说明

返回值类型:uint32_t

返回值 说明
0 进入状态正常
0x3012 电机数据丢失
0x3010 电机失能
0x3011 电机故障
0x3009 电机角度超限
0x3007 状态机切换失败
0x3013 速度命令过大

备注 机器狗进入阻尼状态,趴下


1.6 移动

函数原型

1
move(float vx, float vy, float yaw_rate)

功能概述 控制机器狗运动

参数说明

参数名 类型 说明 选项 备注
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
jump()

功能概述 控制机器狗垂直跳跃

参数说明

返回值类型:uint32_t

返回值 说明
0 进入状态正常
0x3012 电机数据丢失
0x3010 电机失能
0x3011 电机故障
0x3009 电机角度超限
0x3007 状态机切换失败
0x3013 速度命令过大

备注 仅在站立状态下切入,移动中不可切换状态


1.8 向前跳

函数原型

1
frontJump()

功能概述 控制机器狗向前跳

参数说明

返回值类型:uint32_t

返回值 说明
0 进入状态正常
0x3012 电机数据丢失
0x3010 电机失能
0x3011 电机故障
0x3009 电机角度超限
0x3007 状态机切换失败
0x3013 速度命令过大

备注 仅在站立状态下切入,移动中不可切换状态


1.9 后空翻

函数原型

1
backflip()

功能概述 控制机器狗后空翻

参数说明

返回值类型:uint32_t

返回值 说明
0 进入状态正常
0x3012 电机数据丢失
0x3010 电机失能
0x3011 电机故障
0x3009 电机角度超限
0x3007 状态机切换失败
0x3013 速度命令过大

备注 仅在站立状态下切入,移动中不可切换状态 此特技功能专为媒体展示、产品演示等特殊场景设计。 高频次使用此功能将显著加速电机、关节等核心部件的磨损,从而可能导致产品性能下降或缩短使用寿命。 请务必谨慎使用。


1.10 打招呼

函数原型

1
shakeHand()

功能概述 控制机器狗打招呼

参数说明

返回值类型:uint32_t

返回值 说明
0 进入状态正常
0x3012 电机数据丢失
0x3010 电机失能
0x3011 电机故障
0x3009 电机角度超限
0x3007 状态机切换失败
0x3013 速度命令过大

备注 仅在站立状态下切入,移动中不可切换状态 此特技功能专为媒体展示、产品演示等特殊场景设计。 高频次使用此功能将显著加速电机、关节等核心部件的磨损,从而可能导致产品性能下降或缩短使用寿命。 请务必谨慎使用。


1.11 双腿站立

函数原型

1
twoLegStand(float vx, float yaw_rate)

功能概述 控制机器狗双腿站立

参数说明

参数名 类型 说明 选项 备注
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
cancelTwoLegStand()

功能概述 控制机器狗退出双腿站立

参数说明

返回值

备注 机器狗退出双腿站立状态,机器狗双腿站立状态下切入


1.13 姿态控制

函数原型

1
attitudeControl(float roll_vel, float pitch_vel, float yaw_vel, float height_vel)

功能概述 控制机器狗原地扭动和身体高度变化

参数说明

参数名 类型 说明 选项 备注
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
getQuaternion()

功能概述 获取机器狗当前姿态四元数

参数说明

返回值类型:vector

返回值 说明
[w, x, y, z] 包含4个元素的向量,分别对应四元数的四个分量

备注 机器狗朝前为X,左侧为Y,垂直向上为Z


1.15 获取姿态欧拉角

函数原型

1
getRPY()

功能概述 获取机器狗当前姿态的欧拉角(滚转角、俯仰角、偏航角)

参数说明

返回值类型:vector

返回值 说明
[roll, pitch, yaw] 包含 3 个元素的向量,单位为弧度(rad),分别对应绕 X、Y、Z 轴的旋转角

备注 机器狗朝前为X,左侧为Y,垂直向上为Z


1.16 获取加速度

函数原型

1
getBodyAcc()

功能概述 获取机器狗身体的加速度数据(机体坐标系)

参数说明

返回值类型:vector

返回值 说明
[ax, ay, az] 包含 3 个元素的向量,单位为 m/s²,分别对应 X、Y、Z 轴方向的加速度

备注 机器狗朝前为X,左侧为Y,垂直向上为Z


1.17 获取角速度

函数原型

1
getBodyGyro()

功能概述 获取机器狗身体的角速度数据(机体坐标系)

参数说明

返回值类型:vector

返回值 说明
[gx, gy, gz] 包含 3 个元素的向量,单位为 rad/s,分别对应 X、Y、Z 轴方向的角速度

备注 机器狗朝前为X,左侧为Y,垂直向上为Z


1.18 获取原点坐标系位置

函数原型

1
getPosition()

功能概述 获取机器狗在上电原点坐标系中的位置坐标

参数说明

返回值类型:vector

返回值 说明
[x, y, z] 包含 3 个元素的向量,单位为米(m),表示当前位置

备注 机器狗朝前为X,左侧为Y,垂直向上为Z


1.19 获取原点坐标系速度

函数原型

1
getWorldVelocity()

功能概述 获取机器狗在上电原点坐标系中的移动速度

参数说明

返回值类型:vector

返回值 说明
[vx, vy, vz] 包含 3 个元素的向量,单位为米/秒(m/s),分别对应上电原点坐标系 X、Y、Z 轴方向的速度

备注 机器狗朝前为X,左侧为Y,垂直向上为Z


1.20 获取自身移动速度

函数原型

1
getBodyVelocity()

功能概述 获取机器狗在机体坐标系中的移动速度

参数说明

返回值类型:vector

返回值 说明
[vx, vy, vz] 包含 3 个元素的向量,单位为 m/s,分别对应机体坐标系 X、Y、Z 轴方向的速度

备注 机器狗朝前为X,左侧为Y,垂直向上为Z


1.21 获取电量

函数原型

1
getBatteryPower()

功能概述 获取机器狗电量

参数说明

返回值类型:uint32_t

返回值 说明
0-100 范围: 0-100

备注 返回值范围 0-100, 0为无电, 100为满电


1.22 获取控制模式

函数原型

1
getCurrentCtrlmode()

功能概述 获取机器狗当前控制模式

参数说明

返回值类型:uint32_t

返回值 说明
0 设备趴下,电机进入阻尼状态
1 站立状态/打招呼状态
10 设备趴下,短时间后电机进入自由状态
18 移动状态
21 动作状态(姿态模式、跳跃模式、双腿站立等)
51 趴下状态

备注 返回的状态为最后一次设备执行的状态,若执行动作后没有收到移动指令,则返回的永远是动作状态。


1.23 获取Abad关节角度

函数原型

1
getLegAbadJoint()

功能概述 获取各条腿的髋关节外展 / 内收关节(Abad Joint)的当前角度

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 包含 4 个元素的向量,分别对应右前、左前、右后、左后的 Abad 关节角度(单位:rad)

备注 单位rad,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z


1.24 获取Hip关节角度

函数原型

1
getLegHipJoint()

功能概述 获取各条腿的髋关节俯仰关节(Hip Joint)的当前角度

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 包含 4 个元素的向量,分别对应右前、左前、右后、左后的 Hip 关节角度(单位:rad)

备注 单位rad,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z


1.25 获取Knee关节角度

函数原型

1
getLegKneeJoint()

功能概述 获取各条腿的膝关节(Knee Joint)的当前角度

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 包含 4 个元素的向量,分别对应右前、左前、右后、左后的 Knee 关节角度(单位:rad)

备注 单位rad,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z


1.26 获取Abad关节的角速度

函数原型

1
getLegAbadJointVel()

功能概述 获取各条腿 Abad 关节的当前角速度

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 包含 4 个元素的向量,单位为 rad/s,分别对应右前、左前、右后、左后的关节角度

备注 单位rad/s,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z


1.27 获取Hip关节角速度

函数原型

1
getLegHipJointVel()

功能概述 获取各条腿 Hip 关节的当前角速度

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 包含 4 个元素的向量,单位为 rad/s,分别对应右前、左前、右后、左后的节角度

备注 单位rad/s,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z


1.28 获取Knee关节角速度

函数原型

1
getLegKneeJointVel()

功能概述 获取各条腿 Knee 关节的当前角速度

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 包含 4 个元素的向量,单位为 rad/s,分别对应右前、左前、右后、左后的关节角度

备注 单位rad/s,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z


1.29 获取Abad关节扭矩

函数原型

1
getLegAbadJointTorque()

功能概述 获取各条腿 Abad 关节的当前输出扭矩

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 包含 4 个元素的向量,单位通常为 N・m,对应顺序同关节扭矩

备注 单位通常为 N・m,分别对应右前、左前、右后、左后的 Knee 关节扭矩


1.30 获取相Hip关节扭矩

函数原型

1
getLegHipJointTorque()

功能概述 获取各条腿 Hip 关节的当前输出扭矩

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 包含 4 个元素的向量,单位通常为 N・m,对应顺序同关节扭矩

备注 单位通常为 N・m,分别对应右前、左前、右后、左后的 Knee 关节扭矩


1.31 获取Knee关节扭矩

函数原型

1
getLegKneeJointTorque()

功能概述 获取各条腿 Knee 关节的当前输出扭矩

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 包含 4 个元素的向量,单位通常为 N・m,对应顺序同关节扭矩

备注 单位通常为 N・m,分别对应右前、左前、右后、左后的 Knee 关节扭矩