Euclidean Signed Distance Field
欧氏符号距离场ESDFAdvancedA 3D grid where every cell stores the true distance to the nearest obstacle, positive outside and negative inside, with a computable gradient.
A Euclidean signed distance field is a 3D map representation: space is divided into voxels (small cubic cells), and each voxel stores its Euclidean distance to the nearest obstacle surface, positive outside obstacles and negative inside. It differs from TSDF (truncated signed distance function), which only holds values near an object's surface, with distance estimated along the camera's line of sight; an ESDF instead gives the true nearest distance everywhere on the map and supports computing a gradient, whose direction points ‘further from the obstacle.’ This makes it well suited to gradient-based trajectory optimization, such as CHOMP and many drone local planners: approximating the robot as a string of small spheres, as long as the distance at each sphere's center exceeds that sphere's radius there's no collision, and the gradient of the collision cost directly pushes the trajectory away from obstacles. ETH's Voxblox (2016) introduced incrementally building an ESDF from a TSDF, and NVIDIA's nvblox moved this kind of mapping onto the GPU. The downside is that maintaining a full distance field is computationally expensive, which is why work like EGO-Planner skips ESDF altogether.
ExampleIn Voxblox's experiments, a drone builds a TSDF on the fly from onboard sensors while flying, incrementally converts it to an ESDF, and a local trajectory optimizer reads the distance and gradient, completing mapping and replanning in real time on a single onboard CPU core.
- Also called
- ESDF, ESDF Map
- Related
- Signed Distance Field / Function · Truncated Signed Distance Function · nvblox · Covariant Hamiltonian Optimization for Motion Planning · Collision Checking · Occupancy Grid Map
- Sources
- Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning (arXiv:1611.03631)
EGO-Planner: An ESDF-free Gradient-based Local Planner for Quadrotors (arXiv:2008.08835)