Robowflex
v0.1
Making MoveIt Easy
|
Wrapper for a dart::simulation::World, which contains a set of skeletons (i.e., Robots and Structures). The World is the main object that is used by motion planning as it contains a holistic view of the scene. More...
#include <world.h>
Classes | |
struct | CollisionInfo |
Collision filter information. More... | |
Public Member Functions | |
void | clearIKModules () |
Clear all IK modules created in skeletons in the world. More... | |
void | lock () |
Grab internal recursive lock for world. More... | |
void | unlock () |
Unlock internal recursive world lock. More... | |
void | openOSGViewer () |
Open the Open Scene Graph visualization for this world. More... | |
dart::collision::CollisionDetectorPtr | getCollider () const |
Get the collision detector for this world. More... | |
std::shared_ptr< dart::collision::CollisionGroup > | getSelfCollisionGroup (const std::string &name) const |
Get the self-collision group for a skeleton in this world. More... | |
std::shared_ptr< dart::collision::CollisionGroup > | getOtherCollisionGroup (const std::string &name) const |
Get the group for everything other than a given skeleton in this world. More... | |
CollisionInfo | getCollisionInfo (const std::string &name) const |
Get the collision info (self and other collision groups) for a skeleton in this world. More... | |
std::shared_ptr< dart::collision::CompositeCollisionFilter > & | getWorldCollisionFilter () |
Get the current world collision filter (composite of all skeleton filters). This is more efficient than constructing a new filter from robowflex::darts::World::getDefaultFilter() or robowflex::darts::World::getAllValidFilter(). More... | |
Constuctors | |
World (const std::string &name="world") | |
Create an empty world. More... | |
WorldPtr | clone (const std::string &suffix="") const |
Clone this world. More... | |
World Entity Management | |
void | addRobot (RobotPtr robot) |
Add a robot to the world. More... | |
void | removeRobot (const std::string &name) |
Remove a robot from the world. More... | |
void | removeRobot (const RobotPtr &robot) |
Remove a robot from the world. More... | |
RobotPtr | getRobot (const std::string &name) |
Get a robot in the world. More... | |
RobotConstPtr | getRobotConst (const std::string &name) const |
Get a robot in the world. More... | |
void | addStructure (StructurePtr structure) |
Add a structure to the world. More... | |
void | removeStructure (const std::string &name) |
Remove a structure from the world. More... | |
void | removeStructure (const StructurePtr &structure) |
Remove a structure from the world. More... | |
StructurePtr | getStructure (const std::string &name) |
Get a structure in the world. More... | |
StructureConstPtr | getStructureConst (const std::string &name) const |
Get a structure in the world. More... | |
const std::map< std::string, StructurePtr > & | getStructures () |
Get the set of structures in the world. More... | |
Getters and Setters | |
const std::string & | getName () const |
Get the name of this world. More... | |
std::pair< Eigen::Vector3d, Eigen::Vector3d > | getWorkspaceBounds () const |
Get the bounds on the workspace. More... | |
Eigen::Vector3d & | getWorkspaceLow () |
Get the lower bounds of the workspace. More... | |
const Eigen::Vector3d & | getWorkspaceLowConst () const |
Get the lower bounds of the workspace. More... | |
Eigen::Vector3d & | getWorkspaceHigh () |
Get the upper bounds of the workspace. More... | |
const Eigen::Vector3d & | getWorkspaceHighConst () const |
Get the upper bounds of the workspace. More... | |
dart::simulation::WorldPtr | getSim () |
Get the Dart world. More... | |
const dart::simulation::WorldPtr & | getSimConst () const |
Get the Dart world. More... | |
unsigned int | getSkeletonIndex (const dart::dynamics::SkeletonPtr &skeleton) const |
Get the index in the world of a skeleton. More... | |
Collisions | |
std::shared_ptr< dart::collision::BodyNodeCollisionFilter > | getAllValidFilter () const |
Get a collision filter that allows collisions between all body nodes. Useful for constructing a custom filter to select one or a few objects. More... | |
std::shared_ptr< dart::collision::BodyNodeCollisionFilter > | getDefaultFilter () const |
Get a collision filter that is a copy of the default filter. More... | |
bool | inCollision (const std::shared_ptr< dart::collision::CollisionFilter > &filter=nullptr) const |
Checks if world is currently in collision. More... | |
double | distanceToCollision () const |
Gets the current signed distance to collision in the world. More... | |
void | forceUpdate () |
Force forward kinematics to update. More... | |
Private Member Functions | |
void | addSkeletonCollider (const std::string &name, const dart::dynamics::SkeletonPtr &skeleton) |
Add a new collision filter (ACM) for a skeleton. More... | |
void | removeSkeletonCollider (const std::string &name, const dart::dynamics::SkeletonPtr &skeleton) |
Remove a collision filter (ACM). More... | |
Private Attributes | |
dart::simulation::WorldPtr | world_ |
Underlying world. More... | |
Eigen::Vector3d | low_ {-5, -5, -5} |
Lower workspace bounds. More... | |
Eigen::Vector3d | high_ {5, 5, 5} |
Upper workspace bounds. More... | |
std::map< std::string, RobotPtr > | robots_ |
Robots in world. More... | |
std::map< std::string, StructurePtr > | structures_ |
Structures in world. More... | |
dart::collision::CollisionGroupPtr | all_ |
All collision groups in world. More... | |
std::map< std::string, CollisionInfo > | collision_ |
std::shared_ptr< dart::collision::CompositeCollisionFilter > | filter_ |
dart::collision::CollisionDetectorPtr | collider_ |
Collision checker. More... | |
const std::string | name_ |
Name of world. More... | |
std::recursive_mutex | mutex_ |
Internal lock. More... | |
Wrapper for a dart::simulation::World, which contains a set of skeletons (i.e., Robots and Structures). The World is the main object that is used by motion planning as it contains a holistic view of the scene.
World::World | ( | const std::string & | name = "world" | ) |
Create an empty world.
[in] | name | Name for the world. |
Definition at line 36 of file world.cpp.
void World::addRobot | ( | RobotPtr | robot | ) |
Add a robot to the world.
[in] | robot | Robot to add. |
Definition at line 108 of file world.cpp.
|
private |
Add a new collision filter (ACM) for a skeleton.
[in] | name | Name for collision filter. |
[in] | skeleton | Skeleton collision filter is for. |
Definition at line 81 of file world.cpp.
void World::addStructure | ( | StructurePtr | structure | ) |
Add a structure to the world.
[in] | structure | Structure to add. |
Definition at line 163 of file world.cpp.
void World::clearIKModules | ( | ) |
WorldPtr World::clone | ( | const std::string & | suffix = "" | ) | const |
double World::distanceToCollision | ( | ) | const |
void World::forceUpdate | ( | ) |
std::shared_ptr< dart::collision::BodyNodeCollisionFilter > World::getAllValidFilter | ( | ) | const |
dart::collision::CollisionDetectorPtr robowflex::darts::World::getCollider | ( | ) | const |
Get the collision detector for this world.
World::CollisionInfo World::getCollisionInfo | ( | const std::string & | name | ) | const |
Get the collision info (self and other collision groups) for a skeleton in this world.
[in] | name | The name of the skeleton. |
std::shared_ptr< dart::collision::BodyNodeCollisionFilter > World::getDefaultFilter | ( | ) | const |
const std::string & World::getName | ( | ) | const |
std::shared_ptr< dart::collision::CollisionGroup > World::getOtherCollisionGroup | ( | const std::string & | name | ) | const |
Get the group for everything other than a given skeleton in this world.
[in] | name | The name of the skeleton. |
RobotPtr World::getRobot | ( | const std::string & | name | ) |
RobotConstPtr World::getRobotConst | ( | const std::string & | name | ) | const |
std::shared_ptr< dart::collision::CollisionGroup > World::getSelfCollisionGroup | ( | const std::string & | name | ) | const |
Get the self-collision group for a skeleton in this world.
[in] | name | The name of the skeleton. |
dart::simulation::WorldPtr World::getSim | ( | ) |
const dart::simulation::WorldPtr & World::getSimConst | ( | ) | const |
unsigned int World::getSkeletonIndex | ( | const dart::dynamics::SkeletonPtr & | skeleton | ) | const |
Get the index in the world of a skeleton.
[in] | skeleton | The skeleton to get the index of. |
StructurePtr World::getStructure | ( | const std::string & | name | ) |
StructureConstPtr World::getStructureConst | ( | const std::string & | name | ) | const |
const std::map< std::string, StructurePtr > & World::getStructures | ( | ) |
Get the set of structures in the world.
std::pair< Eigen::Vector3d, Eigen::Vector3d > World::getWorkspaceBounds | ( | ) | const |
Eigen::Vector3d & World::getWorkspaceHigh | ( | ) |
const Eigen::Vector3d & World::getWorkspaceHighConst | ( | ) | const |
Eigen::Vector3d & World::getWorkspaceLow | ( | ) |
const Eigen::Vector3d & World::getWorkspaceLowConst | ( | ) | const |
std::shared_ptr< dart::collision::CompositeCollisionFilter > & robowflex::darts::World::getWorldCollisionFilter | ( | ) |
Get the current world collision filter (composite of all skeleton filters). This is more efficient than constructing a new filter from robowflex::darts::World::getDefaultFilter() or robowflex::darts::World::getAllValidFilter().
Definition at line 392 of file world.cpp.
bool World::inCollision | ( | const std::shared_ptr< dart::collision::CollisionFilter > & | filter = nullptr | ) | const |
Checks if world is currently in collision.
[in] | filter | Custom collision filter to use. If null, will use default collision filter. |
void World::lock | ( | ) |
void World::openOSGViewer | ( | ) |
void World::removeRobot | ( | const RobotPtr & | robot | ) |
Remove a robot from the world.
[in] | robot | Robot to remove. |
Definition at line 140 of file world.cpp.
void World::removeRobot | ( | const std::string & | name | ) |
Remove a robot from the world.
[in] | name | Name of robot to remove. |
Definition at line 123 of file world.cpp.
|
private |
void World::removeStructure | ( | const std::string & | name | ) |
void World::removeStructure | ( | const StructurePtr & | structure | ) |
Remove a structure from the world.
[in] | structure | Structure to remove. |
Definition at line 191 of file world.cpp.
void World::unlock | ( | ) |
Unlock internal recursive world lock.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |