Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
planning_scene_monitor::PlanningSceneMonitor Class Reference

PlanningSceneMonitor Subscribes to the topic planning_scene. More...

#include <planning_scene_monitor.h>

Inheritance diagram for planning_scene_monitor::PlanningSceneMonitor:
Inheritance graph
[legend]

Classes

class  DynamicReconfigureImpl
 

Public Types

enum  SceneUpdateType {
  UPDATE_NONE = 0, UPDATE_STATE = 1, UPDATE_TRANSFORMS = 2, UPDATE_GEOMETRY = 4,
  UPDATE_SCENE = 8 + UPDATE_STATE + UPDATE_TRANSFORMS + UPDATE_GEOMETRY
}
 

Public Member Functions

void addUpdateCallback (const boost::function< void(SceneUpdateType)> &fn)
 Add a function to be called when an update to the scene is received. More...
 
void clearOctomap ()
 
void clearUpdateCallbacks ()
 Clear the functions to be called when an update to the scene is received. More...
 
double getDefaultAttachedObjectPadding () const
 Get the default attached padding. More...
 
double getDefaultObjectPadding () const
 Get the default object padding. More...
 
double getDefaultRobotPadding () const
 Get the default robot padding. More...
 
double getDefaultRobotScale () const
 Get the default robot scaling. More...
 
const ros::TimegetLastUpdateTime () const
 Return the time when the last update was made to the planning scene (by any monitor) More...
 
void getMonitoredTopics (std::vector< std::string > &topics) const
 Get the topic names that the monitor is listening to. More...
 
const std::string & getName () const
 Get the name of this monitor. More...
 
const planning_scene::PlanningScenePtr & getPlanningScene ()
 Avoid this function! Returns an unsafe pointer to the current planning scene. More...
 
const planning_scene::PlanningSceneConstPtr & getPlanningScene () const
 Avoid this function! Returns an unsafe pointer to the current planning scene. More...
 
double getPlanningScenePublishingFrequency () const
 Get the maximum frequency at which planning scenes are published (Hz) More...
 
const std::string & getRobotDescription () const
 Get the stored robot description. More...
 
const moveit::core::RobotModelConstPtr & getRobotModel () const
 
const robot_model_loader::RobotModelLoaderPtr & getRobotModelLoader () const
 Get the user kinematic model loader. More...
 
const CurrentStateMonitorPtr & getStateMonitor () const
 Get the stored instance of the stored current state monitor. More...
 
CurrentStateMonitorPtr & getStateMonitorNonConst ()
 
double getStateUpdateFrequency () const
 Get the maximum frequency (Hz) at which the current state of the planning scene is updated. More...
 
const std::shared_ptr< tf2_ros::Buffer > & getTFClient () const
 Get the instance of the TF client that was passed to the constructor of this class. More...
 
void lockSceneRead ()
 Lock the scene for reading (multiple threads can lock for reading at the same time) More...
 
void lockSceneWrite ()
 Lock the scene for writing (only one thread can lock for writing and no other thread can lock for reading) More...
 
void monitorDiffs (bool flag)
 By default, the maintained planning scene does not reason about diffs. When the flag passed in is true, the maintained scene starts counting diffs. Future updates to the planning scene will be stored as diffs and can be retrieved as such. Setting the flag to false restores the default behaviour. Maintaining diffs is automatically enabled when publishing planning scenes. More...
 
bool newPlanningSceneMessage (const moveit_msgs::PlanningScene &scene)
 
 PlanningSceneMonitor (const planning_scene::PlanningScenePtr &scene, const robot_model_loader::RobotModelLoaderPtr &rml, const ros::NodeHandle &nh, const std::shared_ptr< tf2_ros::Buffer > &tf_buffer=std::shared_ptr< tf2_ros::Buffer >(), const std::string &name="")
 Constructor. More...
 
 PlanningSceneMonitor (const planning_scene::PlanningScenePtr &scene, const robot_model_loader::RobotModelLoaderPtr &rml, const std::shared_ptr< tf2_ros::Buffer > &tf_buffer=std::shared_ptr< tf2_ros::Buffer >(), const std::string &name="")
 Constructor. More...
 
 PlanningSceneMonitor (const planning_scene::PlanningScenePtr &scene, const std::string &robot_description, const std::shared_ptr< tf2_ros::Buffer > &tf_buffer=std::shared_ptr< tf2_ros::Buffer >(), const std::string &name="")
 Constructor. More...
 
 PlanningSceneMonitor (const robot_model_loader::RobotModelLoaderPtr &rml, const std::shared_ptr< tf2_ros::Buffer > &tf_buffer=std::shared_ptr< tf2_ros::Buffer >(), const std::string &name="")
 Constructor. More...
 
 PlanningSceneMonitor (const std::string &robot_description, const std::shared_ptr< tf2_ros::Buffer > &tf_buffer=std::shared_ptr< tf2_ros::Buffer >(), const std::string &name="")
 Constructor. More...
 
void providePlanningSceneService (const std::string &service_name=DEFAULT_PLANNING_SCENE_SERVICE)
 Create an optional service for getting the complete planning scene This is useful for satisfying the Rviz PlanningScene display's need for a service without having to use a move_group node. Be careful not to use this in conjunction with requestPlanningSceneState(), as it will create a pointless feedback loop. More...
 
void publishDebugInformation (bool flag)
 
bool requestPlanningSceneState (const std::string &service_name=DEFAULT_PLANNING_SCENE_SERVICE)
 Request a full planning scene state using a service call Be careful not to use this in conjunction with providePlanningSceneService(), as it will create a pointless feedback loop. More...
 
void setPlanningScenePublishingFrequency (double hz)
 Set the maximum frequency at which planning scenes are being published. More...
 
void setStateUpdateFrequency (double hz)
 Update the scene using the monitored state at a specified frequency, in Hz. This function has an effect only when updates from the CurrentStateMonitor are received at a higher frequency. In that case, the updates are throttled down, so that they do not exceed a maximum update frequency specified here. More...
 
void startPublishingPlanningScene (SceneUpdateType event, const std::string &planning_scene_topic=MONITORED_PLANNING_SCENE_TOPIC)
 Start publishing the maintained planning scene. The first message set out is a complete planning scene. Diffs are sent afterwards on updates specified by the event bitmask. For UPDATE_SCENE, the full scene is always sent. More...
 
void startSceneMonitor (const std::string &scene_topic=DEFAULT_PLANNING_SCENE_TOPIC)
 Start the scene monitor (ROS topic-based) More...
 
void startStateMonitor (const std::string &joint_states_topic=DEFAULT_JOINT_STATES_TOPIC, const std::string &attached_objects_topic=DEFAULT_ATTACHED_COLLISION_OBJECT_TOPIC)
 Start the current state monitor. More...
 
void startWorldGeometryMonitor (const std::string &collision_objects_topic=DEFAULT_COLLISION_OBJECT_TOPIC, const std::string &planning_scene_world_topic=DEFAULT_PLANNING_SCENE_WORLD_TOPIC, const bool load_octomap_monitor=true)
 Start the OccupancyMapMonitor and listening for: More...
 
