Table of Contents
Fetching ...

Foam: A Tool for Spherical Approximation of Robot Geometry

Sai Coumar, Gilbert Chang, Nihar Kodkani, Zachary Kingston

TL;DR

Foam tackles the need for fast, robust collision detection by converting complex robot meshes into sphere-based collision geometry derived from URDFs using a robust preprocessing pipeline. The main approach combines mesh repair, AMAA-based spherization, and an automated toolchain that outputs URDFs with spheres or sphere databases. The key contributions include an end-to-end open-source library, configurable preprocessing and spherization parameters, and empirical evidence of substantial speedups in distance queries across common simulators, with only modest fidelity loss. This enables broader adoption of spherical representations in planning, control, and simulation.

Abstract

Many applications in robotics require primitive spherical geometry, especially in cases where efficient distance queries are necessary. Manual creation of spherical models is time-consuming and prone to errors. This paper presents Foam, a tool to generate spherical approximations of robot geometry from an input Universal Robot Description Format (URDF) file. Foam provides a robust preprocessing pipeline to handle mesh defects and a number of configuration parameters to control the level and approximation of the spherization, and generates an output URDF with collision geometry specified only by spheres. We demonstrate Foam on a number of standard robot models on common tasks, and demonstrate improved collision checking and distance query performance with only a minor loss in fidelity compared to the true collision geometry. We release our tool as an open source Python library and containerized command-line application to facilitate adoption across the robotics community.

Foam: A Tool for Spherical Approximation of Robot Geometry

TL;DR

Foam tackles the need for fast, robust collision detection by converting complex robot meshes into sphere-based collision geometry derived from URDFs using a robust preprocessing pipeline. The main approach combines mesh repair, AMAA-based spherization, and an automated toolchain that outputs URDFs with spheres or sphere databases. The key contributions include an end-to-end open-source library, configurable preprocessing and spherization parameters, and empirical evidence of substantial speedups in distance queries across common simulators, with only modest fidelity loss. This enables broader adoption of spherical representations in planning, control, and simulation.

Abstract

Many applications in robotics require primitive spherical geometry, especially in cases where efficient distance queries are necessary. Manual creation of spherical models is time-consuming and prone to errors. This paper presents Foam, a tool to generate spherical approximations of robot geometry from an input Universal Robot Description Format (URDF) file. Foam provides a robust preprocessing pipeline to handle mesh defects and a number of configuration parameters to control the level and approximation of the spherization, and generates an output URDF with collision geometry specified only by spheres. We demonstrate Foam on a number of standard robot models on common tasks, and demonstrate improved collision checking and distance query performance with only a minor loss in fidelity compared to the true collision geometry. We release our tool as an open source Python library and containerized command-line application to facilitate adoption across the robotics community.

Paper Structure

This paper contains 9 sections, 6 figures, 2 tables.

Figures (6)

  • Figure 1: Results of spherizing commonly used robots with foam. From left to right: Franka Emika Panda, KUKA IIWA, and Kinova Jaco robots (top row), alongside spherized approximations (middle and bottom row). Displayed are spherizations of the Panda with 22 and 28 spheres, the IIWA with 13 and 19 spheres, and the Kinova with 22 and 39 spheres. Our foam library automatically processes robots specified with a URDF and creates a URDF with spherical approximations of the robot's collision geometry.
  • Figure 2: A representative example of a mesh being processed by foam. Here, the 6th link of the Franka Emika Panda haddadin2024franka is processed into a set of spheres. From left to right: (1) the original mesh is made into a (2) guaranteed watertight or manifold mesh through huang2018robust. The watertight mesh is then simplified (3) using a quadric-based edge collapse mesh simplification method garland1997surface and smoothed (4) with Laplacian smoothing and Humphrey filtering vollmer1999improved. Finally, spheres are fit to the processed mesh (5) with adaptive medial axis approximation method bradshaw2004adaptive. We also show the (6) spherization approach provided in cuRobo sundaralingam2023curobo, which voxelizes the mesh into spheres with a given sphere radius. From left to right, we show decompositions with 200 spheres and 2cm radius, 500 spheres and 1cm radius, 1000 spheres and 1cm radius
  • Figure 3: Time to spherize an input mesh against the number of triangles in the input mesh.
  • Figure 4: Franka Emika Panda Robot haddadin2024franka processed with foam to generate spherized models with increasing level of fidelity, with (left to right) (1) 11, (2) 22, (3) 27, (4) 92, and (5) 316 spheres. The spheres on the robot are colored by size, indicated by the colorbar on the far right. We compare the output of foam to (6) a custom-made spherization of the Panda from fishman2023motion with 59 spheres, which is a clear under-approximation of the robot's (7) true collision geometry. We also display (8), the robot's visual geometry, as reference.
  • Figure 5: Example script to process a mesh using foam.
  • ...and 1 more figures