Tesseract
Motion Planning Environment
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions
tesseract_environment Namespace Reference

Classes

class  AddContactManagersPluginInfoCommand
 
class  AddKinematicsInformationCommand
 
class  AddLinkCommand
 
class  AddSceneGraphCommand
 
class  ChangeCollisionMarginsCommand
 
class  ChangeJointAccelerationLimitsCommand
 
class  ChangeJointOriginCommand
 
class  ChangeJointPositionLimitsCommand
 
class  ChangeJointVelocityLimitsCommand
 
class  ChangeLinkCollisionEnabledCommand
 
class  ChangeLinkOriginCommand
 
class  ChangeLinkVisibilityCommand
 
class  Command
 
struct  CommandAppliedEvent
 The command applied event. More...
 
class  DefaultEnvironmentCache
 
class  Environment
 
class  EnvironmentCache
 
class  EnvironmentMonitor
 Tesseract Environment Monitor Interface Class. More...
 
class  EnvironmentMonitorInterface
 
struct  Event
 The event base class. More...
 
class  ModifyAllowedCollisionsCommand
 
class  MoveJointCommand
 
class  MoveLinkCommand
 
class  RemoveAllowedCollisionLinkCommand
 
class  RemoveJointCommand
 
class  RemoveLinkCommand
 
class  ReplaceJointCommand
 
struct  SceneStateChangedEvent
 The scene state changed event. More...
 
class  SetActiveContinuousContactManagerCommand
 
class  SetActiveDiscreteContactManagerCommand
 

Typedefs

using Commands = std::vector< Command::ConstPtr >
 
using CollisionMarginData = tesseract_common::CollisionMarginData
 
using CollisionMarginOverrideType = tesseract_common::CollisionMarginOverrideType
 
using PairsCollisionMarginData = tesseract_common::PairsCollisionMarginData
 
using FindTCPOffsetCallbackFn = std::function< Eigen::Isometry3d(const tesseract_common::ManipulatorInfo &)>
 Function signature for adding additional callbacks for looking up TCP information. More...
 
using EventCallbackFn = std::function< void(const Event &event)>
 

Enumerations

enum class  CommandType {
  UNINITIALIZED = -1 , ADD_LINK = 0 , MOVE_LINK = 1 , MOVE_JOINT = 2 ,
  REMOVE_LINK = 3 , REMOVE_JOINT = 4 , CHANGE_LINK_ORIGIN = 5 , CHANGE_JOINT_ORIGIN = 6 ,
  CHANGE_LINK_COLLISION_ENABLED = 7 , CHANGE_LINK_VISIBILITY = 8 , MODIFY_ALLOWED_COLLISIONS = 9 , REMOVE_ALLOWED_COLLISION_LINK = 10 ,
  ADD_SCENE_GRAPH = 11 , CHANGE_JOINT_POSITION_LIMITS = 12 , CHANGE_JOINT_VELOCITY_LIMITS = 13 , CHANGE_JOINT_ACCELERATION_LIMITS = 14 ,
  ADD_KINEMATICS_INFORMATION = 15 , REPLACE_JOINT = 16 , CHANGE_COLLISION_MARGINS = 17 , ADD_CONTACT_MANAGERS_PLUGIN_INFO = 18 ,
  SET_ACTIVE_DISCRETE_CONTACT_MANAGER = 19 , SET_ACTIVE_CONTINUOUS_CONTACT_MANAGER = 20
}
 
enum class  ModifyAllowedCollisionsType { ADD , REMOVE , REPLACE }
 
enum class  MonitoredEnvironmentMode : int { DEFAULT = 0 , SYNCHRONIZED = 1 }
 
enum class  Events { COMMAND_APPLIED = 0 , SCENE_STATE_CHANGED = 1 }
 

Functions

template<class Archive >
void save (Archive &ar, const CommandType &g, const unsigned int version)
 
template<class Archive >
void load (Archive &ar, CommandType &g, const unsigned int version)
 
template<class Archive >
void serialize (Archive &ar, CommandType &g, const unsigned int version)
 
void getActiveLinkNamesRecursive (std::vector< std::string > &active_links, const tesseract_scene_graph::SceneGraph &scene_graph, const std::string &current_link, bool active)
 Get the active Link Names Recursively. More...
 
