leyu.乐鱼(集团)体育科技股份有限公司官网

English
日本語
Menu

D1 Max?次开发指南

:2026-03-31 11:08:44

文档修订记录

修订日期

修订内容

版本

2025.9

? 初始预测试版本

V0.0.1

2025.10

? 提供基础机器人控制接口

? 支持机器人状态数据回调

? 支持故障信息回调

v0.0.2

2025.11

? 添加登阶模式接口

? 添加运动模式下爬高台接口

? 添加模式状态获取接口

v0.0.3

2025.12.27

? 添加获取系统版本号的接口

? 新增 UDP 通信方式支持

? 优化连接失败时的错误信息提示

? 内部适配新版本通信协议

v0.0.4

2026.1.17

? 新增2.10机体坐标系方向

? 新增4.4本体传感器坐标

v0.0.41

2026.01.15

? 新增步态姿态接口(Gait(...))

? 新增瘦身姿态接口(Slim(...))

? 新增断开后自动续连的配置接口

? 新增获取当前连接状态接口

? 添加一些自动续连/手动续连的示例

? 异步接口中 添加获取发送结果的回调参数

v0.0.5

2026.02.08

? 新增控制权切换功能

? 新增 “4.5 RTK使用说明

? 修复IMU acc/gyro 取反问题

v0.0.6

2026.03.17

? 新增自主回充功能

? 修改nx ssh登录用户名

? 修改前后激光雷达IP地址及ros topic

? 新增 “1.6 D1 Max硬件架构图

v0.0.8

 


一、产品介绍


1.1 产品概述

乐鱼体育仿生四足机器人 D1 Max是一款轮足式仿生四足机器人, 具备自重轻、负载大、续航长、防护强、运动灵活稳定等优势。机器狗每条腿配备3个关机电机和1个轮毂电机,配备光学相机、激光雷达、超声波雷达、IMURTK模块等传感设备,内部搭载高算力平台,用于实现运动控制、自主导航定位、环境侦测等功能,提供丰富的供电和通信接口,支持多品类的任务载荷拓展。

1.1替换图片.png

1.2 产品清单

图片26.png 


1.3 产品参数

分类规格说明
基础信息材质信息铝合金+高强度工程塑料
站 立 尺 寸 ( 长 × 宽 × 高 )930mm×480mm×585mm
趴 地 尺 寸 ( 长 × 宽 × 高 )930mm×630mm×200mm
整机重量(含电池)41kg
自由度12+4dof
工作温度-20℃~55℃
防护等级IP67
电池54v,9.45Ah*2,双电池,支持快拆快换,支持热插拔
充电时长<2h
续航时间空载5h,满载3.5h
续航里程空载29km,满载18km
整机算力157 Tops/Nvidia Orin NX 16GB
性能参数最大速度8m/s
额定负载25kg
连续攀爬楼梯高度25cm
最大爬坡角度45°
跳跃离地高度80cm
极限跨越障碍、沟壑高度80cm
带载跨越高度50cm
最窄通过宽度50cm
最窄掉头宽度支持原地调头、支持前后向切换
匍匐行走高度34cm
整机关节参数最大关节扭矩150N ·m
关节运动空间(机身)-30°40°
关节运动空间(大腿)-160°~160°
关节运动空间(小腿)-160°~160°
传感单元激光雷达前后各1个96线激光雷达、覆盖角度360°*90°、覆盖直径范围120m
相机FOV前后各1个FPV相机,工业级800万像素,视场角: DFOV122°,
HFOV111°,VFOV70°
补光灯补光灯*4,FPV相机左右各1个。照射距离≥3m
IMU车规级IMU*1
RTK模块GNSS RTK*1
超声波传感器左右各1个超声波,支持5m以内的障碍物识别
功能列表标准动作踏步、滑行、匍匐等姿态,前后左右直线移动、原地旋转、转弯
等,支持膝关节姿态变换。
实时图像传输支持
二次开发支持,提供SDK开发包,机器人模型提供3D数模和urdf文件用于仿真
通讯功能支持WIFI 5.0,蓝牙5.0
供电接口5V、12V、24V、48V,最大输出功率480W
功能拓展接口千兆网口*2、USB3.0*2、RS232*1、RS485*1、SBUS*2、PPS*1
配件适配器标配
充电座标配
遥控器带屏遥控器,遥控距离700-1000m
自主充电桩选配


