robot_manipulation

第8章:轨迹规划与优化

本章概览

轨迹规划是机器人运动控制的核心问题之一,它决定了机器人如何从初始状态平滑、高效地运动到目标状态。对于轮足机械臂系统,轨迹规划不仅要考虑运动学约束,还必须满足动力学限制、避障需求以及任务特定的优化目标。本章将深入探讨关节空间与笛卡尔空间规划的权衡、时间与能量优化的数学基础、动力学约束的处理方法,以及实时系统中的轨迹修正策略。通过学习本章内容,读者将掌握现代轨迹规划算法的理论基础和工程实现技巧。

8.1 关节空间vs笛卡尔空间规划

8.1.1 规划空间的选择依据

轨迹规划的第一个关键决策是选择在哪个空间进行规划。关节空间规划直接在机器人的配置空间中工作,而笛卡尔空间规划则在任务空间(通常是3D位置和姿态)中进行。这个选择深刻影响着算法复杂度、计算效率和轨迹质量。

关节空间规划的优势:

笛卡尔空间规划的优势:

8.1.2 数学表述与转换

设机器人有$n$个自由度,关节空间轨迹表示为$q(t) \in \mathbb{R}^n$,笛卡尔空间轨迹表示为$x(t) \in SE(3)$。两者通过正运动学映射关联:

\[x(t) = f_{kin}(q(t))\]

笛卡尔速度与关节速度的关系由雅可比矩阵描述:

\[\dot{x} = J(q)\dot{q}\]

其中$J(q) = \frac{\partial f_{kin}}{\partial q}$是位置依赖的雅可比矩阵。

在笛卡尔空间规划时,需要通过逆运动学或雅可比伪逆计算关节空间轨迹:

\[\dot{q} = J^{\dagger}(q)\dot{x} + (I - J^{\dagger}J)z\]

这里$J^{\dagger} = J^T(JJ^T)^{-1}$是Moore-Penrose伪逆,$z$是零空间速度,可用于优化次要目标。

8.1.3 混合规划策略

实践中常采用混合策略:在笛卡尔空间定义关键路径点,然后在关节空间进行插值。这种方法结合了两者优势:

笛卡尔空间路径点:x₀ → x₁ → x₂ → ... → xₙ
        ↓ IK
关节空间配置:q₀ → q₁ → q₂ → ... → qₙ
        ↓ 插值
连续轨迹:q(t), t ∈ [0, T]

路径点生成策略:

在实际应用中,路径点的选择直接影响轨迹质量。密集的路径点能更好地控制笛卡尔路径形状,但增加了逆运动学求解的计算负担。稀疏的路径点计算高效,但可能导致实际路径偏离期望。工程实践中常用的自适应采样策略基于路径曲率:

\[\Delta s = \min\left(\Delta s_{max}, \frac{\epsilon}{\kappa(s)}\right)\]

其中$\kappa(s)$是路径曲率,$\epsilon$是允许的弦高误差。在直线段使用大步长,在曲线段自动加密。

逆运动学求解的连续性:

多解性是逆运动学的固有特征。对于冗余机械臂,每个笛卡尔位置可能对应无穷多个关节配置。为保证轨迹连续性,需要在相邻路径点间选择”最近”的解:

\[q_{i+1} = \arg\min_{q \in IK(x_{i+1})} ||q - q_i||_W\]

其中$W$是权重矩阵,反映各关节的运动代价。对于非冗余机械臂,可能存在多个离散解(如肘部向上/向下),需要通过配置空间的连通性分析来选择。

插值方法的选择:

关节空间插值决定了轨迹的动力学特性。常用方法包括:

  1. 线性插值:计算简单但加速度不连续,会激发振动
  2. 三次样条:保证加速度连续,但可能产生过冲
  3. 五次多项式:可指定端点的位置、速度和加速度
  4. B样条:局部支撑性好,便于局部修改
  5. 贝塞尔曲线:几何直观,控制点即为路径形状

