一文详解智元 D1 机器人二次开发入门指南:从零开始,让你的机器狗动起来
点击下方卡片,关注「魔方AI空间」公众号
点击加入「具身智能」交流群 ->>
经典文章回顾:
- 万字综述 | 一文带你入门「具身智能」:从基础概念到大模型赋能
- 万字长文|一文详解具身智能:视觉-语言-动作模型(VLA)系统性综述
- 一文梳理主流大模型推理部署框架:vLLM、SGLang、TensorRT-LLM、ollama、XInference
- 一文梳理主流热门智能体框架:Dify、Coze、n8n、AutoGen、LangChain、CrewAI
- 一文详解AI大模型14个核心基础概念:Transformer、Token、MoE、RAG、对齐、预训练、微调、Agent
“【从零走向AGI】旨在深入了解通用人工智能(AGI)的发展路径,从最基础的概念起,逐步构建完整的知识体系。
项目地址🔗:https://github.com/AI-mzq/From-Zero-to-AGI.git
AIGC技术交流社区(涵盖AI绘画、AI视频、大模型、AI多模态、数字人、具身智能等AIGC干货资源及教程)欢迎大家加入:

“本文聚焦于智元D1机器狗的二次开发,涵盖从硬件平台解析、快速上手、环境搭建、网络配置到 ROS2 与官方 SDK 的深度集成,旨在为开发者、研究人员和技术爱好者提供一份系统性、深度的技术指南。
扫描下方二维码或点击链接,即可获取:《智元 D1 Edu 二次开发资料包》,涵盖SDK 开发指南 + 示例代码 + 实验课纲)以及入门视频课程。
https://agirobot.feishu.cn/share/base/form/shrcnUtsY3N2RrLUi6lnhvXkuoh

智元机器人(Agibot)推出 D1 系列四足机器狗,涵盖了从产品硬件规格到深度软件开发的全面信息。该系列分为主打高性能运动的 Pro 版本和支持二次开发的 Edu 版本,具备卓越的越野、攀爬及抗干扰平衡能力。

本文的核心目的在于:
- 系统化知识梳理:整合并系统化呈现关于 D1 机器狗二次开发的硬件规格、软件环境、通信协议和控制接口的关键信息。
- 降低开发门槛:通过详尽的步骤拆解和代码实例分析,帮助开发者快速跨越从入门到实践的技术障碍,在最短时间内让 D1 机器人“动起来” 。
- 激发创新应用:深度解析其 ROS2 驱动架构、高级控制接口(如特技动作)以及多语言、跨平台开发能力,为开发者在 D1 平台上构建更复杂、更智能的机器人应用提供坚实的技术基础和创新灵感。
通过阅读本文,你可以快速上手:
- 入门:硬件准备、Ubuntu+ROS2 环境配置,第一段 “Hello World” 代码让机器人站立、打招呼。
- 驱动与控制:ROS2 驱动架构、速度指令、看门狗安全机制,以及电池、IMU 实时数据的获取与发布。
- 特技动作:通过自定义 ROS2 服务实现站立、卧倒等离散动作的同步请求‑响应控制。
- 跨平台&双语言:Wi‑Fi/有线模式切换,C++ 与 Python 双语言示例,支持 ARM 与 x86 部署。
在深入智元机器人的技术细节之前,我们有必要首先理解其所处的赛道——具身智能。简单来说,如果说传统的人工智能(如ChatGPT)是一个没有身体的“数字大脑”,那么具身智能就是为这个大脑配上“身体”,使其能够在物理世界中感知、理解、行动和交互。这个“身体”就是机器人。
关于智元机器人的创始人——大名鼎鼎的“稚晖君”,在这里就不过多介绍了,网上有许多关于他的传奇。
具身智能的核心理念在于,真正的智能必须通过与物理世界的持续互动来学习和进化。一个机器人通过它的传感器“看”和“听”,通过它的执行器“触摸”和“移动”,在这个过程中收集的数据远比互联网上的文本和图片更为丰富、多维。
参考文章《万字综述 | 一文带你入门「具身智能」:从基础概念到大模型赋能》
这种“闭环”的学习方式——感知世界、采取行动、观察结果、调整策略——被认为是通向通用人工智能(AGI)的关键路径之一。
正是在这样的大背景下,智元机器人于2023年应运而生。其创始团队敏锐地预见到,将先进的AI大模型与机器人本体技术结合,将引爆一场前所未有的产业变革。