void stopPublishingPlanningScene ()
 Stop publishing the maintained planning scene. More...
 
void stopSceneMonitor ()
 Stop the scene monitor. More...
 
void stopStateMonitor ()
 Stop the state monitor. More...
 
void stopWorldGeometryMonitor ()
 Stop the world geometry monitor. More...
 
void triggerSceneUpdateEvent (SceneUpdateType update_type)
 This function is called every time there is a change to the planning scene. More...
 
void unlockSceneRead ()
 Unlock the scene from reading (multiple threads can lock for reading at the same time) More...
 
void unlockSceneWrite ()
 Lock the scene from writing (only one thread can lock for writing and no other thread can lock for reading) More...
 
void updateFrameTransforms ()
 Update the transforms for the frames that are not part of the kinematic model using tf. Examples of these frames are the "map" and "odom_combined" transforms. This function is automatically called when data that uses transforms is received. However, this function should also be called before starting a planning request, for example. More...
 
void updateSceneWithCurrentState ()
 Update the scene using the monitored state. This function is automatically called when an update to the current state is received (if startStateMonitor() has been called). The updates are throttled to a maximum update frequency however, which is set by setStateUpdateFrequency(). More...
 
bool updatesScene (const planning_scene::PlanningSceneConstPtr &scene) const
 Return true if the scene scene can be updated directly or indirectly by this monitor. This function will return true if the pointer of the scene is the same as the one maintained, or if a parent of the scene is the one maintained. More...
 
bool updatesScene (const planning_scene::PlanningScenePtr &scene) const
 Return true if the scene scene can be updated directly or indirectly by this monitor. This function will return true if the pointer of the scene is the same as the one maintained, or if a parent of the scene is the one maintained. More...
 
bool waitForCurrentRobotState (const ros::Time &t, double wait_time=1.)
 Wait for robot state to become more recent than time t. More...
 
 ~PlanningSceneMonitor ()
 

Static Public Attributes

static const std::string DEFAULT_ATTACHED_COLLISION_OBJECT_TOPIC = "attached_collision_object"
 The name of the topic used by default for attached collision objects. More...
 
static const std::string DEFAULT_COLLISION_OBJECT_TOPIC = "collision_object"
 The name of the topic used by default for receiving collision objects in the world. More...
 
static const std::string DEFAULT_JOINT_STATES_TOPIC = "joint_states"
 The name of the topic used by default for receiving joint states. More...
 
static const std::string DEFAULT_PLANNING_SCENE_SERVICE = "get_planning_scene"
 The name of the service used by default for requesting full planning scene state. More...
 
static const std::string DEFAULT_PLANNING_SCENE_TOPIC = "planning_scene"
 The name of the topic used by default for receiving full planning scenes or planning scene diffs. More...
 
static const std::string DEFAULT_PLANNING_SCENE_WORLD_TOPIC = "planning_scene_world"
 
static const std::string MONITORED_PLANNING_SCENE_TOPIC = "monitored_planning_scene"
 

Protected Types

using AttachedBodyShapeHandles = std::map< const moveit::core::AttachedBody *, std::vector< std::pair< occupancy_map_monitor::ShapeHandle, std::size_t > > >
 
using CollisionBodyShapeHandles = std::map< std::string, std::vector< std::pair< occupancy_map_monitor::ShapeHandle, const Eigen::Isometry3d * > > >
 
typedef std::map< const moveit::core::LinkModel *, std::vector< std::pair< occupancy_map_monitor::ShapeHandle, std::size_t > > > LinkShapeHandles
 

Protected Member Functions

void attachObjectCallback (const moveit_msgs::AttachedCollisionObjectConstPtr &obj)
 Callback for a new attached object msg. More...
 
void collisionObjectCallback (const moveit_msgs::CollisionObjectConstPtr &obj)
 Callback for a new collision object msg. More...
 
void configureCollisionMatrix (const planning_scene::PlanningScenePtr &scene)
 Configure the collision matrix for a particular scene. More...
 
void configureDefaultPadding ()
 Configure the default padding. More...
 
void currentStateAttachedBodyUpdateCallback (moveit::core::AttachedBody *attached_body, bool just_attached)
 Callback for a change for an attached object of the current state of the planning scene. More...
 
void currentWorldObjectUpdateCallback (const collision_detection::World::ObjectConstPtr &object, collision_detection::World::Action action)
 Callback for a change in the world maintained by the planning scene. More...
 
void excludeAttachedBodiesFromOctree ()
 
void excludeAttachedBodyFromOctree (const moveit::core::AttachedBody *attached_body)
 
void excludeRobotLinksFromOctree ()
 
void excludeWorldObjectFromOctree (const collision_detection::World::ObjectConstPtr &obj)
 
void excludeWorldObjectsFromOctree ()
 
bool getShapeTransformCache (const std::string &target_frame, const ros::Time &target_time, occupancy_map_monitor::ShapeTransformCache &cache) const
 
void includeAttachedBodiesInOctree ()
 
void includeAttachedBodyInOctree (const moveit::core::AttachedBody *attached_body)
 
void includeRobotLinksInOctree ()
 
void includeWorldObjectInOctree (const collision_detection::World::ObjectConstPtr &obj)
 
void includeWorldObjectsInOctree ()
 
void initialize (const planning_scene::PlanningScenePtr &scene)
 Initialize the planning scene monitor. More...
 
void newPlanningSceneWorldCallback (const moveit_msgs::PlanningSceneWorldConstPtr &world)
 Callback for a new planning scene world. More...
 
void octomapUpdateCallback ()
 Callback for octomap updates. More...
 

Protected Attributes

AttachedBodyShapeHandles attached_body_shape_handles_
 
ros::Subscriber attached_collision_object_subscriber_
 
CollisionBodyShapeHandles collision_body_shape_handles_
 
ros::Subscriber collision_object_subscriber_
 
CurrentStateMonitorPtr current_state_monitor_
 
double default_attached_padd_
 default attached padding More...
 
double default_object_padd_
 default object padding More...
 
std::map< std::string, double > default_robot_link_padd_
 default robot link padding More...
 
std::map< std::string, double > default_robot_link_scale_
 default robot link scale More...
 
double default_robot_padd_
 default robot padding More...
 
double default_robot_scale_
 default robot scaling More...
 
ros::ServiceServer get_scene_service_
 
ros::Time last_robot_motion_time_
 Last time the state was updated. More...
 
ros::Time last_update_time_
 mutex for stored scene More...
 
LinkShapeHandles link_shape_handles_
 
std::string monitor_name_
 The name of this scene monitor. More...
 
SceneUpdateType new_scene_update_
 
boost::condition_variable_any new_scene_update_condition_
 
ros::NodeHandle nh_
 Last time the robot has moved. More...
 
std::unique_ptr< occupancy_map_monitor::OccupancyMapMonitoroctomap_monitor_
 
planning_scene::PlanningScenePtr parent_scene_
 
ros::Publisher planning_scene_publisher_
 
ros::Subscriber planning_scene_subscriber_
 
ros::Subscriber planning_scene_world_subscriber_
 
std::unique_ptr< boost::thread > publish_planning_scene_
 
double publish_planning_scene_frequency_
 
