跳转至

ZSL-1w SDK API 定义

1. HighLevel函数介绍

class HighLevel

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


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
checkConnect()

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

参数说明

返回值类型:bool

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

备注 可做心跳检测


1.3 站起

函数原型

1
standUp()

功能概述 控制机器狗站立

参数说明

返回值类型:uint32_t

返回值 说明
0 表示正常
其他 其他错误码同 ZSL-1

备注 移动中不可直接切入


1.4 趴下

函数原型

1
lieDown()

功能概述 控制机器狗趴下

参数说明

返回值类型:uint32_t

返回值 说明
0 表示正常
其他 其他错误码同 ZSL-1

备注 移动中不可直接切入


1.5 阻尼

函数原型

1
passive()

功能概述 控制机器狗进入阻尼模式

参数说明

返回值类型:uint32_t

返回值 说明
0 表示正常
其他 其他错误码同 ZSL-1

备注 紧急停止用


1.6 移动

函数原型

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

功能概述 控制机器狗按速度运动

参数说明

参数名 类型 说明 选项 备注
vx float 前向速度 m/s 必选项 不进行移动时需传入0,范围(-3.7 ~ -0.05/0.05 ~ 3.7m/s")
vy float 侧向速度 m/s 必选项 不进行移动时需传入0,范围(-1 ~ -0.1/0.1 ~ 1.0m/s)
yaw_rate float 绕 Z 轴角速度 rad/s 必选项 不进行移动时需传入0,范围(-3 ~ -0.1/0.1 ~ 3.0 rad/s)

返回值类型:uint32_t

返回值 说明
0 表示正常
其他 其他错误码同 ZSL-1

备注 需在站立状态下调用


1.7 匍匐爬行

函数原型

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

功能概述 控制机器狗低姿态爬行

参数说明

参数名 类型 说明 选项 备注
vx float 前向速度 m/s 必选项 不进行移动时需传入0,范围(-3 ~ -0.1/0.1 ~ 3.0m/s)
vy float 侧向速度 m/s 必选项 不进行移动时需传入0,范围(-0.5 ~ -0.1/0.1 ~ 0.5m/s)
yaw_rate float 绕 Z 轴角速度 rad/s 必选项 不进行移动时需传入0,范围(-1 ~ -0.1/0.1 ~ 1.0 rad/s)

返回值类型:uint32_t

返回值 说明
0 表示正常
其他 其他错误码同 ZSL-1

备注 与 move 类似,但使用爬行步态,高速移动中不可切入此状态。


1.8 退出匍匐

函数原型

1
cancelCrawl()

功能概述 退出爬行模式

参数说明

返回值

备注


1.9 姿态控制

函数原型

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 表示正常

备注 需在站立状态下调用


1.10 获取姿态/速度/位置

函数原型

1
getQuaternion()

功能概述 获取姿态四元数

参数说明

返回值类型:vector

返回值 说明
[w, x, y, z] 四元数

备注


函数原型

1
getRPY()

功能概述 获取欧拉角

参数说明

返回值类型:vector

返回值 说明
[roll, pitch, yaw] 欧拉角,单位 rad

备注


函数原型

1
getBodyAcc()

功能概述 获取机体加速度

参数说明

返回值类型:vector

返回值 说明
[ax, ay, az] 单位 m/s²

备注


函数原型

1
getBodyGyro()

功能概述 获取机体角速度

参数说明

返回值类型:vector

返回值 说明
[gx, gy, gz] 单位 rad/s

备注


函数原型

1
getPosition()

功能概述 获取机身位置

参数说明

返回值类型:vector

返回值 说明
[x, y, z] 机身位置,单位 m

备注


函数原型

1
getWorldVelocity()

功能概述 获取世界坐标系下的机身速度

参数说明

返回值类型:vector

返回值 说明
[vx, vy, vz] 机身线速度,单位 m/s

备注


函数原型

1
getBodyVelocity()

功能概述 获取机体坐标系下的机身速度

参数说明

返回值类型:vector

返回值 说明
[vx, vy, vz] 机身线速度,单位 m/s

备注


1.11 获取电池电量

函数原型

1
getBatteryPower()

功能概述 获取电池电量

参数说明

返回值类型:uint32_t

返回值 说明
0-100 电池电量百分比

备注


1.12 获取控制模式

函数原型

1
getCurrentCtrlmode()

功能概述 获取当前机器狗控制状态

参数说明

返回值类型:uint32_t

返回值 说明
0 阻尼模式
1 站立模式
3 移动模式

备注


1.13 关节信息获取

1.13.1 获取关节角度

函数原型

1
2
3
4
getLegAbadJoint()
getLegHipJoint()
getLegKneeJoint()
getLegFootJoint()

功能概述 获取各关节角度值

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 各腿关节角度,单位 rad

备注 - LegAbadJoint 对应髋关节 abduction/adduction 方向 - LegHipJoint 对应髋关节 hip 方向
- LegKneeJoint 对应膝关节 - LegFootJoint 对应足部关节


1.13.2 获取关节速度

函数原型

1
2
3
4
getLegAbadJointVel()
getLegHipJointVel()
getLegKneeJointVel()
getLegFootJointVel()

功能概述 获取各关节速度值

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 各腿关节速度,单位 rad/s

备注 - LegAbadJointVel 对应髋关节 abduction/adduction 方向 - LegHipJointVel 对应髋关节 hip 方向
- LegKneeJointVel 对应膝关节 - LegFootJointVel 对应足部关节


1.13.3 获取关节扭矩

函数原型

1
2
3
4
getLegAbadJointTorque()
getLegHipJointTorque()
getLegKneeJointTorque()
getLegFootJointTorque()

功能概述 获取各关节扭矩值

参数说明

返回值类型:vector

返回值 说明
[FR, FL, RR, RL] 各腿关节扭矩,单位 N·m

备注

  • LegAbadJointTorque 对应髋关节 abduction/adduction 方向
  • LegHipJointTorque 对应髋关节 hip 方向
  • LegKneeJointTorque 对应膝关节
  • LegFootJointTorque 对应足部关节