← 返回作品列表

信息科技学习资料

Microduck
机器人学习手册

介绍 Microduck 的机械结构、传感器和运动控制方法,说明零件准备、机械装配、舵机校准、仿真实验和整机测试的基本步骤。

初中信息科技与机器人社团编写 盛尧

1机器人简介

Microduck 是一种小型双足机器人,参考整机高度约 25 厘米、质量约 800 克。它用两条腿支撑和移动,头部、颈部和嘴部也能活动。行走、起身、拾取物体等动作,需要相应的控制策略和硬件配置。

这台机器人可以用来学习机械装配、传感器测量、程序控制和强化学习。例如,安装一条腿时需要检查关节轴的位置;让腿按要求转动时需要设置舵机;保持站立时还要读取机身姿态,持续调整动作。

四只不同配色的 Microduck 双足机器人
图 1 Microduck 参考整机 产品图片由 Pollen Robotics 提供

学习内容

  • 辨认主控板、舵机、传感器和电源,说明它们各自的作用。
  • 理解关节角度、姿态反馈和运动控制之间的关系。
  • 了解结构件制作、机械装配和校准的方法。
  • 在仿真或教师指导的实物实验中记录现象,分析问题。

2机器人结构

Microduck 的主要结构包括躯干、左右腿和头颈。躯干固定主控、电源和部分传感器;关节把各段结构连接起来,使相邻部件能够按规定方向转动。

部位舵机数量主要作用
左腿5控制髋部、膝部和踝部,完成支撑与迈步。
右腿5与左腿配合,调整支撑和移动方向。
头部和颈部4控制颈部俯仰,以及头部俯仰、偏航和侧倾。
嘴部1控制嘴部开合,独立于行走策略。
合计15其中 14 个关节由运动策略控制,嘴部单独控制。

关节的转动方向

每条腿有三个髋部关节、一个膝关节和一个踝关节。髋部的三个转动方向分别称为偏航、侧倾和俯仰。偏航可以理解为向左或向右转,侧倾是向两侧倾斜,俯仰是向前或向后摆动。描述方向时,要以模型规定的坐标系为准。

舵机是一种能够接收位置命令的执行器。带反馈的总线舵机会报告当前位置等状态,程序可以检查关节是否到达目标。结构件决定关节的位置,轴承帮助转动,舵盘连接舵机输出轴与连杆。

传感器和主控

部件获得或处理的信息在本项目中的用途
运动 IMU角速度和姿态相关数据帮助程序判断机身怎样转动、向哪边倾斜。
主控板传感器数据和控制命令运行程序与策略,向舵机发送目标。
摄像头图像用于视觉观察和后续识别实验。
ToF 测距传感器周围物体的距离用于近距离空间感知。
电源与接口板电能分配和设备通信连接主控、舵机及传感器。

运动 IMU 需要固定在躯干上。它的安装位置和方向发生变化时,程序对姿态的解释也可能变化。基础站立和行走主要依靠关节反馈与运动 IMU,摄像头和测距功能可以在后续实验中加入。

3运动控制原理

机器人抬脚后,支撑位置和身体姿态会改变。只按固定时间播放一串关节角度,难以处理地面摩擦、安装误差等变化。控制程序需要反复读取状态,并根据新状态调整后续动作。

  1. 1读取机身和关节状态
  2. 2根据状态与命令计算动作
  3. 3向舵机发送目标
  4. 4读取动作后的新状态
图 2 运动控制中的反馈过程

Microduck 的参考控制频率为 50 赫兹,即每秒完成 50 次控制更新。用 1 秒除以 50,可得到约 0.02 秒,也就是 20 毫秒。这个数值表示一次控制更新的间隔,一次完整的迈步会经历多个控制周期。

策略的输入和输出

运动策略是一种把当前观测转换成动作的计算方法。本项目的策略使用神经网络。参考行走接口把各类观测按固定顺序组成 61 个数,再输出 14 个关节动作值。这里的 61 个数并不代表 61 个传感器。

输入内容数量含义
机身角速度3身体绕三个方向转动的快慢。
重力方向3在机身坐标系中表示竖直方向。
关节相对位置14各关节相对参考姿态的角度。
关节速度14各关节转动的快慢。
上一周期动作14上一轮策略计算的结果。
控制命令13速度、头部姿态和身体姿态等目标。
合计61按规定顺序送入同一套模型。

策略输出会与参考姿态、动作缩放等配置一起换算成关节目标。因此,训练、仿真和实物上的关节顺序、角度单位、正方向和参考姿态必须对应。程序中的角度常用弧度表示,1 弧度约等于 57.3 度。