SceneUpdateType publish_update_types_
 
ros::CallbackQueue queue_
 
std::string robot_description_
 
ros::NodeHandle root_nh_
 
planning_scene::PlanningScenePtr scene_
 
planning_scene::PlanningSceneConstPtr scene_const_
 
boost::shared_mutex scene_update_mutex_
 if diffs are monitored, this is the pointer to the parent scene More...
 
boost::recursive_mutex shape_handles_lock_
 
std::shared_ptr< ros::AsyncSpinnerspinner_
 
std::shared_ptr< tf2_ros::Buffertf_buffer_
 
std::vector< boost::function< void(SceneUpdateType)> > update_callbacks_
 
boost::recursive_mutex update_lock_
 lock access to update_callbacks_ More...
 

Private Member Functions

bool checkFrameIgnored (const std::string &frame)
 
bool getPlanningSceneServiceCallback (moveit_msgs::GetPlanningScene::Request &req, moveit_msgs::GetPlanningScene::Response &res)
 
void getUpdatedFrameTransforms (std::vector< geometry_msgs::TransformStamped > &transforms)
 
void newPlanningSceneCallback (const moveit_msgs::PlanningSceneConstPtr &scene)
 
void onStateUpdate (const sensor_msgs::JointStateConstPtr &joint_state)
 
void scenePublishingThread ()
 
void stateUpdateTimerCallback (const ros::WallTimerEvent &event)
 

Private Attributes

collision_detection::CollisionPluginLoader collision_loader_
 
ros::WallDuration dt_state_update_
 the amount of time to wait in between updates to the robot state More...
 
std::set< std::string > ignored_frames_
 
ros::WallTime last_robot_state_update_wall_time_
 Last time the state was updated from current_state_monitor_. More...
 
DynamicReconfigureImplreconfigure_impl_
 
robot_model_loader::RobotModelLoaderPtr rm_loader_
 
moveit::core::RobotModelConstPtr robot_model_
 
ros::Duration shape_transform_cache_lookup_wait_time_
 the amount of time to wait when looking up transforms More...
 
boost::mutex state_pending_mutex_
 
volatile bool state_update_pending_
 True when we need to update the RobotState from current_state_monitor_. More...
 
ros::WallTimer state_update_timer_
 timer for state updates. More...
 

Detailed Description

PlanningSceneMonitor Subscribes to the topic planning_scene.

Definition at line 93 of file planning_scene_monitor.h.

Member Typedef Documentation

◆ AttachedBodyShapeHandles

Definition at line 555 of file planning_scene_monitor.h.

◆ CollisionBodyShapeHandles

using planning_scene_monitor::PlanningSceneMonitor::CollisionBodyShapeHandles = std::map<std::string, std::vector<std::pair<occupancy_map_monitor::ShapeHandle, const Eigen::Isometry3d*> > >
protected

Definition at line 557 of file planning_scene_monitor.h.

◆ LinkShapeHandles

Definition at line 553 of file planning_scene_monitor.h.

Member Enumeration Documentation

◆ SceneUpdateType

Enumerator
UPDATE_NONE 

No update.

UPDATE_STATE 

The state in the monitored scene was updated.

UPDATE_TRANSFORMS 

The maintained set of fixed transforms in the monitored scene was updated.

UPDATE_GEOMETRY 

The geometry of the scene was updated. This includes receiving new octomaps, collision objects, attached objects, scene geometry, etc.

UPDATE_SCENE 

The entire scene was updated.

Definition at line 96 of file planning_scene_monitor.h.

Constructor & Destructor Documentation

◆ PlanningSceneMonitor() [1/5]

planning_scene_monitor::PlanningSceneMonitor::PlanningSceneMonitor ( const std::string &  robot_description,
const std::shared_ptr< tf2_ros::Buffer > &  tf_buffer = std::shared_ptr<tf2_ros::Buffer>(),
const std::string &  name = "" 
)

Constructor.

Parameters
robot_descriptionThe name of the ROS parameter that contains the URDF (in string format)
tf_bufferA pointer to a tf2_ros::Buffer
nameA name identifying this planning scene monitor

Definition at line 151 of file planning_scene_monitor.cpp.

◆ PlanningSceneMonitor() [2/5]

planning_scene_monitor::PlanningSceneMonitor::PlanningSceneMonitor ( const robot_model_loader::RobotModelLoaderPtr &  rml,
const std::shared_ptr< tf2_ros::Buffer > &  tf_buffer = std::shared_ptr<tf2_ros::Buffer>(),
const std::string &  name = "" 
)

Constructor.

Parameters
rmlA pointer to a kinematic model loader
tf_bufferA pointer to a tf2_ros::Buffer
nameA name identifying this planning scene monitor

Definition at line 165 of file planning_scene_monitor.cpp.

◆ PlanningSceneMonitor() [3/5]

planning_scene_monitor::PlanningSceneMonitor::PlanningSceneMonitor ( const planning_scene::PlanningScenePtr &  scene,
const std::string &  robot_description,
const std::shared_ptr< tf2_ros::Buffer > &  tf_buffer = std::shared_ptr<tf2_ros::Buffer>(),
const std::string &  name = "" 
)

Constructor.

Parameters
sceneThe scene instance to maintain up to date with monitored information
robot_descriptionThe name of the ROS parameter that contains the URDF (in string format)
tf_bufferA pointer to a tf2_ros::Buffer
nameA name identifying this planning scene monitor

Definition at line 157 of file planning_scene_monitor.cpp.

◆ PlanningSceneMonitor() [4/5]

planning_scene_monitor::PlanningSceneMonitor::PlanningSceneMonitor ( const planning_scene::PlanningScenePtr &  scene,
const robot_model_loader::RobotModelLoaderPtr &  rml,
const std::shared_ptr< tf2_ros::Buffer > &  tf_buffer = std::shared_ptr<tf2_ros::Buffer>(),
const std::string &  name = "" 
)

Constructor.

Parameters
sceneThe scene instance to maintain up to date with monitored information
rmlA pointer to a kinematic model loader
tf_bufferA pointer to a tf2_ros::Buffer
nameA name identifying this planning scene monitor

Definition at line 171 of file planning_scene_monitor.cpp.

◆ PlanningSceneMonitor() [5/5]

planning_scene_monitor::PlanningSceneMonitor::PlanningSceneMonitor ( const planning_scene::PlanningScenePtr &  scene,
const robot_model_loader::RobotModelLoaderPtr &  rml,
const ros::NodeHandle nh,
const std::shared_ptr< tf2_ros::Buffer > &  tf_buffer = std::shared_ptr<tf2_ros::Buffer>(),
const std::string &  name = "" 
)

Constructor.

Parameters
sceneThe scene instance to maintain up to date with monitored information
rmlA pointer to a kinematic model loader
nhexternal parent NodeHandle The monitors will use this NodeHandle's CallbackQueue for updates. Usually, this should be a different queue than the global queue, otherwise you might run into timeouts.
tf_bufferA pointer to a tf2_ros::Buffer
nameA name identifying this planning scene monitor

Definition at line 183 of file planning_scene_monitor.cpp.

