我使用JBox2D构建了一个简单的模拟器,它包含一个由一组主体和四个Revolute Joints构建的角色。我遇到了一个问题:我需要准确地恢复这个角色的“姿势”,给出一个关节角度,关节速度和躯干位置/旋转/速度/角速度的列表。
有一个方便的吸气剂和固定器用于身体的状态,但我找不到一个好的方法来强制关节角度到他们需要的位置(在此过程中移动身体)。本网站上的几个解决方案建议设置一个基本的反馈系统,试图让联合电机将关节驱动到所需的角度,但这似乎是不精确的,可能是计算密集型的。我想要找到一种直接设置这些值的方法。
作为最后的手段,我可以使用正向运动来自己计算所有的平移和旋转,但也许有一种更简单的方法。
任何帮助表示赞赏。感谢。
答案 0 :(得分:0)
关节本身没有任何角度或速度。它们连接的两个物体的相对角度和速度决定了当你调用GetJointAngle和GetJointSpeed(see the source)时得到的东西。
因此,有一种直接的方法可以在关节中设置这些东西。您需要设置与该关节有关的物体的角度和速度,角速度等。