控制命令和实际运动

设置前进速度为 0.10 米每秒,表示希望机器人按这个速度移动。实际速度可能受到打滑、碰撞或控制效果的影响。把速度命令改为零后,策略还需要继续调整关节来保持站立;停止移动与切断舵机电源是两种不同操作。

4零件和工具准备

开始制作前,应先确定舵机、结构件和软件的版本。原设计使用 Dynamixel XL330 系列舵机,社区复刻中也有飞特 HD-1910 方案。两种方案的尺寸、电气接口和响应特性存在差异,配套结构件、控制配置和运动模型需要对应。

项目数量或范围准备时检查的内容
主控板1 块参考平台为 Radxa ZERO 3W,处理器为 RK3566;检查与系统、接口板的兼容性。
舵机整机 15 颗型号、舵盘、工作电压、通信接口与所选方案一致。单关节实验先用 1 颗。
运动 IMU 及接口1 套包含可用固件,数据格式和安装方向与运行程序匹配。
接口与电源板1 套检查主控供电、舵机总线、连接器和保护功能。
结构件按版本清单包括躯干、腿、头颈、足部等,核对左右件、材料和打印数量。
机械小件按版本清单舵盘、轴承、螺钉、螺母、垫片与安装孔配合。
电源与线束1 套核对电压、电流、极性、线径、连接器和断电方式。
感知与交互扩展按实验需要摄像头、测距、音频等可以分阶段安装。

常用工具

机械装配需要尺寸合适的螺丝刀或内六角工具、游标卡尺和零件分类盒;电路检查需要数字万用表、兼容的舵机调试接口和限流电源。整机实验还需要固定支架、保护绳及可立即操作的断电开关。打印、焊接和电池维护由教师安排。

预算记录

预算按实际采购记录,以人民币填写单价和小计。舵机数量较多,应先确认型号和测试结果,再采购整机数量。已经有的工具、需要购买的零件和委托打印费用分别记录,另计运费和试制返工费用。

名称和型号数量单价 元小计 元
舵机
主控及接口板
传感器与电源
打印件及机械小件
其他费用
合计线材、运费等一并核算

5结构件制作和机械装配

制作机器人时会接触到不同文件。CAD 模型用于设计尺寸和装配关系;STL 文件主要记录物体表面的三角网格;MJCF 文件描述仿真中的刚体、关节、质量和碰撞等信息。能在屏幕中显示的网格,不一定已经具备正确的孔位、壁厚和制造公差。

打印前的检查

  1. 核对零件版本和左右方向,把文件名与零件清单对应。模型导入后检查单位,防止毫米与米混用。
  2. 测量实际舵机、轴承和紧固件,检查安装空间、孔位、轴线及工具能否伸入。
  3. 先打印一个舵机座或连接件,试装合格后再打印其他承力件。
  4. 根据材料和受力方向安排打印方向、壁厚与支撑。记录设置和试装结果。
  5. 去除支撑后检查裂纹、孔位与平整度。装配前确认没有会碰到线缆或转轴的毛刺。

材料选择要考虑受力、温度和耐冲击要求。尺寸验证件可以先用便于加工的材料;承力结构和柔性脚垫按对应设计选择。换材料或加厚外壳可能增加重量,也可能改变足底摩擦,需要在后续测试中记录。

装配步骤

  1. 先给零件编号,分开放置左右腿、躯干和头颈部件。按清单准备紧固件。
  2. 在教师指导下完成舵机编号和初步零位确认,再安装舵盘与连杆。避免把偏转的舵机当成零位装入。
  3. 把一条腿作为独立组件试装,核对足部、小腿、大腿与髋部的连接关系,检查转轴是否对应。
  4. 按所用装配图的具体顺序安装另一条腿和躯干。螺钉长度、穿轴和锁紧顺序以该版本结构为准。
  5. 安装颈部、头部和嘴部机构,检查各关节的活动空间。
  6. 布置线束,给活动关节留出弯曲余量,固定不应移动的部分,避免拉扯或夹线。
  7. 称量各组件和整机,记录电池等部件的位置,为对照仿真模型保留数据。

装配检查由教师按舵机允许的方式进行,不能强扭输出轴。只有确认没有结构干涉、松动和夹线后,才进入通电检查。爆炸图可以帮助辨认部件关系,具体拆装方向仍要结合连接结构判断。

6电路连接和关节校准

区分供电与通信

连接前要区分电池电压、主控输入电压、舵机工作电压和通信信号电平。接口板给主控提供稳压电源,并不表示每个舵机插口都经过独立降压。各接口按接线图核对电源、地线和数据线,不能只看插头能否插入。