void checkTrajectorySegment (tesseract_collision::ContactResultMap &contact_results, tesseract_collision::ContinuousContactManager &manager, const tesseract_common::TransformMap &state0, const tesseract_common::TransformMap &state1, const tesseract_collision::CollisionCheckConfig &config)
 Should perform a continuous collision check between two states configuring the manager with the config. More...
 
void checkTrajectorySegment (tesseract_collision::ContactResultMap &contact_results, tesseract_collision::ContinuousContactManager &manager, const tesseract_common::TransformMap &state0, const tesseract_common::TransformMap &state1, const tesseract_collision::ContactRequest &contact_request)
 Should perform a continuous collision check between two states only passing along the contact_request to the manager. More...
 
void checkTrajectoryState (tesseract_collision::ContactResultMap &contact_results, tesseract_collision::DiscreteContactManager &manager, const tesseract_common::TransformMap &state, const tesseract_collision::CollisionCheckConfig &config)
 Should perform a discrete collision check a state first configuring manager with config. More...
 
void checkTrajectoryState (tesseract_collision::ContactResultMap &contact_results, tesseract_collision::DiscreteContactManager &manager, const tesseract_common::TransformMap &state, const tesseract_collision::ContactRequest &contact_request)
 Should perform a discrete collision check a state only passing contact_request to the manager. More...
 
bool checkTrajectory (std::vector< tesseract_collision::ContactResultMap > &contacts, tesseract_collision::ContinuousContactManager &manager, const tesseract_scene_graph::StateSolver &state_solver, const std::vector< std::string > &joint_names, const tesseract_common::TrajArray &traj, const tesseract_collision::CollisionCheckConfig &config)
 Should perform a continuous collision check over the trajectory and stop on first collision. More...
 
bool checkTrajectory (std::vector< tesseract_collision::ContactResultMap > &contacts, tesseract_collision::ContinuousContactManager &manager, const tesseract_kinematics::JointGroup &manip, const tesseract_common::TrajArray &traj, const tesseract_collision::CollisionCheckConfig &config)
 Should perform a continuous collision check over the trajectory and stop on first collision. More...
 
bool checkTrajectory (std::vector< tesseract_collision::ContactResultMap > &contacts, tesseract_collision::DiscreteContactManager &manager, const tesseract_scene_graph::StateSolver &state_solver, const std::vector< std::string > &joint_names, const tesseract_common::TrajArray &traj, const tesseract_collision::CollisionCheckConfig &config)
 Should perform a discrete collision check over the trajectory and stop on first collision. More...
 
bool checkTrajectory (std::vector< tesseract_collision::ContactResultMap > &contacts, tesseract_collision::DiscreteContactManager &manager, const tesseract_kinematics::JointGroup &manip, const tesseract_common::TrajArray &traj, const tesseract_collision::CollisionCheckConfig &config)
 Should perform a discrete collision check over the trajectory and stop on first collision. More...
 

Typedef Documentation

◆ CollisionMarginData

◆ CollisionMarginOverrideType

◆ Commands

using tesseract_environment::Commands = typedef std::vector<Command::ConstPtr>

◆ EventCallbackFn

using tesseract_environment::EventCallbackFn = typedef std::function<void(const Event& event)>

◆ FindTCPOffsetCallbackFn

using tesseract_environment::FindTCPOffsetCallbackFn = typedef std::function<Eigen::Isometry3d(const tesseract_common::ManipulatorInfo&)>

Function signature for adding additional callbacks for looking up TCP information.

The function should throw and exception if not located

◆ PairsCollisionMarginData

Enumeration Type Documentation

◆ CommandType