◆ ~PlanningSceneMonitor()

planning_scene_monitor::PlanningSceneMonitor::~PlanningSceneMonitor ( )

Definition at line 194 of file planning_scene_monitor.cpp.

Member Function Documentation

◆ addUpdateCallback()

void planning_scene_monitor::PlanningSceneMonitor::addUpdateCallback ( const boost::function< void(SceneUpdateType)> &  fn)

Add a function to be called when an update to the scene is received.

Definition at line 1347 of file planning_scene_monitor.cpp.

◆ attachObjectCallback()

void planning_scene_monitor::PlanningSceneMonitor::attachObjectCallback ( const moveit_msgs::AttachedCollisionObjectConstPtr &  obj)
protected

Callback for a new attached object msg.

Definition at line 718 of file planning_scene_monitor.cpp.

◆ checkFrameIgnored()

bool planning_scene_monitor::PlanningSceneMonitor::checkFrameIgnored ( const std::string &  frame)
private

Definition at line 1511 of file planning_scene_monitor.cpp.

◆ clearOctomap()

void planning_scene_monitor::PlanningSceneMonitor::clearOctomap ( )

Definition at line 576 of file planning_scene_monitor.cpp.

◆ clearUpdateCallbacks()

void planning_scene_monitor::PlanningSceneMonitor::clearUpdateCallbacks ( )

Clear the functions to be called when an update to the scene is received.

Definition at line 1354 of file planning_scene_monitor.cpp.

◆ collisionObjectCallback()

void planning_scene_monitor::PlanningSceneMonitor::collisionObjectCallback ( const moveit_msgs::CollisionObjectConstPtr &  obj)
protected

Callback for a new collision object msg.

Definition at line 703 of file planning_scene_monitor.cpp.

◆ configureCollisionMatrix()

void planning_scene_monitor::PlanningSceneMonitor::configureCollisionMatrix ( const planning_scene::PlanningScenePtr &  scene)
protected

Configure the collision matrix for a particular scene.

Definition at line 1420 of file planning_scene_monitor.cpp.

◆ configureDefaultPadding()

void planning_scene_monitor::PlanningSceneMonitor::configureDefaultPadding ( )
protected

Configure the default padding.

Definition at line 1463 of file planning_scene_monitor.cpp.

◆ currentStateAttachedBodyUpdateCallback()

void planning_scene_monitor::PlanningSceneMonitor::currentStateAttachedBodyUpdateCallback ( moveit::core::AttachedBody attached_body,
bool  just_attached 
)
protected

Callback for a change for an attached object of the current state of the planning scene.

Definition at line 915 of file planning_scene_monitor.cpp.

◆ currentWorldObjectUpdateCallback()

void planning_scene_monitor::PlanningSceneMonitor::currentWorldObjectUpdateCallback ( const collision_detection::World::ObjectConstPtr &  object,
collision_detection::World::Action  action 
)
protected

Callback for a change in the world maintained by the planning scene.

Definition at line 927 of file planning_scene_monitor.cpp.

◆ excludeAttachedBodiesFromOctree()

void planning_scene_monitor::PlanningSceneMonitor::excludeAttachedBodiesFromOctree ( )
protected

Definition at line 799 of file planning_scene_monitor.cpp.

◆ excludeAttachedBodyFromOctree()

void planning_scene_monitor::PlanningSceneMonitor::excludeAttachedBodyFromOctree ( const moveit::core::AttachedBody attached_body)
protected

Definition at line 836 of file planning_scene_monitor.cpp.

◆ excludeRobotLinksFromOctree()

void planning_scene_monitor::PlanningSceneMonitor::excludeRobotLinksFromOctree ( )
protected

Definition at line 732 of file planning_scene_monitor.cpp.

◆ excludeWorldObjectFromOctree()

void planning_scene_monitor::PlanningSceneMonitor::excludeWorldObjectFromOctree ( const collision_detection::World::ObjectConstPtr &  obj)
protected

Definition at line 875 of file planning_scene_monitor.cpp.

◆ excludeWorldObjectsFromOctree()

void planning_scene_monitor::PlanningSceneMonitor::excludeWorldObjectsFromOctree ( )
protected

Definition at line 827 of file planning_scene_monitor.cpp.

◆ getDefaultAttachedObjectPadding()

double planning_scene_monitor::PlanningSceneMonitor::getDefaultAttachedObjectPadding ( ) const
inline

Get the default attached padding.

Definition at line 275 of file planning_scene_monitor.h.

◆ getDefaultObjectPadding()

double planning_scene_monitor::PlanningSceneMonitor::getDefaultObjectPadding ( ) const
inline

Get the default object padding.

Definition at line 269 of file planning_scene_monitor.h.

◆ getDefaultRobotPadding()

double planning_scene_monitor::PlanningSceneMonitor::getDefaultRobotPadding ( ) const
inline

Get the default robot padding.

Definition at line 257 of file planning_scene_monitor.h.

◆ getDefaultRobotScale()

double planning_scene_monitor::PlanningSceneMonitor::getDefaultRobotScale ( ) const
inline

Get the default robot scaling.

Definition at line 263 of file planning_scene_monitor.h.

◆ getLastUpdateTime()

const ros::Time& planning_scene_monitor::PlanningSceneMonitor::getLastUpdateTime ( ) const
inline

Return the time when the last update was made to the planning scene (by any monitor)

Definition at line 411 of file planning_scene_monitor.h.

◆ getMonitoredTopics()

void planning_scene_monitor::PlanningSceneMonitor::getMonitoredTopics ( std::vector< std::string > &  topics) const

Get the topic names that the monitor is listening to.

Definition at line 465 of file planning_scene_monitor.cpp.

◆ getName()

const std::string& planning_scene_monitor::PlanningSceneMonitor::getName ( ) const
inline

Get the name of this monitor.

Definition at line 194 of file planning_scene_monitor.h.

◆ getPlanningScene() [1/2]

const planning_scene::PlanningScenePtr& planning_scene_monitor::PlanningSceneMonitor::getPlanningScene ( )
inline

Avoid this function! Returns an unsafe pointer to the current planning scene.

Warning
Most likely you do not want to call this function directly. PlanningSceneMonitor has a background thread which repeatedly updates and clobbers various contents of its internal PlanningScene instance. This function just returns a pointer to that dynamic internal object. The correct thing is usually to use a LockedPlanningSceneRO or LockedPlanningSceneRW, which locks the PlanningSceneMonitor and provides safe access to the PlanningScene object.
See also
LockedPlanningSceneRO
LockedPlanningSceneRW.
Returns
A pointer to the current planning scene.

Definition at line 224 of file planning_scene_monitor.h.

◆ getPlanningScene() [2/2]

const planning_scene::PlanningSceneConstPtr& planning_scene_monitor::PlanningSceneMonitor::getPlanningScene ( ) const
inline

Avoid this function! Returns an unsafe pointer to the current planning scene.

Warning
Most likely you do not want to call this function directly. PlanningSceneMonitor has a background thread which repeatedly updates and clobbers various contents of its internal PlanningScene instance. This function just returns a pointer to that dynamic internal object. The correct thing is usually to use a LockedPlanningSceneRO or LockedPlanningSceneRW, which locks the PlanningSceneMonitor and provides safe access to the PlanningScene object.
See also
LockedPlanningSceneRO
LockedPlanningSceneRW.
Returns
A pointer to the current planning scene.

