RobWorkProject  23.9.11-
Classes | Namespaces
ContactDetector.hpp File Reference

The ContactDetector allows detailed control of the strategies used for contact detection between specific frames and geometry types. More...

#include "Contact.hpp"
#include <rw/core/Ptr.hpp>
#include <rw/kinematics/FrameMap.hpp>
#include <rw/proximity/ProximityFilterStrategy.hpp>
#include <rw/proximity/ProximitySetup.hpp>
#include <rw/proximity/ProximitySetupRule.hpp>
#include <rwsim/contacts/BaseContactDetector.hpp>

Classes

class  ContactDetector
 The ContactDetector allows detailed control of the strategies used for contact detection between specific frames and geometry types. More...
 
struct  ContactDetector::StrategyTableRow
 One row in the strategy table, with a priority, match-rules, a strategy and associated ContactModels. More...
 

Namespaces

 rw
 Deprecated namespace since 16/4-2020 for this class.
 
 rw::core
 Most basic types for RobWork.
 
 rw::geometry
 Loading and storing of CAD models.
 
 rw::models
 Workcell and device models.
 
 rwsim
 RobWorkSim is the dynamic simulation framework of RobWork.
 
 rwsim::log
 Logging system for dynamic simulation.
 
 rwsim::contacts
 Contact Detection.
 

Detailed Description

The ContactDetector allows detailed control of the strategies used for contact detection between specific frames and geometry types.

A concrete strategy for contact detection is chosen by a rule-based lookup in a strategy table. For general purpose usage the contact detector can auto-generate the most suitable set of rules for a given workcell. The user can alter this table to specific needs, or create its own strategy table from scratch.

Each rule has a priority from 0 and upwards, where 0 is the highest priority. When finding contacts, the rule with priority 0 will be tested first. If no match is found, the next rule in the table will be tested.

The first condition for a match, will be that the frame names match a specific pattern. If the frame names match, each combination of geometries for the two frames is tested by calling the boolean match function on the ContactStrategy. If the geometries can not be handled by the strategy, the next strategy in the table will be tested. If the geometries can be handled by the strategy, this strategy is used for contact detection between this specific combination of geometries.

This way the user can easily extend the default contact detections strategy with own strategies. These strategies can be applied for specific frame names, specific geometry types or both.