智元机器人的目标不仅是制造一台能行走的机器,更是构建一个开放的、通用的机器人生态系统。这一点从其D1系列的产品规划和SDK开放策略上可见一斑。其愿景是降低机器人技术的应用门槛,让高校实验室、初创公司、开发者社区乃至个人爱好者,都能基于一个稳定可靠的硬件平台,快速验证算法、开发应用、创造价值。

为了实现这一宏伟愿景,智元机器人从一开始就构建了一套完整的全栈技术体系,覆盖了从底层硬件到顶层AI算法的每一个环节。他们提出的“本体—小脑—大脑”三层技术架构,成为了理解其所有产品的核心框架 。
- 本体(The Body):指机器人的物理形态,包括传感器、执行器、计算单元等所有硬件,是与物理世界交互的直接媒介。
- 小脑(The Cerebellum):负责实时、高频的运动控制和局部环境感知,保证机器人的平衡、协调与快速反应。
- 大脑(The Cerebrum):是机器人的认知核心,通常基于云端的大模型,负责理解复杂任务、进行长期规划和决策。
站在2026年的今天,智元机器人已经不再是一个初创概念,而是拥有包括“远征(Far-Sight)”系列、“精灵(Genie)”系列、“灵犀(Lingxi)”系列以及面向科研教育的“D1”系列等多条产品线,并已成功渗透到工业制造、商业服务、安防巡检、康养陪护等八大应用场景中 。
接下来,我们将基于智元 D1 系列逐层深入,解剖这个“智能新物种”的构造。
智元 D1 系列,特别是教育科研版(Edu)和行业应用版(Ultra/Max),正是这一生态布局的基石,它们提供了从高层动作脚本到底层电机控制的完整访问权限。

智元D1系列目前主要包含以下型号,形成了一个从易到难、从消费到专业的完整产品线。
- D1 Pro(文娱消费版):定位为消费级和娱乐展示产品。它 likely 搭载了出厂预置的成熟运动算法和丰富的特技动作库,用户可通过手机App或简易遥控器进行操控,适用于商业展演、科技馆互动、高端玩具等场景。其设计强调开箱即用的易用性和视觉表现力。
- D1 Edu(教育科研平台):这是整个系列的核心与灵魂,专为高等院校、研究机构和个人开发者设计。它在提供稳定基础运动能力的同时,全面开放了软件开发工具包(SDK)和底层硬件接口。支持ROS2集成、500Hz的高频底层控制(关节角度、速度、扭矩)以及丰富的传感器数据访问。其目标是成为机器人学、控制理论、人工智能(特别是强化学习)等课程教学与科学研究的理想实验平台。
- D1 Ultra / D1 Max / D1 MaxPro(行业应用版):在Edu版的基础上进一步增强,面向更严苛的行业应用场景,如巡检、勘探、安防、物流等。推测其在负载能力、续航、防护等级(如IP54)、通信可靠性或搭载额外扩展硬件(如机械臂、更强大的计算单元)方面进行了强化。
选型指南:
- 个人爱好者/商业展演:追求即开即玩、炫酷效果,选择 D1 Pro。
- 高校教学/算法研究/个人极客开发:必须选择 D1 Edu 或 D1 Ultra。它们是进行二次开发、验证控制算法、部署AI模型的唯一选择 。
- 特定行业解决方案开发/高强度野外测试:应考虑 D1 Max 或 D1 MaxPro,并需联系官方获取具体的加固和性能指标。