Definition at line 232 of file planning_scene_monitor.h.

◆ getPlanningScenePublishingFrequency()

double planning_scene_monitor::PlanningSceneMonitor::getPlanningScenePublishingFrequency ( ) const
inline

Get the maximum frequency at which planning scenes are published (Hz)

Definition at line 306 of file planning_scene_monitor.h.

◆ getPlanningSceneServiceCallback()

bool planning_scene_monitor::PlanningSceneMonitor::getPlanningSceneServiceCallback ( moveit_msgs::GetPlanningScene::Request &  req,
moveit_msgs::GetPlanningScene::Response &  res 
)
private

Definition at line 556 of file planning_scene_monitor.cpp.

◆ getRobotDescription()

const std::string& planning_scene_monitor::PlanningSceneMonitor::getRobotDescription ( ) const
inline

Get the stored robot description.

Returns
An instance of the stored robot description

Definition at line 251 of file planning_scene_monitor.h.

◆ getRobotModel()

const moveit::core::RobotModelConstPtr& planning_scene_monitor::PlanningSceneMonitor::getRobotModel ( ) const
inline

Definition at line 205 of file planning_scene_monitor.h.

◆ getRobotModelLoader()

const robot_model_loader::RobotModelLoaderPtr& planning_scene_monitor::PlanningSceneMonitor::getRobotModelLoader ( ) const
inline

Get the user kinematic model loader.

Definition at line 200 of file planning_scene_monitor.h.

◆ getShapeTransformCache()

bool planning_scene_monitor::PlanningSceneMonitor::getShapeTransformCache ( const std::string &  target_frame,
const ros::Time target_time,
occupancy_map_monitor::ShapeTransformCache cache 
) const
protected

Definition at line 1054 of file planning_scene_monitor.cpp.

◆ getStateMonitor()

const CurrentStateMonitorPtr& planning_scene_monitor::PlanningSceneMonitor::getStateMonitor ( ) const
inline

Get the stored instance of the stored current state monitor.

Returns
An instance of the stored current state monitor

Definition at line 313 of file planning_scene_monitor.h.

◆ getStateMonitorNonConst()

CurrentStateMonitorPtr& planning_scene_monitor::PlanningSceneMonitor::getStateMonitorNonConst ( )
inline

Definition at line 318 of file planning_scene_monitor.h.

◆ getStateUpdateFrequency()

double planning_scene_monitor::PlanningSceneMonitor::getStateUpdateFrequency ( ) const
inline

Get the maximum frequency (Hz) at which the current state of the planning scene is updated.

Definition at line 352 of file planning_scene_monitor.h.

◆ getTFClient()

const std::shared_ptr<tf2_ros::Buffer>& planning_scene_monitor::PlanningSceneMonitor::getTFClient ( ) const
inline

Get the instance of the TF client that was passed to the constructor of this class.

Definition at line 281 of file planning_scene_monitor.h.

◆ getUpdatedFrameTransforms()

void planning_scene_monitor::PlanningSceneMonitor::getUpdatedFrameTransforms ( std::vector< geometry_msgs::TransformStamped > &  transforms)
private

List of callbacks to trigger when updates are received

Definition at line 1367 of file planning_scene_monitor.cpp.

◆ includeAttachedBodiesInOctree()

void planning_scene_monitor::PlanningSceneMonitor::includeAttachedBodiesInOctree ( )
protected

Definition at line 783 of file planning_scene_monitor.cpp.

◆ includeAttachedBodyInOctree()

void planning_scene_monitor::PlanningSceneMonitor::includeAttachedBodyInOctree ( const moveit::core::AttachedBody attached_body)
protected

Definition at line 858 of file planning_scene_monitor.cpp.

◆ includeRobotLinksInOctree()

void planning_scene_monitor::PlanningSceneMonitor::includeRobotLinksInOctree ( )
protected

Definition at line 768 of file planning_scene_monitor.cpp.

◆ includeWorldObjectInOctree()

void planning_scene_monitor::PlanningSceneMonitor::includeWorldObjectInOctree ( const collision_detection::World::ObjectConstPtr &  obj)
protected

Definition at line 898 of file planning_scene_monitor.cpp.

◆ includeWorldObjectsInOctree()

void planning_scene_monitor::PlanningSceneMonitor::includeWorldObjectsInOctree ( )
protected

Definition at line 811 of file planning_scene_monitor.cpp.

◆ initialize()

void planning_scene_monitor::PlanningSceneMonitor::initialize ( const planning_scene::PlanningScenePtr &  scene)
protected

Initialize the planning scene monitor.

Parameters
sceneThe scene instance to fill with data (an instance is allocated if the one passed in is not allocated)

Definition at line 216 of file planning_scene_monitor.cpp.

◆ lockSceneRead()

void planning_scene_monitor::PlanningSceneMonitor::lockSceneRead ( )

Lock the scene for reading (multiple threads can lock for reading at the same time)

Definition at line 1003 of file planning_scene_monitor.cpp.

◆ lockSceneWrite()

void planning_scene_monitor::PlanningSceneMonitor::lockSceneWrite ( )

Lock the scene for writing (only one thread can lock for writing and no other thread can lock for reading)

Definition at line 1017 of file planning_scene_monitor.cpp.

◆ monitorDiffs()

void planning_scene_monitor::PlanningSceneMonitor::monitorDiffs ( bool  flag)

By default, the maintained planning scene does not reason about diffs. When the flag passed in is true, the maintained scene starts counting diffs. Future updates to the planning scene will be stored as diffs and can be retrieved as such. Setting the flag to false restores the default behaviour. Maintaining diffs is automatically enabled when publishing planning scenes.

Definition at line 300 of file planning_scene_monitor.cpp.

◆ newPlanningSceneCallback()

void planning_scene_monitor::PlanningSceneMonitor::newPlanningSceneCallback ( const moveit_msgs::PlanningSceneConstPtr &  scene)
private

Definition at line 571 of file planning_scene_monitor.cpp.

◆ newPlanningSceneMessage()

bool planning_scene_monitor::PlanningSceneMonitor::newPlanningSceneMessage ( const moveit_msgs::PlanningScene &  scene)

Definition at line 599 of file planning_scene_monitor.cpp.

◆ newPlanningSceneWorldCallback()

void planning_scene_monitor::PlanningSceneMonitor::newPlanningSceneWorldCallback ( const moveit_msgs::PlanningSceneWorldConstPtr &  world)
protected

Callback for a new planning scene world.

Definition at line 679 of file planning_scene_monitor.cpp.

◆ octomapUpdateCallback()

void planning_scene_monitor::PlanningSceneMonitor::octomapUpdateCallback ( )
protected

Callback for octomap updates.

Definition at line 1272 of file planning_scene_monitor.cpp.

◆ onStateUpdate()

void planning_scene_monitor::PlanningSceneMonitor::onStateUpdate ( const sensor_msgs::JointStateConstPtr &  joint_state)
private

