|
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 |