无论哪个型号,D1系列都共享一些核心的机械与设计特性,这些构成了其卓越运动能力的物理基础:
- 12自由度仿生设计:采用经典的仿生四足结构,每条腿拥有3个主动关节(髋侧摆、髋前后摆、膝关节),共12个自由度 。这种设计赋予了机器狗在三维空间内极高的运动灵活性,能够实现行走、小跑、踱步、跳跃乃至空翻等多种步态和动作。
- 2kW / kg峰值功率密度自研关节:这是智元的核心黑科技之一 。高功率密度意味着在有限的体积和重量下,能够爆发巨大的输出功率和扭矩。D1 Edu 搭载了行业领先的2kW/kg峰值功率密度的自研关节系统,这是其能够实现高速奔跑(3.7m/s)、强劲负载(5-8kg)和高难度动态动作(如后空翻)的根本保证 。
- AI强化学习算法带来的全地形适应力:D1并非依赖预设的、僵硬的步态轨迹。其内嵌了基于强化学习(RL)的运动控制算法,使其能够自主适应各类路面,实现全地形运动 。这意味着在面对不平整的草地、沙石、斜坡,甚至楼梯时,机器狗能在线调整落脚点和身体姿态,保持平衡与通过性。这种“智能”的适应能力,显著提升了其在非结构化环境中的实用价值。
为了让开发者能够方便地与D1的“小脑”进行交互,智元提供了功能全面的SDK。这个SDK被精心设计为五大核心模块 ,清晰地解耦了不同层级的功能:

高层控制接口(High-Level Control Interface):这是最易于上手的接口。开发者无需关心底层的动力学细节,只需发送简单的指令,如“以0.5米/秒的速度前进”、“向左转”、“身体姿态调整为俯仰5度”等,机器人便能自主完成。这非常适合快速开发上层应用,如自主导航、遥控操作等。
底层控制接口(Low-Level Control Interface):这是D1最硬核、最具科研价值的接口。如前所述,它允许开发者以高达500Hz的频率直接控制每个关节的角度、速度、力矩和刚度(PD增益)。这意味着D1不再是一个黑盒,而是一个真正“白盒可控”的研究平台,全球的学者都可以在这同一个标准化平台上验证他们的最新步态生成和力控算法,极大地促进了学术交流和技术进步。
惯导数据接口(IMUData Interface):提供机器人本体的完整运动状态,包括原始的加速度和角速度读数,以及经过融合计算后的姿态、里程计和对地速度信息 。这些数据是进行状态估计、SLAM等算法研究的基础。
设备状态接口(Device Status Interface):允许开发者获取机器人硬件的健康状况,如电机温度、驱动器是否报错、电池电量和电压等 。这对于保证实验安全、进行设备健康管理至关重要。
视频流接口(Video Stream Interface):用于获取D1头部相机的实时视频流 。开发者可以利用这个视频流进行图像处理、AI视觉分析,或将其推送到远程监控界面。
对于D1 Pro用户或初次接触D1 Edu/Ultra只想体验其基本功能的用户,快速上手至关重要。
1.电池安装:将标配的锂电池包插入机器人躯干后部的电池仓并锁紧。
2.开机流程:短按电池电源键一次,再长按5秒,松开后等待20秒, 即完成开机 ,并进入待机状态。
3.建立连接:通过 Wi-Fi 或 AP直连 模式,将您的控制设备(如电脑或遥控器)连接到机器人网络,为下达指令做好准备。
- LB + Y:站立。从趴下或任何状态切换到标准的站立姿态。
- LB + RB:阻尼/锁死模式。所有关节进入高阻尼状态,机器人会固定当前姿态,便于搬运或调试。
- LB+ X:趴下。从站立姿态平稳过渡到低功耗的趴下姿态。
- 左摇杆:前后控制机器人的前后移动速度;左右控制横向移动或原地旋转(取决于模式)。
- 右摇杆:通常控制机身姿态,例如前后推改变机身俯仰角(“抬头”、“低头”),左右推改变侧倾角。
- 功能键:可能用于触发预设的特技动作,如打招呼、握手、后空翻等。
在App或遥控器上,通常有一个“特技”或“表演”模式,里面预置了一系列高难度动作序列:
- 一键打招呼:机器人抬起单前腿并点头。
- 双腿站立(“拜年”动作):机器人仅用两条后腿支撑,抬起前躯干。
- 后空翻:最具观赏性的动作之一,机器人向后腾空翻转一周后落地。
- 安全警告(重要!):执行此类高强度动态动作会显著加剧电机和减速器的磨损 。官方通常会给出安全操作指南,例如:
- 确保在平坦、开阔、柔软(如体操垫) 的地面进行。
- 避免连续、高频次执行空翻等极限动作。
- 定期检查关节是否有异响、过热或松动。
- 在特技模式下,机器人动态剧烈,请保持安全距离,防止被意外碰撞。

