我想使用 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 存储库的信息可能已经足够了:
error: URI 'package://movo_description/meshes/manipulation/robotiq/visual/kinova_robotiq_coupler.obj' refers to unknown package 'movo_description'
我观察到在存储库models中有几个名为robotiq的.urdf文件。我尝试在这个notebook中加载robotiq.urdf和robotiq_simple.urdf,但是robotiq_simple.urdf根本没有出现(您已经在Issue#19992中提到过)并且robotiq.urdf在Meshcat中返回以下网格:
此外,我想提一下 Matt Corsaro 在 drake 中的 Robotiq 3F 实现,以供潜在参考。
感谢您的彻底调查。我相信您想要的 Robotiq 模型可以在这里找到。
该存储库中的 urdf 使用模拟关节,在使用 SAP 求解器进行
MultibodyPlant
时,Drake 完全支持模拟关节。不幸的是,Drake 的所有部分(尚未)都支持它们。我们正在本期中追踪这一点。对于抓取规划,您可以选择使用焊接版本的夹具 - 就像您发现的我的笔记本电脑使用焊接 WSG 一样。您会看到我在 Robotiq xacro 中有一个焊接选项。
为了完整起见,这是我给自己留下的关于如何构建两个版本的 movo 描述的注释,包括焊接手指和未焊接手指。
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 模型(焊接和未焊接)。