轮腿平衡机器人的物理建模、VMC 映射、LQR 增益拟合与上层控制文档。整体遵循 01_introduction.md 中的流程:抽象 → 建模 → 简化 → 求解 → 映射。
| 文档 | 内容 | 状态 |
|---|---|---|
| 01_introduction.md | 系统概述、控制层级、坐标与正方向约定 | 已完成 |
| 02_theoretical_mechanics.md | 约束、广义坐标、拉格朗日方程等理论力学基础 | 已完成 |
| 03_control_theory.md | LQR 相关控制理论基础 | 已完成 |
| 04_vmc.md | 五连杆 / 并联 / 偏置并联 VMC,足端力到关节力矩映射 | 已完成 |
符号与坐标系在 05_newton_euler_single.md 开头统一约定。三种建模由简到繁,受力分析与转动方程大部分可复用。
| 文档 | 内容 | 配套代码 |
|---|---|---|
| 05_newton_euler_single.md | 单腿建模(双腿合并) | code/modeling/single/ |
| 06_newton_euler_dual.md | 双腿建模(含 yaw 状态) | code/modeling/dual/ |
| 07_newton_euler_dual_with_offset.md | 双腿质心偏移建模(参考转轴、显式平衡点) | code/modeling/dual_offset/ |
| 文档 | 内容 | 状态 |
|---|---|---|
| 08_lagrangian_single.md | 单腿拉格朗日建模 | 待补充 |
| 09_lagrangian_dual.md | 双腿拉格朗日建模 | 待补充 |
| 10_lagrangian_dual_with_offset.md | 双腿质心偏移拉格朗日建模 | 待补充 |
| 文档 | 内容 | 状态 |
|---|---|---|
| 11_offground_and_jump.md | 支持力解算、离地检测与跳跃控制 | 已完成 |
| 12_odometry.md | 卡尔曼滤波里程计(IMU + 轮速融合) | 已完成 |
| 13_disturbance_observer.md | 扰动观测器 | 待补充 |
| 14_state_machine.md | 状态机 | 待补充 |
code/
├── modeling/
│ ├── params.m # 共享物理参数
│ ├── comparison.html # 三套牛顿-欧拉模型矩阵系数对比(浏览器打开)
│ ├── single/ # → 05_newton_euler_single.md
│ │ ├── model.m
│ │ ├── matrices.m
│ │ └── fit.m
│ ├── dual/ # → 06_newton_euler_dual.md
│ │ ├── model.m
│ │ ├── matrices.m
│ │ └── fit.m
│ └── dual_offset/ # → 07_newton_euler_dual_with_offset.md
│ ├── model.m
│ ├── matrices.m
│ └── fit.m
└── vmc/ # → 04_vmc.md
├── vmc_serial.hpp # class VMCParallel(偏置并联)
└── vmc_parallel.hpp # class VMCLink(五连杆)
注意:VMC 头文件名与类名交叉对应——
vmc_serial.hpp实现偏置并联VMCParallel,vmc_parallel.hpp实现五连杆VMCLink。阅读代码时以类注释与 04_vmc.md 章节为准。
三套建模共用同一接口与同一推导流程。
[A, B, thetall_eq, thetalr_eq] = matrices(ll, lr, thetall0, thetalr0, dll, dlr, Ill, Ilr)| 参数 | 含义 |
|---|---|
ll, lr
|
左右腿髋轴距离(轮轴 → 腿转轴,对应 md 中 |
thetall0, thetalr0
|
腿质心偏置角(仅 dual_offset 使用) |
dll, dlr
|
髋轴 → 腿质心距离(对应 md 中 |
Ill, Ilr
|
腿绕髋轴转动惯量 |
共享机体/轮子常数见 code/modeling/params.m(质量、惯量、$R_w$、$R_b$、$d_b$、$\theta_b^0$ 等)。
- 建立 完整非线性 动力学方程(md 中消力后的式子,不做小角度线性化)
- 计算平衡点
-
single/dual:竖直平衡$\theta = 0$ -
dual_offset:md 中的atan2显式解 +$\theta_b = \pi/4 - \theta_b^0/2$
-
- 在平衡点对
$q,\dot q,\ddot q,u$ 求 Jacobian →$M,D,K,H$ - 组装
$\dot x = Ax + Bu$ :$A$ 含$-M^{-1}K$ 、$-M^{-1}D$,$B$ 为$-M^{-1}H$
| 目录 | 状态维 | 控制输入 | 平衡点 |
|---|---|---|---|
single |
6:[x,\dot x,\theta_l,\dot\theta_l,\theta_b,\dot\theta_b]
|
[τ_w, τ_l] |
|
dual |
10:含 |
[τ_wl, τ_wr, τ_ll, τ_lr] |
|
dual_offset |
10:同 dual
|
同 dual
|
非零,随腿长与 |
-
single:单变量多项式$K(l) = a_1 + a_2 l + a_3 l^2$ -
dual/dual_offset:双变量$K(L,R) = a_1 + a_2 L + a_3 R + a_4 L^2 + a_5 LR + a_6 R^2$ ,并拟合thetall_eq/thetalr_eq
腿几何标定数据格式(每行):[l, θ_l⁰, d_l, I_l],范围约 0.13–0.40 m。
code/modeling/comparison.html 在浏览器中打开,可对比三套牛顿-欧拉模型在相同参数下的矩阵系数差异(KaTeX 渲染)。
将 LQR 虚拟摆力/力矩映射到髋关节电机,见 04_vmc.md。
| 文件 | 类 | 对应文档章节 |
|---|---|---|
vmc_parallel.hpp |
VMCLink |
§五连杆 VMC |
vmc_serial.hpp |
VMCParallel |
§偏置并联 VMC |
依赖工程侧 config_chassis.hpp(本仓库未包含)。
需要 MATLAB(Symbolic Math Toolbox)与 Control System Toolbox(lqr)。
重新生成 matrices.m:
cd code/modeling/single % 或 dual / dual_offset
run('model.m')LQR 增益拟合(输出 C 数组格式系数):
cd code/modeling/single % 或 dual / dual_offset
run('fit.m')01 概论
↓
02 理论力学、03 控制理论(按需)
↓
04 VMC ←→ code/vmc/*.hpp
↓
05 → 06 → 07 牛顿-欧拉建模 ←→ code/modeling/*/model.m
↓
fit.m 生成部署用增益表
↓
11 离地/跳跃 · 12 里程计 · 13/14(待补充)