从这里开始,我们将真正解锁D1的全部潜能。本部分将提供一个详细的分步指南,指导开发者从零开始,配置一个官方推荐的、基于 Ubuntu 和 ROS2 的开发环境,并最终编写第一个程序,让 D1 机器狗响应我们的指令。
在开始软件安装之前,请确保已准备好以下硬件和软件基础:
- 机器人本体:一台智元 D1 Edu机器狗,并确保电池电量充足。
- 开发计算机:一台个人电脑或工作站,将作为主要的开发和控制终端(也称“上位机”)。
- 网络设备:一个无线路由器,或一根网线,用于连接开发计算机和 D1 机器狗。
- 操作系统:官方明确推荐在开发计算机上安装 Ubuntu 22.04LTS。这是确保与官方 SDK 和 ROS2 版本兼容性的关键。
- 集成开发环境(IDE):Visual Studio Code (VSCode)。轻量、强大,拥有丰富的ROS2和C++/Python插件,极大提升开发效率。
- 编译与依赖:确保安装 CMake、GCC/G++、Eigen3、Boost、Python3 等必要工具链。
1、获取SDK:通过官方GitHub仓库克隆SDK代码:
git clone https://github.com/AgibotTech/agibot_D1_Edu-Ultra.git
2、网络通讯:设备上配备无线网络与有线网络接口,其中无线网络信息位于设备右侧标签,标签内标注有设备SSID与密码信息。
- 无线网络配备DHCP服务,连接上无线网络后,确保操作设备无线网络未配置固定IP,可以直接通过192.168.234.1与机器人建立通讯。
- 有线网络不配备DHCP服务,通过有线连接后,需要再操作设备有线网络配置固定IP,且IP为168网段,即可与机器人建立通讯。