对于高速运动,推荐使用保证加加速度(jerk)连续的七次多项式或S型速度曲线,减少机械冲击。

8.2 时间最优vs能量最优轨迹

8.2.1 时间最优轨迹规划

时间最优问题可表述为:

\[\min_{q(t)} T\]

subject to: \(q(0) = q_{start}, \quad q(T) = q_{goal}\) \(|\dot{q}_i(t)| \leq v_{max,i}, \quad \forall i, t\) \(|\ddot{q}_i(t)| \leq a_{max,i}, \quad \forall i, t\)

经典的解决方法是时间缩放法。首先规划几何路径$s \mapsto q(s)$,$s \in [0,1]$,然后优化时间参数化$s(t)$:

\(q(t) = q(s(t))\) \(\dot{q} = \frac{dq}{ds}\dot{s}\) \(\ddot{q} = \frac{dq}{ds}\ddot{s} + \frac{d^2q}{ds^2}\dot{s}^2\)

速度约束转化为: \(|\frac{dq_i}{ds}|\dot{s} \leq v_{max,i}\)

这导出最大允许速度: \(\dot{s}_{max}(s) = \min_i \frac{v_{max,i}}{|\frac{dq_i}{ds}|}\)

8.2.2 能量最优轨迹

能量优化目标通常包括机械功和电能消耗:

\[E = \int_0^T \sum_i \tau_i(t)\dot{q}_i(t) dt\]

其中$\tau_i$是关节扭矩,由动力学方程确定:

\[\tau = M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q)\]

能量最优问题的拉格朗日函数:

\[L = \dot{q}^T\tau + \lambda^T(constraints)\]

通过变分法可得出最优性条件(Euler-Lagrange方程)。实践中常用的简化目标是最小化加速度平方和:

\[\min \int_0^T ||\ddot{q}(t)||^2 dt\]

这产生平滑的轨迹,间接降低能耗。

8.2.3 多目标优化

实际应用中常需平衡时间和能量:

\[J = \alpha T + \beta \int_0^T ||\tau||^2 dt + \gamma \int_0^T ||\dddot{q}||^2 dt\]

其中第三项(jerk)用于限制轨迹平滑度,减少机械冲击。

帕累托最优前沿:

多目标优化的本质是在相互冲突的目标间寻找平衡。帕累托最优解集形成一个前沿,任何解都无法在不恶化其他目标的情况下改进某个目标。对于时间-能量权衡,典型的帕累托前沿呈现凸曲线形状:

生成帕累托前沿的方法包括加权和法、ε-约束法和进化算法。加权和法通过改变权重系数扫描前沿:

\[J(\lambda) = \lambda T + (1-\lambda)E, \quad \lambda \in [0,1]\]

但这种方法无法获得非凸部分的解。ε-约束法通过将一个目标作为约束来克服这个限制:

\[\min T \quad \text{s.t.} \quad E \leq \epsilon\]

任务相关的权重选择:

权重系数的选择应根据具体应用场景:

  1. 拣选作业:时间优先,$\alpha = 0.8, \beta = 0.2$
  2. 精密装配:平滑度优先,$\gamma = 0.6, \alpha = 0.2$
  3. 移动平台:能量优先(电池限制),$\beta = 0.7, \alpha = 0.3$
  4. 协作场景:安全优先,增加速度惩罚项

实践中可通过机器学习从历史数据中学习最优权重,或使用自适应权重根据当前系统状态(如电池电量)动态调整。

层次化优化:

对于复杂的多目标问题,层次化方法更实用:

  1. 第一层:满足硬约束(碰撞避免、关节限位)
  2. 第二层:优化主要目标(如时间)
  3. 第三层:在不影响上层的前提下优化次要目标(如能量)

这种方法避免了权重选择的困难,且物理意义明确。

8.3 动力学约束下的轨迹优化

