|
class | Box |
| Definition of a box. More...
|
|
class | Capsule |
| Definition of a capsule. More...
|
|
class | CollisionFilterDeclaration |
| Class for articulating changes to the configuration of SceneGraph's "collision filters"; collision filters limit the scope of various proximity queries. More...
|
|
class | CollisionFilterManager |
| Class for configuring "collision filters"; collision filters limit the scope of various proximity queries. More...
|
|
class | ContactSurface |
| The ContactSurface characterizes the intersection of two geometries M and N as a contact surface with a scalar field and a vector field, whose purpose is to support the hydroelastic pressure field contact model as described in: More...
|
|
class | Convex |
| Definition of a convex surface mesh. More...
|
|
class | Cylinder |
| Definition of a cylinder. More...
|
|
struct | DefaultProximityProperties |
| These properties will be used as defaults when the geometry as added via API calls or parsed from model files doesn't say anything more specific. More...
|
|
class | DrakeVisualizer |
| A system that publishes LCM messages representing the current state of a SceneGraph instance (whose QueryObject-valued output port is connected to this system's input port). More...
|
|
struct | DrakeVisualizerParams |
| The set of parameters for configuring DrakeVisualizer. More...
|
|
class | DrakeVisualizerTest |
|
class | Ellipsoid |
| Definition of an ellipsoid. More...
|
|
struct | EnvironmentMap |
|
struct | EquirectangularMap |
|
class | GeometryFrame |
| This simple class carries the definition of a frame used in the SceneGraph. More...
|
|
class | GeometryId |
| Type used to identify geometry instances in SceneGraph. More...
|
|
class | GeometryInstance |
| A geometry instance combines a geometry definition (i.e., a shape of some sort), a pose (relative to a parent "frame" P), material information, and an opaque collection of metadata. More...
|
|
class | GeometryProperties |
| The base class for defining a set of geometry properties. More...
|
|
class | GeometrySet |
| The GeometrySet, as its name implies, is a convenience class for defining a set of geometries. More...
|
|
class | GeometrySetTester |
|
class | GeometryState |
| The context-dependent state of SceneGraph. More...
|
|
class | GeometryVersion |
| A version numbering class that reports revisions of SceneGraph's geometric data. More...
|
|
struct | GltfExtension |
| Specifies how to deal with glTF "extensions" (non-standard capabilities). More...
|
|
class | HalfSpace |
| Definition of a half space. More...
|
|
class | IllustrationProperties |
| The set of properties for geometry used in an "illustration" role. More...
|
|
struct | InMemoryMesh |
| Representation of a mesh file stored in memory. More...
|
|
class | KinematicsVector |
| A KinematicsVector is a container class used to report kinematics data for registered frames and geometries (keyed by unique FrameId/GeometryId values) to SceneGraph where the set of keys (FrameId/GeometryId) is usually constant and the values (kinematics data) are varying. More...
|
|
class | Mesh |
| Definition of a general (possibly non-convex) mesh. More...
|
|
class | Meshcat |
| Provides an interface to Meshcat (https://github.com/meshcat-dev/meshcat). More...
|
|
class | MeshcatAnimation |
| An interface for recording/playback animations in Meshcat. More...
|
|
class | MeshcatCone |
| Definition of a cone. More...
|
|
struct | MeshcatParams |
| The set of parameters for configuring Meshcat. More...
|
|
class | MeshcatPointCloudVisualizer |
| MeshcatPointCloudVisualizer is a systems::LeafSystem that publishes a perception::PointCloud from its input port to Meshcat. More...
|
|
class | MeshcatVisualizer |
| A system wrapper for Meshcat that publishes the current state of a SceneGraph instance (whose QueryObject-valued output port is connected to this system's input port). More...
|
|
struct | MeshcatVisualizerParams |
| The set of parameters for configuring MeshcatVisualizer. More...
|
|
class | MeshFieldLinear |
| MeshFieldLinear represents a continuous piecewise-linear scalar field f defined on a (triangular or tetrahedral) mesh; the field value changes linearly within each element E (triangle or tetrahedron), and the gradient ∇f is constant within each element. More...
|
|
class | MeshSource |
| Provides a general abstraction to the definition of a mesh. More...
|
|
struct | NullTexture |
| (Internal use only) A place holder indicating that no texture has been provided for environment map (and, therefore, no environment map). More...
|
|
struct | PenetrationAsPointPair |
| A characterization of the intersection of two penetrating geometries. More...
|
|
class | PerceptionProperties |
| The set of properties for geometry used in a "perception" role. More...
|
|
class | PolygonSurfaceMesh |
| PolygonSurfaceMesh represents a surface comprised of polygonal elements (three or more sides). More...
|
|
class | PolygonSurfaceMeshTest |
|
struct | promoted_numerical |
| Given the two scalar types U and T, returns the most "promoted" type. More...
|
|
class | ProximityProperties |
| The set of properties for geometry used in a proximity role. More...
|
|
class | QueryObject |
| The QueryObject serves as a mechanism to perform geometry queries on the world's geometry. More...
|
|
struct | RenderEngineGlParams |
| Construction parameters for RenderEngineGl. More...
|
|
struct | RenderEngineGltfClientParams |
| Construction parameters for the MakeRenderEngineGltfClient() to create a client as part of the glTF Render Client-Server API. More...
|
|
struct | RenderEngineVtkParams |
| Construction parameters for the RenderEngineVtk. More...
|
|
class | Rgba |
| Defines RGBA (red, green, blue, alpha) values on the range [0, 1]. More...
|
|
class | SceneGraph |
| SceneGraph serves as the nexus for all geometry (and geometry-based operations) in a Diagram. More...
|
|
struct | SceneGraphConfig |
| The set of configurable properties on a SceneGraph. More...
|
|
class | SceneGraphInspector |
| The SceneGraphInspector serves as a mechanism to query the topological structure of a SceneGraph instance. More...
|
|
class | Shape |
| The abstract base class for all shape specifications. More...
|
|
class | ShapeReifier |
| The interface for converting shape descriptions to real shapes. More...
|
|
struct | SignedDistancePair |
| The data for reporting the signed distance between two geometries, A and B. More...
|
|
struct | SignedDistanceToPoint |
| The data for reporting the signed distance from a query point to a geometry. More...
|
|
class | Sphere |
| Definition of sphere. More...
|
|
class | SurfacePolygon |
| Representation of a polygonal face in a SurfacePolygon. More...
|
|
class | SurfaceTriangle |
| SurfaceTriangle represents a triangular face in a TriangleSurfaceMesh. More...
|
|
class | TriangleSurfaceMesh |
| TriangleSurfaceMesh represents a union of triangles. More...
|
|
class | TriangleSurfaceMeshTester |
|
class | VolumeElement |
| VolumeElement represents a tetrahedral element in a VolumeMesh. More...
|
|
class | VolumeMesh |
| VolumeMesh represents a tetrahedral volume mesh. More...
|
|
class | VolumeMeshTester |
|
|
using | DrakeVisualizerd = DrakeVisualizer< double > |
| A convenient alias for the DrakeVisualizer class when using the double scalar type. More...
|
|
using | FilterId = drake::Identifier< class FilterTag > |
| Type used to identify transient collision filter declarations in SceneGraph. More...
|
|
using | SourceId = drake::Identifier< class SourceTag > |
| Type used to identify geometry sources in SceneGraph. More...
|
|
using | FrameId = drake::Identifier< class FrameTag > |
| Type used to identify geometry frames in SceneGraph. More...
|
|
template<typename T > |
using | FramePoseVector = KinematicsVector< FrameId, math::RigidTransform< T > > |
| Class for communicating pose information to SceneGraph for registered frames. More...
|
|
template<typename T > |
using | GeometryConfigurationVector = KinematicsVector< GeometryId, VectorX< T > > |
| Class for communicating configuration information to SceneGraph for registered deformable geometries. More...
|
|
using | MeshcatPointCloudVisualizerd = MeshcatPointCloudVisualizer< double > |
| A convenient alias for the MeshcatPointCloudVisualizer class when using the double scalar type. More...
|
|
using | MeshcatVisualizerd = MeshcatVisualizer< double > |
| A convenient alias for the MeshcatVisualizer class when using the double scalar type. More...
|
|
template<typename T , typename U > |
using | promoted_numerical_t = typename promoted_numerical< T, U >::type |
|
template<typename FieldValue , typename T > |
using | PolygonSurfaceMeshFieldLinear = MeshFieldLinear< FieldValue, PolygonSurfaceMesh< T > > |
| A convenience alias for instantiating a MeshFieldLinear on a PolygonSurfaceMesh. More...
|
|
template<typename FieldValue , typename T > |
using | TriangleSurfaceMeshFieldLinear = MeshFieldLinear< FieldValue, TriangleSurfaceMesh< T > > |
| A convenience alias for instantiating a MeshFieldLinear on a TriangleSurfaceMesh. More...
|
|
template<typename FieldValue , typename T > |
using | VolumeMeshFieldLinear = MeshFieldLinear< FieldValue, VolumeMesh< T > > |
| A convenience alias for instantiating a MeshFieldLinear on a VolumeMesh. More...
|
|
|
using | FrameIdSet = std::unordered_set< FrameId > |
| Collection of unique frame ids. More...
|
|
using | GeometryIdSet = std::unordered_set< GeometryId > |
| Collection of unique geometry ids. More...
|
|
|
TriangleSurfaceMesh< double > | ReadObjToTriangleSurfaceMesh (const std::filesystem::path &filename, double scale=1.0, std::function< void(std::string_view)> on_warning={}) |
| Constructs a surface mesh from a Wavefront .obj file and optionally scales coordinates by the given scale factor. More...
|
|
TriangleSurfaceMesh< double > | ReadObjToTriangleSurfaceMesh (std::istream *input_stream, double scale=1.0, std::function< void(std::string_view)> on_warning={}, std::string_view description="from_stream") |
| Overload of ReadObjToTriangleSurfaceMesh(const std::string&, double) with the Wavefront .obj file given in std::istream. More...
|
|
TriangleSurfaceMesh< double > | ReadObjToTriangleSurfaceMesh (const MeshSource &mesh_source, double scale=1.0, std::function< void(std::string_view)> on_warning={}) |
| Overload of ReadObjToTriangleSurfaceMesh(const std::filesystem::path&, double) with the Wavefront .obj in a Mesh shape specification. More...
|
|
| DRAKE_DECLARE_CLASS_TEMPLATE_INSTANTIATIONS_ON_DEFAULT_NONSYMBOLIC_SCALARS (class PolygonSurfaceMesh) |
|
| DRAKE_DECLARE_CLASS_TEMPLATE_INSTANTIATIONS_ON_DEFAULT_NONSYMBOLIC_SCALARS (class TriangleSurfaceMesh) |
|
bool | operator== (const VolumeElement &e1, const VolumeElement &e2) |
|
bool | operator!= (const VolumeElement &e1, const VolumeElement &e2) |
|
| DRAKE_DECLARE_CLASS_TEMPLATE_INSTANTIATIONS_ON_DEFAULT_NONSYMBOLIC_SCALARS (class VolumeMesh) |
|
template<class T > |
TriangleSurfaceMesh< T > | ConvertVolumeToSurfaceMesh (const VolumeMesh< T > &volume) |
| Converts a tetrahedral volume mesh to a triangulated surface mesh of the boundary surface of the volume. More...
|
|
void | AddContactMaterial (std::optional< double > dissipation, std::optional< double > point_stiffness, const std::optional< multibody::CoulombFriction< double >> &friction, ProximityProperties *properties) |
| AddContactMaterial() adds general contact material properties to the given set of proximity properties . More...
|
|
void | AddRigidHydroelasticProperties (double resolution_hint, ProximityProperties *properties) |
| Adds properties to the given set of proximity properties sufficient to cause the associated geometry to generate a rigid hydroelastic representation. More...
|
|
void | AddRigidHydroelasticProperties (ProximityProperties *properties) |
| Overload, intended for shapes that don't get tessellated in their hydroelastic representation (e.g., HalfSpace and Mesh). More...
|
|
void | AddCompliantHydroelasticProperties (double resolution_hint, double hydroelastic_modulus, ProximityProperties *properties) |
| Adds properties to the given set of proximity properties sufficient to cause the associated geometry to generate a compliant hydroelastic representation. More...
|
|
void | AddCompliantHydroelasticPropertiesForHalfSpace (double slab_thickness, double hydroelastic_modulus, ProximityProperties *properties) |
| Compliant half spaces are handled as a special case; they do not get tessellated. More...
|
|
InMemoryMesh | ReadGltfToMemory (const std::filesystem::path &gltf_path) |
| Given a file path to a .gltf file, loads the .gltf file contents into memory. More...
|
|
std::unique_ptr< render::RenderEngine > | MakeRenderEngineGl (RenderEngineGlParams params={}) |
| Constructs a RenderEngine implementation which uses a purely OpenGL renderer. More...
|
|
std::unique_ptr< render::RenderEngine > | MakeRenderEngineGltfClient (const RenderEngineGltfClientParams ¶ms) |
| Constructs a RenderEngine implementation which generates glTF files to upload to a render server, and retrieves renderings from said server by copying image data back into drake systems::sensors::Image buffers. More...
|
|
std::unique_ptr< render::RenderEngine > | MakeRenderEngineVtk (const RenderEngineVtkParams ¶ms) |
| Constructs a RenderEngine implementation which uses a VTK-based OpenGL renderer. More...
|
|
double | CalcVolume (const Shape &shape) |
| Calculates the volume (in meters^3) for the Shape. More...
|
|
std::shared_ptr< Meshcat > | GetTestEnvironmentMeshcat () |
| Returns a singleton Meshcat object to be used during unit tests. More...
|
|
|
These are simply convenience functions for converting the Role enumeration into a human-readable string.
|
std::string | to_string (const Role &role) |
|
std::ostream & | operator<< (std::ostream &out, const Role &role) |
|
|
A collection of functions to help facilitate working with properties.
|
IllustrationProperties | MakePhongIllustrationProperties (const Vector4< double > &diffuse) |
| Constructs an IllustrationProperties instance compatible with a simple "phong" material using only the given diffuse color. More...
|
|
Constructs a RenderEngine implementation which uses a purely OpenGL renderer.
The engine only works under Ubuntu. If called on a Mac, it will throw.
- Note
- RenderEngineGl behaves a bit differently from other RenderEngine implementations (e.g., RenderEngineVtk) with respect to displayed images. First, RenderEngineGl can only display a single image type at a time. So, if a shown window has been requested for both label and color images, the images will alternate in the same window. Second, the window display draws all images flipped vertically. The image produced will be compatible with the Drake ecosystem, only the visualization will be upside down. This has been documented in https://github.com/RobotLocomotion/drake/issues/14254.
Using RenderEngineGl in multiple threads
Most importantly, a single RenderEngineGl should not be exercised in multiple threads. One thread, one RenderEngineGl instance.
A RenderEngineGl instance and its clones can be used in different threads simultaneously, but only the rendering APIs are threadsafe. Do not mutate the contents of the engine (e.g., adding/removing geometries, etc.) in parallel.
Two independently constructed RenderEngineGl instances can be freely used in different threads – all APIs are available.
The expected workflow is to add a RenderEngineGl instance a SceneGraph instance (see SceneGraph::AddRenderer()) and then to populate SceneGraph with the desired geometry. Each systems::Context allocated for that SceneGraph will receive a clone of the original RenderEngineGl. One systems::Context can be used per thread to create rendered images in parallel.
- Exceptions
-
std::exception | if kHasRenderEngineGl is false. |
Constructs a RenderEngine implementation which uses a VTK-based OpenGL renderer.
- Warning
- On macOS, we've observed that RenderEngineVtk sometimes does not obey render::ColorRenderCamera::show_window when it's set to
true
. Refer to issue #20144 for further discussion.
- Note
- On Ubuntu, render::ColorRenderCamera::show_window only shows a window when RenderEngineVtkParams::backend is set to "GLX"; the default backend value of "EGL" cannot show a window.
Geometry perception properties
This RenderEngine implementation looks for the following properties when registering visual geometry, categorized by rendered image type.
RGB images
Group name | Property Name | Required | Property Type | Property Description |
phong | diffuse | no¹ | Eigen::Vector4d | The rgba value of the object surface. |
phong | diffuse_map | no² | std::string | The path to a texture to apply to the geometry.³⁴ |
¹ If no diffuse value is given, a default rgba value will be applied. The default color is a bright orange. This default value can be changed to a different value at construction.
² If no path is specified, or the file cannot be read, the diffuse rgba value is used (or its default).
³ RenderEngineVtk implements a legacy feature for associating textures with meshes. If no (phong, diffuse_map)
property is provided (or it refers to a file that doesn't exist), for a mesh named /path/to/mesh.obj
, RenderEngineVtk will search for a file /path/to/mesh.png
(replacing "obj" with "png"). If that image exists, it will be used as a texture on the mesh object. ⁴ The render engine consumes pngs with uchar channels. Pngs with a different bit depth, e.g., uint16 channels, will be converted to that.
- Note
- RenderEngineVtk does not support the OBJ format
usemtl
directive. Instead, it has two ways to associate a color texture with an obj file:
- File name matching; see footnote 3 above.
- Explicit assignment of arbitrary texture files from within model files. In SDFormat, use the tag drake:diffuse_map. In URDF, use
//visual/material/texture
.
Depth images
No specific properties required.
Label images
Group name | Property Name | Required | Property Type | Property Description |
label | id | no⁵ | RenderLabel | The label to render into the image. |
⁵ When the label property is not set, RenderEngineVtk uses a default render label of RenderLabel::kDontCare.
Geometries accepted by RenderEngineVtk
As documented in RenderEngine::RegisterVisual(), a RenderEngine implementation can use the properties found in the PerceptionProperties to determine whether it accepts a shape provided for registration. RenderEngineVtk makes use of defaults to accept all geometries (assuming the properties pass validation, e.g., render label validation).