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 关节扭矩