![]() |
Tesseract 0.28.4
|
Tesseract supports primitive shapes, meshes, convex hulls, signed distance fields, and octrees for collision and visualization.
The tesseract_geometry package provides the geometry types used throughout Tesseract for both visualization and collision checking. Each geometry type can be attached to links in the scene graph and is used by the collision system.
Tesseract provides a comprehensive set of geometry types:
Analytically-defined shapes with exact representations:
| Shape | Description | Parameters |
|---|---|---|
| Box | Axis-aligned rectangular prism | width (x), height (y), depth (z) |
| Sphere | Perfect sphere | radius |
| Cylinder | Circular cylinder | radius, length |
| Cone | Circular cone | radius, length |
| Capsule | Cylinder with hemispherical end caps | radius, length |
| Plane | Infinite half-space | normal (a, b, c), offset (d) |
Volumetric representation using an octree data structure. Useful for representing point cloud data (e.g., from depth cameras) as collision geometry.
Octree cells can be represented as different shapes:
Octree::SubType::BOX — Each cell is a boxOctree::SubType::SPHERE_INSIDE — Each cell is an inscribed sphereOctree::SubType::SPHERE_OUTSIDE — Each cell is a circumscribed sphereTip: Prune the octree before creating the Tesseract octree shape to simplify the collision geometry.
See the Creating Geometries Example for complete code demonstrating how to create each geometry type programmatically.
For loading meshes from files, see the mesh parsing utilities in the scene_graph package.
Geometry objects are assigned to links through Visual and Collision elements:
A key difference from MoveIt is how mesh files with multiple shapes are handled:
This is particularly important for complex parts where a single convex hull would be a poor approximation, but multiple convex hulls (one per sub-mesh) provide much better coverage.