执行器决定了控制器能做什么:准直驱(QDD)电机力矩透明、带宽高,是足式与灵巧手的主流;谐波减速器精度高但摩擦大;串联弹性执行器(SEA)安全但带宽低。搭配 IMU、编码器、力 / 力矩传感器、相机与合适的计算平台,再从低成本开源平台起步动手。
核心要点
- 电机与传动:BLDC + FOC、减速比与反射惯量、力矩透明性;QDD / 谐波 / 行星 / SEA 的取舍
- 执行器控制模式:位置 / 速度 / 力矩 / 阻抗(PD + 前馈力矩);电流环 → 力矩的映射与限制
- 传感器:绝对 / 增量编码器、IMU、关节力矩、六维力、触觉、相机(RGB-D、事件相机)
- 计算:实时 MCU / 电机驱动板、嵌入式 Linux(Jetson)、工作站 GPU 推理;功耗与散热
- 低成本入门平台:SO-100 / Koch 机械臂(LeRobot)、ALOHA、Unitree Go2 / G1、Crazyflie 四旋翼、开源执行器
自测:学完应该能回答
- 为什么高减速比会让执行器「感觉不到」外力?反射惯量与减速比的关系?
- 力矩控制与位置控制的执行器,各自适合什么控制算法?
ROS 2 提供节点、话题、服务、参数与工具链(rviz、rosbag),ros2_control 提供硬件抽象与控制器管理;kHz 级控制循环需要实时内核(PREEMPT_RT)、线程优先级与内存锁定;与电机驱动的通信走 EtherCAT / CAN-FD,进程间用 DDS / ZeroMQ / LCM / 共享内存。理解每一层的延迟与抖动来源。
核心要点
- ROS 2 基本概念与工具;QoS、执行器(executor)与回调;ros2_control 的硬件接口与控制器链
- 实时性:PREEMPT_RT、SCHED_FIFO、CPU 隔离、内存锁定;测量循环抖动(cyclictest)
- 总线:EtherCAT(分布式时钟)、CAN / CAN-FD、串口;驱动板固件与主控的分工
- 中间件选择:DDS vs ZeroMQ / LCM / 共享内存;何时绕开 ROS 走直连
- 工程实践:容器化、配置管理、启动与监控、多机时间同步(PTP)
自测:学完应该能回答
- 为什么 1 kHz 控制循环里不该做内存分配和日志 IO?
- EtherCAT 的分布式时钟解决了什么问题?
真机控制是一座分层塔:高层规划(1–10 Hz)→ MPC / 策略(50–500 Hz)→ 全身 / 关节控制(1 kHz)→ 电机电流环(10–40 kHz)。每一层的频率、接口和失效行为都要设计;状态机 / 行为树组织模式切换;延迟补偿与时间戳对齐决定了整个系统能否稳定。
核心要点
- 频率分层与接口约定:上层给什么(轨迹 / 目标 / 力矩前馈 + PD 增益),下层如何插值与保持
- 延迟预算:感知 → 估计 → 决策 → 执行的端到端延迟,时间戳、外推与补偿
- RL 策略部署的典型接口:策略输出目标关节角,关节 PD 在 kHz 级执行;增益与仿真一致
- 模式管理:状态机 / 行为树(站起、行走、跌倒恢复、急停),平滑切换与混合
- 失效行为设计:通信超时、传感器丢失、求解器不收敛时怎么办
自测:学完应该能回答
- 为什么 RL 策略通常以 50 Hz 输出目标关节角而不是直接输出 1 kHz 力矩?
- 如果状态估计延迟 20 ms,MPC 应该如何补偿?
把 PyTorch 里训练的策略搬到机器人上:导出为 ONNX / TorchScript,用 ONNX Runtime / TensorRT 在 CPU 或 Jetson 上以稳定延迟推理;观测管线(归一化、历史堆叠、传感器对齐)必须与训练时逐位一致;VLA 等大模型需要异步推理、动作分块与远程推理服务。
核心要点
- 模型导出与推理引擎:ONNX / TorchScript / TensorRT;量化与延迟测量;确定性与 warm-up
- 观测一致性:归一化统计、历史缓冲、单位与坐标系、传感器时间对齐——最常见的部署 bug
- 动作后处理:限幅、平滑 / 低通、动作分块与时间集成、与 PD 增益的匹配
- 大模型策略(VLA、扩散策略):推理延迟与动作分块、异步执行、云端 / 边缘推理服务
- 监控与回滚:推理超时检测、置信度 / OOD 检测、切换到保守控制器
自测:学完应该能回答
- 训练时观测归一化用的均值 / 方差在部署时弄错会发生什么?如何自检?
- 动作分块为什么能缓解大模型推理延迟?它的代价是什么?
真机实验的成败往往取决于「非算法」环节:机器人有没有标定好、有没有硬件急停与软件安全滤波、数据有没有完整记录、实验能不能复现。把这些做成流程,才能把研究时间花在算法上。
核心要点
- 标定流程:关节零位与运动学标定、相机内外参与手眼标定、IMU 与力传感器零偏、定期复检
- 安全分层:硬件急停与限流、固件限位、软件关节 / 速度 / 力矩限幅、安全滤波器(CBF)、看门狗与超时
- 分级测试:吊挂 / 支架 → 低增益 → 受限空间 → 全功能;每次改动只改一个变量
- 日志与可视化:rosbag / MCAP、Foxglove、rerun;记录一切(观测、动作、时间戳、版本号)
- 实验方法:预注册指标、多次重复、失败模式分类、硬件维护与备件
自测:学完应该能回答
- 一个安全滤波器应该放在控制塔的哪一层?为什么?
- 为什么日志里必须记录代码 / 模型版本与配置哈希?