涵盖机器人常用传感器、编码器、以及现代控制方法(WBC、LQR、MPC)。
惯性传感器(IMU)
IMU(Inertial Measurement Unit)测量物体的角速度和加速度,通过积分得到姿态、速度和位置。
组成
- 加速度计:测量线加速度(含重力分量)
- 陀螺仪:测量角速度
- 磁力计(部分 IMU 包含):测量地磁场,用于修正航向角
姿态解算
从角速度积分得到姿态角(欧拉角/四元数),但纯积分存在漂移。通常使用互补滤波或卡尔曼滤波融合加速度计和陀螺仪数据。
编码器
编码器测量电机转动角度和速度,分为:
- 增量式:输出脉冲信号,需要累计计数(断电后丢失位置)
- 绝对式:直接输出绝对角度值(断电不丢失)
编码器数据通过硬件接口(CAN/串口)读取,经过减速比换算得到关节实际角度。
传感器数据分析
机器人系统中常见传感器数据处理:
- 低通滤波:去除高频噪声
- 移动平均滤波:平滑数据,减少毛刺
- 中值滤波:去除脉冲噪声
- 卡尔曼滤波:多传感器融合的最优估计
现代控制方法
LQR(线性二次型调节器)
适用于线性系统的最优控制。通过求解 Riccati 方程得到状态反馈增益矩阵 K,使二次型代价函数最小。
$$u = -Kx$$
- 需要系统的线性化模型
- 参数通过 Q(状态权重)和 R(控制权重)矩阵调节
MPC(模型预测控制)
在每个采样时刻求解有限时域内的优化问题,只执行第一步控制量,下一时刻重新优化。
- 能处理约束(输入/状态限制)
- 计算量大,对实时性有要求
- 常用于轨迹跟踪、自动驾驶
| LQR | MPC | |
|---|---|---|
| 优化方式 | 离线求解 Riccati 方程 | 在线求解优化问题 |
| 约束处理 | 不能直接处理 | 天然支持 |
| 计算量 | 小 | 大 |
| 适用场景 | 调节、镇定 | 轨迹跟踪、预测 |
WBC(全身控制)
Whole-Body Control 将机器人的多个任务(如末端位姿、质心、姿态等)统一在一个优化框架中求解。
核心思想:将任务按优先级排列,低优先级任务在高优先级任务的零空间中执行,互不干扰。
$$\dot{q} = J_1^+ \dot{x}_1 + (I - J_1^+ J_1) J_2^+ \dot{x}_2$$
- $J_i$:各任务的雅可比矩阵
- $J^+$:伪逆
- $(I - J_1^+J_1)$:任务 1 的零空间投影
WBC 在足式机器人(四足、人形)中应用广泛,能同时处理平衡、行走、操作等多个目标。
控制器插件机制
在 ROS 中,控制器以插件形式注册和加载:
1 |
|
通过 pluginlib 动态加载,配合 ros_control 实现热插拔式控制器管理。