8.3.1 完整动力学模型集成

在高速运动或重载操作中,必须考虑完整的动力学约束。机器人动力学方程:

\[M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q) + F_{friction}(\dot{q}) = \tau\]

其中:

扭矩约束: \(\tau_{min} \leq \tau(t) \leq \tau_{max}\)

功率约束(考虑电机特性): \(|\tau_i \cdot \dot{q}_i| \leq P_{max,i}\)

8.3.2 直接配点法(Direct Collocation)

将连续轨迹离散化为N个配点:

\[q_k = q(t_k), \quad k = 0, 1, ..., N\]

动力学约束在每个配点处强制满足:

\[M(q_k)\frac{q_{k+1} - 2q_k + q_{k-1}}{\Delta t^2} + C(q_k, \frac{q_{k+1} - q_{k-1}}{2\Delta t})\frac{q_{k+1} - q_{k-1}}{2\Delta t} + G(q_k) = \tau_k\]

优化问题变为:

\[\min_{q_0,...,q_N, \tau_0,...,\tau_N} \sum_{k=0}^{N} L(q_k, \dot{q}_k, \tau_k)\]

这是一个大规模非线性规划(NLP)问题,可用IPOPT、SNOPT等求解器处理。

8.3.3 多重打靶法(Multiple Shooting)

将轨迹分段,每段内进行前向积分:

段1: q₀ → integrate → q₁'
段2: q₁ → integrate → q₂'
...