3、登录设备:设备提供ssh登录,通过WiFi或无线与设备创建连接后,可通过命令:
ssh firefly@{IP} #密码:firefly
根据有线/无线修改对应的{IP},密码与用户名同样为firefly。
4、修改SDK配置文件:通过vim命令修改/opt/export/config/sdk_config.yaml文件:
target_ip: "127.0.0.1"
target_port: 43988
将target_ip修改为控制端设备连接机器人之后的IP地址,target_port如无必要可不修改。 默认设备仅支持WiFi网络,即target_ip为192.168.234.X的IP地址,如需要通过网线或其他网段IP通讯,需配合步骤5配置SDK_CLIENT_IP !!! warning "参数配置后需进行重启设备生效!"
5、配置SDK_CLIENT_IP
如需要使用网线或其他非192.168.234.X网段IP控制设备,需要通过vim命令修改
小狗点足(zsl-1)修改/opt/app_launch/start_motion_control.sh文件:
小狗轮足(zsl-1w)修改/opt/app_launch/start_motion_control_xgw.sh文件:
#!/bin/bash
echo"start motion control"
# 共享内存文件路径
SHM_FILE="/dev/shm/spline_shm"
# 循环检查设备是否存在
whiletrue; do
if [ -e "$SHM_FILE" ]; then
echo"共享内存文件 $SHM_FILE 已存在。"
break
else
echo"共享内存文件 $SHM_FILE 不存在,等待 1 秒后重试..."
sleep 1
fi
done
# 共享内存文件存在后执行的命令
echo"共享内存文件已准备好,可以执行后续操作。"
sudo ifconfig lo multicast
sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev lo
export LD_LIBRARY_PATH=/opt/export/mc/bin
export ROBOT_TYPE=P2
export SDK_CLIENT_IP="机器人新ip"
cd /opt/export/mc/bin && taskset -c 7 ./mc_ctrl r
在上面代码27行,增加对应配置:export SDK_CLIENT_IP="机器人新ip",并将机器人的IP地址填写在对应参数内,如使用有线网络,则将机器人新IP修改为192.168.168.168,如果是其他IP则修改到对应IP即可。
!!! danger "target_ip与SDK_CLIENT_IP所配置IP必须为同一网段!"
!!! warning "参数配置后需进行重启设备生效!"
!!! danger "此参数配置后有概率导致机器人无法使用遥控器!" 配置SDK_CLIENT_IP后,若设备开机后网络未初始化完成,对应网卡未分配IP地址,导致运控程序绑定IP地址失败,会造成机器人无法使用遥控器。解决方案:https://github.com/AgibotTech/agibot_D1_Edu-Ultra/blob/main/docs/faq.md#2-ip
ROS2 是一个用于构建机器人应用的开源软件框架,它提供了类似操作系统的功能,包括硬件抽象、设备驱动、库函数、可视化工具、消息传递和包管理 。智元 D1 的二次开发深度集成了 ROS2,利用其强大的生态系统来简化开发。
步骤 1:安装 ROS2 Humble Hawksbill
智元官方明确推荐与其 SDK 配合使用的 ROS2 发行版是 Humble Hawksbill 。这是 ROS2 的一个长期支持(LTS)版本,与 Ubuntu 22.04 完美匹配。
按照 ROS2 官方文档的指示进行安装。(注:此处为简述,请务必参考 ROS 2 官方文档获取最准确、最详细的安装指南)
# 1. 设置区域设置 (Locale)
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
# 2. 添加 ROS2 APT 仓库
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# 3. 安装 ROS2 Humble 桌面完整版
sudo apt update
sudo apt install ros-humble-desktop-full
# 4. 设置环境
echo"source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
安装完成后,可以通过运行一个简单的示例(如 ros2 run demo_nodes_cpp talker)来验证 ROS2 是否安装成功。
步骤 2:安装其他必要依赖
除了 ROS2,官方 SDK 的编译和运行还需要一些其他的开发工具和库。
sudo apt update
sudo apt install -y cmake g++ libeigen3-dev libboost-all-dev python3-pip
这些依赖包括:
cmake和g++:C++ 项目的核心构建工具和编译器 。libeigen3-dev:一个高性能的 C++ 模板库,用于线性代数运算,在机器人学中被广泛用于矩阵和向量计算 。libboost-all-dev:一套功能强大的 C++ 库,提供了对线程、文件系统、正则表达式等众多功能的支持 。python3-pip:用于安装 Python 包。
步骤 3:创建 ROS2 工作空间
工作空间(Workspace)是 ROS2 中用于组织、编译和管理多个功能包(Package)的目录。
mkdir -p ~/agibot_d1_ws/src
cd ~/agibot_d1_ws
这里的 agibot_d1_ws 是工作空间的名称,src 目录将用于存放我们自己创建或下载的功能包的源代码 。