Enumerator
UNINITIALIZED 
ADD_LINK 
MOVE_LINK 
MOVE_JOINT 
REMOVE_LINK 
REMOVE_JOINT 
CHANGE_LINK_ORIGIN 
CHANGE_JOINT_ORIGIN 
CHANGE_LINK_COLLISION_ENABLED 
CHANGE_LINK_VISIBILITY 
MODIFY_ALLOWED_COLLISIONS 
REMOVE_ALLOWED_COLLISION_LINK 
ADD_SCENE_GRAPH 
CHANGE_JOINT_POSITION_LIMITS 
CHANGE_JOINT_VELOCITY_LIMITS 
CHANGE_JOINT_ACCELERATION_LIMITS 
ADD_KINEMATICS_INFORMATION 
REPLACE_JOINT 
CHANGE_COLLISION_MARGINS 
ADD_CONTACT_MANAGERS_PLUGIN_INFO 
SET_ACTIVE_DISCRETE_CONTACT_MANAGER 
SET_ACTIVE_CONTINUOUS_CONTACT_MANAGER 

◆ Events

enum class tesseract_environment::Events
strong
Enumerator
COMMAND_APPLIED 
SCENE_STATE_CHANGED 

◆ ModifyAllowedCollisionsType

Enumerator
ADD 
REMOVE 
REPLACE 

◆ MonitoredEnvironmentMode

Enumerator
DEFAULT 

The default behavior when monitoring another environment is the following.

Case1: If the revision is greater than, it will call a service of the monitored environment to get the changes and apply them. Case2: If the revision is less than, it will reinitialize the environment and request the remaining changes and apply them.

SYNCHRONIZED 

The synchronized behavior when monitoring another environment is the following.

Warning
Currently this works best if there is only one monitor which is synchronized because currently if two environment monitors are synchronized, it currently does not have a way to reason about which ones should get applied. Need to research approach for this type of system.

Case1: If the revision is greater than, it will call a service of the monitored environment to get the changes and apply them. Case2: If the revision is less than, it will call a service of the monitored environment to apply the new changes.

Function Documentation

◆ checkTrajectory() [1/4]

bool tesseract_environment::checkTrajectory ( std::vector< tesseract_collision::ContactResultMap > &  contacts,
tesseract_collision::ContinuousContactManager manager,
const tesseract_kinematics::JointGroup manip,
const tesseract_common::TrajArray traj,
const tesseract_collision::CollisionCheckConfig config 
)

Should perform a continuous collision check over the trajectory and stop on first collision.

Parameters
contactsA vector of ContactMap where each index corresponds to a segment in the trajectory. The length should be trajectory size minus one.
managerA continuous contact manager
manipThe kinematic joint group
trajThe joint values at each time step
configCollisionCheckConfig used to specify collision check settings
Returns
True if collision was found, otherwise false.

Making this thread_local does not help because it is not called enough during planning

Making this thread_local does not help because it is not called enough during planning

◆ checkTrajectory() [2/4]

bool tesseract_environment::checkTrajectory ( std::vector< tesseract_collision::ContactResultMap > &  contacts,
tesseract_collision::ContinuousContactManager manager,
const tesseract_scene_graph::StateSolver state_solver,
const std::vector< std::string > &  joint_names,
const tesseract_common::TrajArray traj,
const tesseract_collision::CollisionCheckConfig config 
)

Should perform a continuous collision check over the trajectory and stop on first collision.

Parameters
contactsA vector of ContactMap where each index corresponds to a segment in the trajectory. The length should be trajectory size minus one.
managerA continuous contact manager
state_solverThe environment state solver
joint_namesJointNames corresponding to the values in traj (must be in same order)
trajThe joint values at each time step
configCollisionCheckConfig used to specify collision check settings
Returns
True if collision was found, otherwise false.

Making this thread_local does not help because it is not called enough during planning

Making this thread_local does not help because it is not called enough during planning

◆ checkTrajectory() [3/4]

bool tesseract_environment::checkTrajectory ( std::vector< tesseract_collision::ContactResultMap > &  contacts,
tesseract_collision::DiscreteContactManager manager,
const tesseract_kinematics::JointGroup manip,
const tesseract_common::TrajArray traj,
const tesseract_collision::CollisionCheckConfig config 
)

Should perform a discrete collision check over the trajectory and stop on first collision.

Parameters
contactsA vector of ContactMap where each index corresponds to a segment in the trajectory, except the last which is the end state. The length should be the same size as the input trajectory.
managerA continuous contact manager
manipThe kinematic joint group
trajThe joint values at each time step
configCollisionCheckConfig used to specify collision check settings
Returns
True if collision was found, otherwise false.

Making this thread_local does not help because it is not called enough during planning

