如何准确设置 RevoluteJoint 角度和速度?
How do I set a RevoluteJoint angle and velocity exactly?
我使用 JBox2D 构建了一个简单的模拟器,其中包含一个由 collection 身体和四个 Revolute Joints 构建的角色。我 运行 遇到了一个问题:我需要准确地恢复这个角色的 'pose',给出关节角度、关节速度和躯干 position/rotation/velocity/angular 速度的列表。
body 的状态有方便的 getter 和 setter,但我找不到将关节角度强制到它们需要的位置(在此过程中移动物体)的好方法。该站点上的几个解决方案建议设置一个基本的反馈系统,以尝试让关节电机将关节驱动到所需的角度,但这似乎不精确并且可能需要大量计算。理想情况下,我想找到一种直接设置这些值的方法。
作为最后的手段,我可以使用正向运动学自己计算所有的平移和旋转,但也许有更简单的方法。
感谢任何帮助。谢谢。
关节本身没有任何角度或速度。当您调用 GetJointAngle 和 GetJointSpeed (see the source).
时,它们连接的两个物体的相对角度和速度决定了您得到的结果
由此可见在关节中设置这些东西有这么直接的手段。您需要设置与该关节相关的物体的角度和速度,angular 速度等。
我使用 JBox2D 构建了一个简单的模拟器,其中包含一个由 collection 身体和四个 Revolute Joints 构建的角色。我 运行 遇到了一个问题:我需要准确地恢复这个角色的 'pose',给出关节角度、关节速度和躯干 position/rotation/velocity/angular 速度的列表。
body 的状态有方便的 getter 和 setter,但我找不到将关节角度强制到它们需要的位置(在此过程中移动物体)的好方法。该站点上的几个解决方案建议设置一个基本的反馈系统,以尝试让关节电机将关节驱动到所需的角度,但这似乎不精确并且可能需要大量计算。理想情况下,我想找到一种直接设置这些值的方法。
作为最后的手段,我可以使用正向运动学自己计算所有的平移和旋转,但也许有更简单的方法。
感谢任何帮助。谢谢。
关节本身没有任何角度或速度。当您调用 GetJointAngle 和 GetJointSpeed (see the source).
时,它们连接的两个物体的相对角度和速度决定了您得到的结果由此可见在关节中设置这些东西有这么直接的手段。您需要设置与该关节相关的物体的角度和速度,angular 速度等。