SDK是连接上层应用代码和 D1 机器狗底层硬件的桥梁。它封装了复杂的通信协议和底层控制指令,以一组简洁的 API 形式提供给开发者。
为了在 ROS2 程序中使用 SDK,我们需要创建一个功能包,并将 SDK 的文件集成进去。
步骤1:创建功能包
进入工作空间的 src 目录,创建功能包。
cd ~/agibot_d1_ws/src
ros2 pkg create agibot_d1_hello --build-type ament_cmake --node-name helloworld --dependencies rclcpp geometry_msgs
这会创建一个名为 agibot_d1_hello 的 C++ 功能包 。
步骤2:添加头文件与链接库
在 agibot_d1_hello 目录下,创建 include 和 lib 两个文件夹,然后将获取到的 SDK 头文件和库文件分别复制进去 。
mkdir include lib
# 假设 SDK 在 ~/Downloads/agibot_sdk
cp -r ~/Downloads/agibot_sdk/include/* ./include/
cp -r ~/Downloads/agibot_sdk/lib/* ./lib/
步骤3:配置 CMakeLists.txt
这是集成的关键步骤。我们需要编辑 agibot_d1_hello 目录下的 CMakeLists.txt 文件,告诉编译器在哪里找到 SDK 的头文件和库文件,并将我们的程序与这些库链接起来。
打开 CMakeLists.txt,添加以下内容:
# 设置SDK库依赖
target_link_libraries(helloworld ${PROJECT_SOURCE_DIR}/lib/zsl-1/x86_64/libmc_sdk_zsl_1_x86_64.so)
# 添加库文件安装规则
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib/zsl-1/x86_64/libmc_sdk_zsl_1_x86_64.so
# DIRECTORY lib/
DESTINATION lib/${PROJECT_NAME}
)
# 设置RPATH以便运行时能找到库文件
set_target_properties(helloworld PROPERTIES
INSTALL_RPATH_USE_LINK_PATH TRUE
INSTALL_RPATH "$ORIGIN/../lib/agibot_d1_hello;$ORIGIN"
)
现在,环境和配置都已就绪,让我们来编写第一个程序,实现一个简单的目标:让 D1 机器狗从趴着的状态站立起来,并保持站立姿态。
在 agibot_d1_hello/src 目录下,创建一个名为 hello_world.cpp 的文件,并写入以下代码。
#include <rclcpp/rclcpp.hpp>
#include <memory>
#include <chrono>
// 包含智元 SDK 的核心头文件
// 注意:头文件名可能因 SDK 版本而异,请根据实际情况修改
#include "zsl-1/high_level.h"
// 定义一个 ROS2 节点类
class HelloWorldNode :public rclcpp::Node {
public:
HelloWorldNode() : Node("hello_world_d1_node") {
RCLCPP_INFO(this->get_logger(), "智元 D1 'Hello World' 节点已启动.");
// 初始化 SDK
// 这里的 "192.168.168.168" 是机器狗有线模式下的默认 IP
// 如果使用 Wi-Fi,请修改为 "192.168.234.1"
// 详情请见网络配置章节
std::string robot_ip = "192.168.168.168";
RCLCPP_INFO(this->get_logger(), "正在尝试连接到机器狗: %s", robot_ip.c_str());
try {
// 创建高级控制接口实例
highlevel_ = std::make_shared<zsl::HighLevel>(robot_ip);
RCLCPP_INFO(this->get_logger(), "SDK 初始化成功,已连接到机器狗.");
} catch (conststd::exception& e) {
RCLCPP_FATAL(this->get_logger(), "SDK 初始化失败: %s", e.what());
// 节点初始化失败,退出
rclcpp::shutdown();
return;
}
// 创建一个定时器,延迟2秒后执行站立指令,确保连接稳定
timer_ = this->create_wall_timer(
std::chrono::seconds(2),
std::bind(&HelloWorldNode::stand_up_command, this));
}
private:
void stand_up_command() {
// 取消定时器,确保此命令只执行一次
timer_->cancel();
RCLCPP_INFO(this->get_logger(), "发送 '站立' 指令...");
try {
// 调用 SDK 提供的站立函数
// 这是 D1 执行的第一个动作!
highlevel_->standUp();
RCLCPP_INFO(this->get_logger(), "指令发送成功,机器狗应该正在站立.");
// 在实际应用中,可以在这里进入一个循环,
// 持续发送心跳或速度指令,以维持控制权
// 这里为了演示,程序将在站立后保持运行
} catch (conststd::exception& e) {
RCLCPP_ERROR(this->get_logger(), "发送 '站立' 指令时发生错误: %s", e.what());
}
}
// 智元 SDK 高级控制接口的共享指针
std::shared_ptr<zsl::HighLevel> highlevel_;
// ROS2 定时器
rclcpp::TimerBase::SharedPtr timer_;
};
int main(int argc, char** argv) {
// 初始化 ROS2
rclcpp::init(argc, argv);
// 创建并运行节点
auto node = std::make_shared<HelloWorldNode>();
rclcpp::spin(node);
// 清理并关闭 ROS2
rclcpp::shutdown();
return0;
}
编译与运行:
步骤1:回到工作空间根目录~/agibot_d1_hello
步骤2:使用colcon工具编译功能包
cd ~/agibot_d1_ws
colcon build --packages-select d1_controller
步骤3:编译成功后,配置当前终端的环境变量,使其能找到我们刚刚编译好的程序
. install/setup.bash
步骤4:运行
ros2 run agibot_d1_hello hello_d1
如果一切顺利,你将会在终端看到 "智元 D1 'Hello World' 节点已启动"、"SDK 初始化成功" 和 "发送 '站立' 指令..." 等日志信息。同时,现实世界中的 D1 机器狗将会从趴卧姿态优雅地站立起来。
恭喜你,你已经成功迈出了 D1 二次开发的第一步!
- 推荐算法库:RSL-RL(ETH Zurich Legged Robotics 官方库,支持ANYmal)、Isaac Lab(NVIDIA)、Stable Baselines3、RLlib 等 。这些库提供了PPO、SAC等现代RL算法的成熟实现。
- 仿真环境:Isaac Gym / Isaac Lab(高性能,GPU并行仿真)、MuJoCo、PyBullet 。首先需要在仿真中构建D1的高保真动力学模型,包括质量、惯性、关节摩擦、电机模型等。
奖励函数设计(Reward Design):这是RL成功的关键。奖励函数引导智能体学习目标行为。对于四足运动,奖励项通常包括:前进速度奖励、姿态稳定惩罚(防止摔倒)、能量消耗惩罚、关节角限制惩罚、足端滑移惩罚等。
域随机化(Domain Randomization):为了缩小仿真与现实的差距(Sim2Real Gap),在训练时随机化仿真环境参数,如地面摩擦系数、机器人质量惯性微小变化、传感器噪声、延迟等 。这使得训练出的策略对真实世界的扰动更具鲁棒性。
策略学习:在随机化的仿真环境中,使用选定的RL算法训练神经网络策略。策略网络的输入通常是本体感知(关节角度、速度、IMU数据等),输出是关节目标动作(如目标角度或扭矩)。
Sim2Real迁移:将在仿真中训练好的策略部署到真实的D1上。由于域随机化的作用,策略通常能直接工作或仅需少量在线微调。
D1为RL部署提供了两种主要接口,契合不同层次的策略:
- 高层(HighLevel)接口部署:如果你的RL策略输出的是高层指令,如躯干目标速度(vx, vy, vyaw) 或目标姿态(俯仰、翻滚),那么可以很容易地通过D1 SDK的高层接口,以50Hz的频率下发给机器人 。机器人内置的底层控制器会将其转换为关节指令。
- 底层(LowLevel)接口部署:如果你想实现端到端的控制,让RL策略直接输出12个关节的扭矩指令(τ),则需要使用500Hz的底层接口 。这要求策略网络具有极低的推理延迟,通常需要在Jetson等嵌入式GPU上运行优化后的模型。这种方式能实现更直接、更灵活的控制,但挑战也更大。
智元D1机器人,特别是其Edu和Ultra型号,成功地在高性能、开放性、易用性和成本之间找到了一个杰出的平衡点。它不仅仅是一个产品,更是一个平台和一个生态入口。
- 对教育者而言,它是一本“活”的机器人学教材,将课本上的控制理论、运动学、人工智能变成了可以触摸和实验的现实。
- 对研究者而言,它是一个强大且友好的试验台,加速了从算法仿真到真实验证的循环,降低了科研的门槛和风险。
- 对开发者和极客而言,它是一个充满可能性的“大玩具”和创造工具,开放的SDK和ROS2支持让天马行空的想法有了实现的基石。
- 对行业而言,其Max系列代表了将实验室技术转化为可靠工业应用的潜力,为巡检、物流、特种作业等场景提供了新的自动化解决方案。
当然,当前生态仍处于快速发展期。官方文档的完善度、社区案例的丰富性、以及针对强化学习等前沿领域的更详细教程和工具链,将是未来发展的关键。但毫无疑问,智元D1已经点燃了一簇火种,它让更多人能够以更低的成本、更高的自由度,参与到创造机器人未来的伟大征程中。
希望本文能给你带来帮助!!!
扫描下方二维码,即可获取:《智元 D1 Edu 二次开发资料包》,涵盖SDK 开发指南 + 示例代码 + 实验课纲)以及入门视频课程。

推荐阅读
► 技术资讯: 魔方 AI 新视界
► 项目应用:开源视界
► 技术专栏: 多模态大模型最新技术解读专栏 | AI 视频最新技术解读专栏 | 大模型基础入门系列专栏 | 视频内容理解技术专栏 | 从零走向 AGI 系列
► 技术综述: 一文掌握视频扩散模型 | YOLO 系列的十年全面综述 | 人体视频生成技术:挑战、方法和见解 | 一文读懂多模态大模型(MLLM)|一文搞懂 RAG 技术范式演变及 Agentic RAG|强化学习技术全面解读 SFT、RLHF、RLAIF、DPO|一文搞懂 DeepSeek 的技术演进之路