Making this thread_local does not help because it is not called enough during planning

◆ checkTrajectory() [4/4]

bool tesseract_environment::checkTrajectory ( std::vector< tesseract_collision::ContactResultMap > &  contacts,
tesseract_collision::DiscreteContactManager manager,
const tesseract_scene_graph::StateSolver state_solver,
const std::vector< std::string > &  joint_names,
const tesseract_common::TrajArray traj,
const tesseract_collision::CollisionCheckConfig config 
)

Should perform a discrete collision check over the trajectory and stop on first collision.

Parameters
contactsA vector of ContactMap where each index corresponds to a segment in the trajectory, except the last which is the end state. The length should be the same size as the input trajectory.
managerA continuous contact manager
state_solverThe environment state solver
joint_namesJointNames corresponding to the values in traj (must be in same order)
trajThe joint values at each time step
configCollisionCheckConfig used to specify collision check settings
Returns
True if collision was found, otherwise false.

Making this thread_local does not help because it is not called enough during planning

Making this thread_local does not help because it is not called enough during planning

◆ checkTrajectorySegment() [1/2]

void tesseract_environment::checkTrajectorySegment ( tesseract_collision::ContactResultMap contact_results,
tesseract_collision::ContinuousContactManager manager,
const tesseract_common::TransformMap state0,
const tesseract_common::TransformMap state1,
const tesseract_collision::CollisionCheckConfig config 
)

Should perform a continuous collision check between two states configuring the manager with the config.

Parameters
contact_resultsThe contact results to populate. It does not get cleared
managerA continuous contact manager
state0First environment state
state1Second environment state
configCollisionCheckConfig used to specify collision check settings

◆ checkTrajectorySegment() [2/2]

void tesseract_environment::checkTrajectorySegment ( tesseract_collision::ContactResultMap contact_results,
tesseract_collision::ContinuousContactManager manager,
const tesseract_common::TransformMap state0,
const tesseract_common::TransformMap state1,
const tesseract_collision::ContactRequest contact_request 
)

Should perform a continuous collision check between two states only passing along the contact_request to the manager.

Parameters
contact_resultsThe contact results to populate. It does not get cleared
managerA continuous contact manager
state0First environment state
state1Second environment state
contact_requestContact request passed to the manager

◆ checkTrajectoryState() [1/2]

void tesseract_environment::checkTrajectoryState ( tesseract_collision::ContactResultMap contact_results,
tesseract_collision::DiscreteContactManager manager,
const tesseract_common::TransformMap state,
const tesseract_collision::CollisionCheckConfig config 
)

Should perform a discrete collision check a state first configuring manager with config.

Parameters
contact_resultsThe contact results to populate. It does not get cleared
managerA discrete contact manager
stateFirst environment state
configCollisionCheckConfig used to specify collision check settings

◆ checkTrajectoryState() [2/2]

void tesseract_environment::checkTrajectoryState ( tesseract_collision::ContactResultMap contact_results,
tesseract_collision::DiscreteContactManager manager,
const tesseract_common::TransformMap state,
const tesseract_collision::ContactRequest contact_request 
)

Should perform a discrete collision check a state only passing contact_request to the manager.

Parameters
contact_resultsThe contact results to populate. It does not get cleared
managerA discrete contact manager
stateFirst environment state
contact_requestContact request passed to the manager

◆ getActiveLinkNamesRecursive()

void tesseract_environment::getActiveLinkNamesRecursive ( std::vector< std::string > &  active_links,
const tesseract_scene_graph::SceneGraph scene_graph,
const std::string &  current_link,
bool  active 
)

Get the active Link Names Recursively.

   This currently only works for graphs that are trees. Need to create a generic method using boost::visitor
   TODO: Need to update using graph->getLinkChildren
Parameters
active_links
scene_graph
current_link
active

◆ load()

template<class Archive >
void tesseract_environment::load ( Archive &  ar,
CommandType g,
const unsigned int  version 
)

◆ save()

template<class Archive >
void tesseract_environment::save ( Archive &  ar,
const CommandType g,
const unsigned int  version 
)

◆ serialize()

template<class Archive >
void tesseract_environment::serialize ( Archive &  ar,
CommandType g,
const unsigned int  version 
)