"Through-Contact" Drake 轨迹优化的工作流程

Workflow for "Through-Contact" Trajectory Optimization in Drake

我想问一下什么是解决轨迹优化问题的合适工作流程,该问题考虑了 Drake 中 MBP 中不同物体之间的接触相互作用。类似本 paper 中解决的问题。我试过使用 DirectCollocation class 但显然它没有将接触力视为优化变量。有没有办法将它们合并到DirectCollocation生成的数学程序中?谢谢

通过联系计划时需要考虑几件事

  1. 决策变量不再只是state/control,而是应该包括接触力。
  2. 约束不仅仅是动态约束x[n+1] = f(x[n], u[n]),而是x[n+1] = f(x[n], u[ n], λ[n]) 其中 λ 为接触力,也是互补约束 0≤ λ ⊥ ϕ(q) ≥ 0
  3. Michael 的论文没有使用直接搭配(假设状态轨迹是分段三次样条),而是使用后向欧拉积分,假设分段线性插值。

因此您需要以下功能:

  1. 添加接触力作为决策变量。
  2. 添加互补约束。
  3. 使用后向欧拉积分代替 DirectCollocationConstraint

不幸的是,Drake 还没有执行这些操作的实现。德雷克内部最接近的比赛是在这个 folder, and the starting point could be the StaticEquilibriumProblem 中。这个class做特征1和特征2的一部分(它有互补约束,但只有静态平衡约束而不是动态约束),但不做特征3(向后的欧拉步骤)。