|
| Model () |
|
virtual | ~Model () |
|
virtual ElementId | addElement (const Element &element) |
| Add a collision element to this model. More...
|
|
bool | removeElement (const ElementId &id) |
|
virtual const Element * | readElement (ElementId id) const |
| Get a read-only pointer to a collision element in this model. More...
|
|
virtual void | getTerrainContactPoints (ElementId id0, Eigen::Matrix3Xd &terrain_points) |
|
virtual void | updateModel ()=0 |
| Perform any operations needed to bring the model up-to-date after making changes to its collision elements. More...
|
|
virtual bool | updateElementWorldTransform (const ElementId id, const Eigen::Isometry3d &T_local_to_world) |
| Change the element-to-world transform of a specified collision element. More...
|
|
virtual bool | closestPointsAllToAll (const std::vector< ElementId > &ids_to_check, const bool use_margins, std::vector< PointPair > &closest_points)=0 |
| Compute the points of closest approach between all eligible pairs of collision elements drawn from a specified set of elements. More...
|
|
virtual bool | ComputeMaximumDepthCollisionPoints (const bool use_margins, std::vector< PointPair > &closest_points)=0 |
| Computes the point of closest approach between collision elements that are in contact. More...
|
|
virtual bool | closestPointsPairwise (const std::vector< ElementIdPair > &id_pairs, const bool use_margins, std::vector< PointPair > &closest_points)=0 |
| Compute the points of closest approach between specified pairs of collision elements. More...
|
|
virtual void | ClearCachedResults (bool use_margins)=0 |
| Clears possibly cached results so that a fresh computation can be performed. More...
|
|
virtual void | collisionDetectFromPoints (const Eigen::Matrix3Xd &points, bool use_margins, std::vector< PointPair > &closest_points)=0 |
| Compute closest distance from each point to any surface in the collision model utilizing Bullet's collision detection code. More...
|
|
virtual std::vector< PointPair > | potentialCollisionPoints (bool use_margins)=0 |
| Compute the set of potential collision points for all eligible pairs of collision geometries in this model. More...
|
|
virtual std::vector< size_t > | collidingPoints (const std::vector< Eigen::Vector3d > &input_points, double collision_threshold)=0 |
| Given a vector of points in world coordinates, returns the indices of those points within a specified distance of any collision geometry in the model. More...
|
|
virtual bool | collidingPointsCheckOnly (const std::vector< Eigen::Vector3d > &input_points, double collision_threshold)=0 |
| Tests if any of the points supplied in input_points collides with any part of the model within a given threshold. More...
|
|
virtual bool | collisionRaycast (const Eigen::Matrix3Xd &origin, const Eigen::Matrix3Xd &ray_endpoint, bool use_margins, Eigen::VectorXd &distances, Eigen::Matrix3Xd &normals)=0 |
| Performs raycasting collision detecting (like a LIDAR / laser rangefinder) More...
|
|
virtual bool | transformCollisionFrame (const DrakeCollision::ElementId &eid, const Eigen::Isometry3d &transform_body_to_joint) |
| Modifies a collision element's local transform to be relative to a joint's frame rather than a link's frame. More...
|
|
virtual void ClearCachedResults |
( |
bool |
use_margins | ) |
|
|
pure virtual |
Clears possibly cached results so that a fresh computation can be performed.
- Parameters
-
use_margins[in] | If true , the cache of the model with margins is cleared. If false , the cache of the model without margins is cleared. |
Depending on the implementation, the collision model may cache results on each dispatch. For instance, Bullet uses cached results to warm-start its LCP solvers.
Clearing cached results allows the collision model to perform a fresh computation without any coupling with previous history.
- See also
- drake/systems/plants/collision/test/model_test.cc.
Implemented in BulletModel.
virtual std::vector<size_t> collidingPoints |
( |
const std::vector< Eigen::Vector3d > & |
input_points, |
|
|
double |
collision_threshold |
|
) |
| |
|
pure virtual |
Given a vector of points in world coordinates, returns the indices of those points within a specified distance of any collision geometry in the model.
In other words, this method tests if a sphere of radius collision_threshold located at input_points[i] collides with any part of the model. The result is returned as a vector of indexes in input_points that do collide with the model. Points are not checked against one another but only against the existing model.
- Parameters
-
input_points | The list of points to check for collisions against the model. |
collision_threshold | The radius of a control sphere around each point used to check for collisions with the model. |
- Returns
- A vector with indexes in input_points of all those points that do collide with the model within the specified threshold.
- See also
- systems/plants/test/collidingPointsTest.m for a Matlab test.
Implemented in BulletModel.
virtual bool collidingPointsCheckOnly |
( |
const std::vector< Eigen::Vector3d > & |
input_points, |
|
|
double |
collision_threshold |
|
) |
| |
|
pure virtual |
Tests if any of the points supplied in input_points collides with any part of the model within a given threshold.
In other words, this method tests if any of the spheres of radius collision_threshold located at input_points[i] collides with any part of the model. This method returns as soon as any of these spheres collides with the model. Points are not checked against one another but only against the existing model.
- Parameters
-
input_points | The list of points to check for collisions against the model. |
collision_threshold | The radius of a control sphere around each point used to check for collisions with the model. |
- Returns
true
if any of the points positively checks for collision. false
otherwise.
Implemented in BulletModel.