基于接触约束输入的MultiBodyPlant建模方法问询
关于Drake中MultiBodyPlant建模带表面速度接触系统的实现疑问
我提交了一份支持传送带(通用表面速度)仿真的PR,可通过输入端口控制传送带速度。现希望使用MultiBodyPlant类建模包含接触及接触切向速度的系统,以用于雅可比矩阵计算、优化与控制等工作。
此类系统可通过Stewart-Trinkle或Anitescu公式建模,例如Stewart-Trinkle公式的约束如下:
系统动力学:
q_{k+1} = q_k + Δt v_{k+1}, (1) v_{k+1} = v_k + Δt M^{-1}(q_k) ( B u_k - C(q_k, v_k) + J_n(q_k)^T λ_n^k + J_t(q_k)^T λ_t^k ) (2)
互补条件:
0 ≤ γ_k ⊥ μ λ_n^k - E_t λ_t^k ≥ 0, (3) 0 ≤ λ_n^k ⊥ φ(q_k) + J_n(q_k)(q_{k+1} - q_k) ≥ 0, (4) 0 ≤ λ_t^k ⊥ E_t^T γ_k + J_t(q_k)v_{k+1} + u_c ≥ 0, (5)
其中q_k和v_k为广义位姿/速度,u_k为输入,λ_n、λ_t为法向/切向接触力。
在该范式中建模表面速度时,需在关联切向接触力λ_t^k与速度J_t(q_k)v_{k+1}的互补约束(公式(5))中添加偏置表面速度u_c。
数学上可通过扩展输入向量u_k并将B中对应列置零实现,但我不清楚如何在Drake中以MultiBodyPlant(MbP)建模该系统:
- 添加执行器需添加关节、父子连杆等,会直接影响系统动力学
- 若为MbP添加自定义输入向量变量,会与树结构断开,自动微分将失效(
du_c/dx=0?)
特此问询:Drake中是否存在符合其设计规范的实现方式?
内容的提问来源于stack exchange,提问作者Fer
相关产品推荐
相关产品推荐

