name
关节的名称,mjcf中任何元素的name属性必须全局唯一
class
用于设置未指定属性的默认类别.
type
定义关节的类型,可选值为free, ball, slide, hinge,默认为hinge。
- free:自由关节,允许平移和旋转.
- ball:球形关节,允许旋转.
- slide:滑动关节,允许沿一个方向平移.
- hinge:铰链关节,允许绕一个轴旋转.
pos
关节的位置(x y z):int,相对于其父体的局部坐标系.
axis
关节的旋转轴或滑动方向(x y z):0/1,仅对hinge和slide类型有效.
limited
是否对关节的运动范围进行限制,默认为false.
range
关节的运动范围,仅在limited为true时有效.
damping
关节的阻尼系数,通常是一个非负实数。当阻尼值最大时,关节的运动将受到极大的抑制,几乎无法移动。
stiffness
关节的刚度系数,用于模拟弹簧效应,通常是一个非负实数。当刚度值最大时,关节将表现出极高的弹性,类似于一个非常硬的弹簧. 这可能导致关节在受到小的扰动时就产生很大的力,从而影响系统的稳定性。
frictionloss
关节的摩擦损失,通常是一个非负实数。当摩擦损失值最大时,关节的运动将受到极大的摩擦阻力,几乎无法移动. 这在某些情况下可以用于模拟高摩擦的关节,但在大多数情况下会导致关节运动不自然。
solreflimit:
用于限制关节运动的求解器参考属性。
solimplimit
用于限制关节运动的求解器隐式属性。
user
用户自定义数据,用于存储额外信息
damping、frictionloss的区别
-
作用时机
阻尼在关节运动过程中持续起作用,与速度成正比,而摩擦损失主要在运动开始之前起作用,表现为一个初始的阻力。 -
作用机制
阻尼是速度依赖的,即速度越大,阻尼力越大;摩擦损失则是负载无关的,与速度无关,表现为一个固定的力上限。 -
物理意义
阻尼主要用于模拟系统的自然衰减和稳定过程,而摩擦损失则用于模拟关节运动的初始阻力和能量损失。
freejoint
freejoint 是一个特殊的关节类型,用于为一个体(body)提供六个自由度的运动能力。这意味着该体可以在三维空间中自由平移和旋转。当你需要模拟一个完全自由的物体,比如一个在空中飞行的物体或者一个在水中的浮动物体时,可以使用freejoint。
<body name="free_body" pos="0 0 1" quat="1 0 0 0">
<freejoint/>
<geom type="box" size="0.1 0.1 0.1"/>
</body>