关于德雷克当前的逆运动学代码的问题

Question regarding Drake's current inverse kinematics code

我一直在研究一些关于机械臂防撞逆向运动学规划的论文。我找到了这篇名为“通过混合整数凸优化的全局逆运动学”的论文,我相信其中有一些 Drake 的开发人员的名字。

在这篇论文中,它说代码已经是drake的一部分。然而,当我找到它时,代码被放在阁楼上。 (https://github.com/RobotLocomotion/drake/blob/master/attic/multibody/global_inverse_kinematics.h)

目前在move_iiwa_ee下的库卡手臂例子中,改用了名为ConstraintRelaxingIk的IK代码

  1. 我想知道为什么“通过混合整数凸优化的全局逆运动学”IK 代码被放在一边,如果它有任何问题。

  2. 另外,我不确定当前的ConstraintRelaxingIk是否有防撞功能。有人可以澄清一下吗?

(如果是,除了插入障碍物模型之外,是否还有任何额外的步骤可以采取?)

谢谢

感谢您对我们的工作感兴趣。

全局逆运动学代码位于 attic 文件夹中,因为它使用了 RigidBodyTree,即将弃用。 我还没有时间重写代码以使用新的 MultibodyTree。目前,如果您想尝试全局 IK 论文中的方法,可以使用 attic 文件夹中的代码吗?我将尝试将代码移出 attic 文件夹以使用 MultibodyTree。 (更新代码已经移出attic文件夹。现在在inverse_kinematicsfolder

ConstraintRelaxingIk 不处理碰撞避免。另一方面,如果要在特定的几何图形对之间施加距离约束,则可以使用 InverseKinematics class. It formulates IK as a nonlinear optimization problem, and calls the nonlinear solver to find the solution. Specifically for collision avoidance, you could use AddMinimumDistanceConstraint to impose a minimal distance constraint between all pairs of geometries. Alternatively, you could call AddDistanceConstraint。我实际上建议在尝试全局 IK 方法之前先尝试 InverseKinematics class,因为 InverseKinematics 使用 MultibodyPlant,并且通常比全局方法运行得更快。

顺便说一句,InverseKinematics class 中使用的公式在本 paper

的 II.B 和 II.C 部分进行了描述