45   return srdf_config_->getPlanningScene()->getRobotModel()->getLinkModelNamesWithCollisionGeometry();
 
   53   auto& disabled_list = 
srdf_config_->getDisabledCollisions();
 
   54   disabled_list.clear();
 
   57   srdf::Model::CollisionPair dc;
 
   63     if (pair_it->second.disable_check)
 
   65       dc.link1_ = pair_it->first.first;
 
   66       dc.link2_ = pair_it->first.second;
 
   68       disabled_list.push_back(dc);
 
   76   auto& disabled_list = 
srdf_config_->getDisabledCollisions();
 
   78   srdf::Model::CollisionPair dc;
 
   80   std::set<srdf::Model::CollisionPair, CollisionPairLess> disabled_collisions;
 
   81   for (
auto& 
p : disabled_list)
 
   83     if (
p.link1_ >= 
p.link2_)
 
   84       std::swap(
p.link1_, 
p.link2_);  
 
   85     disabled_collisions.insert(
p);
 
   92     if (link_pair.second.disable_check)
 
   94       if ((1 << link_pair.second.reason) & skip_mask)
 
   97       dc.link1_ = link_pair.first.first;
 
   98       dc.link2_ = link_pair.first.second;
 
   99       if (dc.link1_ >= dc.link2_)
 
  100         std::swap(dc.link1_, dc.link2_);
 
  103       disabled_collisions.insert(dc);
 
  107   disabled_list.assign(disabled_collisions.begin(), disabled_collisions.end());
 
  119   planning_scene::PlanningScenePtr 
scene = 
srdf_config_->getPlanningScene()->diff();
 
  126   std::pair<std::string, std::string> link_pair;
 
  129   for (
const auto& disabled_collision : 
srdf_config_->getDisabledCollisions())
 
  132     link_pair.first = disabled_collision.link1_;
 
  133     link_pair.second = disabled_collision.link2_;
 
  134     if (link_pair.first >= link_pair.second)
 
  135       std::swap(link_pair.first, link_pair.second);
 
  152       boost::thread([
this, num_trials, min_frac, verbose] { 
generateCollisionTable(num_trials, min_frac, verbose); });
 
  160   const bool include_never_colliding = 
true;
 
  163   srdf_config_->getPlanningScene()->getAllowedCollisionMatrixNonConst().clear();
 
  167                                          num_trials, min_frac, verbose);
 
const rclcpp::Logger & getLogger() const
Makes a namespaced logger for this step available to the widget.
 
std::vector< std::string > getCollidingLinks()
 
void startGenerationThread(unsigned int num_trials, double min_frac, bool verbose=true)
 
int getThreadProgress() const
 
void linkPairsFromSRDF()
Load Link Pairs from SRDF Format.
 
LinkPairMap link_pairs_
main storage of link pair data
 
void joinGenerationThread()
 
void cancelGenerationThread()
 
void generateCollisionTable(unsigned int num_trials, double min_frac, bool verbose)
 
void linkPairsToSRDFSorted(size_t skip_mask=0)
Output Link Pairs to SRDF Format; sorted; with optional filter.
 
void linkPairsToSRDF()
Output Link Pairs to SRDF Format.
 
std::shared_ptr< SRDFConfig > srdf_config_
 
LinkPairMap computeDefaultCollisions(const planning_scene::PlanningSceneConstPtr &parent_scene, unsigned int *progress, const bool include_never_colliding, const unsigned int trials, const double min_collision_faction, const bool verbose)
Generate an adjacency list of links that are always and never in collision, to speed up collision det...
 
void computeLinkPairs(const planning_scene::PlanningScene &scene, LinkPairMap &link_pairs)
Generate a list of unique link pairs for all links with geometry. Order pairs alphabetically....
 
DisabledReason disabledReasonFromString(const std::string &reason)
Converts a string reason for disabling a link pair into a struct data type.
 
const std::string disabledReasonToString(DisabledReason reason)
Converts a reason for disabling a link pair into a string.
 
Store details on a pair of links.