An implementation of CollisionChecker that uses SceneGraph to provide collision checks.
Its behavior and limitations are exactly those of SceneGraph, e.g., in terms of what kinds of geometries can be collided.
|
| SceneGraphCollisionChecker (CollisionCheckerParams params) |
| Creates a new checker with the given params. More...
|
|
|
void | operator= (const SceneGraphCollisionChecker &)=delete |
|
virtual | ~CollisionChecker () |
|
std::unique_ptr< CollisionChecker > | Clone () const |
|
bool | SupportsParallelChecking () const |
| Does the collision checker support true parallel collision checks? More...
|
|
| CollisionChecker (CollisionChecker &&)=delete |
|
CollisionChecker & | operator= (const CollisionChecker &)=delete |
|
CollisionChecker & | operator= (CollisionChecker &&)=delete |
|
const RobotDiagram< double > & | model () const |
|
const multibody::MultibodyPlant< double > & | plant () const |
|
const multibody::RigidBody< double > & | get_body (multibody::BodyIndex body_index) const |
|
const std::vector< multibody::ModelInstanceIndex > & | robot_model_instances () const |
| Gets the set of model instances belonging to the robot. More...
|
|
bool | IsPartOfRobot (const multibody::RigidBody< double > &body) const |
|
bool | IsPartOfRobot (multibody::BodyIndex body_index) const |
|
const Eigen::VectorXd & | GetZeroConfiguration () const |
|
int | num_allocated_contexts () const |
|
const CollisionCheckerContext & | model_context (std::optional< int > context_number=std::nullopt) const |
| Accesses a collision checking context from within the implicit context pool owned by this collision checker. More...
|
|
const systems::Context< double > & | plant_context (std::optional< int > context_number=std::nullopt) const |
| Accesses a multibody plant sub-context context from within the implicit context pool owned by this collision checker. More...
|
|
const systems::Context< double > & | UpdatePositions (const Eigen::VectorXd &q, std::optional< int > context_number=std::nullopt) const |
| Updates the generalized positions q in the implicit context specified and returns a reference to the MultibodyPlant's now-updated context. More...
|
|
const systems::Context< double > & | UpdateContextPositions (CollisionCheckerContext *model_context, const Eigen::VectorXd &q) const |
| Explicit Context-based version of UpdatePositions(). More...
|
|
std::shared_ptr< CollisionCheckerContext > | MakeStandaloneModelContext () const |
| Make and track a CollisionCheckerContext. More...
|
|
void | PerformOperationAgainstAllModelContexts (const std::function< void(const RobotDiagram< double > &, CollisionCheckerContext *)> &operation) |
| Allows externally-provided operations that must be performed against all contexts in the per-thread context pool, and any standalone contexts made with MakeStandaloneModelContext(). More...
|
|
bool | AddCollisionShape (const std::string &group_name, const BodyShapeDescription &description) |
| Requests the addition of a shape to a body, both given in description . More...
|
|
int | AddCollisionShapes (const std::string &group_name, const std::vector< BodyShapeDescription > &descriptions) |
| Requests the addition of N shapes to N bodies, each given in the set of descriptions . More...
|
|
std::map< std::string, int > | AddCollisionShapes (const std::map< std::string, std::vector< BodyShapeDescription >> &geometry_groups) |
| Requests the addition of a collection of shapes to bodies across multiple geometry groups. More...
|
|
bool | AddCollisionShapeToFrame (const std::string &group_name, const multibody::Frame< double > &frameA, const geometry::Shape &shape, const math::RigidTransform< double > &X_AG) |
| Requests the addition of shape to the frame A in the checker's model. More...
|
|
bool | AddCollisionShapeToBody (const std::string &group_name, const multibody::RigidBody< double > &bodyA, const geometry::Shape &shape, const math::RigidTransform< double > &X_AG) |
| Requests the addition of shape to the body A in the checker's model The added shape will belong to the named geometry group. More...
|
|
std::map< std::string, std::vector< BodyShapeDescription > > | GetAllAddedCollisionShapes () const |
| Gets all checker geometries currently added across the whole checker. More...
|
|
void | RemoveAllAddedCollisionShapes (const std::string &group_name) |
| Removes all added checker geometries which belong to the named group. More...
|
|
void | RemoveAllAddedCollisionShapes () |
| Removes all added checker geometries from all geometry groups. More...
|
|
std::optional< double > | MaybeGetUniformRobotEnvironmentPadding () const |
| If the padding between all robot bodies and environment bodies is the same, returns the common padding value. More...
|
|
std::optional< double > | MaybeGetUniformRobotRobotPadding () const |
| If the padding between all pairs of robot bodies is the same, returns the common padding value. More...
|
|
double | GetPaddingBetween (multibody::BodyIndex bodyA_index, multibody::BodyIndex bodyB_index) const |
| Gets the padding value for the pair of bodies specified. More...
|
|
double | GetPaddingBetween (const multibody::RigidBody< double > &bodyA, const multibody::RigidBody< double > &bodyB) const |
| Overload that uses body references. More...
|
|
void | SetPaddingBetween (multibody::BodyIndex bodyA_index, multibody::BodyIndex bodyB_index, double padding) |
| Sets the padding value for the pair of bodies specified. More...
|
|
void | SetPaddingBetween (const multibody::RigidBody< double > &bodyA, const multibody::RigidBody< double > &bodyB, double padding) |
| Overload that uses body references. More...
|
|
const Eigen::MatrixXd & | GetPaddingMatrix () const |
| Gets the collision padding matrix. More...
|
|
void | SetPaddingMatrix (const Eigen::MatrixXd &collision_padding) |
| Sets the collision padding matrix. More...
|
|
double | GetLargestPadding () const |
| Gets the current largest collision padding across all (robot, *) body pairs. More...
|
|
void | SetPaddingOneRobotBodyAllEnvironmentPairs (multibody::BodyIndex body_index, double padding) |
| Sets the environment collision padding for the provided robot body with respect to all environment bodies. More...
|
|
void | SetPaddingAllRobotEnvironmentPairs (double padding) |
| Sets the padding for all (robot, environment) pairs. More...
|
|
void | SetPaddingAllRobotRobotPairs (double padding) |
| Sets the padding for all (robot, robot) pairs. More...
|
|
const Eigen::MatrixXi & | GetNominalFilteredCollisionMatrix () const |
| Returns the "nominal" collision filter matrix. More...
|
|
const Eigen::MatrixXi & | GetFilteredCollisionMatrix () const |
| Gets the "active" collision filter matrix. More...
|
|
void | SetCollisionFilterMatrix (const Eigen::MatrixXi &filter_matrix) |
| Sets the "active" collision filter matrix. More...
|
|
bool | IsCollisionFilteredBetween (multibody::BodyIndex bodyA_index, multibody::BodyIndex bodyB_index) const |
| Checks if collision is filtered between the two bodies specified. More...
|
|
bool | IsCollisionFilteredBetween (const multibody::RigidBody< double > &bodyA, const multibody::RigidBody< double > &bodyB) const |
| Overload that uses body references. More...
|
|
void | SetCollisionFilteredBetween (multibody::BodyIndex bodyA_index, multibody::BodyIndex bodyB_index, bool filter_collision) |
| Declares the body pair (bodyA, bodyB) to be filtered (or not) based on filter_collision . More...
|
|
void | SetCollisionFilteredBetween (const multibody::RigidBody< double > &bodyA, const multibody::RigidBody< double > &bodyB, bool filter_collision) |
| Overload that uses body references. More...
|
|
void | SetCollisionFilteredWithAllBodies (multibody::BodyIndex body_index) |
| Declares that body pair (B, O) is filtered (for all bodies O in this checker's plant). More...
|
|
void | SetCollisionFilteredWithAllBodies (const multibody::RigidBody< double > &body) |
| Overload that uses body references. More...
|
|
bool | CheckConfigCollisionFree (const Eigen::VectorXd &q, std::optional< int > context_number=std::nullopt) const |
| Checks a single configuration for collision using the current thread's associated context. More...
|
|
bool | CheckContextConfigCollisionFree (CollisionCheckerContext *model_context, const Eigen::VectorXd &q) const |
| Explicit Context-based version of CheckConfigCollisionFree(). More...
|
|
std::vector< uint8_t > | CheckConfigsCollisionFree (const std::vector< Eigen::VectorXd > &configs, Parallelism parallelize=Parallelism::Max()) const |
| Checks a vector of configurations for collision, evaluating in parallel when supported and enabled by parallelize . More...
|
|
void | SetDistanceAndInterpolationProvider (std::shared_ptr< const DistanceAndInterpolationProvider > provider) |
| Sets the distance and interpolation provider to use. More...
|
|
const DistanceAndInterpolationProvider & | distance_and_interpolation_provider () const |
| Gets the DistanceAndInterpolationProvider in use. More...
|
|
void | SetConfigurationDistanceFunction (const ConfigurationDistanceFunction &distance_function) |
| Sets the configuration distance function to distance_function . More...
|
|
double | ComputeConfigurationDistance (const Eigen::VectorXd &q1, const Eigen::VectorXd &q2) const |
| Computes configuration-space distance between the provided configurations q1 and q2 , using the distance function configured at construction- time or via SetConfigurationDistanceFunction(). More...
|
|
ConfigurationDistanceFunction | MakeStandaloneConfigurationDistanceFunction () const |
|
void | SetConfigurationInterpolationFunction (const ConfigurationInterpolationFunction &interpolation_function) |
| Sets the configuration interpolation function to interpolation_function . More...
|
|
Eigen::VectorXd | InterpolateBetweenConfigurations (const Eigen::VectorXd &q1, const Eigen::VectorXd &q2, double ratio) const |
| Interpolates between provided configurations q1 and q2 . More...
|
|
ConfigurationInterpolationFunction | MakeStandaloneConfigurationInterpolationFunction () const |
|
double | edge_step_size () const |
| Gets the current edge step size. More...
|
|
void | set_edge_step_size (double edge_step_size) |
| Sets the edge step size to edge_step_size . More...
|
|
bool | CheckEdgeCollisionFree (const Eigen::VectorXd &q1, const Eigen::VectorXd &q2, std::optional< int > context_number=std::nullopt) const |
| Checks a single configuration-to-configuration edge for collision, using the current thread's associated context. More...
|
|
bool | CheckContextEdgeCollisionFree (CollisionCheckerContext *model_context, const Eigen::VectorXd &q1, const Eigen::VectorXd &q2) const |
| Explicit Context-based version of CheckEdgeCollisionFree(). More...
|
|
bool | CheckEdgeCollisionFreeParallel (const Eigen::VectorXd &q1, const Eigen::VectorXd &q2, Parallelism parallelize=Parallelism::Max()) const |
| Checks a single configuration-to-configuration edge for collision. More...
|
|
std::vector< uint8_t > | CheckEdgesCollisionFree (const std::vector< std::pair< Eigen::VectorXd, Eigen::VectorXd >> &edges, Parallelism parallelize=Parallelism::Max()) const |
| Checks multiple configuration-to-configuration edges for collision. More...
|
|
EdgeMeasure | MeasureEdgeCollisionFree (const Eigen::VectorXd &q1, const Eigen::VectorXd &q2, std::optional< int > context_number=std::nullopt) const |
| Checks a single configuration-to-configuration edge for collision, using the current thread's associated context. More...
|
|
EdgeMeasure | MeasureContextEdgeCollisionFree (CollisionCheckerContext *model_context, const Eigen::VectorXd &q1, const Eigen::VectorXd &q2) const |
| Explicit Context-based version of MeasureEdgeCollisionFree(). More...
|
|
EdgeMeasure | MeasureEdgeCollisionFreeParallel (const Eigen::VectorXd &q1, const Eigen::VectorXd &q2, Parallelism parallelize=Parallelism::Max()) const |
| Checks a single configuration-to-configuration edge for collision. More...
|
|
std::vector< EdgeMeasure > | MeasureEdgesCollisionFree (const std::vector< std::pair< Eigen::VectorXd, Eigen::VectorXd >> &edges, Parallelism parallelize=Parallelism::Max()) const |
| Checks multiple configuration-to-configuration edge for collision. More...
|
|
RobotClearance | CalcRobotClearance (const Eigen::VectorXd &q, double influence_distance, std::optional< int > context_number=std::nullopt) const |
| Calculates the distance, ϕ, and distance Jacobian, Jqᵣ_ϕ, for each potential collision whose distance is less than influence_distance , using the current thread's associated context. More...
|
|
RobotClearance | CalcContextRobotClearance (CollisionCheckerContext *model_context, const Eigen::VectorXd &q, double influence_distance) const |
| Explicit Context-based version of CalcRobotClearance(). More...
|
|
int | MaxNumDistances (std::optional< int > context_number=std::nullopt) const |
| Returns an upper bound on the number of distances returned by CalcRobotClearance(), using the current thread's associated context. More...
|
|
int | MaxContextNumDistances (const CollisionCheckerContext &model_context) const |
| Explicit Context-based version of MaxNumDistances(). More...
|
|
std::vector< RobotCollisionType > | ClassifyBodyCollisions (const Eigen::VectorXd &q, std::optional< int > context_number=std::nullopt) const |
| Classifies which robot bodies are in collision (and which type of collision) for the provided configuration q , using the current thread's associated context. More...
|
|
std::vector< RobotCollisionType > | ClassifyContextBodyCollisions (CollisionCheckerContext *model_context, const Eigen::VectorXd &q) const |
| Explicit Context-based version of ClassifyBodyCollisions(). More...
|
|