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,否则返回相关错误码。

备注