在 Drake 中获取 Kuka Iiwa 手臂的关节位置(3D 姿势)

问题描述 投票:0回答:1

我在场景中有一个 Kuka Iiwa 7 手臂,我有兴趣获取手臂关节相对于世界(或相对于机器人底座)的当前(实时)3D 坐标。我能够获得当前关节 1 DOF 位置(thetas),但不能获得表示关节在某个帧(世界或基础)中的位置的精确 3D 坐标。

我尝试为每个链接添加 Triad,并尝试为框架的 RigidBody_[float] 类型对象尝试 get_pose_in_world() 方法,但收到错误消息,表明 RigidBody_[float] 类不存在该方法。

注意:我在该项目中使用 PyDrake。

解决这个问题的正确方法是什么?

python transformation robotics drake
1个回答
1
投票

当解析器创建一个关节时,它还会创建一个“父”框架和一个“子”框架。然后,这两个框架受到关节的约束,以便在“零配置”(即零角度)下,父框架和子框架重合。

如果你碰巧有框架对象,那么你可以调用

Frame::CalcPoseInWorld()
。现在,要检索框架,您需要知道它的名称。为此,您将致电
GetFrameByName()

假设您想要父框架的姿势。这是用于命名框架的约定:

  • 如果身体框架中父框架的姿势是身份(默认或显式提供),则父框架就是身体框架,您可以使用身体名称检索它。
  • 如果姿势不是身份,则创建一个新框架(由该姿势偏移),其名称为“parent_[body_name]”,其中
    body_name
    是父身体的名称。
© www.soinside.com 2019 - 2024. All rights reserved.