Halo
发布于 2025-01-07 / 23 阅读 / 0 评论 / 0 点赞

mjcf中joint属性

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的区别

  1. 作用时机
    阻尼在关节运动过程中持续起作用,与速度成正比,而摩擦损失主要在运动开始之前起作用,表现为一个初始的阻力。

  2. 作用机制
    阻尼是速度依赖的,即速度越大,阻尼力越大;摩擦损失则是负载无关的,与速度无关,表现为一个固定的力上限。

  3. 物理意义
    阻尼主要用于模拟系统的自然衰减和稳定过程,而摩擦损失则用于模拟关节运动的初始阻力和能量损失。

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>

评论