4.1 高层运动控制接口

高层运动控制接口实现对机器狗的姿态、速度、行走、特定动作等控制,也可获取机器狗的相关状态。

4.1.1 站立(Standup)

函数名

Standup

函数原型

int32_t Standup()

功能概述

站立

参数

返回值

调用成功返回 0,否则返回相关错误码。

备注

4.1.2 趴下(Getdown)

函数名

Getdown

函数原型

int32_t Getdown()

功能概述

趴下

参数

返回值

调用成功返回 0,否则返回相关错误码。

备注

4.1.3 阻尼(Damp)

函数名

Damp

函数原型

int32_t Damp()

功能概述

阻尼

参数

返回值

调用成功返回 0,否则返回相关错误码。

备注

4.1.4 移动(Move)

函数名

Move

函数原型

int32_t Move(double lm, double vm, double lrm)

功能概述

前后左右移动

参数

lm:
 横向移动
 横向左移:[0,0.4)(m/s)
 横向右移:(-0.4,0](m/s)
vm:
 前后移动
 向前移动:[0,1.5)(m/s)
 向后移动:(-0.5,0](m/s)
lrm:
 左右转向
 向左转向:[0,0.5)(rad/s)
 向右转向:(-0.5,0](rad/s)

返回值

调用成功返回 0,否则返回相关错误码。

备注

持续移动,调用StopMove停止

4.1.5 停止运动(StopMove)

函数名

StopMove

函数原型

int32_t StopMove()

功能概述

停止运动

参数

返回值

调用成功返回 0,否则返回相关错误码。

备注

将速度指令置零

4.1.6 前后移动指定距离(待实现)

函数名

MoveForward

函数原型

int32_t MoveForward(float distance)

功能概述

前后移动指定距离

参数

distance:移动的距离

返回值

调用成功返回 0,否则返回相关错误码。

备注

待实现

4.1.7 左右移动指定距离(待实现)

函数名

MoveSideways

函数原型

int32_t MoveSideways(float distance)

功能概述

左右移动指定距离

参数

distance:移动的距离

返回值

调用成功返回 0,否则返回相关错误码。

备注

待实现

4.1.8 前后移动指定距离(待实现)

函数名

FinishMovement

函数原型

int32_t FinishMovement()

功能概述

结束移动动作

参数

返回值

调用成功返回 0,否则返回相关错误码。

备注

待实现

4.1.9 俯仰运动(Rotate_up_and_down)

函数名

Rotate_up_and_down

函数原型

int32_t Rotate_up_and_down(float ang)

功能概述

俯仰

参数

ang:
 角度(-14,11)度
 -x表示仰视x度
 x表示俯视x度

返回值

调用成功返回 0,否则返回相关错误码。

备注

4.1.10 向左向右转向(Rotate_right_and_left)

函数名

Rotate_right_and_left

函数原型

int32_t Rotate_right_and_left(double radian)

功能概述

向左向右转向

参数

radian:
 角度(-8,8)度

返回值

调用成功返回 0,否则返回相关错误码。

备注

4.1.11 获取倾斜角度(GetAngle)

函数名

GetAngle

函数原型

float GetAngle()

功能概述

获取倾斜角度

参数

返回值

调用成功返回机器狗的倾斜的角度
仰视最大角度为14
俯视最大角度为11

备注

负值为仰视,正值为俯视,取值范围[-14,11]

4.1.12 设置本体高度(待实现)

函数名

SetHeight

函数原型

int32_t SetHeight(float height)

功能概述

设置本体高度

参数

height:机器狗的高度,取值范围[0.38,0.58]m

返回值

调用成功返回 0,否则返回相关错误码。

备注

4.1.13 开始充电(StartRobotCharging)

函数名

StartRobotCharging

函数原型

int32_t StartRobotCharging()

功能概述

开始充电

参数

返回值

调用成功返回 0,否则返回相关错误码。

备注

4.1.14 结束充电(StopRobotCharging)

函数名

StopRobotCharging

函数原型

int32_t StopRobotCharging()

功能概述

停止充电

参数

返回值

调用成功返回 0,否则返回相关错误码。

备注

4.1.15 获取充电状态(GetRobotChargingState)

函数名

GetRobotChargingState

