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