注:以上参数为实验室测试数据,实际表现可能因使用环境、操作方式等因素有所差异,请以实际为准

注:以上参数为实验室测试数据,实际表现可能因使用环境、操作方式等因素有所差异,请以实际为准

图片27.png 

? 关节参数

部位

参数

数值

髋部滚转关节(hip_roll)

最大扭矩

150N.m

最大转速

190RPM

重量

0.93kg

关节限位

-39.9°~30°

髋部俯仰关节(hip_pitch)

最大扭矩

150N.m

最大转速

190RPM

重量

0.93kg

关节限位

-140°~140°

膝部俯仰(knee_pitch)

最大扭矩

150N.m

最大转速

190RPM

重量

0.93kg

关节限位

-160°~160°

足端(foot)

最大扭矩

33N.m

最大转速

1200RPM

重量

1.275kg

半径

9cm

关节限位

-180°~180°


1.4 载荷上装

1.4.1 负载安装孔位图

机器狗背部的空间平整,负载25-30kg,背部部署有双导轨,两条导轨上有14M4孔位支持上装载荷便捷安装,双导轨具体尺寸如下

 图片28.png

机器人加装负载后,仅支持基础运动模式,请勿在加装负载后使用高台模式

 

当在机器人背部加装载荷时,机器人的运动性能可能会受影响,请务必在加装前向售后人员咨询相关事宜

 

1.4.2  重心限制

为避免D1 Max机身上加装上装载荷之后,在各类地形运动过程中,腿部与上装载荷发生碰撞干涉,对D1 Max的上装空间给出如下推荐示意,具体尺寸为长40cm,宽22cm,高24cm,位置在机身背部居中位置,如下图所示:

图片29.png 

 


1.5 电气拓展接口

图片30.png 

 图片31.png 

序号

接口名称

1

48V(10A)

2

24V(20A)

3

24V(3A)+网口

4

12V(5A)+网口

5