函数原型

int32_t GetRobotChargingState()

功能概述

获取机器狗充电状态

参数

返回值

调用成功返回0表示没有充电,返回1表示正在充电

备注

4.1.16 获取充电结果(GetRobotChargeResult)

函数名

GetRobotChargeResult

函数原型

int32_t GetRobotChargeResult()

功能概述

获取机器人充电结果

参数

返回值

调用成功
返回0表示不在充电
返回1表示正在找桩
返回2表示正在充电
返回3表示正在出桩
返回-1表示找桩失败
返回-2表示充电状态异常
否则返回相关错误码。

备注

该接口需要配合接口StartRobotCharging使用

4.1.17 匍匐模式切换(SwitchToCrawlMode)

函数名

SwitchToCrawlMode

函数原型

int32_t SwitchToCrawlMode(bool val)

功能概述

切换到匍匐模式

参数

val:设置 true 为开启,false 为关闭。

返回值

调用成功返回0,否则返回相关错误码。

备注

4.1.18 零力矩模式切换(ZeroTorque)

函数名

ZeroTorque

函数原型

int32_t ZeroTorque()

功能概述

零力矩模式

参数

返回值

调用成功返回0,否则返回相关错误码。

备注

4.1.19 强化学习模式切换(SwitchToRLMode)

函数名

SwitchToRLMode

函数原型

int32_t SwitchToRLMode(bool val)

功能概述

切换到强化学习模式

参数

val:设置 true 为开启,false 为关闭。

返回值

调用成功返回0,否则返回相关错误码。

备注

进行楼梯攀爬或通过其他复杂地形,需切换到强化学习模式

4.1.20 关节锁定模式(JointLockMode)

函数名

JointLockMode

函数原型

int32_t JointLockMode(bool val)

功能概述

切换到关节锁定模式

参数

val:设置 true 为开启,false 为关闭。

返回值

调用成功返回0,否则返回相关错误码。

备注

需要先调用int32_t Rotate_up_and_down(float udm, float ang)函数让机器狗前倾或者后仰

4.1.21 获取左右移动距离(待实现)

函数名

GetSideways

函数原型

float GetSideways()

功能概述

获取左右移动距离

参数

返回值

调用成功返回机器狗左右移动距离

备注

待实现

4.1.22 获取前后移动距离(待实现)

函数名

GetForward

函数原型

float GetForward()

功能概述

获取前后移动距离

参数

返回值

调用成功返回机器狗前后移动距离

备注

待实现

4.1.23 获取运动状态(GetActionStatus)

函数名

GetActionStatus

函数原型

int32_t GetActionStatus()

功能概述

获取机器的运动状态

参数

返回值

卸力状态: 0 ;

恢复站立动作中,结束后会自动转换到平衡站立:2
平衡站立状态:3 ;
阻尼状态:5 ;
行走中:6 ;
趴下过程中,结束后会自动转换阻尼状态:7;
未知:-1;

备注

4.1.24 获取速度(GetSpeed)

函数名

GetSpeed

函数原型

float GetSpeed()

功能概述

调用成功返回运行的速度

参数

返回值

备注

xyz轴速度计算得出

4.1.25 获取机器狗状态(GetRobotStatus)

函数名

GetRobotStatus

函数原型

struct Robotstate GetRobotStatus()

功能概述

获取机器狗状态

参数

返回值

调用成功返回电机温度
struct Robotstate {
 double driver_temperature[12]; // 电机温度 四个脚每个脚3个电机 0-2是脚1 3-5是脚2 6-8是脚3 9-11是脚4
};

备注

4.1.26 获取机器狗速度(GetRobotSpeed)

函数名

GetRobotSpeed

函数原型

struct Robotspeed GetRobotSpeed()

功能概述

获取机器狗x、y、z轴速度和角速度

参数

返回值

调用成功返回机器狗速度
struct Robotspeed {
 float body_x; // 机身x轴速度(单位:m/s)
 float body_y; // 机身y轴速度(单位:m/s)
 float body_z; // 机身z轴速度(单位:m/s)
 float body_ang; // 机身角速度(单位:rad/s)
};

备注

4.1.27 获取关节角度和角速度(GetJointState)

函数名

GetJointState

