This hybrid collision environment combines FCL and a distance field. Both can be used to calculate collisions.
More...
|
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | CollisionEnvHybrid (const moveit::core::RobotModelConstPtr &robot_model, const std::map< std::string, std::vector< CollisionSphere > > &link_body_decompositions=std::map< std::string, std::vector< CollisionSphere > >(), double size_x=DEFAULT_SIZE_X, double size_y=DEFAULT_SIZE_Y, double size_z=DEFAULT_SIZE_Z, const Eigen::Vector3d &origin=Eigen::Vector3d(0, 0, 0), bool use_signed_distance_field=DEFAULT_USE_SIGNED_DISTANCE_FIELD, double resolution=DEFAULT_RESOLUTION, double collision_tolerance=DEFAULT_COLLISION_TOLERANCE, double max_propogation_distance=DEFAULT_MAX_PROPOGATION_DISTANCE, double padding=0.0, double scale=1.0) |
|
| CollisionEnvHybrid (const moveit::core::RobotModelConstPtr &robot_model, const WorldPtr &world, const std::map< std::string, std::vector< CollisionSphere > > &link_body_decompositions=std::map< std::string, std::vector< CollisionSphere > >(), double size_x=DEFAULT_SIZE_X, double size_y=DEFAULT_SIZE_Y, double size_z=DEFAULT_SIZE_Z, const Eigen::Vector3d &origin=Eigen::Vector3d(0, 0, 0), bool use_signed_distance_field=DEFAULT_USE_SIGNED_DISTANCE_FIELD, double resolution=DEFAULT_RESOLUTION, double collision_tolerance=DEFAULT_COLLISION_TOLERANCE, double max_propogation_distance=DEFAULT_MAX_PROPOGATION_DISTANCE, double padding=0.0, double scale=1.0) |
|
| CollisionEnvHybrid (const CollisionEnvHybrid &other, const WorldPtr &world) |
|
| ~CollisionEnvHybrid () override |
|
void | initializeRobotDistanceField (const std::map< std::string, std::vector< CollisionSphere > > &link_body_decompositions, double size_x, double size_y, double size_z, bool use_signed_distance_field, double resolution, double collision_tolerance, double max_propogation_distance) |
|
void | checkSelfCollisionDistanceField (const collision_detection::CollisionRequest &req, collision_detection::CollisionResult &res, const moveit::core::RobotState &state) const |
|
void | checkSelfCollisionDistanceField (const collision_detection::CollisionRequest &req, collision_detection::CollisionResult &res, const moveit::core::RobotState &state, GroupStateRepresentationPtr &gsr) const |
|
void | checkSelfCollisionDistanceField (const collision_detection::CollisionRequest &req, collision_detection::CollisionResult &res, const moveit::core::RobotState &state, const collision_detection::AllowedCollisionMatrix &acm) const |
|
void | checkSelfCollisionDistanceField (const collision_detection::CollisionRequest &req, collision_detection::CollisionResult &res, const moveit::core::RobotState &state, const collision_detection::AllowedCollisionMatrix &acm, GroupStateRepresentationPtr &gsr) const |
|
const CollisionEnvDistanceFieldConstPtr | getCollisionRobotDistanceField () const |
|
void | checkCollisionDistanceField (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state) const |
|
void | checkCollisionDistanceField (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state, GroupStateRepresentationPtr &gsr) const |
|
void | checkCollisionDistanceField (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state, const AllowedCollisionMatrix &acm) const |
|
void | checkCollisionDistanceField (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state, const AllowedCollisionMatrix &acm, GroupStateRepresentationPtr &gsr) const |
|
void | checkRobotCollisionDistanceField (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state) const |
|
void | checkRobotCollisionDistanceField (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state, GroupStateRepresentationPtr &gsr) const |
|
void | checkRobotCollisionDistanceField (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state, const AllowedCollisionMatrix &acm) const |
|
void | checkRobotCollisionDistanceField (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state, const AllowedCollisionMatrix &acm, GroupStateRepresentationPtr &gsr) const |
|
void | setWorld (const WorldPtr &world) override |
|
void | getCollisionGradients (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state, const AllowedCollisionMatrix *acm, GroupStateRepresentationPtr &gsr) const |
|
void | getAllCollisions (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state, const AllowedCollisionMatrix *acm, GroupStateRepresentationPtr &gsr) const |
|
const CollisionEnvDistanceFieldConstPtr | getCollisionWorldDistanceField () const |
|
| CollisionEnvFCL ()=delete |
|
| CollisionEnvFCL (const moveit::core::RobotModelConstPtr &model, double padding=0.0, double scale=1.0) |
|
| CollisionEnvFCL (const moveit::core::RobotModelConstPtr &model, const WorldPtr &world, double padding=0.0, double scale=1.0) |
|
| CollisionEnvFCL (const CollisionEnvFCL &other, const WorldPtr &world) |
|
| ~CollisionEnvFCL () override |
|
void | checkSelfCollision (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state) const override |
| Check for robot self collision. Any collision between any pair of links is checked for, NO collisions are ignored.
|
|
void | checkSelfCollision (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state, const AllowedCollisionMatrix &acm) const override |
| Check for self collision. Allowed collisions specified by the allowed collision matrix are taken into account.
|
|
void | checkRobotCollision (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state) const override |
| Check whether the robot model is in collision with the world. Any collisions between a robot link and the world are considered. Self collisions are not checked.
|
|
void | checkRobotCollision (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state, const AllowedCollisionMatrix &acm) const override |
| Check whether the robot model is in collision with the world. Allowed collisions are ignored. Self collisions are not checked.
|
|
void | checkRobotCollision (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state1, const moveit::core::RobotState &state2, const AllowedCollisionMatrix &acm) const override |
| Check whether the robot model is in collision with the world in a continuous manner (between two robot states). Allowed collisions are ignored. Self collisions are not checked.
|
|
void | checkRobotCollision (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state1, const moveit::core::RobotState &state2) const override |
| Check whether the robot model is in collision with the world in a continuous manner (between two robot states). Allowed collisions are ignored. Self collisions are not checked.
|
|
void | distanceSelf (const DistanceRequest &req, DistanceResult &res, const moveit::core::RobotState &state) const override |
| The distance to self-collision given the robot is at state state.
|
|
void | distanceRobot (const DistanceRequest &req, DistanceResult &res, const moveit::core::RobotState &state) const override |
| Compute the distance between a robot and the world.
|
|
| CollisionEnv ()=delete |
|
| CollisionEnv (const moveit::core::RobotModelConstPtr &model, double padding=0.0, double scale=1.0) |
| Constructor.
|
|
| CollisionEnv (const moveit::core::RobotModelConstPtr &model, const WorldPtr &world, double padding=0.0, double scale=1.0) |
| Constructor.
|
|
| CollisionEnv (const CollisionEnv &other, const WorldPtr &world) |
| Copy constructor.
|
|
virtual | ~CollisionEnv () |
|
virtual void | checkCollision (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state) const |
| Check whether the robot model is in collision with itself or the world at a particular state. Any collision between any pair of links is checked for, NO collisions are ignored.
|
|
virtual void | checkCollision (const CollisionRequest &req, CollisionResult &res, const moveit::core::RobotState &state, const AllowedCollisionMatrix &acm) const |
| Check whether the robot model is in collision with itself or the world at a particular state. Allowed collisions specified by the allowed collision matrix are taken into account.
|
|
double | distanceSelf (const moveit::core::RobotState &state) const |
| The distance to self-collision given the robot is at state state.
|
|
double | distanceSelf (const moveit::core::RobotState &state, const AllowedCollisionMatrix &acm) const |
| The distance to self-collision given the robot is at state state, ignoring the distances between links that are allowed to always collide (as specified by acm)
|
|
double | distanceRobot (const moveit::core::RobotState &state, bool verbose=false) const |
| Compute the shortest distance between a robot and the world.
|
|
double | distanceRobot (const moveit::core::RobotState &state, const AllowedCollisionMatrix &acm, bool verbose=false) const |
| Compute the shortest distance between a robot and the world.
|
|
const WorldPtr & | getWorld () |
|
const WorldConstPtr & | getWorld () const |
|
const moveit::core::RobotModelConstPtr & | getRobotModel () const |
| The kinematic model corresponding to this collision model.
|
|
void | setLinkPadding (const std::string &link_name, double padding) |
| Set the link padding for a particular link.
|
|
double | getLinkPadding (const std::string &link_name) const |
| Get the link padding for a particular link.
|
|
void | setLinkPadding (const std::map< std::string, double > &padding) |
| Set the link paddings using a map (from link names to padding value)
|
|
const std::map< std::string, double > & | getLinkPadding () const |
| Get the link paddings as a map (from link names to padding value)
|
|
void | setLinkScale (const std::string &link_name, double scale) |
| Set the scaling for a particular link.
|
|
double | getLinkScale (const std::string &link_name) const |
| Set the scaling for a particular link.
|
|
void | setLinkScale (const std::map< std::string, double > &scale) |
| Set the link scaling using a map (from link names to scale value)
|
|
const std::map< std::string, double > & | getLinkScale () const |
| Get the link scaling as a map (from link names to scale value)
|
|
void | setPadding (double padding) |
| Set the link padding (for every link)
|
|
void | setScale (double scale) |
| Set the link scaling (for every link)
|
|
void | setPadding (const std::vector< moveit_msgs::msg::LinkPadding > &padding) |
| Set the link padding from a vector of messages.
|
|
void | getPadding (std::vector< moveit_msgs::msg::LinkPadding > &padding) const |
| Get the link padding as a vector of messages.
|
|
void | setScale (const std::vector< moveit_msgs::msg::LinkScale > &scale) |
| Set the link scaling from a vector of messages.
|
|
void | getScale (std::vector< moveit_msgs::msg::LinkScale > &scale) const |
| Get the link scaling as a vector of messages.
|
|
This hybrid collision environment combines FCL and a distance field. Both can be used to calculate collisions.
Definition at line 48 of file collision_env_hybrid.h.