4.1 HighLevel函数介绍
class HighLevel
该类包含控制四足机器人应用功能的方法,用户可以使用这些方法来进行上层控制和获取数据。
4.1.1 初始化
函数原型
initRobot(const std::string& local_ip, const int local_port, const std::string& dog_ip = "192.168.234.1")
功能概述 与机器狗建立通信,机器狗端ip默认"192.168.234.1", 如更改机器人ip,需从该接口传入新ip
参数说明
参数名 |
类型 |
说明 |
选项 |
备注 |
|---|---|---|---|---|
local_ip |
string& |
用户主机IP地址 |
必选项 |
- |
local_port |
int |
用户主机端口 |
必选项 |
- |
dog_ip |
string& |
机器狗IP地址 |
可选项 |
默认"192.168.234.1") |
返回值 无
备注 通信建立失败时,终端输出失败日志
4.1.2 检查通讯状态
函数原型
checkConnection()
功能概述 检查机器人通讯状态
参数说明
无
返回值类型:bool
返回值 |
说明 |
|---|---|
true |
连接正常 |
false |
连接失败 |
备注 可做心跳检测
4.1.3 站起
函数原型
standUP()
功能概述 控制机器狗站立
参数说明
无
返回值类型:uint32_t
返回值 |
说明 |
|---|---|
0 |
进入状态正常 |
0x3012 |
电机数据丢失 |
0x3010 |
电机失能 |
0x3011 |
电机故障 |
0x3009 |
电机角度超限 |
0x3007 |
状态机切换失败 |
0x3013 |
速度命令过大 |
备注 机器狗正常站立,移动中不可直接切入此状态
4.1.4 趴下
函数原型
lieDown()
功能概述 控制机器狗站低
参数说明
无
返回值类型:uint32_t
返回值 |
说明 |
|---|---|
0 |
进入状态正常 |
0x3012 |
电机数据丢失 |
0x3010 |
电机失能 |
0x3011 |
电机故障 |
0x3009 |
电机角度超限 |
0x3007 |
状态机切换失败 |
0x3013 |
速度命令过大 |
备注 机器狗站低,关节锁定,移动中不可直接切入此状态
4.1.5 阻尼
函数原型
passive()
功能概述 控制机器狗紧急趴下
参数说明
无
返回值类型:uint32_t
返回值 |
说明 |
|---|---|
0 |
进入状态正常 |
0x3012 |
电机数据丢失 |
0x3010 |
电机失能 |
0x3011 |
电机故障 |
0x3009 |
电机角度超限 |
0x3007 |
状态机切换失败 |
0x3013 |
速度命令过大 |
备注 机器狗进入阻尼状态,趴下
4.1.6 移动
函数原型
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 |
速度命令过大 |
备注 仅在机器狗站立状态下切入,控制狗按指定速度运动。
4.1.7 原地跳
函数原型
jump()
功能概述 控制机器狗垂直跳跃
参数说明
无
返回值类型:uint32_t
返回值 |
说明 |
|---|---|
0 |
进入状态正常 |
0x3012 |
电机数据丢失 |
0x3010 |
电机失能 |
0x3011 |
电机故障 |
0x3009 |
电机角度超限 |
0x3007 |
状态机切换失败 |
0x3013 |
速度命令过大 |
备注 仅在站立状态下切入,移动中不可切换状态
4.1.8 向前跳
函数原型
frontJump()
功能概述 控制机器狗向前跳
参数说明
无
返回值类型:uint32_t
返回值 |
说明 |
|---|---|
0 |
进入状态正常 |
0x3012 |
电机数据丢失 |
0x3010 |
电机失能 |
0x3011 |
电机故障 |
0x3009 |
电机角度超限 |
0x3007 |
状态机切换失败 |
0x3013 |
速度命令过大 |
备注 仅在站立状态下切入,移动中不可切换状态
4.1.9 后空翻
函数原型
backflip()
功能概述 控制机器狗后空翻
参数说明
无
返回值类型:uint32_t
返回值 |
说明 |
|---|---|
0 |
进入状态正常 |
0x3012 |
电机数据丢失 |
0x3010 |
电机失能 |
0x3011 |
电机故障 |
0x3009 |
电机角度超限 |
0x3007 |
状态机切换失败 |
0x3013 |
速度命令过大 |
备注 仅在站立状态下切入,移动中不可切换状态 此特技功能专为媒体展示、产品演示等特殊场景设计。 高频次使用此功能将显著加速电机、关节等核心部件的磨损,从而可能导致产品性能下降或缩短使用寿命。 请务必谨慎使用。
4.1.10 打招呼
函数原型
shakeHand()
功能概述 控制机器狗打招呼
参数说明
无
返回值类型:uint32_t
返回值 |
说明 |
|---|---|
0 |
进入状态正常 |
0x3012 |
电机数据丢失 |
0x3010 |
电机失能 |
0x3011 |
电机故障 |
0x3009 |
电机角度超限 |
0x3007 |
状态机切换失败 |
0x3013 |
速度命令过大 |
备注 仅在站立状态下切入,移动中不可切换状态 此特技功能专为媒体展示、产品演示等特殊场景设计。 高频次使用此功能将显著加速电机、关节等核心部件的磨损,从而可能导致产品性能下降或缩短使用寿命。 请务必谨慎使用。
4.1.11 双腿站立
函数原型
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(),不响应其他接口 通过参数可控制狗按指定速度运动。 此特技功能专为媒体展示、产品演示等特殊场景设计。 高频次使用此功能将显著加速电机、关节等核心部件的磨损,从而可能导致产品性能下降或缩短使用寿命。 请务必谨慎使用。
4.1.12 退出双腿站立
函数原型
cancelTwoLegStand()
功能概述 控制机器狗退出双腿站立
参数说明
无
返回值 无
备注 机器狗退出双腿站立状态,机器狗双腿站立状态下切入
4.1.13 姿态控制
函数原型
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 |
速度命令过大 |
备注 机器狗站立状态下切入,控制狗按指定速度原地扭动,身体高度变化。
4.1.14 获取姿态四元数
函数原型
getQuaternion()
功能概述 获取机器狗当前姿态四元数
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[w, x, y, z] |
包含4个元素的向量,分别对应四元数的四个分量 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.15 获取姿态欧拉角
函数原型
getRPY()
功能概述 获取机器狗当前姿态的欧拉角(滚转角、俯仰角、偏航角)
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[roll, pitch, yaw] |
包含 3 个元素的向量,单位为弧度(rad),分别对应绕 X、Y、Z 轴的旋转角 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.16 获取加速度
函数原型
getBodyAcc()
功能概述 获取机器狗身体的加速度数据(机体坐标系)
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[ax, ay, az] |
包含 3 个元素的向量,单位为 m/s²,分别对应 X、Y、Z 轴方向的加速度 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.17 获取角速度
函数原型
getBodyGyro()
功能概述 获取机器狗身体的角速度数据(机体坐标系)
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[gx, gy, gz] |
包含 3 个元素的向量,单位为 rad/s,分别对应 X、Y、Z 轴方向的角速度 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.18 获取原点坐标系位置
函数原型
getPosition()
功能概述 获取机器狗在上电原点坐标系中的位置坐标
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[x, y, z] |
包含 3 个元素的向量,单位为米(m),表示当前位置 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.19 获取原点坐标系速度
函数原型
getWorldVelocity()
功能概述 获取机器狗在上电原点坐标系中的移动速度
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[vx, vy, vz] |
包含 3 个元素的向量,单位为米/秒(m/s),分别对应上电原点坐标系 X、Y、Z 轴方向的速度 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.20 获取自身移动速度
函数原型
getBodyVelocity()
功能概述 获取机器狗在机体坐标系中的移动速度
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[vx, vy, vz] |
包含 3 个元素的向量,单位为 m/s,分别对应机体坐标系 X、Y、Z 轴方向的速度 |
备注 机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.21 获取电量
函数原型
getBatteryPower()
功能概述 获取机器狗电量
参数说明
无
返回值类型:uint32_t
返回值 |
说明 |
|---|---|
0-100 |
范围: 0-100 |
备注 返回值范围 0-100, 0为无电, 100为满电
4.1.22 获取控制模式
函数原型
getCurrentCtrlmode()
功能概述 获取机器狗当前控制模式
参数说明
无
返回值类型:uint32_t
返回值 |
说明 |
|---|---|
0 |
设备趴下,电机进入阻尼状态 |
1 |
站立状态/打招呼状态 |
10 |
设备趴下,短时间后电机进入自由状态 |
18 |
移动状态 |
21 |
动作状态(姿态模式、跳跃模式、双腿站立等) |
51 |
趴下状态 |
备注 返回的状态为最后一次设备执行的状态,若执行动作后没有收到移动指令,则返回的永远是动作状态。
4.1.23 获取Abad关节角度
函数原型
getLegAbadJoint()
功能概述 获取各条腿的髋关节外展 / 内收关节(Abad Joint)的当前角度
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[FR, FL, RR, RL] |
包含 4 个元素的向量,分别对应右前、左前、右后、左后的 Abad 关节角度(单位:rad) |
备注 单位rad,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.24 获取Hip关节角度
函数原型
getLegHipJoint()
功能概述 获取各条腿的髋关节俯仰关节(Hip Joint)的当前角度
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[FR, FL, RR, RL] |
包含 4 个元素的向量,分别对应右前、左前、右后、左后的 Hip 关节角度(单位:rad) |
备注 单位rad,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.25 获取Knee关节角度
函数原型
getLegKneeJoint()
功能概述 获取各条腿的膝关节(Knee Joint)的当前角度
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[FR, FL, RR, RL] |
包含 4 个元素的向量,分别对应右前、左前、右后、左后的 Knee 关节角度(单位:rad) |
备注 单位rad,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.26 获取Abad关节的角速度
函数原型
getLegAbadJointVel()
功能概述 获取各条腿 Abad 关节的当前角速度
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[FR, FL, RR, RL] |
包含 4 个元素的向量,单位为 rad/s,分别对应右前、左前、右后、左后的关节角度 |
备注 单位rad/s,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.27 获取Hip关节角速度
函数原型
getLegHipJointVel()
功能概述 获取各条腿 Hip 关节的当前角速度
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[FR, FL, RR, RL] |
包含 4 个元素的向量,单位为 rad/s,分别对应右前、左前、右后、左后的节角度 |
备注 单位rad/s,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.28 获取Knee关节角速度
函数原型
getLegKneeJointVel()
功能概述 获取各条腿 Knee 关节的当前角速度
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[FR, FL, RR, RL] |
包含 4 个元素的向量,单位为 rad/s,分别对应右前、左前、右后、左后的关节角度 |
备注 单位rad/s,机器狗身体机器狗朝前为X,左侧为Y,垂直向上为Z
4.1.29 获取Abad关节扭矩
函数原型
getLegAbadJointTorque()
功能概述 获取各条腿 Abad 关节的当前输出扭矩
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[FR, FL, RR, RL] |
包含 4 个元素的向量,单位通常为 N・m,对应顺序同关节扭矩 |
备注 单位通常为 N・m,分别对应右前、左前、右后、左后的 Knee 关节扭矩
4.1.30 获取相Hip关节扭矩
函数原型
getLegHipJointTorque()
功能概述 获取各条腿 Hip 关节的当前输出扭矩
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[FR, FL, RR, RL] |
包含 4 个元素的向量,单位通常为 N・m,对应顺序同关节扭矩 |
备注 单位通常为 N・m,分别对应右前、左前、右后、左后的 Knee 关节扭矩
4.1.31 获取Knee关节扭矩
函数原型
getLegKneeJointTorque()
功能概述 获取各条腿 Knee 关节的当前输出扭矩
参数说明
无
返回值类型:vector
返回值 |
说明 |
|---|---|
[FR, FL, RR, RL] |
包含 4 个元素的向量,单位通常为 N・m,对应顺序同关节扭矩 |
备注 单位通常为 N・m,分别对应右前、左前、右后、左后的 Knee 关节扭矩