函数原型

struct Joint_status GetJointState()

功能概述

获取关节角度和角速度

参数

返回值

调用成功返回关节状态信息
struct Joint_status {
 float joint_angles[12]; // 关节角度
 float joint_velocities[12]; // 关节角速度
 // 0-2: 腿1 ahk
 // 3-5: 腿2 ahk
 // 6-8: 腿3 ahk
 // 9-11: 腿4 ahk
};

备注

4.1.28 获取SDK版本号(GetSdkVersion)

函数名

GetSdkVersion

函数原型

float GetSdkVersion()

功能概述

获取sdk版本号

参数

返回值

调用成功返回sdk版本号

备注

4.1.29 获取SDK切换控制开关状态(GetSdkSwitch)

函数名

GetSdkSwitch

函数原型

int32_t GetSdkSwitch()

功能概述

获取sdk切换控制开关状态

参数

返回值

调用成功返回0表示没有控制权,返回1表示有控制权,否则返回相关错误码。

备注

4.1.30 获取电池电量(GetRobotBatteryPercentage)

函数名

GetRobotBatteryPercentage

函数原型

int32_t GetRobotBatteryPercentage()

功能概述

获取电池电量

参数

返回值

电池电量百分比

备注

4.1.31 同步获取所有告警信息(GetAllAlerts)

函数名

GetAllAlerts

函数原型

std::vectorGetAllAlerts()

功能概述

获取设备所有告警信息

参数

返回值

调用成功返回0,否则返回相关错误码。
struct Alertltem {
 int key;
 int code;
 std::string key_str;
 std::string timestamp;
}

备注

4.1.32 异步获取所有告警信息(FetchAllAlertsAsync)

函数名

FetchAllAlertsAsync

函数原型

int32_t FetchAllAlertsAsync(AlertCallback callback)

功能概述

异步获取所有告警信息

参数

callback为用户实现的回调函数

返回值

调用成功返回0,否则返回相关错误码。

备注

struct AlertItem {
 int key;
 int code;
 std::string key_str;
 std::string timestamp;
};
using AlertCallback = std::function<void(const std::vector &)>;

4.1.33 获取里程计信息(GetOdometry)

函数名

GetOdometry

函数原型

struct Odometry GetOdometry()

功能概述

获取里程计信息

参数

返回值

调用成功返回里程计信息
struct Odometry{
 double position[3]; // 坐标位置
 double orientation[4]; // 姿态四元数
 double linear[3]; // 线速度
 double angular[3]; // 角速度

};

备注

4.1.34 获取IMU数据(GetImuLinearAcceleration)

函数名

GetImuLinearAcceleration

函数原型

struct Imu_linear_acceleration GetImuLinearAcceleration()

功能概述

获取imu加速度(xyz轴)

参数

返回值

调用成功返回imu加速度信息
struct Imu_linear_acceleration {
 double imu_ax;
 double imu_ay;
 double imu_az;
};

备注

4.1.35 获取点云图上定位(GetRobotCloudMapLocation)

函数名

GetRobotCloudMapLocation

函数原型

struct RobotCloudMapLocation GetRobotCloudMapLocation()

功能概述

获取点云图上定位

参数

返回值

调用成功返回机器狗点云地图坐标系下的位置信息
struct RobotCloudMapLocation {
 float position_x; // 三维空间中的坐标xyz(单位:m)
 float position_y;
 float position_z;
 float orientation_x; // 四元数表示的旋转(姿态)
 float orientation_y;
 float orientation_z;
 float orientation_w;
};

备注

4.1.36 获取地图列表(GetRobotMapList)

函数名

GetRobotMapList

函数原型

std::vector GetRobotMapList()

功能概述

获取地图列表

参数

返回值

调用成功返回地图列表
struct RobotMapInfo {
 std::string map_name;
};

备注

4.1.37 获取地图文件(GetRobotMapFiles)

函数名

GetRobotMapFiles

函数原型

int32_t GetRobotMapFiles( const std::string& map_name, const std::string& save_directory)

功能概述

获取地图文件

参数

map_name:地图名称(通过GetRobotMapList获取),
save_directory:调用者指定的本地保存目录

返回值

调用成功返回0,否则返回相关错误码。

备注