文档修订记录
修订日期 | 修订内容 | sdk版本 |
2025-12-25 | • 优化自主对桩成功率 • 增加SDK匍匐接口调用 SwitchToCrawlMode(val) | V2.0.5 |
2026-01-16 | 新增部分接口 • sdk中新增异常状态接口GetAllAlerts() • sdk中新增里程计接口GetOdometry() • sdk中新增充电检测接口GetRobotChargingState() • sdk中新增获取关节角度\角速度接口GetJointState() • sdk中新增IMU加速度接口GetImuLinearAcceleration() | V2.0.6
|
2026-01-24 | • 修复系统崩溃的内核驱动bug • 内核错误向上反馈至应用层 • 运控增加接收内核错误自动趴下和红灯提示 • autoboot更新修改BAT超时为2s和修改GPS上报频次为2s • 修复SDK控制权已释放给遥控器,遥控器按B后,狗还能继续执行SDK指令的问题 | V2.0.7 |
一、产品介绍
1.1 产品概述
1xbet仿生四足机器人 D1 MaxPro,每条腿上有 3 个电机,拥有 12 个自由度,具备⾏⾛、⼩跑、爬楼梯,跨壕沟等运动能⼒。本产品的主要特点是负载能⼒强,续航⻓,复杂地形的适应能⼒强。同时,本产品开放了运动控制算法开发 SDK和通信协议,允许用户根据需要进行二次开发,其在多个关键功能及应用研发方面取得显著进展:
1. 负重能力:主打大负重特性,长时负重可达 50 公斤,瞬时负重更是高达 100 公斤,负重能力相较于前代提升 2.5 倍,能够满足诸如物资运输、工业搬运等重载需求场景。
2. 自主巡逻与环境感知:可依赖激光雷达实现自主巡逻功能,并通过 4G 网络达成远程部署以及画面回传。同时集成了激光雷达、头部摄像头、IMU 以及 GPS 等丰富传感器,能够在复杂环境下进行全方位的环境感知,构建地图并规划路径,适应如公安巡逻、水务巡检、石油巡检等不同场景的应用。
3. 运动性能:具备出色的运动灵活性,能灵活上下 45° 的楼梯,稳健攀爬镂空工业楼梯,越障能力突出,可跨越单台阶 30cm 的障碍。摔倒恢复机制成熟,摔倒爬起时间小于 20 秒,能在复杂地形或意外状况下快速恢复作业状态。其空载速度达到 3m/s ,可快速响应突发任务需求,深入复杂场景与作业盲区。
4. 环境适应性:拥有 IP67 工业级防护,能在 - 20℃至 55℃的宽泛温度区间以及涉水深度 20cm 的环境下正常作业,无惧极寒酷暑、风雨天气,保证在多种恶劣自然条件下稳定运行。
5. 续航保障:电池电量为 2160Wh ,负载续航时间提升 28%,且电池支持现场快速拆换,为特殊任务以及行业应用中的紧急情况提供有力续航保障,减少停机时间,提升工作效率。
1.2 产品清单