XL330 方案采用半双工总线,同一时刻的数据传输方向受到控制。普通串口转接器的两根收发线直接并接,不能代替经过验证的总线接口。每个设备还需要唯一编号,程序才能区分它们。

单舵机测试

  1. 断开电源,只连接一颗已确认型号的舵机、兼容调试器和受限流保护的电源。由教师检查极性和电压。
  2. 上电后先读取型号、编号、位置等信息,确认通信正常。
  3. 按所用方案设置唯一编号、波特率和工作模式,在关闭扭矩等规定条件下修改配置。
  4. 固定舵机,在低负载条件下做小角度运动,检查正方向、反馈角度、声音和温升。
  5. 保存配置并贴上标签,逐颗完成后再连接成总线,检查是否存在重复编号。

校准参考姿态

参考姿态是控制程序计算目标角度的基准,通常称为 home pose。舵机编码器的零值、连杆的安装位置和机器人站立姿态不能直接视为同一件事。安装误差会使程序认为关节已到目标,而实际连杆仍然偏斜。

  1. 将整机固定在支架上,确认编号、反馈和 IMU 数据正常。
  2. 逐个检查关节的正方向、零位和允许转动范围,对照模型填写校准表。
  3. 以小范围、低速方式检查左右腿和头颈,确认没有反向运动或结构干涉。
  4. 由教师控制整机缓慢回到参考姿态,发现碰撞或异常立即停止。
  5. 保存校准参数。解除扭矩前,先让支架承住机器人,防止失去支撑后跌落。

舵机调试工具与整机控制程序应轮流使用同一条总线,避免两个程序同时写入命令。IMU 应连续更新,机身向前或向侧面倾斜时,读数的方向要与模型约定一致。

7仿真实验

仿真程序在计算机中建立机器人、地面和接触关系,并计算关节运动。它可以用来观察动作、检查关节映射和比较策略。普通计算机可以承担单个机器人的部分 CPU 仿真任务;大规模并行训练通常需要支持相应计算的显卡。

实验准备

教师课前准备并测试本地软件环境、机器人模型和兼容的行走策略,向学生提供启动方法和操作表。课堂实验使用同一版本。学生记录计算机、模型名称、策略文件和初始设置,实验时不需要打开外部网站。

实验步骤

  1. 启动仿真,恢复规定的初始姿态。把前后、侧向和转向速度命令全部设为零。
  2. 观察 5 秒,记录机器人是否保持站立,足部是否持续移动。
  3. 在教师给定的范围内设置低速前进,例如 0.10 米每秒。观察 10 秒,记录移动方向和稳定情况。
  4. 把速度命令恢复为零,观察停止过程,记录是否继续漂移或失去平衡。
  5. 分别测试后退、侧移和转向。每次改变一种命令,测试后恢复初始状态。
  6. 按照同一顺序重复实验,保存记录;有条件时同时保存视频和日志。
测试输入设置记录内容
静止速度命令为零,观察 5 秒是否站稳,是否摇晃或持续踏步。
前进低速前进,观察 10 秒移动方向、实际速度、打滑或跌倒。
停止从前进改为零速度停止所需时间、停止距离和姿态。
转向只设置转向命令方向是否正确,是否明显侧移。
重复测试恢复相同初始状态同样设置下,现象是否一致。

比较两份策略

比较策略 A 和 B 时,使用相同模型、起始姿态、命令、地面和测试时长。每份策略重复测试多次,记录成功次数与总次数。把一次成功的视频当成稳定表现,容易漏掉偶发故障。

8强化学习与模型部署

强化学习通过多次尝试和结果评分来调整策略。在 Microduck 的训练中,虚拟机器人根据状态做动作,物理仿真计算动作后的结果,训练程序再根据评分更新神经网络。重复这个过程后,策略可能逐渐形成可用步态。

训练中的概念本项目中的含义
环境虚拟机器人及地面、摩擦和接触等条件。
观测机身与关节状态、上一动作和控制命令。
动作14 个关节的目标偏移。
奖励与代价评价速度跟随、稳定、打滑、碰撞和动作变化等表现。
策略根据观测计算动作的神经网络。

训练方法

PPO 的中文名称是近端策略优化。它利用采集到的运动数据更新策略,并限制每轮改变的幅度,以降低一次更新使动作明显变差的风险。训练中用于做动作决定的网络称为 Actor,用来估计状态价值的网络称为 Critic。部署运动策略时主要使用 Actor。

