在 drake 中使用 Robotiq 2F-140 机械臂进行拾取和放置模拟

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

我想使用 drake 在由未知物体生成的网格上模拟不同抓取姿势的拾取和放置,因为它具有出色的水弹性接触和摩擦建模。为此,我必须专门使用 Robotiq 2F-140,这就是为什么我想将它集成到 drake 中。

我看到了多种方法。我的总体问题是什么是最简单的?

在我的 GitHub repository 中,我收集了一些有关此的信息。首先,我成功地将官方 Robotiq 2F-140 .xacro 文件转换为 Ubuntu 16.04 ROS Kinetic docker 映像中的 .urdf 文件。然后我成功地用它替换了 Russ Tedrake 教授的Pick and Place Jupyter Notebook中的 Schunk WSG 机械手 urdf 文件(它几乎完美地按照我需要的方式设置了拾取和放置场景),如下所示图片。

阻碍我理解的一个问题是该链接笔记本的第 15 个单元格。

from manipulation.station import LoadScenario

X_O = {
    "initial": RigidTransform(
        RotationMatrix.MakeZRotation(np.pi / 2.0), [0, -0.6, 0.0]
    ),
    "goal": RigidTransform(RotationMatrix.MakeZRotation(np.pi), [0.5, 0, 0.0]),
}

meshcat.Delete()
builder = DiagramBuilder()

scenario_data = """
directives:
- add_directives:
    file: package://manipulation/clutter.dmd.yaml
- add_model:
    name: foam_brick
    file: package://manipulation/hydro/061_foam_brick.sdf
model_drivers:
    iiwa: !IiwaDriver
      hand_model_name: wsg
    wsg: !SchunkWsgDriver {}
"""

scenario = LoadScenario(data=scenario_data)

我还没有为 Robotiq 140 编写自定义控制器。如果需要,我会尝试编写一个,但我怀疑这里可能有一种更简单的方法。我认为下面我观察到的有关 drake 存储库的信息可能已经足够了:

  1. Issue#19842“Robotiq 夹具模拟中非常不稳定的接触力的最小再现”中,Tedrake 教授和用户 XuChenHan-TRI 使得使用类似的 Robotiq 2F-85 夹具进行抓取成为可能,但生成的代码和模型没有合并到 master 中并且看起来不可用。我尝试加载模型here,但它再也找不到它了:
error: URI 'package://movo_description/meshes/manipulation/robotiq/visual/kinova_robotiq_coupler.obj' refers to unknown package 'movo_description'
  1. 我观察到在存储库models中有几个名为robotiq的.urdf文件。我尝试在这个notebook中加载robotiq.urdf和robotiq_simple.urdf,但是robotiq_simple.urdf根本没有出现(您已经在Issue#19992中提到过)并且robotiq.urdf在Meshcat中返回以下网格:

  2. 此外,我想提一下 Matt Corsaro 在 drake 中的 Robotiq 3F 实现,以供潜在参考。

robotics drake
1个回答
0
投票

感谢您的彻底调查。我相信您想要的 Robotiq 模型可以在这里找到。

该存储库中的 urdf 使用模拟关节,在使用 SAP 求解器进行

MultibodyPlant
时,Drake 完全支持模拟关节。不幸的是,Drake 的所有部分(尚未)都支持它们。我们正在本期中追踪这一点。对于抓取规划,您可以选择使用焊接版本的夹具 - 就像您发现的我的笔记本电脑使用焊接 WSG 一样。您会看到我在 Robotiq xacro 中有一个焊接选项。

为了完整起见,这是我给自己留下的关于如何构建两个版本的 movo 描述的注释,包括焊接手指和未焊接手指。

  • 安装ROS1(我有头脑),
    apt install ros-noetic-xacro
  • 创建一个带有
    movo_description_ws
    目录的
    src
    ,并仅将
    movo_common/movo_description
    子目录符号链接到其中。
  • cmake_init_workspace
    目录下运行
    src
  • 在根工作空间目录中运行
    cmake_make
  • source devel/setup.sh
  • source movo_common/movo_config/movo_config.bash
  • xacro src/movo_description/urdf/movo.urdf.xacro > movo.urdf
  • WELD_FINGERS=true xacro src/movo_description/urdf/movo.urdf.xacro > movo_welded_fingers.urdf

您可以使用

movo_common/movo_config/movo_config.bash
更改参数。这个配方可以很容易地适应仅构建两个 Robotiq 模型(焊接和未焊接)。

© www.soinside.com 2019 - 2024. All rights reserved.