1.3 硬件组成
3D激光雷达
线数 | 96 | 水平视场角 | 360° |
激光波长 | 940 nm | 垂直视场角 | 0~90° |
激光安全等级 | Class1 人眼安全 | 水平角分辨率 | 0.4° |
测距能力 | 60 m(30 m @10% NIST) | 垂直角分辨率 | 0.947° |
盲区 | 0.1 m | 精度(典型值) | 1.5 cm (1 σ) |
转速 | 600 | 帧率 | 10 Hz |
出点数 | 856,320 pts / s(单回波模式), 1,712,640 pts / s(双回波模式) | ||
以太网传输速率 | 100 Base-TX | ||
输出数据协议 | UDP Packets Over Ethernet | ||
摄像头
图像传感器 | 1/2.9 inch CMOS |
最大分辨率 | 1920 x 1080 |
输出数据格式 | MJPEG/YUV2 |
像素大小 | 2.8umX2.8um |
摄像头控制 | 饱和度;对比度; 锐度 |
白平衡/曝光 | 自动 |
工作电压 | DC 5.0V |
工作电流 | 150 mA |
储存温度&湿度 | -40~80 ℃/0~90RH |
工作温度
| -20℃—+70℃ |
驱动标准 | UVC |
接口方式 | USB2.0 |
UVC/OTG | 支持(support) |
分辨率和帧率 | MJPEG: 1080P~30FPS |
兼容系统
| WindowsXP/SP2/Vista/7.0/8.1/Win10/seven/MacAndroid, Linux and embmbedded operating systems, |
对焦方式 | 定焦 |
电池
标准电压 | 48V |
电池组合方式 | 9P13S |
标称容量 | 45Ah |
最小容量 | 45Ah(温度:25℃±5℃,湿度:65%±20% RH,截至电压:2.75V/节,0.2C的放电容量)。 |
标准充电(推荐) | 恒流充电阶段:4A 恒流充电至 4.2V/节(注意:非充电器电流)。恒压充电阶段:54.6V 恒压充电 。涓流充电阶段:截止电流 200mA。 |
标准放电电流 | 18A(0.4C),环境温度 25℃ |
最大持续放电电流 | 50 A (T≥-20℃) 环境温度 25℃ |
电池组充电电压 | 54.6V |
电池组工作电压 | 39~54.6V(0.5C),环境温度 25℃ |
电池组标准充电电流 | 9A(0.2C 环境温度 25℃) |
过放保护电压 | 单节 3.00±80mV |
放电终止电压 | 单节 2.75±0.05V |
运输电压 | ≥48V(出货时检验)验) |
内阻 | ≤20mΩ |
充电温度范围 | 0~+45ºC |
放电温度范围 | -20~+60ºC |
储存温度范围 | -20~+35 ºC |
循环寿命 | ≥1000 次 |
存储寿命 | 2年(25℃);2 个月(45℃) |
充电桩
项目 | 参数 |
输入电压 | 220V |
输出电压 | 54.5V |
输出电流 | 10A |
控制对桩精度 | +-3cm |
1.4 产品参数
| 分类 | 规格 | 说明 |
| 基础信息 | 材质信息 | 铝合金+高强度工程塑料 |
| 站 立 尺 寸 ( 长 × 宽 × 高 ) | 1230mm×530mm×730mm | |
| 趴 地 尺 寸 ( 长 × 宽 × 高 ) | 1313mm×530mm×300mm | |
| 整机重量(含电池) | 68kg | |
| 自由度 | 整机自由度12,单腿自由度3 | |
| 工作温度 | -20℃ ~55℃ | |
| 防护等级 | IP67 | |
| 电池 | 额定容量45Ah,电压48V±2V | |
| 充电时长 | 4.5h(电量10%-90%) | |
| 续航时间 | 空载5.5h,负载20kg情况下为2h及以上 | |
| 续航里程 | 空载10km | |
| 性能参数 | 持续行走速度 | 0-1.2m/s |
| 最大速度 | 3m/s | |
| 额定负载 | 50kg | |
| 连续攀爬楼梯高度 | 30cm | |
| 最大爬坡角度 | 45° | |
| 整机关节参数 | 最大关节扭矩 | 最大扭矩300N ·m,软件限制180N ·m |
| 关节运动空间(机身) | -45°~45° | |
| 关节运动空间(大腿) | -200°~20° | |
| 关节运动空间(小腿) | 30°~160° | |
| 传感单元 | 激光雷达 | 前置一个96线激光雷达,覆盖角度360°*90°,覆盖直径范围 120m,精度1.5cm |
| 广角相机 | 前后各一个广角相机,工业级200万像素,视场角: DFOV150°, HFOV130°,VFOV73° | |
| IMU | 数量1个,车规级 | |
| 功能列表 | 标准动作 | 站立、趴下、阻尼、卸力;上下楼梯、越障 |
| 实时图像传输 | 支持 | |
| 二次开发 | 目前SDK支持基于TCP和ROS两种通信方式,提供X86及ARM架构的 SDK包 | |
| 通讯功能 | 支持WIFI6.0,蓝牙5.2,4G模块可选 | |
| 功能拓展接口 | 通讯接口为千兆网口*3、USB3.0*2、百兆网口*1、串口。供电 接口12V、24V、48V,最大输出功率720w。充电接口支持电池直 插充电 | |
| 配件 | 适配器 | 标配 |
| 电池充电转接头 | 标配 | |
| 遥控器 | 带屏遥控器,带手动急停模式 | |
| 自主充电桩 | 选配 |
1.5 关节参数
机型 | 部位 | 参数 | 数值(扭矩:Nm;转速:RPM;重量:Kg;功率:kw) |
D1 MaxPro
| 机身
| 最大扭矩 | 180 |
最大转速 | 136 | ||
重量 | 1.407 | ||
大腿 | 最大扭矩 | 300 | |
最大转速 | 147 | ||
重量 | 2.57 | ||
小腿 | 最大扭矩 | 300 | |
最大转速 | 114 | ||
重量 | 2.57 |
1.6 上装预留孔位图
• 机器狗具备自适应负载功能,加装负载范围为 0~50kg;
• 机器狗机身上有相应的螺丝孔,用户可以根据螺丝孔自己自己制作工装,用来固定上装设备,尺寸图如下
加装负载需要在机器狗处于趴下状态,把负载加装上去,固定稳固后,让机器狗在站立状态下,它会自动识别负载重量,等待 3s 后负载重量识别完成,可以进行其他操作。 |
1.7 电气拓展接口
1.7.1 背部接口定义
注:背部接口主要有两个模块,头部通讯接线盒和尾部电源接线盒 |
序号 | 接口 | 接口类型 | 对插型号 | 数量 | 功能 |
1 | 双光云台接口 | M12A-12P母头 | M12A-12P公头 | 1 | 接头部双光云台通讯等+24V/3A 电源 |
2 | 激光雷达接口 | M12A-8P母头 | M12A-8P公头 | 1 | 接上装激光雷达通讯等+24V/3A 电源 |
3 | 拓展网络接口 | M12A-17P母头 | M12A-17P公头 | 1 | 接扩展网线 +24V/3A 电源 |
4 | 扩展 Type-C接口 | Type-C 防水插座 | USB Type-C | 1 | 扩展 USB 3.1 10Gbps 接口 |
5 | 电源接口 | M12K 母头
| M12K 公头
| 1 | 给上装设备电源 12,24,48V/10A输出
|
1. 头部接线盒 M12A-12P 母头航插接口定义
M12A 母头序号 | 定义 | 网线水晶头序号 | 功能 |
1 | 24V正 | 24V 电源正极 | |
2 | 24V 负 | 24V 电源负极 | |
3 | 24V 负 | 24V 电源负极 | |
4 | RX+ | 1 | 数据接收正端 |
5 | RX- | 2 | 数据接收负端 |
6 | TX+ | 3 | 数据接收正端 |
7 | TX- | 6 | 数据接收负端 |
8 | 空 | ||
9 | 24V正 | 24V电源正极 | |
10 | 空 | ||
11 | 12V正 | 12V电源正极 | |
12 | 12V负 | 12V电源负极 |
2. 头部接线盒M12A-8P母头航插接口定义
M12A母头序号 | 定义 | 网线水晶头序号 | 功能 |
1 | 24V正 | 24V 电源正极 | |
2 | RX+ | 1 | 数据接收正端 |
3 | RX- | 2 | 数据接收负端 |
4 | TX+ | 3 | 数据接收正端 |
5 | TX- | 6 | 数据接收负端 |
6 | 空 | ||
7 | 空 | ||
8 | 24V负 | 24V 电源负极 |
3. 尾部接线盒M12A-17P⺟头航插接⼝定义
M12A母头序号 | 定义 | 网线水晶头序号 | 功能 |
1 | 48V正 | 48V电源正极 | |
2 | RX+ | 1 | 数据接收正端 |
3 | RX- | 2 | 数据接收负端 |
4 | TX+ | 3 | 数据接收正端 |
5 | TX- | 6 | 数据接收负端 |
6 | 12V正 | 12V电源正极 | |
7 | 12V负 | 12V电源负极 | |
8 | 12V正 | 12V电源正极 | |
9 | 12V负 | 12V电源负极 | |
10 | 24V正 | 24V电源正极 | |
11 | 24V负 | 24V电源负极 | |
12 | 24V正 | 24V电源正极 | |
13 | 24V负 | 24V电源负极 | |
14 | 48V正 | 48V电源正极 | |
15 | 48V负 | 48V电源负极 | |
16 | 48V正 | 48V电源正极 | |
17 | 48V负 | 48V电源负极 |
4. 尾部电源M12K母头接口定义
M12A母头序号 | 定义 | 网线水晶头序号 | 功能 |
1 | 48V正 | 48V电源正极 | |
2 | 48V负 | 48V电源负极 | |
3 | 24V正 | 24V电源正极 | |
4 | 24\12V负 | 24\12V电源负极 | |
5 | 12V正 | 12V电源正极 |
1.7.2 左侧接口定义
序号 | 器件名称 | 型号 | 功能 |
1 | 调试接口 | DB15 母头 | 电机 CAN 诊断,电池 CAN 诊断,调试急停 |
2 | Wifi 天线 | 2.4G | 无线 Wifi 和主控板通讯 |
3 | 蓝牙天线 | 无线蓝牙和主控板通讯 | |
4 | 气压平衡阀 | M12 | 平衡内外气压 |
5 | typec 接口 | E10T-FT3-PWF/MT3-NWA-xxFPC | typec 接口和主控板通讯 |
6 | 充电口 | E13T-P2B-PPF-01 | 48V 充电口 |
7 | 网口 | E13T-FR5-PRF-180 | 百兆网口/调试网口 |
二、系统架构
2.1 AGI MaxPro系统架构
机器狗
1. MQTT Client负责与云平台的基于MQTT通信,实现包括OTA、状态上报、遥控等功能;
2. WebRTC Client与APP和云平台的turns/stun服务通信,负责视频推流、点云等拉取;
3. RC Client与遥控器通信,实现无线遥控;
4. HTTP CLient与平台侧通信,实现升级包下载、日志上传、地图上传等功能
5. 通过RTSP进行视频推流
6. 采用ROS Topic方式进行内部通信
云平台
1. mqtt用于机器狗上电后建立长连接,负责接收上报状态、心跳、下发指令(如OTA、WebRTC)
2. Restful API对外提供平台服务,也为APP提供用户和设备管理等功能
3. turns/stun服务用于建立基于WebRTC的点对点连接,实现p2p的视频推流(当无法建立点对点连
接时降级为服务器转发)
4. 指控系统/机器人管理平台提供机器人全生命周期管理、OTA、地图编辑、远程监控/控制、任务管
理等功能;
APP
1. 用户管理/设备管理模块:与平台通过Restful API进行通信。负责用户管理、设备管理及用户和设
备绑定关系管理;
2. 遥控:提供基于MQTT信令通信的远程遥控
3. 拉流服务:提供基于WebRTC的点对点推流服务
遥控器
1. 遥控:与设备端RC Client通信,提供基于2.4GHz无线遥控功能;
2. 拉流:基于RTSP的视频拉流;
3. 建图:以推流方式实现遥控端侧发起/结束建图;
4. 地图编辑:通过解析、编辑相关配置文件,实现遥控器端地图编辑的功能,包括地图展示、旋转、
缩放、虚拟墙编辑、下发任务等;
2.2 硬件架构图
三、SDK开发指南
3.1.SDK介绍
• 本文档描述了 D1 MaxPro 的软件开发工具包 (SDK),对机器狗的能力进行了封装(包括高层运动控制、底层电机/关节控制、图传、点云、里程计等),方便具备一定开发能力的用户进行二次开发。
• 各章节分别介绍不同服务接口的调用方法、数据输入/输出的标准格式定义与一些功能开发示例。
• 接口定义会随量产开发状态产生变更,请以最新版本的接口定义文档为准。
• SDK程序与狗本体内程序通讯存在特定协议,故不同版本的SDK程序与狗本体内程序通讯存在差异,请根据设备版本选择对应版本SDK程序。若条件允许,建议更新狗内程序到最新版本,以获得更好的兼容性。
• SDK接口控制时,全部状态均由二次开发者设计指定,本体运控不做额外的干预与状态跳转。
• 运行SDK时, 请保证系统有足够的资源, 否则可能出现运动控制模块失效的情况
• 编程语言:当前支持C++进行开发,暂不支持其他编程语言
3.2 环境依赖
推荐在Ubuntu20.04上进行开发,暂不支持Mac、Windows系统进行开发
• 高层开发sdk,不需要安装ros1系统
• 底层开发sdk,必须安装ros1系统
3.3 网络配置
• 用户的开发电脑可通过无线、有线和typeC口方式连接机器狗,推荐使用有线连接
• 注意用户开发电脑IP不要设置为与机器狗相同的IP,避免冲突
• 设置完成后可以使用ifconfig查看开发电脑的IP,通过ping指令确认网络连通情况
网络接口 | 机器狗IP地址 | DHCP |
无线网络 | 192.168.12.1 | 有 |
有线网络 | 192.168.144.3 | 无 |
Type-C口 | 192.168.55.1 | 无 |
wifi名称:lxai(后面加机器编号,eg:lxaic2-3) wifi密码: lxai2024 |
设备提供ssh登录,通过无线或有线与设备创建连接后,可通过ssh登录设备
Plain Text |
3.4 sdk获取
3.4.1 版本查询
TOML |
3.4.2 获取对应固件版本的sdk
way1:请在查询到版本号后,截图发送给技术支持同事获取对应版本的sdk包
way2:通过如下github地址获取
Plain Text |
注:因sdk不断地迭代升级,请以对应固件版本的SDK为准 |
3.5. SDK安装与编译
case1 高层sdk安装
会根据用户开发环境是否安装ros1系统给到不同的sdk文件
安装ros1系统的zip文件解压出来是这样目录:
执行下面指令,编译成功后即可运行提供的demo程序high_level_demo.cpp
Bash |
未安装ros1系统的zip文件解压出来是这样的目录: 
执行build.sh指令然后就可以运行提供的demo程序high_level_remote_tcp_client_test.cpp
Bash |
case2 底层sdk安装
和高层sdk不同的是,底层sdk不依赖动态库开发,用户只需要编写自己的程序,订阅
rt/lowstate和发布rt/lowcmd这两个话题就可以控制
四、API函数介绍
高层运动控制接口实现对机器狗的姿态、速度、行走、特定动作等控制,也可获取机器狗的相关状态。
| 函数名 | Standup |
| 函数原型 | int32_t Standup() |
| 功能概述 | 站立 |
| 参数 | 无 |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 |
| 函数名 | Getdown |
| 函数原型 | int32_t Getdown() |
| 功能概述 | 趴下 |
| 参数 | 无 |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 |
| 函数名 | ZeroTorque |
| 函数原型 | int32_t ZeroTorque() |
| 功能概述 | 零力矩模式 |
| 参数 | 无 |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 |
| 函数名 | Damp |
| 函数原型 | int32_t Damp() |
| 功能概述 | 阻尼 |
| 参数 | 无 |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 |
| 函数名 | SwitchToRLMode |
| 函数原型 | int32_t SwitchToRLMode(bool val) |
| 功能概述 | 切换到强化学习模式 |
| 参数 | val:设置 true 为开启,false 为关闭。 |
| 返回值 | 调用成功返回0,否则返回相关错误码。 |
| 备注 | 若为楼梯、斜坡、草地、沙地等复杂地形,需切换到强化学习模式 |
| 函数名 | 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停止 |
| 函数名 | Rotate_up_and_down |
| 函数原型 | int32_t Rotate_up_and_down(float ang) |
| 功能概述 | 俯仰 |
| 参数 | ang: 角度(-14,11)度 -x表示仰视x度 x表示俯视x度 |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 |
| 函数名 | StopMove |
| 函数原型 | int32_t StopMove() |
| 功能概述 | 停止运动 |
| 参数 | 无 |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 | 将速度指令置零 |
| 函数名 | GetActionStatus |
| 函数原型 | int32_t GetActionStatus() |
| 功能概述 | 获取机器的运动状态 |
| 参数 | 无 |
| 返回值 | 卸力状态: 0 ; 恢复站立动作中,结束后会自动转换到平衡站立:2 平衡站立状态:3 ; 阻尼状态:5 ; 行走中:6 ; 趴下过程中,结束后会自动转换阻尼状态:7; 未知:-1; |
| 备注 |
| 函数名 | MoveForward |
| 函数原型 | int32_t MoveForward(float distance) |
| 功能概述 | 前后移动指定距离 |
| 参数 | distance:移动的距离 |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 | 待实现 |
| 函数名 | MoveSideways |
| 函数原型 | int32_t MoveSideways(float distance) |
| 功能概述 | 左右移动指定距离 |
| 参数 | distance:移动的距离 |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 | 待实现 |
| 函数名 | FinishMovement |
| 函数原型 | int32_t FinishMovement() |
| 功能概述 | 结束移动动作 |
| 参数 | 无 |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 | 待实现 |
| 函数名 | SetHeight |
| 函数原型 | int32_t SetHeight(float height) |
| 功能概述 | 设置本体高度 |
| 参数 | height:机器狗的高度,取值范围[0.38,0.58]m |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 |
| 函数名 | SetSpeed |
| 函数原型 | int32_t SetSpeed(float speed) |
| 功能概述 | 设置速度 |
| 参数 | speed:机器狗运行的速度 |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 | |
| 函数名 | GetSpeed |
| 函数原型 | float GetSpeed() |
| 功能概述 | 调用成功返回运行的速度 |
| 参数 | 无 |
| 返回值 | |
| 备注 | xyz轴速度计算得出 |
| 函数名 | GetAngle |
| 函数原型 | float GetAngle() |
| 功能概述 | 获取倾斜角度 |
| 参数 | 无 |
| 返回值 | 调用成功返回机器狗的倾斜的角度 仰视最大角度为14 俯视最大角度为11 |
| 备注 | 负值为仰视,正值为俯视,取值范围[-14,11] |
| 函数名 | GetHeight |
| 函数原型 | float GetHeight() |
| 功能概述 | 获取本体高度 |
| 参数 | 无 |
| 返回值 | 调用成功返回机器狗的实际本体高度 |
| 备注 |
| 函数名 | GetSideways |
| 函数原型 | float GetSideways() |
| 功能概述 | 获取左右移动距离 |
| 参数 | 无 |
| 返回值 | 调用成功返回机器狗左右移动距离 |
| 备注 | 待实现 |
| 函数名 | GetForward |
| 函数原型 | float GetForward() |
| 功能概述 | 获取前后移动距离 |
| 参数 | 无 |
| 返回值 | 调用成功返回机器狗前后移动距离 |
| 备注 | 待实现 |
| 函数名 | ParameterAdjustmentMode |
| 函数原型 | int32_t ParameterAdjustmentMode(bool flag) |
| 功能概述 | 参数调整模式 |
| 参数 | flag:设置 true 为开启,false 为关闭。 |
| 返回值 | 调用成功返回 0,否则返回相关错误码。 |
| 备注 | 设置高度和速度必须要先设置该接口为true才能生效。设置为false机器狗的速度和高度会恢复默认状态 |
| 函数名 | GetRobotStatus |
| 函数原型 | struct Robotstate GetRobotStatus() |
| 功能概述 | 获取机器狗状态 |
| 参数 | 无 |
| 返回值 | 调用成功返回电机温度 struct Robotstate { double driver_temperature[12]; // 电机温度 四个脚每个脚3个电机 0-2是脚1 3-5是脚2 6-8是脚3 9-11是脚4 }; |
| 备注 |
| 函数名 | 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) }; |
| 备注 |
| 函数名 | GetSdkVersion |
| 函数原型 | float GetSdkVersion() |
| 功能概述 | 获取sdk版本号 |
| 参数 | 无 |
| 返回值 | 调用成功返回sdk版本号 |
| 备注 |
| 函数名 | 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; }; |
| 备注 |
| 函数名 | StartRobotCharging |
| 函数原型 | int32_t StartRobotCharging() |
| 功能概述 | 开始充电 |
| 参数 | 无 |
| 返回值 | 调用成功返回0,否则返回相关错误码。 |
| 备注 |
| 函数名 | StopRobotCharging |
| 函数原型 | int32_t StopRobotCharging() |
| 功能概述 | 停止充电 |
| 参数 | 无 |
| 返回值 | 调用成功返回0,否则返回相关错误码。 |
| 备注 |
| 函数名 | GetRobotMapList |
| 函数原型 | std::vector |
| 功能概述 | 获取地图列表 |
| 参数 | 无 |
| 返回值 | 调用成功返回地图列表 struct RobotMapInfo { std::string map_name; }; |
| 备注 |
| 函数名 | GetRobotMapFiles |
| 函数原型 | int32_t GetRobotMapFiles( const std::string& map_name, const std::string& save_directory) |
| 功能概述 | 获取地图文件 |
| 参数 | map_name:地图名称(通过GetRobotMapList获取),save_directory:调用者指定的本地保存目录 |
| 返回值 | 调用成功返回0,否则返回相关错误码。 |
| 备注 |
| 函数名 | GetSdkSwitch |
| 函数原型 | int32_t GetSdkSwitch() |
| 功能概述 | 获取sdk切换控制开关状态 |
| 参数 | 无 |
| 返回值 | 调用成功返回0表示没有控制权,返回1表示有控制权,否则返回相关错误码。 |
| 备注 |
| 函数名 | JointLockMode |
| 函数原型 | int32_t JointLockMode(bool val) |
| 功能概述 | 关节锁定模式 |
| 参数 | val:设置 true 为开启,false 为关闭。 |
| 返回值 | 调用成功返回0,否则返回相关错误码。 |
| 备注 | 需要先调用int32_t Rotate_up_and_down(float udm, float ang)函数让机器狗前倾或者后仰 |
| 函数名 | GetRobotChargeResult |
| 函数原型 | int32_t GetRobotChargeResult() |
| 功能概述 | 获取机器人充电结果 |
| 参数 | 无 |
| 返回值 | 调用成功 返回0表示不在充电 返回1表示正在找桩 返回2表示正在充电 返回3表示正在出桩 返回-1表示找桩失败 返回-2表示充电状态异常 否则返回相关错误码。 |
| 备注 | 该接口需要配合接口StartRobotCharging使用 |
| 函数名 | Rotate_right_and_left |
| 函数原型 | int32_t Rotate_right_and_left(double radian) |
| 功能概述 | 向左向右转向 |
| 参数 | radian: 角度(-8,8)度 |
| 返回值 | 调用成功返回0,否则返回相关错误码。 |
| 备注 |
| 函数名 | GetRobotBatteryPercentage |
| 函数原型 | int32_t GetRobotBatteryPercentage() |
| 功能概述 | 获取电池电量 |
| 参数 | 无 |
| 返回值 | 电池电量百分比 |
| 备注 |
| 函数名 | SwitchToCrawlMode |
| 函数原型 | int32_t SwitchToCrawlMode(bool val) |
| 功能概述 | 切换到匍匐模式 |
| 参数 | val:设置 true 为开启,false 为关闭。 |
| 返回值 | 调用成功返回0,否则返回相关错误码。 |
| 备注 |
4.2 底层服务接口
4.2.1 底层控制指令
用户通过订阅话题 rt/lowcmd 来发送电机控制指令,具体发送的数据结构如下:
Go |
4.2.2 底层数据接收
用户通过订阅rt/lowstate话题获取电机、IMU数据,数据结构如下所示:
1、IMU状态信息:
Plain Text |
2、电机状态信息:
Go |
4.3 运控诊断异常码
目前运控执行过程中出现的异常信息会在遥控器上弹窗显示,错误码如下表所示:
key | 项目含义 | key_str | code 解析 | 提示内容 |
0 | 空项目,无意义 | None | 不提示 | |
1 | 恢复站立诊断项。 是否因为关节位置不对导致狗不能站起来 | RecoverStand_JointPos
| 0:无报错; 其他:12个关节编号0~11对应code的0~11bit,哪个关节位置不对,哪个bit就置1. | 关节位置异常,无法站立,故障码:$code
|
2 | 恢复站立诊断项。 | RecoverStand_MotorWarningLevel
| 0: 无报错; 其他:MotorWarningLeve的等级,1~3,数字越大,问题越严重 | 关节硬件异常,无法站立,故障码:$code |
3 | 恢复站立诊断项。 | RecoverStand_SocWarningLevel
| 0:无报错; 其他:SocWarningLeve的等级,1~3,数字越大,问题越严重 | 电量过低,无法站立,故障码:$code
|
4 | 恢复站立诊断项。
| RecoverStand_ImuStatus | 0:无报错; 其他:bit0: 0:ok; 1:IMU 模块不可用; bit1: 0: ok; 1:IMU 姿态不适合恢复站立;
| IMU传感器异常,无法站立,故障码:$code
|
5 | 恢复站立诊断项。 | RecoverStand_CmdError | 0:无报错; 1: 阻尼指令还在,不能响应恢复站立指令; 2: 卸力指令还在,不能响应恢复站立指令; | 存在阻尼或卸力指令,无法站立,故障码:$code
|
6 | 视觉模式下的报错。 高程图节点是否出错。 | VisualMode_ElevationMapping | 0:无报错; -1:高程图节点超时; 1:前深度相机出错; 2:前深度相机里程计出错; | 高程图异常,视觉模式不可用,故障码:$code |
7 | 视觉模式下的报错。 里程计节点是否出错。 | VisualMode_Odom | 0:无报错; -1:里程计超时; 1:里程计未进入视觉模式; 2:里程计初始化中; 3:里程计数据输入出错; | 里程计异常,视觉模式不可用,故障码:$code |
8 | 视觉模式下的报错。 运控内部感知模块是否出错。 | VisualMode_Perception | 0:无报错; 1:出错; | 获取地图异常,视觉模式不可用,故障码:$code |
9 | 前右腿状态 | Leg_frontRight | 0:无报错; 其他值: 以下各bit值为0表示无报错,值为1解析如下: bit0: A关节通讯丢失; bit1: H关节通讯丢失; bit2: K关节通讯丢失; bit3: 该腿CAN总线busoff; bit4: A关节出错; bit5: H关节出错; bit6: K关节出错; bit8: A关节反馈了具体的Errcode; bit9: H关节反馈了具体的Errcode; bit10: K关节反馈了具体的Errcode; | 右前腿硬件异常,故障码:$code |
10 | 前左腿状态 | Leg_frontLeft | 左前腿硬件异常,故障码:$code | |
11 | 后右腿状态 | Leg_rearRight
| 右后腿硬件异常,故障码:$code | |
12 | 后左腿状态 | Leg_rearLeft
| 左后腿硬件异常,故障码:$code
| |
13 | 电机温度状态等级 | MotroTempWarning
| 0:OK; 其他值:1~3,数字越大,问题越严重 | 电机高温预警,故障码:$code |
14 | 电池电量状态等级 | SocWarning | 0:OK; 其他值:1~3,数字越大,问题越严重 | 低电量预警,故障码:$code |
15 | Imu状态 | Imu | 0:OK; 1: Imu不可用 | IMU传感器模块异常,故障码:$code |
16 | 运行时安全检测项 | SafetyChecker
| 0:OK; 其他值: 以下各bit值为0表示无报错,值为1解析如下: bit0: imu出错; bit1:机身姿态角超出极限范围; bit2:关节角度或速度超限; bit3:关节硬件异常; bit4:关节角度到达硬限位; bit5:足端位置超限; | 运行时安全检测异常 ,故障码:$code |
17 | UserMode切换(一般模式,高速模式,视觉模式) | UserModeSwitch | 0:OK; 1:切换到视觉模式失败; 2:切换到高速模式失败; | 切换到xx模式失败,视在静止状态重试 ,故障码:$code
|
用户可通过订阅话题"report_all_item"获取上述所有诊断项的结果。诊断项的数据结构如下:
Plain Text |
Plain Text |
五、其他服务介绍
5.1 图传服务
前后广角相机的视频分别以Gstreamer方式推流到以下URL:
Plain Text |
默认会在遥控器侧拉流显示实时画面,可通过VLC或者OpenCV进行预览和调用