串口(RS232 x1RS485 x1SBUS x2PPS x1

67

USB3.05V1A

8

RTK天线接口

9

拓展仓按键

 

? 所有供电接口的供电总功率在 480W 以内;

? 有航插头配备防护盖,以确保 IP67,不用的航插头务必盖好防护盖;

? 扩展仓按键用于控制扩展接口的供电,在进行上装接线时,务必先关闭扩展仓的电源。

航插扩展功能接口说明:

V3机器设备路径V4机器设备路径
? RS232: /dev/ttyTHS3? RS232:/dev/ttyCH9344USB4
? RS485: /dev/ttyTHS1? RS485:/dev/ttyCH9344USB5
? SBUS1: /dev/ttyACM2? SBUS1:/dev/ttyCH9344USB2
? SBUS2: /dev/ttyACM3? SBUS2:/dev/ttyCH9344USB3

1.5.1 电源口48V(10A)

? 航插母图

图片33.png 

航插名称

48V 10A

板端航插型号

M12-S4S-GPFM16-135-CS24044

线序定义

 

1

GND

2

48V

3

48V

4

GND

? 对插线束

图片34.png 

 

 

1.5.2 电源口24V(20A)

? 航插母头

图片36.png 

航插名称

24V 20A

板端航插型号

M12-S4S-GPFM16-135-CS24044

线序定义

 

1

GND

2

24V

3

24V

4

GND

 

? 对插线束

图片37.png 

 

 

1.5.3 网口(24V)

? 航插母头

图片38.png 

航插名称

网口+24V

板端航插型号

M12- P12A-GPFM12

线序定义

 

1

GND

2

24V

3

24V

4

网口A+

5

网口A-

6

网口B+

7

网口B-

8

网口C+

9

网口C-

10

GND

11

网口D+

12

网口D-

? 对插线束

图片39.png 

 

1.5.4 网口(12V)

? 航插母头

图片40.png 

航插名称

网口+12V

板端航插型号

M12- P12A-GPFM12

线序定义

 

1

GND

2

12V

3

12V

4

网口A+

5

网口A-

6

网口B+

7

网口B-

8

网口C+

9

网口C-

10

GND

11

网口D+

12

网口D-

? 对插线束

图片41.png 

 

 

1.5.5 串口

? 航插母头

图片42.png 

航插名称3

串口(RS232RS845SBUS*2PPS

板端航插型号

M12- P8A-GPFM12

线序定义

 

1

PPS

2

SBUS1

3

SBUS2

4

RS485A

5

RS485B

6

RS232_TX

7

RS232_RX

8

GND

? 对插线束

图片43.png 

 

1.5.6 USB

? 航插母头

图片44.png 

 

航插名称

USB3.0+5V  两个

板端航插型号

E10B- FT3-PPF

线序定义

? 对插线束

图片45.png 


二、SDK开发指南


2.1 SDK介绍

? 本文档描述了 D1 Max 的软件开发工具包 (SDK),提供其核心服务接口的详细信息,包括高层运动控制接口、IMU 惯导数据接口、电机状态数据接口。

? 各章节分别介绍不同服务接口的调用方法、数据输入/输出的标准格式定义与一些功能开发示例。

? 接口定义会随量产开发状态产生变更,请以最新版本的接口定义文档为准。

? SDK程序与狗本体内程序通讯存在特定协议,故不同版本的SDK程序与狗本体内程序通讯存在差异,请根据设备版本选择对应版本SDK程序。若条件允许,建议更新狗内程序到最新版本,以获得更好的兼容性。

? SDK接口控制时,全部状态均由二次开发者设计指定,本体运控不做额外的干预与状态跳转。

? 运行SDK, 请保证系统有足够的资源, 否则可能出现运动控制模块失效的情况。


2.2 sdk软件服务接口列表

序号

接口名称

功能

SDK版本

1

高层运动控制接口

 

实现机器狗的高层运动控制,包括前后转向速度运动,趴下,旋转,四肢站立等

V0.0.2

 

2

视频流推送数据接口

向客户端推送相机本体视频流

V0.0.2

3

设备状态服务接口

 

查询并获取当前设备状态和系统资源使用信息

V0.0.3

 

4

惯导状态数据接口

获取IMU原始数据信息

V0.0.4

5

超声波雷达接口

实现自主避障功能

v0.0.5

6

遥控器和sdk控制权切换功能及sdk接口

实现控制权切换功能

v0.0.6

7

RTK模块的sdk接口

实现自主定位功能

v0.0.6

8

自主回充功能及sdk接口

实现自主充电功能

v0.0.8

9

slam建图导航功能及sdk接口

实现自主导航功能

暂未上线,目前可提供激光雷达ROS2接口


2.3 安全保护机制

2.3.1 硬急停

? 触发方式:按下机身急停按钮

? 效果:机器狗缓慢着地,红灯亮起

? 指示灯状态

? 按下时:红灯亮

? 松开后:绿灯亮

? 恢复:旋开急停按钮后,系统自动恢复(若无其他故障)

2.3.2 软急停

? 触发方式:通过遥控器触发或者通过sdk接口触发

? 效果:机器人立即停车,不再响应任何控制指令

? 恢复:接触软急停后可恢复正常操作

V0.0.6版本sdk起,支持遥控器和sdk控制权切换功能,若要实现在sdk控制阶段通过遥控器触发设备软急停,必须得在sdk获取控制权后,点开app,然后便可以随时使用遥控器右上方红色急停按钮触发软急停,触发软急停后,机器狗显示红灯,保持当前姿态,不再响应任何控制指令

2.3.3 内部异常保护(自动触发)

以下情况将触发内部保护机制,机器人自动停车并缓慢着地

? 遥控信号断连(含网络阻塞),重新连接APP即可恢复

? 电池在位但电量<10%

? 关节故障

? IMU(惯性测量单元)通信中断


2.4 环境依赖

- 操作系统: Ubuntu 22.04

- 构建工具: CMake 3.8+, GCC 11+

- 依赖库: Boost 1.74+

- 编程语言: C++


2.5 设备登录

网络连接

? Wifi 连接登录

? wifi名称:XG2WIFI_xxxxxx

? wifi密码:12345678

? 有线连接

? 使用网线连接机器狗拓展网口和控制端PC

? 设置控制端PC网口IP192.168.168.x(不能设置为192.168.168.168192.168.168.100)

ssh登录

Plain Text
 
#通过wifi连接
ssh robot@192.168.234.1       #RK3588,password: bot

#通过网线连接
ssh robot@192.168.168.168     #RK3588, password: bot
ssh robot@192.168.168.100     #Orin NX,password: 1

 

? RK3588算力板负责运动控制和系统监控等功能,勿在此板开发应用程序

? Orin NX算力板负责建图、定位、导航等业务功能,用户可在此算力板开发轻量化的应用程序,需做好备份管理,刷机或OTA升级可能会被刷新


2.6 SDK获取

2.6.1 版本查询

通过ssh进入机器狗本体,查询对应的版本信息后,将查询到的机器狗固件版本号截图发送售后技术支持团队获取对应的SDK 安装包与示例代码,查询方式如下:

Bash
 
 ssh robot@192.168.234.1        #password: bot
 cat /opt/release/version.yaml  #查看rk对应固件版本
 
 ssh robot@192.168.168.100        #password: 1
 cat /opt/release/version.yaml    #查看nx对应固件版本

 

2.6.2 获取对应固件版本的sdk

way1:请在查询到版本号后,截图发送给技术支持同事获取对应版本的sdk

way2:通过如下github地址获取

Bash
 
git clone https://github.com/AgibotTech/Agibot_D1_Max.git


2.7  示例Demo运行步骤

在本地PC端,进入到sdk文件中

Bash
 
# 进入 C++ 演示目录
cd example

# 创建构建目录
mkdir build && cd build

#配置并编译项目
cmake ..
make -j6

#运行demo示例
./example_data 192.168.168.168 8081 #有线连接
./example_data 192.168.234.1 8081  #无线连接

 

在进行sdk控制前,遥控器端app务必先退出,否则sdk无法控制设备进行动作

在运行demo文件前,务必先阅读源文件


2.8 SDK控制说明

? sdk指令下发需要按照以下状态跳转逻辑,否则可能会造成机器摔倒、故障或不响应等异常情况。

 图片46.png

注意:

1. 当下发站立命令时,完成站立后会根据当前的模式自动切换到通用状态或者原地状态

2. 锁定状态下切到任意其他状态下就算解锁

? SDK命令下发流程如下

图片47.png 

 


2.9 关节命名规范

为便于识别与调试,本设备采用如下命名规则:

? 方向缩写

? f = front()

? b = back()

? l = left()

? r = right()

? 编号含义

? 1 = 髋部滚转(hip_roll)

? 2 = 髋部俯仰(hip_pitch)

? 3 = 膝部俯仰(knee_pitch)

? 4 = 足端(foot)

? 示例命名

? frl_hip_roll:右前腿1号关节(髋部滚转)

? bl3_knee_pitch:左后腿3号关节(膝部俯仰)

Plain Text
 
front_left_leg     #左前腿
front_right_leg    #右前腿
back_left_leg      #左后腿
back_right_leg     #右后腿

fl1_hip_roll        #左前1号
fl2_hip_pitch       #左前2号
fl3_knee_pitch      #左前3号
fl4_foot            #左前4号

fr1_hip_roll        #右前1号
fr2_hip_pitch       #右前2号
fr3_knee_pitch      #右前3号
fr4_foot            #右前4号

bl1_hip_roll        #左后1号
bl2_hip_pitch       #左后2号
bl3_knee_pitch      #左后3号
bl4_foot            #左后4号

br1_hip_roll        #右后1号
br2_hip_pitch       #右后2号
br3_knee_pitch      #右后3号
br4_foot            #右后4号


2.10 机体坐标系方向

当各个关节均为零度时,各坐标系如下图。红色为 x 轴,绿色为 y 轴,蓝色为 z 轴。关节的旋转轴和旋转正方向请参考下图

图片48.png


三、SDK函数介绍

详细接口说明,请查看对应版本的sdk说明文档:

https://github.com/AgibotTech/Agibot_D1_Max/blob/main/docs/sdk_client_api.md


四、其他服务


4.1 视频流推送服务

前后广角相机的视频分别以Gstreamer方式推流到以下URL:

Plain Text
 
前置摄像头: rtsp://192.168.234.1:8554/front
后置摄像头: rtsp://192.168.234.1:8554/back

默认会在遥控器侧拉流显示实时画面,可通过VLC或者OpenCV进行预览和调用


4.2  激光雷达信号接口

1. ROS2接口定义

topic

msg

字段类型

字段

字段释义

初始值

数值范围

发送周期

前雷达点云数据:/front_lidar


后雷达点云数据:/rear_lidar

 

sensor_msgs::msg::PointCloud2(数据服务模型Qos::best_effort

 

std_msgs/Header

header

ROS2 标准MSG帧头



10hz

uint32

height

点云的垂直高度(行数)



uint32

width

点云的水平方向宽度(列数)



PointField[]

fields

点云中每个通道的字段描述



bool

is_bigendian

是否是大端字节序



uint32

point_step

每个点所占字节数



uint32

row_step

一行点数据占用的字节数



uint8[]

data

点云的原始二进制数据,是一维数组



bool

is_dense

是否为稠密点云(即没有无效点)



 

前激光雷达IP: 192.168.1.102

后激光雷达IP: 192.168.2.102

2. 启动对应的驱动程序

Plain Text
 
#先通过ssh登录NX
ssh robot@192.168.168.100  #密码: 1

#查看进程
robot-launch list

#启动雷达程序
robot-alunch start 2  #2为激光雷达驱动的pid


4.3 超声波雷达信号接口

topic

msg

字段类型

字段

字段释义

初始值

数值范围

发送周期

左侧超声波雷达:

/uss_driver/uss_left/range

右侧超声波雷达:
/uss_driver/uss_right/range

 

sensor_msgs::msg::Range

 

std_msgs/Header 

header

ROS2 标准MSG帧头



10hz

uint8_t

 

radiation_type

传感器类型。枚举值:0 超声波 1 红外线

0

0-1

float

field_of_view

传感器视场角(弧度),通常为测距锥形区域的角度

0

当前固定为0

float

min_range

传感器可测量最小距离(米)

0

当前固定为0

float

max_range

传感器可测量的最大距离(米)

0

当前固定为0

float

range

当前实际测得距离(米)

0

0-4


4.4 本体传感器坐标

传感器名称传感器坐标(相对机身BASE原点)(单位mm)备注
xyz
IMU_ICM42688(运控用)0036.2
IMU_LUA300C (车规级)0056.9目前未开发固件
前激光雷达AIRY404.30-37.7详见规格书
前摄像头IMX415412.3037.8详见规格书
右前补光灯420.3-30.928.3照射范围 120°
左前补光灯420.330.928.3照射范围 120°
后激光雷达AIRY-404.30-37.7详见规格书
后摄像头IMX415-412.3037.8详见规格书
右后补光灯-420.3-30.928.3照射范围 120°
左后补光灯-420.330.928.3照射范围 120°
右前超声波雷达RADAR A22179.2-100.250详见规格书
左前超声波雷达RADAR A22179.2100.250详见规格书

Click the image to view the sheet.


4.5 RTK使用说明

4.5.1 获取六分RTK服务

使用从注册的六分账户和密码登录到官网

网址:https://www.sixents.com/login

? 登录进控制台

图片50.png 

? 获取AKAS

准备好需要使用的AKAS

图片51.png 

4.5.2 配置

? 登录进入NX

首先需要连接机器狗的WIFI,密码默认是 12345678

Bash
 
ssh robot@192.168.234.1   #密码是 bot

? 打开配置文件

配置文件路径:/ota/sixents_config.ini

Bash
 
sudo vim /ota/sixents_config.ini

 

TOML
配置文件说明
[sixents_sdk]
sdk_ak =
sdk_as =
sdk_dev_id =
sdk_dev_type =

? sdk_ak: 设置您购买服务实例的 AK

? sdk_as: 设置您购买服务实例的 AS

? sdk_dev_id: 设置您的设备 ID SN(自定义)

? sdk_dev_type: 设置您的设备类型(自定义)

注意:sdk_dev_id sdk_dev_type 是和 账户唯一绑定的,之后更改其他的需要去官网解绑

 

4.5.3 RTK Topic 说明

? rtk话题名称

rtk对应的话题为:/rtk_pvh

图片52.png 

? 数据说明

类别

字段

说明

heading

utc_time_s

heading UTC时间

sol_status

解的状态

? 0:已解出

? 1:观测量不足

? 2:未收敛

? 4:协方差矩阵的迹超过最大值(迹>1000 米)

heading_type

定位类型

? 0:不进行解算

? 16:单点定位

? 17:伪距查分定位

? 34:浮点解

? 50:整数解

base_line

基线长度,单位米(0~3000

heading_deg

航向角,单位度(0~360

pitch_deg

俯仰角,单位度(±90

heading_std

航向角标准差,单位度

pitch_std

俯仰角标准差,单位度

sys_num

跟踪的卫星数

soln_svs_num

参与解算的卫星数

bestnav

utc_time_s

bestpos UTC时间

p_sol_status

解的状态

pos_type

定位类型

latitude_deg

纬度,单位度

longitude_deg

经度,单位度

altitude_m

海拔高,单位米

undulation

大地水准面差距,大地水准面与 WGS84 参考椭球面的差值,单位米

lat_std

纬度标准差,单位米

lon_std

经度标准差,单位米

hgt_std

高度标准差,单位米

diff_age_s

差分龄期,单位秒

sol_age_s

解的龄期,单位秒

svs_num

跟踪的卫星数

soln_svs_num

参与解算的卫星数

v_sol_status

解的状态

vel_type

定位类型

hor_spd

水平方向对地速度,单位米/

trk_gnd

相对于真北的实际对地运动方向,单位度

ver_spd

垂直方向速度,单位米/秒。正值表示方向向上,负值表示方向向下

ver_spd_std

垂直方向速度标准差(未填写)

hor_spd_std

水平方向对地速度标准差(未填写

4.5.3 重启rtk服务

? 查看当前服务

TOML
 
robot-launch list

? 重启服务

TOML
 
robot-launch restart 4  #id 4 所对应的服务为driver-gps

? 重启NX

TOML
 
sudo reboot

 


4.6 IMU数据

目前系统中有三个IMU2雷达+1独立),通过topic发出数据,标准ROS2的数据类型 sensor_msgs::msg::Imu

前雷达IMU/front_lidar/imu

后雷达IMU/rear_lidar/imu

独立IMU/imu_driver/imu_central

注:独立IMU涉及硬件改动的问题,若无法获取imu数据,请联系售后服务人员


4.7 相机数据

相机数据来源于RK3588, topic名称如下:

? :  /front_camera/image_compressed

? :  /rear_camera/image_compressed


五、调试说明


5.1 ROS2多机通信配置

NX系统中有统一配置的环境变量:/opt/runtime/env.bash , 这个变量在.bashrc中会默认导入

图片53.png 

由上图可见,ROS_DOMAIN_ID=24 ,目前机器狗使用 ros2 zenoh 中间件对外提供 ros2 topic 服务,需要用户在自己的笔记本安装相关环境。

5.1.1  IP配置

配置用户笔记本 ip 为: 192.168.168.xxx xxx不能为100或者168或者255

5.1.2 用户笔记本环境配置

? Ubuntu22.04

? Ros2 humble

? Zenoh rmw

5.1.3 安装zenoh

Plain Text
 
sudo apt-get install ros-humble-rmw-zenoh-cpp

5.1.4 修改配置文件

使用编辑器打开下面文件

/opt/ros/humble/share/rmw_zenoh_cpp/config/DEFAULT_RMW_ZENOH_ROUTER_CONFIG.json5 

找到 connecet/endpoints字段,将机器狗NXIP写入并保存:

图片54.png 

 

Plain Text
 
"tcp/192.168.168.100:7447"

pc端新建终端1,设置中间件切换的环境变量以及 ROS2 Domain ID

Plain Text
 
source /opt/ros/humble/setup.bash
export ROS_DOMAIN_ID=24
export RMW_IMPLEMENTATION=rmw_zenoh_cpp
ros2 run rmw_zenoh_cpp rmw_zenohd

重置 ROS2 后台守护进程

Plain Text
 
ros2 daemon stop
ros2 daemon start

在上述的环境变量生效的前提下即可使用 rviz 可视化,录包,或者启动自己的 ros2 程序与狗中的驱动交互。