添加连续性约束: \(q_{i+1} = q_i', \quad i = 0, ..., N-1\)

相比直接配点法,多重打靶法:

8.3.4 轨迹优化的凸化技术

原始的非凸问题可通过以下技术部分凸化:

1. 序列凸规划(SCP): 在当前轨迹$q^{(i)}$附近线性化:

\[M(q) \approx M(q^{(i)}) + \sum_j \frac{\partial M}{\partial q_j}|_{q^{(i)}}(q_j - q_j^{(i)})\]

序列凸规划的关键在于迭代求解一系列凸近似问题。每次迭代解决:

\[\min_{q,\tau} J(q,\tau) \quad \text{s.t. } \text{linearized constraints}\]
收敛条件通常基于解的变化量:$   q^{(i+1)} - q^{(i)}   < \epsilon$。为加速收敛,可使用拟牛顿更新估计海森矩阵,或采用内点法的暖启动策略。SCP的收敛性依赖于初始猜测的质量,实践中常用简化模型(如忽略动力学的运动学轨迹)生成初值。

2. 信赖域方法: 添加信赖域约束确保线性化有效:

\[||q - q^{(i)}||_{\infty} \leq \delta\]

信赖域半径$\delta$的自适应调整至关重要。定义模型预测质量指标:

\[\rho = \frac{J(q^{(i)}) - J(q^{(i+1)})}{J_{model}(q^{(i)}) - J_{model}(q^{(i+1)})}\]

其中$J_{model}$是线性化模型的目标函数。根据$\rho$调整信赖域:

这种自适应机制在非线性强的区域自动减小步长,在近似良好的区域加速收敛。

3. 凸松弛: 将非凸约束松弛为凸约束。例如,碰撞避免约束:

\[d(q) \geq d_{safe}\]

可松弛为: \(d(q^{(i)}) + \nabla d(q^{(i)})^T(q - q^{(i)}) \geq d_{safe}\)

但简单的线性化可能过于保守。更精确的凸松弛技术包括:

二阶锥松弛(SOCP): 对于球形障碍物,精确的避碰约束是: \(||p(q) - p_{obs}|| \geq r\)

可reformulate为二阶锥约束: \(\begin{bmatrix} r \\ p(q) - p_{obs} \end{bmatrix} \in \mathcal{K}_{SOC}\)

其中$\mathcal{K}_{SOC}$是二阶锥。

McCormick松弛: 对于双线性项$xy$,在区间$[x_L, x_U] \times [y_L, y_U]$内: \(w \geq x_Ly + xy_L - x_Ly_L\) \(w \geq x_Uy + xy_U - x_Uy_U\) \(w \leq x_Uy + xy_L - x_Uy_L\) \(w \leq x_Ly + xy_U - x_Ly_U\)

这将非凸的双线性约束转化为线性约束系统。

8.4 实时轨迹修正与重规划

8.4.1 模型预测控制框架

实时轨迹修正常采用模型预测控制(MPC)框架:

  1. 在时刻$t$,测量当前状态$(q_t, \dot{q}_t)$
  2. 求解有限时域优化问题: \(\min_{u_{t:t+H}} \sum_{k=0}^{H} L(x_{t+k}, u_{t+k})\)
  3. 执行第一个控制动作$u_t$
  4. 在下一时刻重复

预测时域$H$的选择需要平衡:

8.4.2 轨迹修正的触发机制

基于误差的触发: \(||q_{actual} - q_{planned}|| > \epsilon_{position}\) \(||\dot{q}_{actual} - \dot{q}_{planned}|| > \epsilon_{velocity}\)

基于预测的触发: 预测未来违反约束的概率: \(P(violation|current\_state) > threshold\)

事件驱动触发:

8.4.3 增量式重规划

完全重规划计算代价高,增量式方法更高效:

1. 局部修正: 只修改违反约束的轨迹段:

\[q_{new}(t) = \begin{cases} q_{old}(t), & t \notin [t_{start}, t_{end}] \\ q_{corrected}(t), & t \in [t_{start}, t_{end}] \end{cases}\]

2. 弹性带方法: 将轨迹建模为弹性带,通过虚拟力场变形:

\[F_{total} = F_{goal} + F_{obstacle} + F_{smooth}\]

3. 梯度优化: 沿约束违反的负梯度方向调整:

\[q^{(k+1)} = q^{(k)} - \alpha \nabla_{q} V(q)\]

其中$V(q)$是违反度量函数。

8.4.4 计算加速技术

1. 热启动: 使用上一时刻的解作为初始猜测:

\[q_{init}^{t+1} = shift(q_{solution}^t)\]

热启动的效果取决于系统动态和采样频率。对于1kHz的控制频率,相邻时刻的最优解通常非常接近,热启动可将求解迭代次数减少50-80%。具体实现时,需要处理时域滑动:

新的初始猜测 = [q₁, q₂, ..., qₙ, qₙ](丢弃q₀,复制qₙ)

对于周期性任务,可维护一个解的库,根据当前状态选择最接近的历史解作为初值。

2. 并行化:

并行化的粒度选择影响效率。细粒度并行(如矩阵运算)适合GPU,粗粒度并行(如多起点优化)适合多核CPU。对于轨迹优化,有效的并行化策略包括:

空间分解:将机器人分解为多个子系统(如基座、手臂),并行优化后通过拉格朗日乘子耦合:

\[L = \sum_i J_i(q_i) + \lambda^T(c_{couple}(q_1, q_2, ...))\]

时间分解:将长时域问题分解为多个短时域子问题,使用ADMM(交替方向乘子法)协调:

\[q^{k+1}_i = \arg\min(J_i(q_i) + \frac{\rho}{2}||q_i - z^k + u^k_i||^2)\]

场景并行:同时优化多个可能场景(如障碍物位置不确定),选择鲁棒解。

3. 自适应分辨率: 远离当前时刻的轨迹使用粗分辨率:

\[\Delta t(k) = \Delta t_{min} \cdot (1 + \beta \cdot k)\]

这种非均匀离散化在保持近期精度的同时减少了决策变量数量。更高级的自适应策略包括:

基于误差的细化:监控离散化误差,在误差大的区域自动加密:

\[e_k = ||q(t_k) - \frac{q_{k-1} + q_{k+1}}{2}||\]

若$e_k > \epsilon$,在$[t_{k-1}, t_{k+1}]$插入新节点。

多重网格方法:先在粗网格求解获得大致轨迹,然后逐级细化:

  1. 粗网格(N=10):快速获得全局形状
  2. 中网格(N=50):优化动力学特性
  3. 细网格(N=200):精确满足约束

每级使用上级结果插值作为初值,总计算时间often少于直接细网格求解。

4. 问题简化技术:

模型降阶:在远离奇异性和约束边界时,使用简化动力学模型:

\[M_{reduced}\ddot{q} + G_{reduced} = \tau\]

忽略科氏力、摩擦等次要项,误差通过反馈控制补偿。

约束聚合:将多个相似约束合并为单个保守约束:

\[\max_i(g_i(q)) \leq 0 \quad \text{代替} \quad g_i(q) \leq 0, \forall i\]

稀疏性利用:轨迹优化的KKT系统通常具有带状稀疏结构:

\[\begin{bmatrix} H & & & G^T \\ & H & & G^T \\ & & \ddots & \vdots \\ G & G & \cdots & 0 \end{bmatrix}\]

使用专门的稀疏求解器(如MA57)可将复杂度从$O(N^3)$降至$O(N)$。

案例研究:国际空间站加拿大臂2(Canadarm2)的轨迹规划

背景与挑战

Canadarm2是国际空间站(ISS)上的关键机械臂系统,长17.6米,7个自由度,用于空间站组装、载荷操作和宇航员辅助。其轨迹规划面临独特挑战:

  1. 微重力环境:无重力项$G(q) = 0$,但惯性效应显著
  2. 柔性结构:长臂导致显著弹性变形,需考虑振动抑制
  3. 功率限制:依赖太阳能,峰值功率仅2kW
  4. 安全约束:必须避免与ISS模块碰撞,安全距离>0.5m
  5. 通信延迟:地面控制延迟2-7秒,需要自主规划能力

技术解决方案

1. 振动抑制轨迹设计

采用输入整形(Input Shaping)技术,设计零振动(ZV)轨迹:

\[u_{shaped}(t) = \sum_{i=1}^{n} A_i \cdot u(t - t_i)\]

其中$A_i$和$t_i$根据系统固有频率$\omega_n$和阻尼比$\zeta$计算:

\(A_1 = \frac{1}{1 + K}, \quad A_2 = \frac{K}{1 + K}\) \(t_1 = 0, \quad t_2 = \frac{\pi}{\omega_d}\) \(K = e^{-\zeta\pi/\sqrt{1-\zeta^2}}\)

2. 分层规划架构

任务层:高级任务分解(抓取卫星、移动载荷)
     ↓
路径层:笛卡尔空间无碰撞路径(RRT*算法)
     ↓  
轨迹层:时间参数化,考虑动力学约束
     ↓
控制层:PID + 前馈补偿

3. 碰撞检测优化

使用包围体层次结构(BVH)加速碰撞检测:

4. 自适应重规划

根据任务紧急度调整规划策略:

实际性能

高级话题:凸优化与半定规划(SDP)在轨迹优化中的应用

8.5.1 轨迹优化的SDP形式

许多轨迹优化问题可转化为半定规划:

\[\begin{align} \min_{X} \quad & \text{tr}(CX) \\ \text{s.t.} \quad & \text{tr}(A_iX) = b_i, \quad i = 1, ..., m \\ & X \succeq 0 \end{align}\]

其中$X \succeq 0$表示$X$是半正定矩阵。

例:最小能量轨迹

对于线性系统$\dot{x} = Ax + Bu$,最小能量控制问题可表述为:

\[\min_u \int_0^T u^Tu \, dt\]

通过可控性格拉姆矩阵:

\[W_c = \int_0^T e^{At}BB^Te^{A^Tt} dt\]

最优控制为: \(u^*(t) = B^Te^{A^T(T-t)}W_c^{-1}(x_f - e^{AT}x_0)\)

8.5.2 Sum-of-Squares (SOS)优化

对于多项式系统,使用SOS技术验证轨迹可行性:

一个多项式$p(x)$是SOS的,当且仅当存在多项式$q_i(x)$使得:

\[p(x) = \sum_i q_i^2(x)\]

这等价于存在半正定矩阵$Q$使得:

\[p(x) = z(x)^T Q z(x)\]

其中$z(x)$是单项式基向量。

应用:障碍函数验证

验证轨迹$q(t)$避开障碍物:

\[B(q) = ||q - q_{obs}||^2 - r^2 > 0\]

通过SOS分解证明$B(q(t)) > 0, \forall t \in [0, T]$。

8.5.3 控制器合成与验证

使用SOS优化同时设计轨迹和反馈控制器:

\[\begin{align} \text{find} \quad & q(t), K(q) \\ \text{s.t.} \quad & V(q) - \epsilon||q||^2 \in SOS \\ & -\dot{V}(q, K(q)) \in SOS \\ & ||K(q)|| \leq u_{max} \end{align}\]

其中$V(q)$是李雅普诺夫函数,保证闭环稳定性。

本章小结

本章系统介绍了轮足机械臂系统的轨迹规划与优化技术。核心要点包括:

  1. 规划空间选择:关节空间规划计算高效但路径不直观;笛卡尔空间规划任务描述自然但需处理奇异性。混合策略结合两者优势。

  2. 优化目标权衡:时间最优追求效率,能量最优降低功耗,实际应用需多目标平衡。时间缩放法是处理速度/加速度约束的有效方法。

  3. 动力学约束处理:直接配点法和多重打靶法是两种主流数值方法。凸化技术(SCP、信赖域)可将非凸问题转化为可求解的凸问题序列。

  4. 实时性保证:MPC框架提供反馈修正能力。增量式重规划、热启动、并行化是提升实时性的关键技术。

  5. 高级优化技术:SDP和SOS优化提供了严格的理论保证,适用于安全关键应用。

关键公式回顾:

练习题

基础题

练习8.1 考虑一个2自由度平面机械臂,连杆长度分别为$l_1 = l_2 = 1$米。若要使末端从$(1, 0)$移动到$(0, 1)$,比较直线路径和圆弧路径在关节空间的表现差异。

提示 计算两种路径对应的关节角度变化,注意奇异性位置。
答案 直线路径经过奇异配置(臂完全伸直),导致关节速度趋于无穷。圆弧路径可避免奇异性,关节运动更平滑。具体地,在$x = \sqrt{2}, y = 0$处,雅可比矩阵行列式为0。
练习8.2 给定关节约束$ q \leq 2$rad,$ \dot{q} \leq 1$rad/s,$ \ddot{q} \leq 2$rad/s²。计算从$q = 0$到$q = 1.5$的时间最优轨迹。
提示 使用梯形速度剖面,分为加速、匀速、减速三段。
答案 加速时间$t_1 = 0.5$s(达到最大速度),匀速时间$t_2 = 1$s,减速时间$t_3 = 0.5$s。总时间$T = 2$s。轨迹为:加速段$q = t^2$,匀速段$q = 0.25 + (t-0.5)$,减速段$q = 1.5 - (2-t)^2$。

练习8.3 对于质量$m = 10$kg的单自由度系统,比较最小时间和最小能量轨迹的扭矩需求。设移动距离$d = 1$m,最大加速度$a_{max} = 1$m/s²。

提示 时间最优使用bang-bang控制,能量最优使用正弦加速度剖面。
答案 时间最优:$T = 2$s,峰值扭矩$10$N,能量$10$J。能量最优(5次多项式):$T = 3$s,峰值扭矩$6.58$N,能量$6.58$J。能量节省34%,但时间增加50%。

挑战题

练习8.4 设计一个轨迹规划器,使7自由度机械臂在避开障碍物的同时,利用冗余自由度最小化关节运动范围。建立优化问题并描述求解策略。

提示 使用零空间投影处理冗余度,将避障表述为不等式约束。
答案 优化问题:$\min \sum_i (q_i - q_{i,mid})^2$,约束:$f_{kin}(q) = x_{desired}$,$d(q, obstacle) > d_{safe}$。求解策略:(1)用RRT*规划笛卡尔路径;(2)每个路径点用梯度投影法优化关节配置;(3)零空间速度$z = -k\nabla_q(\sum(q_i - q_{i,mid})^2)$。

练习8.5 推导弹性关节机器人的最优轨迹条件。考虑关节弹性$k$和电机惯量$I_m$,建立包含振动抑制的轨迹优化问题。

提示 使用双惯量模型,考虑电机侧和连杆侧的耦合动力学。
答案 系统方程:$I_m\ddot{\theta}_m + k(\theta_m - \theta_l) = \tau$,$I_l\ddot{\theta}_l + k(\theta_l - \theta_m) = 0$。优化目标增加振动项:$J = \int (\tau^2 + \alpha(\theta_m - \theta_l)^2)dt$。最优轨迹满足$\ddddot{\theta}_m + \omega_n^2\ddot{\theta}_m = 0$,其中$\omega_n = \sqrt{k(1/I_m + 1/I_l)}$。

练习8.6 对于空间机械臂(无固定基座),如何修改轨迹规划以保持系统角动量为零?给出约束方程和实现方法。

提示 利用角动量守恒,基座姿态与臂形相关。
答案 角动量约束:$H = H_{base} + H_{arm} = I_{base}\omega_{base} + \sum J_i\dot{q}_i = 0$。实现:(1)参数化臂轨迹$q(t)$;(2)计算所需基座角速度$\omega_{base} = -I_{base}^{-1}\sum J_i\dot{q}_i$;(3)优化$q(t)$使基座扰动最小:$\min \int ||\omega_{base}||^2 dt$。可用反作用轮吸收残余角动量。

练习8.7(开放题)讨论如何将强化学习与传统轨迹优化结合,设计一个能够在线学习和改进的轨迹规划系统。考虑采样效率和安全性保证。

提示 考虑使用轨迹优化作为先验,RL用于残差学习或参数调整。
答案 混合架构:(1)离线轨迹优化生成初始策略库;(2)RL学习场景识别和参数选择网络;(3)在线时,RL调整优化器参数(权重、约束松弛);(4)安全层通过CBF/IBF保证约束满足。具体实现:用PPO学习cost权重$w = \pi_\theta(s)$,轨迹优化求解$\min w^T f(q)$。优势:保留优化器的收敛保证,同时适应未知扰动。

常见陷阱与错误(Gotchas)

  1. 数值积分误差累积
    • 错误:长时域规划使用固定步长Euler积分
    • 正确:使用自适应步长Runge-Kutta方法,监控能量守恒
  2. 奇异性处理不当
    • 错误:直接求解$\dot{q} = J^{-1}\dot{x}$
    • 正确:使用阻尼最小二乘$\dot{q} = J^T(JJ^T + \lambda I)^{-1}\dot{x}$
  3. 约束不一致
    • 错误:独立处理位置、速度、加速度约束
    • 正确:确保约束相容性,$v_{max} \geq \sqrt{2 a_{max} \cdot d}$
  4. 局部最优陷阱
    • 错误:单一初始猜测的局部优化
    • 正确:多起点优化或全局方法(如RRT*)生成初值
  5. 实时性能退化
    • 错误:每次完全重新规划
    • 正确:增量更新、时域收缩、降阶模型切换
  6. 动力学模型误差
    • 错误:忽略摩擦、柔性等非理想因素
    • 正确:参数辨识 + 鲁棒优化 + 在线自适应

最佳实践检查清单

设计阶段

实现阶段

验证阶段

部署阶段