Table of Contents
Fetching ...

A New Software Tool for Generating and Visualizing Robot Self-Collision Matrices

Roshan Klein-Seetharama, Daniel Rakita

TL;DR

This work introduces a Rust/Bevy-based interactive tool that generates and visualizes six shape-type self-collision matrices from a URDF, enabling dynamic inspection and refinement of skip sets for collision and proximity queries. It supports multiple geometric representations (link-level and decomposition-level) and outputs six JSON/YAML matrix pairs, with proximity statistics such as $d^{\min}_{i,j}$, $d^{\max}_{i,j}$, and $d^{\text{mean}}_{i,j}$ computed over $100{,}000$ samples. The evaluation across UR5e, XArm7, and B1 demonstrates substantial speedups in both collision and proximity queries, with accuracy improving at higher representations, and a case study shows how interactive refinements can correct conservative MoveIt outputs. The tool complements existing workflows, offers URDF-compatible integration, and provides a practical pathway to faster, safer planning and simulation in robotics. Overall, the approach delivers a flexible, transparent preprocessing layer that balances efficiency and precision through interactive, shape-aware self-collision matrices.

Abstract

In robotics, it is common to check whether a given robot state results in self-intersection (i.e., a self-collision query) or to assess its distance from such an intersection (i.e., a self-proximity query). These checks are typically performed between pairs of shapes attached to different robot links. However, many of these shape pairs can be excluded in advance, as their configurations are known to always or never result in contact. This information is typically encoded in a self-collision matrix, where each entry (i, j) indicates whether a check should be performed between shape i and shape j. While the MoveIt Setup Assistant is widely used to generate such matrices, current tools are limited by static visualization, lack of proximity support, rigid single-geometry assumptions, and tedious refinement workflows, hindering flexibility and reuse in downstream robotics applications. In this work, we introduce an interactive tool that overcomes these limitations by generating and visualizing self-collision matrices across multiple shape representations, enabling dynamic inspection, filtering, and refinement of shape pairs. Outputs are provided in both JSON and YAML for easy integration. The system is implemented in Rust and uses the Bevy game engine to deliver high-quality visualizations. We demonstrate its effectiveness on multiple robot platforms, showing that matrices generated using diverse shape types yield faster and more accurate self-collision and self-proximity queries.

A New Software Tool for Generating and Visualizing Robot Self-Collision Matrices

TL;DR

This work introduces a Rust/Bevy-based interactive tool that generates and visualizes six shape-type self-collision matrices from a URDF, enabling dynamic inspection and refinement of skip sets for collision and proximity queries. It supports multiple geometric representations (link-level and decomposition-level) and outputs six JSON/YAML matrix pairs, with proximity statistics such as , , and computed over samples. The evaluation across UR5e, XArm7, and B1 demonstrates substantial speedups in both collision and proximity queries, with accuracy improving at higher representations, and a case study shows how interactive refinements can correct conservative MoveIt outputs. The tool complements existing workflows, offers URDF-compatible integration, and provides a practical pathway to faster, safer planning and simulation in robotics. Overall, the approach delivers a flexible, transparent preprocessing layer that balances efficiency and precision through interactive, shape-aware self-collision matrices.

Abstract

In robotics, it is common to check whether a given robot state results in self-intersection (i.e., a self-collision query) or to assess its distance from such an intersection (i.e., a self-proximity query). These checks are typically performed between pairs of shapes attached to different robot links. However, many of these shape pairs can be excluded in advance, as their configurations are known to always or never result in contact. This information is typically encoded in a self-collision matrix, where each entry (i, j) indicates whether a check should be performed between shape i and shape j. While the MoveIt Setup Assistant is widely used to generate such matrices, current tools are limited by static visualization, lack of proximity support, rigid single-geometry assumptions, and tedious refinement workflows, hindering flexibility and reuse in downstream robotics applications. In this work, we introduce an interactive tool that overcomes these limitations by generating and visualizing self-collision matrices across multiple shape representations, enabling dynamic inspection, filtering, and refinement of shape pairs. Outputs are provided in both JSON and YAML for easy integration. The system is implemented in Rust and uses the Bevy game engine to deliver high-quality visualizations. We demonstrate its effectiveness on multiple robot platforms, showing that matrices generated using diverse shape types yield faster and more accurate self-collision and self-proximity queries.
Paper Structure (28 sections, 3 figures, 3 tables)

This paper contains 28 sections, 3 figures, 3 tables.

Figures (3)

  • Figure 1: Overview of our interactive self-collision matrix tool. Starting from a URDF and associated meshes, the system automatically generates six shape-based representations (spheres, OBBs, convex hulls, and convex decompositions) and infers skip sets across 100k sampled configurations. Users can dynamically explore robot states, inspect proximities, and refine skip decisions in a Bevy-based visualization, with results exported to JSON/YAML for direct use in planning and simulation frameworks.
  • Figure 2: Intermediate shape representations generated by our system for each robot link. For every mesh, the tool computes a convex hull, convex decomposition, bounding sphere, and oriented bounding box, along with corresponding decomposed spheres and OBBs. These six representations provide a spectrum of trade-offs between geometric fidelity and computational cost, forming the basis for constructing separate self-collision matrices
  • Figure 3: Case study on the Orca hand gripper comparing results from the MoveIt Setup Assistant and our interactive refinement tool.