【问题标题】:Workflow for "Through-Contact" Trajectory Optimization in DrakeDrake 中“通过接触”轨迹优化的工作流程
【发布时间】:2021-03-03 12:30:38
【问题描述】:

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

【问题讨论】:

    标签: drake


    【解决方案1】:

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

    1. 决策变量不再只是状态/控制,还应包括接触力。
    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 还没有实现这些功能。 Drake 内部最接近的匹配在此folder,起点可能是StaticEquilibriumProblem。这个类做了特征1和部分特征2(它有互补性约束,但只有静态平衡约束而不是动态约束),但不做特征3(后向欧拉步骤)。

    【讨论】:

    • 在 pydrake 中,我似乎无法导入上述文件夹中的某些类。如sliding_friction_complementarity_constraint。它们也没有在 pydrake 文档中列出。有没有一种快速的方法可以将它们导入我的 Python 程序?
    • @Abdullab Nazir 抱歉回复晚了,我正在度假。我可以添加这些类的 python 绑定。你能给我一个你想要python绑定的类/方法的列表吗?谢谢!
    • 非常感谢!我认为contact_wrench_evaluatorsliding_friction_complementarity_constraint 对我最有用。但是,我担心我已经安装了二进制 Drake。能更新吗?
    猜你喜欢
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    相关资源
    最近更新 更多