信息科技学习资料
Microduck
机器人学习手册
介绍 Microduck 的机械结构、传感器和运动控制方法,说明零件准备、机械装配、舵机校准、仿真实验和整机测试的基本步骤。
1机器人简介
Microduck 是一种小型双足机器人,参考整机高度约 25 厘米、质量约 800 克。它用两条腿支撑和移动,头部、颈部和嘴部也能活动。行走、起身、拾取物体等动作,需要相应的控制策略和硬件配置。
这台机器人可以用来学习机械装配、传感器测量、程序控制和强化学习。例如,安装一条腿时需要检查关节轴的位置;让腿按要求转动时需要设置舵机;保持站立时还要读取机身姿态,持续调整动作。

学习内容
- 辨认主控板、舵机、传感器和电源,说明它们各自的作用。
- 理解关节角度、姿态反馈和运动控制之间的关系。
- 了解结构件制作、机械装配和校准的方法。
- 在仿真或教师指导的实物实验中记录现象,分析问题。
2机器人结构
Microduck 的主要结构包括躯干、左右腿和头颈。躯干固定主控、电源和部分传感器;关节把各段结构连接起来,使相邻部件能够按规定方向转动。
| 部位 | 舵机数量 | 主要作用 |
|---|---|---|
| 左腿 | 5 | 控制髋部、膝部和踝部,完成支撑与迈步。 |
| 右腿 | 5 | 与左腿配合,调整支撑和移动方向。 |
| 头部和颈部 | 4 | 控制颈部俯仰,以及头部俯仰、偏航和侧倾。 |
| 嘴部 | 1 | 控制嘴部开合,独立于行走策略。 |
| 合计 | 15 | 其中 14 个关节由运动策略控制,嘴部单独控制。 |
关节的转动方向
每条腿有三个髋部关节、一个膝关节和一个踝关节。髋部的三个转动方向分别称为偏航、侧倾和俯仰。偏航可以理解为向左或向右转,侧倾是向两侧倾斜,俯仰是向前或向后摆动。描述方向时,要以模型规定的坐标系为准。
舵机是一种能够接收位置命令的执行器。带反馈的总线舵机会报告当前位置等状态,程序可以检查关节是否到达目标。结构件决定关节的位置,轴承帮助转动,舵盘连接舵机输出轴与连杆。
传感器和主控
| 部件 | 获得或处理的信息 | 在本项目中的用途 |
|---|---|---|
| 运动 IMU | 角速度和姿态相关数据 | 帮助程序判断机身怎样转动、向哪边倾斜。 |
| 主控板 | 传感器数据和控制命令 | 运行程序与策略,向舵机发送目标。 |
| 摄像头 | 图像 | 用于视觉观察和后续识别实验。 |
| ToF 测距传感器 | 周围物体的距离 | 用于近距离空间感知。 |
| 电源与接口板 | 电能分配和设备通信 | 连接主控、舵机及传感器。 |
运动 IMU 需要固定在躯干上。它的安装位置和方向发生变化时,程序对姿态的解释也可能变化。基础站立和行走主要依靠关节反馈与运动 IMU,摄像头和测距功能可以在后续实验中加入。
3运动控制原理
机器人抬脚后,支撑位置和身体姿态会改变。只按固定时间播放一串关节角度,难以处理地面摩擦、安装误差等变化。控制程序需要反复读取状态,并根据新状态调整后续动作。
- 1读取机身和关节状态
- 2根据状态与命令计算动作
- 3向舵机发送目标
- 4读取动作后的新状态
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 文件描述仿真中的刚体、关节、质量和碰撞等信息。能在屏幕中显示的网格,不一定已经具备正确的孔位、壁厚和制造公差。
打印前的检查
- 核对零件版本和左右方向,把文件名与零件清单对应。模型导入后检查单位,防止毫米与米混用。
- 测量实际舵机、轴承和紧固件,检查安装空间、孔位、轴线及工具能否伸入。
- 先打印一个舵机座或连接件,试装合格后再打印其他承力件。
- 根据材料和受力方向安排打印方向、壁厚与支撑。记录设置和试装结果。
- 去除支撑后检查裂纹、孔位与平整度。装配前确认没有会碰到线缆或转轴的毛刺。
材料选择要考虑受力、温度和耐冲击要求。尺寸验证件可以先用便于加工的材料;承力结构和柔性脚垫按对应设计选择。换材料或加厚外壳可能增加重量,也可能改变足底摩擦,需要在后续测试中记录。
装配步骤
- 先给零件编号,分开放置左右腿、躯干和头颈部件。按清单准备紧固件。
- 在教师指导下完成舵机编号和初步零位确认,再安装舵盘与连杆。避免把偏转的舵机当成零位装入。
- 把一条腿作为独立组件试装,核对足部、小腿、大腿与髋部的连接关系,检查转轴是否对应。
- 按所用装配图的具体顺序安装另一条腿和躯干。螺钉长度、穿轴和锁紧顺序以该版本结构为准。
- 安装颈部、头部和嘴部机构,检查各关节的活动空间。
- 布置线束,给活动关节留出弯曲余量,固定不应移动的部分,避免拉扯或夹线。
- 称量各组件和整机,记录电池等部件的位置,为对照仿真模型保留数据。
装配检查由教师按舵机允许的方式进行,不能强扭输出轴。只有确认没有结构干涉、松动和夹线后,才进入通电检查。爆炸图可以帮助辨认部件关系,具体拆装方向仍要结合连接结构判断。
6电路连接和关节校准
区分供电与通信
连接前要区分电池电压、主控输入电压、舵机工作电压和通信信号电平。接口板给主控提供稳压电源,并不表示每个舵机插口都经过独立降压。各接口按接线图核对电源、地线和数据线,不能只看插头能否插入。
XL330 方案采用半双工总线,同一时刻的数据传输方向受到控制。普通串口转接器的两根收发线直接并接,不能代替经过验证的总线接口。每个设备还需要唯一编号,程序才能区分它们。
单舵机测试
- 断开电源,只连接一颗已确认型号的舵机、兼容调试器和受限流保护的电源。由教师检查极性和电压。
- 上电后先读取型号、编号、位置等信息,确认通信正常。
- 按所用方案设置唯一编号、波特率和工作模式,在关闭扭矩等规定条件下修改配置。
- 固定舵机,在低负载条件下做小角度运动,检查正方向、反馈角度、声音和温升。
- 保存配置并贴上标签,逐颗完成后再连接成总线,检查是否存在重复编号。
校准参考姿态
参考姿态是控制程序计算目标角度的基准,通常称为 home pose。舵机编码器的零值、连杆的安装位置和机器人站立姿态不能直接视为同一件事。安装误差会使程序认为关节已到目标,而实际连杆仍然偏斜。
- 将整机固定在支架上,确认编号、反馈和 IMU 数据正常。
- 逐个检查关节的正方向、零位和允许转动范围,对照模型填写校准表。
- 以小范围、低速方式检查左右腿和头颈,确认没有反向运动或结构干涉。
- 由教师控制整机缓慢回到参考姿态,发现碰撞或异常立即停止。
- 保存校准参数。解除扭矩前,先让支架承住机器人,防止失去支撑后跌落。
舵机调试工具与整机控制程序应轮流使用同一条总线,避免两个程序同时写入命令。IMU 应连续更新,机身向前或向侧面倾斜时,读数的方向要与模型约定一致。
7仿真实验
仿真程序在计算机中建立机器人、地面和接触关系,并计算关节运动。它可以用来观察动作、检查关节映射和比较策略。普通计算机可以承担单个机器人的部分 CPU 仿真任务;大规模并行训练通常需要支持相应计算的显卡。
实验准备
教师课前准备并测试本地软件环境、机器人模型和兼容的行走策略,向学生提供启动方法和操作表。课堂实验使用同一版本。学生记录计算机、模型名称、策略文件和初始设置,实验时不需要打开外部网站。
实验步骤
- 启动仿真,恢复规定的初始姿态。把前后、侧向和转向速度命令全部设为零。
- 观察 5 秒,记录机器人是否保持站立,足部是否持续移动。
- 在教师给定的范围内设置低速前进,例如 0.10 米每秒。观察 10 秒,记录移动方向和稳定情况。
- 把速度命令恢复为零,观察停止过程,记录是否继续漂移或失去平衡。
- 分别测试后退、侧移和转向。每次改变一种命令,测试后恢复初始状态。
- 按照同一顺序重复实验,保存记录;有条件时同时保存视频和日志。
| 测试 | 输入设置 | 记录内容 |
|---|---|---|
| 静止 | 速度命令为零,观察 5 秒 | 是否站稳,是否摇晃或持续踏步。 |
| 前进 | 低速前进,观察 10 秒 | 移动方向、实际速度、打滑或跌倒。 |
| 停止 | 从前进改为零速度 | 停止所需时间、停止距离和姿态。 |
| 转向 | 只设置转向命令 | 方向是否正确,是否明显侧移。 |
| 重复测试 | 恢复相同初始状态 | 同样设置下,现象是否一致。 |
比较两份策略
比较策略 A 和 B 时,使用相同模型、起始姿态、命令、地面和测试时长。每份策略重复测试多次,记录成功次数与总次数。把一次成功的视频当成稳定表现,容易漏掉偶发故障。
8强化学习与模型部署
强化学习通过多次尝试和结果评分来调整策略。在 Microduck 的训练中,虚拟机器人根据状态做动作,物理仿真计算动作后的结果,训练程序再根据评分更新神经网络。重复这个过程后,策略可能逐渐形成可用步态。
| 训练中的概念 | 本项目中的含义 |
|---|---|
| 环境 | 虚拟机器人及地面、摩擦和接触等条件。 |
| 观测 | 机身与关节状态、上一动作和控制命令。 |
| 动作 | 14 个关节的目标偏移。 |
| 奖励与代价 | 评价速度跟随、稳定、打滑、碰撞和动作变化等表现。 |
| 策略 | 根据观测计算动作的神经网络。 |
训练方法
PPO 的中文名称是近端策略优化。它利用采集到的运动数据更新策略,并限制每轮改变的幅度,以降低一次更新使动作明显变差的风险。训练中用于做动作决定的网络称为 Actor,用来估计状态价值的网络称为 Critic。部署运动策略时主要使用 Actor。
评分设计会影响机器人怎样走路。只重视速度,可能出现摆动过大或碰撞;过度限制动作变化,也可能使机器人不愿抬脚。因此要同时观察训练曲线和实际运动,不能仅按总分选择模型。
训练安排
- 先用少量环境、较少轮数检查程序能否运行、日志能否保存和数值是否异常。
- 逐步扩大环境数,检查显存、计算速度与训练稳定性,再确定正式规模。
- 保留不同阶段的模型,用同一组场景比较站立、前进、转向和停止表现。
- 使用配套导出程序生成 ONNX 模型,确认观测归一化、输入输出和关节顺序完整保留。
- 先用导出模型做仿真复测,再由教师安排真机验证。
训练过程中保存的 checkpoint 通常包含继续训练所需的状态。ONNX 文件用于推理部署。能成功读取模型文件,只能证明文件和部分接口可以工作,运动能力仍需要实验检查。训练耗时取决于设备和配置,不规定所有同学都要从头训练。
仿真与实物的差别
实物的重量、质心、足底摩擦、齿轮回差和通信延迟不可能与理想模型完全相同。训练中可以在一定范围内改变这些条件,这种方法称为域随机化。更换舵机、明显增加重量或改变电池位置后,应重新测量并评估模型,必要时重新训练。
9整机测试和故障排查
整机测试在教师监督下进行。实验区铺设软垫,准备固定支架、保护绳和独立断电方式。先检查单个部件,再逐步增加连接数量和承重,出现异常时停在当前阶段处理。
| 顺序 | 操作 | 进入下一步前检查 |
|---|---|---|
| 1 | 单舵机低负载运动 | 编号、正方向、反馈、温升正常。 |
| 2 | 一条腿固定测试 | 各关节对应正确,没有干涉或夹线。 |
| 3 | 整机连接并读取状态 | 所有设备编号唯一,状态连续更新。 |
| 4 | 支架上回参考姿态 | 姿态正确,动作没有撞到结构限位。 |
| 5 | 外部保护下站立 | 供电稳定,姿态反馈正常。 |
| 6 | 短时低速移动并停止 | 能响应命令,记录动作与异常。 |
脚离地运行可以发现明显的动作映射或幅度错误,但缺少地面接触,不能据此判断站立和平衡性能。出现异常发热、异响、卡滞、反向运动或供电不稳时,先停止实验并由教师检查。不要带着故障增加速度或动作幅度。
常见问题
| 现象 | 可能原因 | 首先检查 |
|---|---|---|
| 所有舵机都无法读取 | 未供电、接口接错或通信口被其他程序占用 | 电源、电路连接和端口占用。 |
| 一颗舵机偶尔掉线 | 插头松动、编号重复或电压下降 | 单颗连接、编号表和电源读数。 |
| 关节向相反方向转动 | 方向、零位或关节对应错误 | 停止运动,对照校准表逐项核对。 |
| 腿部抖动或关节持续发热 | 卡滞、零位偏差、目标与反馈不一致 | 机械配合、目标角与实测角。 |
| 迈步时主控重启 | 电源瞬间下降或供电余量不足 | 动作时的舵机电源和主控电源。 |
| 仿真正常,实物容易跌倒 | 姿态轴向、质量、校准或模型不匹配 | 把实物记录与仿真设置逐项比较。 |
一次只修改一个条件,例如只调整一个关节的零位,然后重复相同测试。记录修改前后的差别,才能判断这次修改是否有效。电压、保护阈值或电流限制由教师处理,不能为消除报错而随意关闭保护。
10学习任务和实验记录
任务一 结构识别
画一张系统图,标出主控、运动 IMU、舵机和电源,用箭头表示信息和电能的方向。说明为什么基础行走需要关节与姿态反馈,以及嘴部舵机为什么没有包含在 14 个策略输出中。
任务二 单关节测试
使用教师准备的单舵机台架,在允许范围内设置三个不同目标角,记录每次的反馈角和运动现象。比较目标与反馈的差别。不要把改变舵机型号、供电或保护设置作为学生自行尝试的变量。
任务三 策略比较
选择两份兼容的策略,分别完成静止、低速前进、停止和转向测试。保持测试条件一致,每份策略至少重复三次,填写成功次数、异常现象和选择理由。测试次数较少时,应在结论中说明。
实验记录表
| 记录项目 | 填写内容 |
|---|---|
| 姓名 小组 日期 | |
| 实验目的 | |
| 硬件 软件 模型版本 | |
| 初始姿态与输入设置 | |
| 目标值和实际观察 | |
| 测试次数与结果 | |
| 发现的问题和原因猜测 | |
| 本次只修改的条件 | |
| 复测现象与结论 | |
| 照片 视频 日志的文件名 | 依据实际保存的文件填写。 |
讨论问题
- 把速度命令设为零后,为什么舵机仍可能继续调整角度?
- 结构件比模型重时,会影响哪些运动条件?
- 某个实验成功一次、失败两次,可以怎样描述结果?
- 仿真能帮助排除哪些问题,哪些问题仍需要实物测量?