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.
