| 
    Aikido
    
   | 
 
A testable that uses a collision detector to check whether a metakeleton state (configuration) results in collision between and within specified collision groups. More...
#include <aikido/constraint/dart/CollisionFree.hpp>
  
Public Member Functions | |
| CollisionFree (statespace::dart::ConstMetaSkeletonStateSpacePtr _metaSkeletonStateSpace, ::dart::dynamics::MetaSkeletonPtr _metaskeleton, std::shared_ptr<::dart::collision::CollisionDetector > _collisionDetector, ::dart::collision::CollisionOption _collisionOptions=::dart::collision::CollisionOption(false, 1, std::make_shared<::dart::collision::BodyNodeCollisionFilter >())) | |
Constructs an empty constraint that uses _collisionDetector to test for collision.  More... | |
| statespace::ConstStateSpacePtr | getStateSpace () const override | 
| Returns StateSpace in which this constraint operates.  More... | |
| bool | isSatisfied (const aikido::statespace::StateSpace::State *_state, TestableOutcome *outcome=nullptr) const override | 
| Returns true if state satisfies this constraint.  More... | |
| std::unique_ptr< TestableOutcome > | createOutcome () const override | 
| Return an instance of a TestableOutcome derivative class that corresponds to this constraint class.  More... | |
| void | addPairwiseCheck (std::shared_ptr<::dart::collision::CollisionGroup > _group1, std::shared_ptr<::dart::collision::CollisionGroup > _group2) | 
| Checks collision between group1 and group2.  More... | |
| void | removePairwiseCheck (std::shared_ptr<::dart::collision::CollisionGroup > _group1, std::shared_ptr<::dart::collision::CollisionGroup > _group2) | 
| Remove collision check between group1 and group2.  More... | |
| void | addSelfCheck (std::shared_ptr<::dart::collision::CollisionGroup > _group) | 
| Checks collision within group.  More... | |
| void | removeSelfCheck (std::shared_ptr<::dart::collision::CollisionGroup > _group) | 
| Remove self-collision check within group.  More... | |
  Public Member Functions inherited from aikido::constraint::Testable | |
| virtual | ~Testable ()=default | 
Private Types | |
| using | CollisionGroup = ::dart::collision::CollisionGroup | 
Private Attributes | |
| aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr | mMetaSkeletonStateSpace | 
| ::dart::dynamics::MetaSkeletonPtr | mMetaSkeleton | 
| std::shared_ptr<::dart::collision::CollisionDetector > | mCollisionDetector | 
| ::dart::collision::CollisionOption | mCollisionOptions | 
| std::vector< std::pair< std::shared_ptr< CollisionGroup >, std::shared_ptr< CollisionGroup > > > | mGroupsToPairwiseCheck | 
| std::vector< std::shared_ptr< CollisionGroup > > | mGroupsToSelfCheck | 
A testable that uses a collision detector to check whether a metakeleton state (configuration) results in collision between and within specified collision groups.
      
  | 
  private | 
| aikido::constraint::dart::CollisionFree::CollisionFree | ( | statespace::dart::ConstMetaSkeletonStateSpacePtr | _metaSkeletonStateSpace, | 
| ::dart::dynamics::MetaSkeletonPtr | _metaskeleton, | ||
| std::shared_ptr<::dart::collision::CollisionDetector > | _collisionDetector, | ||
| ::dart::collision::CollisionOption | _collisionOptions = ::dart::collision::CollisionOption(false, 1, std::make_shared<::dart::collision::BodyNodeCollisionFilter >())  | 
        ||
| ) | 
Constructs an empty constraint that uses _collisionDetector to test for collision. 
You should call addPairWiseCheck and addSelfCheck to register collision checks before calling isSatisfied.
| _metaSkeletonStateSpace | state space on which the constraint operates | 
| _metaskeleton | MetaSkeleton to test with | 
| _collisionDetector | collision detector used to test for collision | 
| _collisionOptions | options passed to _collisionDetector  | 
| void aikido::constraint::dart::CollisionFree::addPairwiseCheck | ( | std::shared_ptr<::dart::collision::CollisionGroup > | _group1, | 
| std::shared_ptr<::dart::collision::CollisionGroup > | _group2 | ||
| ) | 
Checks collision between group1 and group2.
| _group1 | First collision group. | 
| _group2 | Second collision group. | 
| void aikido::constraint::dart::CollisionFree::addSelfCheck | ( | std::shared_ptr<::dart::collision::CollisionGroup > | _group | ) | 
Checks collision within group.
| _group | Collision group. | 
      
  | 
  overridevirtual | 
Return an instance of a TestableOutcome derivative class that corresponds to this constraint class.
Ensures that correct outcome object is passed to isSatisfied (and casts, etc do not explode).
Implements aikido::constraint::Testable.
      
  | 
  overridevirtual | 
Returns StateSpace in which this constraint operates.
Implements aikido::constraint::Testable.
      
  | 
  overridevirtual | 
Returns true if state satisfies this constraint.
| [in] | _state | given state to test. | 
| [in] | outcome | pointer to TestableOutcome derivative instance that method will populate with useful information. Each derivative class of Testable may expect outcome to be a different derivative class of TestableOutcome (this casting and population is done under the hood). If this argument is missing, it is ignored. | 
Implements aikido::constraint::Testable.
| void aikido::constraint::dart::CollisionFree::removePairwiseCheck | ( | std::shared_ptr<::dart::collision::CollisionGroup > | _group1, | 
| std::shared_ptr<::dart::collision::CollisionGroup > | _group2 | ||
| ) | 
Remove collision check between group1 and group2.
| _group1 | First collision group. | 
| _group2 | Second collision group. | 
| void aikido::constraint::dart::CollisionFree::removeSelfCheck | ( | std::shared_ptr<::dart::collision::CollisionGroup > | _group | ) | 
Remove self-collision check within group.
| _group | Collision group. | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private |