Definition at line 1216 of file planning_scene_monitor.cpp.

◆ providePlanningSceneService()

void planning_scene_monitor::PlanningSceneMonitor::providePlanningSceneService ( const std::string &  service_name = DEFAULT_PLANNING_SCENE_SERVICE)

Create an optional service for getting the complete planning scene This is useful for satisfying the Rviz PlanningScene display's need for a service without having to use a move_group node. Be careful not to use this in conjunction with requestPlanningSceneState(), as it will create a pointless feedback loop.

Parameters
service_nameThe topic to provide the service

Definition at line 549 of file planning_scene_monitor.cpp.

◆ publishDebugInformation()

void planning_scene_monitor::PlanningSceneMonitor::publishDebugInformation ( bool  flag)

Definition at line 1414 of file planning_scene_monitor.cpp.

◆ requestPlanningSceneState()

bool planning_scene_monitor::PlanningSceneMonitor::requestPlanningSceneState ( const std::string &  service_name = DEFAULT_PLANNING_SCENE_SERVICE)

Request a full planning scene state using a service call Be careful not to use this in conjunction with providePlanningSceneService(), as it will create a pointless feedback loop.

Parameters
service_nameThe name of the service to use for requesting the planning scene. This must be a service of type moveit_msgs::GetPlanningScene and is usually called "/get_planning_scene".

Definition at line 516 of file planning_scene_monitor.cpp.

◆ scenePublishingThread()

void planning_scene_monitor::PlanningSceneMonitor::scenePublishingThread ( )
private

Definition at line 376 of file planning_scene_monitor.cpp.

◆ setPlanningScenePublishingFrequency()

void planning_scene_monitor::PlanningSceneMonitor::setPlanningScenePublishingFrequency ( double  hz)

Set the maximum frequency at which planning scenes are being published.

Definition at line 1360 of file planning_scene_monitor.cpp.

◆ setStateUpdateFrequency()

void planning_scene_monitor::PlanningSceneMonitor::setStateUpdateFrequency ( double  hz)

Update the scene using the monitored state at a specified frequency, in Hz. This function has an effect only when updates from the CurrentStateMonitor are received at a higher frequency. In that case, the updates are throttled down, so that they do not exceed a maximum update frequency specified here.

Parameters
hzthe update frequency. By default this is 10Hz.

Definition at line 1296 of file planning_scene_monitor.cpp.

◆ startPublishingPlanningScene()

void planning_scene_monitor::PlanningSceneMonitor::startPublishingPlanningScene ( SceneUpdateType  event,
const std::string &  planning_scene_topic = MONITORED_PLANNING_SCENE_TOPIC 
)

Start publishing the maintained planning scene. The first message set out is a complete planning scene. Diffs are sent afterwards on updates specified by the event bitmask. For UPDATE_SCENE, the full scene is always sent.

Definition at line 363 of file planning_scene_monitor.cpp.

◆ startSceneMonitor()

void planning_scene_monitor::PlanningSceneMonitor::startSceneMonitor ( const std::string &  scene_topic = DEFAULT_PLANNING_SCENE_TOPIC)

Start the scene monitor (ROS topic-based)

Parameters
scene_topicThe name of the planning scene topic

Definition at line 1031 of file planning_scene_monitor.cpp.

◆ startStateMonitor()

void planning_scene_monitor::PlanningSceneMonitor::startStateMonitor ( const std::string &  joint_states_topic = DEFAULT_JOINT_STATES_TOPIC,
const std::string &  attached_objects_topic = DEFAULT_ATTACHED_COLLISION_OBJECT_TOPIC 
)

Start the current state monitor.

Parameters
joint_states_topicthe topic to listen to for joint states
attached_objects_topicthe topic to listen to for attached collision objects

Definition at line 1170 of file planning_scene_monitor.cpp.

◆ startWorldGeometryMonitor()

void planning_scene_monitor::PlanningSceneMonitor::startWorldGeometryMonitor ( const std::string &  collision_objects_topic = DEFAULT_COLLISION_OBJECT_TOPIC,
const std::string &  planning_scene_world_topic = DEFAULT_PLANNING_SCENE_WORLD_TOPIC,
const bool  load_octomap_monitor = true 
)

Start the OccupancyMapMonitor and listening for:

  • Requests to add/remove/update collision objects to/from the world
  • The collision map
  • Requests to attached/detach collision objects
    Parameters
    collision_objects_topicThe topic on which to listen for collision objects
    planning_scene_world_topicThe topic to listen to for world scene geometry
    load_octomap_monitorFlag to disable octomap monitor if desired

Definition at line 1109 of file planning_scene_monitor.cpp.

◆ stateUpdateTimerCallback()

void planning_scene_monitor::PlanningSceneMonitor::stateUpdateTimerCallback ( const ros::WallTimerEvent event)
private

Definition at line 1241 of file planning_scene_monitor.cpp.

◆ stopPublishingPlanningScene()

void planning_scene_monitor::PlanningSceneMonitor::stopPublishingPlanningScene ( )

Stop publishing the maintained planning scene.

Definition at line 349 of file planning_scene_monitor.cpp.

◆ stopSceneMonitor()

void planning_scene_monitor::PlanningSceneMonitor::stopSceneMonitor ( )

Stop the scene monitor.

Definition at line 1045 of file planning_scene_monitor.cpp.

◆ stopStateMonitor()

void planning_scene_monitor::PlanningSceneMonitor::stopStateMonitor ( )

Stop the state monitor.

Definition at line 1201 of file planning_scene_monitor.cpp.

◆ stopWorldGeometryMonitor()

void planning_scene_monitor::PlanningSceneMonitor::stopWorldGeometryMonitor ( )

Stop the world geometry monitor.

Definition at line 1154 of file planning_scene_monitor.cpp.

◆ triggerSceneUpdateEvent()

void planning_scene_monitor::PlanningSceneMonitor::triggerSceneUpdateEvent ( SceneUpdateType  update_type)

This function is called every time there is a change to the planning scene.

Definition at line 505 of file planning_scene_monitor.cpp.

◆ unlockSceneRead()

void planning_scene_monitor::PlanningSceneMonitor::unlockSceneRead ( )

Unlock the scene from reading (multiple threads can lock for reading at the same time)

Definition at line 1010 of file planning_scene_monitor.cpp.

◆ unlockSceneWrite()

void planning_scene_monitor::PlanningSceneMonitor::unlockSceneWrite ( )

Lock the scene from writing (only one thread can lock for writing and no other thread can lock for reading)

Definition at line 1024 of file planning_scene_monitor.cpp.

◆ updateFrameTransforms()

void planning_scene_monitor::PlanningSceneMonitor::updateFrameTransforms ( )

Update the transforms for the frames that are not part of the kinematic model using tf. Examples of these frames are the "map" and "odom_combined" transforms. This function is automatically called when data that uses transforms is received. However, this function should also be called before starting a planning request, for example.

Definition at line 1396 of file planning_scene_monitor.cpp.

◆ updateSceneWithCurrentState()

void planning_scene_monitor::PlanningSceneMonitor::updateSceneWithCurrentState ( )