评分设计会影响机器人怎样走路。只重视速度,可能出现摆动过大或碰撞;过度限制动作变化,也可能使机器人不愿抬脚。因此要同时观察训练曲线和实际运动,不能仅按总分选择模型。

训练安排

  1. 先用少量环境、较少轮数检查程序能否运行、日志能否保存和数值是否异常。
  2. 逐步扩大环境数,检查显存、计算速度与训练稳定性,再确定正式规模。
  3. 保留不同阶段的模型,用同一组场景比较站立、前进、转向和停止表现。
  4. 使用配套导出程序生成 ONNX 模型,确认观测归一化、输入输出和关节顺序完整保留。
  5. 先用导出模型做仿真复测,再由教师安排真机验证。

训练过程中保存的 checkpoint 通常包含继续训练所需的状态。ONNX 文件用于推理部署。能成功读取模型文件,只能证明文件和部分接口可以工作,运动能力仍需要实验检查。训练耗时取决于设备和配置,不规定所有同学都要从头训练。

仿真与实物的差别

实物的重量、质心、足底摩擦、齿轮回差和通信延迟不可能与理想模型完全相同。训练中可以在一定范围内改变这些条件,这种方法称为域随机化。更换舵机、明显增加重量或改变电池位置后,应重新测量并评估模型,必要时重新训练。

9整机测试和故障排查

整机测试在教师监督下进行。实验区铺设软垫,准备固定支架、保护绳和独立断电方式。先检查单个部件,再逐步增加连接数量和承重,出现异常时停在当前阶段处理。

顺序操作进入下一步前检查
1单舵机低负载运动编号、正方向、反馈、温升正常。
2一条腿固定测试各关节对应正确,没有干涉或夹线。
3整机连接并读取状态所有设备编号唯一,状态连续更新。
4支架上回参考姿态姿态正确,动作没有撞到结构限位。
5外部保护下站立供电稳定,姿态反馈正常。
6短时低速移动并停止能响应命令,记录动作与异常。

脚离地运行可以发现明显的动作映射或幅度错误,但缺少地面接触,不能据此判断站立和平衡性能。出现异常发热、异响、卡滞、反向运动或供电不稳时,先停止实验并由教师检查。不要带着故障增加速度或动作幅度。

常见问题

现象可能原因首先检查
所有舵机都无法读取未供电、接口接错或通信口被其他程序占用电源、电路连接和端口占用。
一颗舵机偶尔掉线插头松动、编号重复或电压下降单颗连接、编号表和电源读数。
关节向相反方向转动方向、零位或关节对应错误停止运动,对照校准表逐项核对。
腿部抖动或关节持续发热卡滞、零位偏差、目标与反馈不一致机械配合、目标角与实测角。
迈步时主控重启电源瞬间下降或供电余量不足动作时的舵机电源和主控电源。
仿真正常,实物容易跌倒姿态轴向、质量、校准或模型不匹配把实物记录与仿真设置逐项比较。

一次只修改一个条件,例如只调整一个关节的零位,然后重复相同测试。记录修改前后的差别,才能判断这次修改是否有效。电压、保护阈值或电流限制由教师处理,不能为消除报错而随意关闭保护。

10学习任务和实验记录

任务一 结构识别

画一张系统图,标出主控、运动 IMU、舵机和电源,用箭头表示信息和电能的方向。说明为什么基础行走需要关节与姿态反馈,以及嘴部舵机为什么没有包含在 14 个策略输出中。

任务二 单关节测试

使用教师准备的单舵机台架,在允许范围内设置三个不同目标角,记录每次的反馈角和运动现象。比较目标与反馈的差别。不要把改变舵机型号、供电或保护设置作为学生自行尝试的变量。

任务三 策略比较

选择两份兼容的策略,分别完成静止、低速前进、停止和转向测试。保持测试条件一致,每份策略至少重复三次,填写成功次数、异常现象和选择理由。测试次数较少时,应在结论中说明。

实验记录表

记录项目填写内容
姓名 小组 日期
实验目的
硬件 软件 模型版本
初始姿态与输入设置
目标值和实际观察
测试次数与结果
发现的问题和原因猜测
本次只修改的条件
复测现象与结论
照片 视频 日志的文件名依据实际保存的文件填写。

讨论问题

  1. 把速度命令设为零后,为什么舵机仍可能继续调整角度?
  2. 结构件比模型重时,会影响哪些运动条件?
  3. 某个实验成功一次、失败两次,可以怎样描述结果?
  4. 仿真能帮助排除哪些问题,哪些问题仍需要实物测量?