Assemble Them All: 创新物理规划助力通用装配与拆卸(SIGGRAPH Asia 2022)

Assemble Them All: 创新物理规划助力通用装配与拆卸(SIGGRAPH Asia 2022)

欢迎来到本文,我们将深入探讨《Assemble Them All: Physics-Based Planning for Generalizable Assembly by Disassembly》这一项目。该项目由Yunsheng Tian、Jie Xu、Yichen Li、Jieliang Luo、Shinjiro Sueda、Hui Li、Karl D.D. Willis和Wojciech Matusik共同撰写,于SIGGRAPH Asia 2022发表。
Assemble Them All: 创新物理规划助力通用装配与拆卸(SIGGRAPH Asia 2022)_第1张图片

项目背景与意义

在这项工作中,我们提出了一种全新的方法,用于高效规划真实世界装配物体的物理合理运动和顺序。我们的方法利用了装配和拆卸的原理以及基于物理的模拟,从而有效地探索了一个缩减的搜索空间。此外,我们还定义了一个大规模数据集,其中包含数千个具有各种装配运动要求的物理有效的工业装配物体。

摘要

装配规划是现代工业制造自动化产品装配、维护和回收的核心。尽管机械装配具有重要意义和悠久的研究历史,但在给定最终装配状态时,机械装配的规划仍然是一个具有挑战性的问题。这是由于处理任意三维形状的复杂性以及真实世界部件所需的高度受限运动。在这项工作中,我们提出了一种新的方法,可以有效地为真实世界的装配规划物理上合理的装配运动和序列。我们的方法利用“按拆卸组装”原理和基于物理的模拟来有效地探索减少的搜索空间。为了评估我们方法的通用性,我们定义了一个大型数据集,该数据集由数千个物理有效的工业装配组成,需要各种装配运动。我们在这个新基准上的实验表明,与其他基线算法相比,我们实现了最先进的成功率和最高的计算效率。我们的方法也推广到旋转组件(如螺钉和谜题),并在几分钟内解决了80个零件组件。

安装步骤

为了运行这个项目,您需要按照以下步骤进行安装:

  1. 克隆存储库(包括依赖项)

    git clone --recurse-submodules [email protected]:yunshengtian/Assemble-Them-All.git
    
  2. 设置Python环境

    conda env create -f environment.yml
    conda activate assembly
    
  3. 安装模拟绑定

    cd simulation
    python setup.py install
    
  4. 安装装配数据集

我们的数据集可以从以下链接下载(以.zip格式)。解压缩它们并将文件夹放置在此代码存储库的assets/目录下(建议位置,但不是必须的)。

  • Two-part main dataset (225.7MB)
  • Two-part rotational dataset (5.4MB)
  • Multi-part dataset (972.0MB)

测试模拟

为了验证安装步骤是否成功,您可以运行以下命令来测试两部分装配和多部分装配的模拟:

python examples/test_joint_sim.py --dir joint_assembly --id 00016 --gravity 9.8 --steps 2000
python examples/test_multi_sim.py --dir multi_assembly --id 00031 --gravity 9.8 --steps 2000

实验

我们的项目提供了丰富的实验功能,涵盖了两部分装配和多部分装配的路径规划。以下是一些关键实验的命令和参数:

  • 两部分装配规划 - 单个装配

    python examples/run_joint_plan.py --planner PLANNER --dir ASSEMBLY_DIR --id ASSEMBLY_ID
    
  • 两部分装配规划 - 整个数据集

    python examples/run_joint_plan_batch.py --planner PLANNER --dir ASSEMBLY_DIR --log-dir LOG_DIR
    
  • 多部分装配规划 - 单个装配

    python examples/run_multi_plan.py --seq-planner SEQ_PLANNER --path-planner PATH_PLANNER --dir ASSEMBLY_DIR --id ASSEMBLY_ID
    
  • 多部分装配规划 - 整个数据集

    python examples/run_multi_plan_batch.py --seq-planner SEQ_PLANNER --path-planner PATH_PLANNER --dir ASSEMBLY_DIR
    

自定义装配用法

如果您希望在自定义装配网格上运行算法,需要对网格进行预处理,因为网格可能具有任意尺度,并且各个部件网格不在坐标轴原点中心,这将在施加力矩时造成一些麻烦。

我们提供了一个预处理脚本assets/process_mesh.py,该脚本将自定义网格重新缩放和重新格式化,以提供给算法统一的输入。运行以下命令:

python assets/process_mesh.py --source-dir source_dir/ --target-dir target_dir/ --subdivide

联系方式

如果您对代码或数据集有任何疑问,请随时联系[email protected]或创建GitHub问题。

引用

如果您发现我们的论文、代码或数据集对您有帮助,请考虑引用我们的文章。

你可能感兴趣的:(深度学习,深度学习,通用装配)