Update the scene using the monitored state. This function is automatically called when an update to the current state is received (if startStateMonitor() has been called). The updates are throttled to a maximum update frequency however, which is set by setStateUpdateFrequency().

Definition at line 1321 of file planning_scene_monitor.cpp.

◆ updatesScene() [1/2]

bool planning_scene_monitor::PlanningSceneMonitor::updatesScene ( const planning_scene::PlanningSceneConstPtr &  scene) const

Return true if the scene scene can be updated directly or indirectly by this monitor. This function will return true if the pointer of the scene is the same as the one maintained, or if a parent of the scene is the one maintained.

Definition at line 500 of file planning_scene_monitor.cpp.

◆ updatesScene() [2/2]

bool planning_scene_monitor::PlanningSceneMonitor::updatesScene ( const planning_scene::PlanningScenePtr &  scene) const

Return true if the scene scene can be updated directly or indirectly by this monitor. This function will return true if the pointer of the scene is the same as the one maintained, or if a parent of the scene is the one maintained.

Definition at line 495 of file planning_scene_monitor.cpp.

◆ waitForCurrentRobotState()

bool planning_scene_monitor::PlanningSceneMonitor::waitForCurrentRobotState ( const ros::Time t,
double  wait_time = 1. 
)

Wait for robot state to become more recent than time t.

If there is no state monitor active, there will be no scene updates. Hence, you can specify a timeout to wait for those updates. Default is 1s.

Definition at line 946 of file planning_scene_monitor.cpp.

Member Data Documentation

◆ attached_body_shape_handles_

AttachedBodyShapeHandles planning_scene_monitor::PlanningSceneMonitor::attached_body_shape_handles_
protected

Definition at line 560 of file planning_scene_monitor.h.

◆ attached_collision_object_subscriber_

ros::Subscriber planning_scene_monitor::PlanningSceneMonitor::attached_collision_object_subscriber_
protected

Definition at line 538 of file planning_scene_monitor.h.

◆ collision_body_shape_handles_

CollisionBodyShapeHandles planning_scene_monitor::PlanningSceneMonitor::collision_body_shape_handles_
protected

Definition at line 561 of file planning_scene_monitor.h.

◆ collision_loader_

collision_detection::CollisionPluginLoader planning_scene_monitor::PlanningSceneMonitor::collision_loader_
private

Definition at line 616 of file planning_scene_monitor.h.

◆ collision_object_subscriber_

ros::Subscriber planning_scene_monitor::PlanningSceneMonitor::collision_object_subscriber_
protected

Definition at line 539 of file planning_scene_monitor.h.

◆ current_state_monitor_

CurrentStateMonitorPtr planning_scene_monitor::PlanningSceneMonitor::current_state_monitor_
protected

Definition at line 549 of file planning_scene_monitor.h.

◆ DEFAULT_ATTACHED_COLLISION_OBJECT_TOPIC

const std::string planning_scene_monitor::PlanningSceneMonitor::DEFAULT_ATTACHED_COLLISION_OBJECT_TOPIC = "attached_collision_object"
static

The name of the topic used by default for attached collision objects.

Definition at line 119 of file planning_scene_monitor.h.

◆ default_attached_padd_

double planning_scene_monitor::PlanningSceneMonitor::default_attached_padd_
protected

default attached padding

Definition at line 520 of file planning_scene_monitor.h.

◆ DEFAULT_COLLISION_OBJECT_TOPIC

const std::string planning_scene_monitor::PlanningSceneMonitor::DEFAULT_COLLISION_OBJECT_TOPIC = "collision_object"
static

The name of the topic used by default for receiving collision objects in the world.

Definition at line 122 of file planning_scene_monitor.h.

◆ DEFAULT_JOINT_STATES_TOPIC

const std::string planning_scene_monitor::PlanningSceneMonitor::DEFAULT_JOINT_STATES_TOPIC = "joint_states"
static

The name of the topic used by default for receiving joint states.

Definition at line 116 of file planning_scene_monitor.h.

◆ default_object_padd_

double planning_scene_monitor::PlanningSceneMonitor::default_object_padd_
protected

default object padding

Definition at line 518 of file planning_scene_monitor.h.

◆ DEFAULT_PLANNING_SCENE_SERVICE

const std::string planning_scene_monitor::PlanningSceneMonitor::DEFAULT_PLANNING_SCENE_SERVICE = "get_planning_scene"
static

The name of the service used by default for requesting full planning scene state.

Definition at line 132 of file planning_scene_monitor.h.

◆ DEFAULT_PLANNING_SCENE_TOPIC

const std::string planning_scene_monitor::PlanningSceneMonitor::DEFAULT_PLANNING_SCENE_TOPIC = "planning_scene"
static

The name of the topic used by default for receiving full planning scenes or planning scene diffs.

Definition at line 129 of file planning_scene_monitor.h.

◆ DEFAULT_PLANNING_SCENE_WORLD_TOPIC

const std::string planning_scene_monitor::PlanningSceneMonitor::DEFAULT_PLANNING_SCENE_WORLD_TOPIC = "planning_scene_world"
static

The name of the topic used by default for receiving geometry information about a planning scene (complete overwrite of world geometry)

Definition at line 126 of file planning_scene_monitor.h.

◆ default_robot_link_padd_

std::map<std::string, double> planning_scene_monitor::PlanningSceneMonitor::default_robot_link_padd_
protected

default robot link padding

Definition at line 522 of file planning_scene_monitor.h.

◆ default_robot_link_scale_

std::map<std::string, double> planning_scene_monitor::PlanningSceneMonitor::default_robot_link_scale_
protected

default robot link scale

Definition at line 524 of file planning_scene_monitor.h.

◆ default_robot_padd_

double planning_scene_monitor::PlanningSceneMonitor::default_robot_padd_
protected

default robot padding

Definition at line 514 of file planning_scene_monitor.h.

◆ default_robot_scale_

double planning_scene_monitor::PlanningSceneMonitor::default_robot_scale_
protected

default robot scaling

Definition at line 516 of file planning_scene_monitor.h.

◆ dt_state_update_

ros::WallDuration planning_scene_monitor::PlanningSceneMonitor::dt_state_update_
private

the amount of time to wait in between updates to the robot state

Definition at line 597 of file planning_scene_monitor.h.

◆ get_scene_service_

ros::ServiceServer planning_scene_monitor::PlanningSceneMonitor::get_scene_service_
protected

Definition at line 543 of file planning_scene_monitor.h.

◆ ignored_frames_

std::set<std::string> planning_scene_monitor::PlanningSceneMonitor::ignored_frames_
private

Definition at line 621 of file planning_scene_monitor.h.

◆ last_robot_motion_time_

ros::Time planning_scene_monitor::PlanningSceneMonitor::last_robot_motion_time_
protected

Last time the state was updated.

Definition at line 502 of file planning_scene_monitor.h.

◆ last_robot_state_update_wall_time_

ros::WallTime planning_scene_monitor::PlanningSceneMonitor::last_robot_state_update_wall_time_
private

Last time the state was updated from current_state_monitor_.

Definition at line 611 of file planning_scene_monitor.h.

◆ last_update_time_

