Skip to content

Latest commit

 

History

History
50 lines (45 loc) · 2.14 KB

File metadata and controls

50 lines (45 loc) · 2.14 KB

friction

friction有三个参数分别是滑动摩擦,转动摩擦,滚动摩擦系数

option(椭圆/金字塔)

cone=[pyramidal, elliptic] 摩擦力近似计算方法,默认pyramidal计算速度快,elliptic效果更好 impratio="1" 椭圆摩擦的比例,更高的数值摩擦力会更硬一些,防止打滑,不建议在使用pyramidal的时候调大,适合机械臂抓取打滑时调整参数

优先级

摩擦计算的时候会先根据geom的priority选择使用那个geom的friction参数,如果相同就会选择最大的使用 源码位置:engine/engine_collision_driver.c: mj_contactParam

condim设置

condim 作用
1 只有垂直于接触面的法向力,两个物体碰撞或者挤压产生的力
3 可以生成接触面上的力,也就是常见的摩擦力,friction第一个参数调控
4 增加了抑制在绕接触面法线旋转的摩擦力,friction第二个参数调控
6 会抑制滚动,滚动摩擦力是滚动过程中接触变形产生的能量损耗,friction第三个参数调控

计算

约束力维度

摩擦力在mujoco中是约束力的一部分,根据不同condim会产生不同数量的约束力,elliptic产生condim相同维度的约束力,pyramidal则会产生2*(condim-1)维度的约束力 condim和约束力维度:

condim elliptic pyramidal
1 e1 e1
3 e1~e3 e1~e4
4 e1~e4 e1~e6
5 e1~e6 e1~e10

约束力对应摩擦系数:

elliptic pyramidal
e1 e1 None
e1~e3 e1~e4 friction1
e4 e5,e6 friction2
e5,e6 e7~e10 friction3

源码: engine/engine_core_constraint.c:getposdim

engine/engine_core_constraint.c:mj_makeImpedance
下面friction是一个长度为5的数组,fri是mjcf中定义的friction参数

官方文档: Contact Friction cones