ros::Time planning_scene_monitor::PlanningSceneMonitor::last_update_time_
protected

mutex for stored scene

Definition at line 501 of file planning_scene_monitor.h.

◆ link_shape_handles_

LinkShapeHandles planning_scene_monitor::PlanningSceneMonitor::link_shape_handles_
protected

Definition at line 559 of file planning_scene_monitor.h.

◆ monitor_name_

std::string planning_scene_monitor::PlanningSceneMonitor::monitor_name_
protected

The name of this scene monitor.

Definition at line 495 of file planning_scene_monitor.h.

◆ MONITORED_PLANNING_SCENE_TOPIC

const std::string planning_scene_monitor::PlanningSceneMonitor::MONITORED_PLANNING_SCENE_TOPIC = "monitored_planning_scene"
static

The name of the topic used by default for publishing the monitored planning scene (this is without "/" in the name, so the topic is prefixed by the node name)

Definition at line 136 of file planning_scene_monitor.h.

◆ new_scene_update_

SceneUpdateType planning_scene_monitor::PlanningSceneMonitor::new_scene_update_
protected

Definition at line 531 of file planning_scene_monitor.h.

◆ new_scene_update_condition_

boost::condition_variable_any planning_scene_monitor::PlanningSceneMonitor::new_scene_update_condition_
protected

Definition at line 532 of file planning_scene_monitor.h.

◆ nh_

ros::NodeHandle planning_scene_monitor::PlanningSceneMonitor::nh_
protected

Last time the robot has moved.

Definition at line 504 of file planning_scene_monitor.h.

◆ octomap_monitor_

std::unique_ptr<occupancy_map_monitor::OccupancyMapMonitor> planning_scene_monitor::PlanningSceneMonitor::octomap_monitor_
protected

Definition at line 546 of file planning_scene_monitor.h.

◆ parent_scene_

planning_scene::PlanningScenePtr planning_scene_monitor::PlanningSceneMonitor::parent_scene_
protected

Definition at line 499 of file planning_scene_monitor.h.

◆ planning_scene_publisher_

ros::Publisher planning_scene_monitor::PlanningSceneMonitor::planning_scene_publisher_
protected

Definition at line 527 of file planning_scene_monitor.h.

◆ planning_scene_subscriber_

ros::Subscriber planning_scene_monitor::PlanningSceneMonitor::planning_scene_subscriber_
protected

Definition at line 535 of file planning_scene_monitor.h.

◆ planning_scene_world_subscriber_

ros::Subscriber planning_scene_monitor::PlanningSceneMonitor::planning_scene_world_subscriber_
protected

Definition at line 536 of file planning_scene_monitor.h.

◆ publish_planning_scene_

std::unique_ptr<boost::thread> planning_scene_monitor::PlanningSceneMonitor::publish_planning_scene_
protected

Definition at line 528 of file planning_scene_monitor.h.

◆ publish_planning_scene_frequency_

double planning_scene_monitor::PlanningSceneMonitor::publish_planning_scene_frequency_
protected

Definition at line 529 of file planning_scene_monitor.h.

◆ publish_update_types_

SceneUpdateType planning_scene_monitor::PlanningSceneMonitor::publish_update_types_
protected

Definition at line 530 of file planning_scene_monitor.h.

◆ queue_

ros::CallbackQueue planning_scene_monitor::PlanningSceneMonitor::queue_
protected

Definition at line 506 of file planning_scene_monitor.h.

◆ reconfigure_impl_

DynamicReconfigureImpl* planning_scene_monitor::PlanningSceneMonitor::reconfigure_impl_
private

Definition at line 618 of file planning_scene_monitor.h.

◆ rm_loader_

robot_model_loader::RobotModelLoaderPtr planning_scene_monitor::PlanningSceneMonitor::rm_loader_
private

Definition at line 613 of file planning_scene_monitor.h.

◆ robot_description_

std::string planning_scene_monitor::PlanningSceneMonitor::robot_description_
protected

Definition at line 511 of file planning_scene_monitor.h.

◆ robot_model_

moveit::core::RobotModelConstPtr planning_scene_monitor::PlanningSceneMonitor::robot_model_
private

Definition at line 614 of file planning_scene_monitor.h.

◆ root_nh_

ros::NodeHandle planning_scene_monitor::PlanningSceneMonitor::root_nh_
protected

Definition at line 505 of file planning_scene_monitor.h.

◆ scene_

planning_scene::PlanningScenePtr planning_scene_monitor::PlanningSceneMonitor::scene_
protected

Definition at line 497 of file planning_scene_monitor.h.

◆ scene_const_

planning_scene::PlanningSceneConstPtr planning_scene_monitor::PlanningSceneMonitor::scene_const_
protected

Definition at line 498 of file planning_scene_monitor.h.

◆ scene_update_mutex_

boost::shared_mutex planning_scene_monitor::PlanningSceneMonitor::scene_update_mutex_
protected

if diffs are monitored, this is the pointer to the parent scene

Definition at line 500 of file planning_scene_monitor.h.

◆ shape_handles_lock_

boost::recursive_mutex planning_scene_monitor::PlanningSceneMonitor::shape_handles_lock_
mutableprotected

Definition at line 562 of file planning_scene_monitor.h.

◆ shape_transform_cache_lookup_wait_time_

ros::Duration planning_scene_monitor::PlanningSceneMonitor::shape_transform_cache_lookup_wait_time_
private

the amount of time to wait when looking up transforms

Definition at line 602 of file planning_scene_monitor.h.

◆ spinner_

std::shared_ptr<ros::AsyncSpinner> planning_scene_monitor::PlanningSceneMonitor::spinner_
protected

Definition at line 507 of file planning_scene_monitor.h.

◆ state_pending_mutex_

boost::mutex planning_scene_monitor::PlanningSceneMonitor::state_pending_mutex_
private

Definition at line 589 of file planning_scene_monitor.h.

◆ state_update_pending_

volatile bool planning_scene_monitor::PlanningSceneMonitor::state_update_pending_
private

True when we need to update the RobotState from current_state_monitor_.

Definition at line 593 of file planning_scene_monitor.h.

◆ state_update_timer_

ros::WallTimer planning_scene_monitor::PlanningSceneMonitor::state_update_timer_
private

timer for state updates.

Definition at line 607 of file planning_scene_monitor.h.

◆ tf_buffer_

std::shared_ptr<tf2_ros::Buffer> planning_scene_monitor::PlanningSceneMonitor::tf_buffer_
protected

Definition at line 509 of file planning_scene_monitor.h.

◆ update_callbacks_

std::vector<boost::function<void(SceneUpdateType)> > planning_scene_monitor::PlanningSceneMonitor::update_callbacks_
protected

Definition at line 566 of file planning_scene_monitor.h.

◆ update_lock_

boost::recursive_mutex planning_scene_monitor::PlanningSceneMonitor::update_lock_
protected

lock access to update_callbacks_

Definition at line 565 of file planning_scene_monitor.h.


The documentation for this class was generated from the following files:


planning
Author(s): Ioan Sucan , Sachin Chitta
autogenerated on Thu Nov 21 2024 03:24:18