The cnr_scene_manager
package provides a tool to dynamically load and unload objects to and from the MoveitPlanningScene. It interfaces with the MoveitPlanningScene through the cnr_tf_named_object_loader.
This package relies on the following dependencies:
- cnr_param: For reading parameters.
- cnr_logger: For logging.
- cnr_tf_named_object_loader: For interfacing with the MoveitPlanningScene.
The core functionality is provided by the cnr_scene_manager_node
. This node maintains a list of available object descriptions read from parameters and uses them to load the scene at startup or during runtime.
When launched, the node reads available object descriptions from the parameter namespace param_ns/object_geometries
, where param_ns
is the first-level namespace provided to the node (see the example launch file). These object descriptions are stored and referred to as registered objects.
The initial scene is loaded based on the description provided under the parameter namespace param_ns/scene_objects
. All objects referred to in the scene must be registered objects.
The node provides the following services to dynamically manage the scene during runtime:
cnr_scene_manager/add_objects
: Adds registered objects to the scene.cnr_scene_manager/move_objects
: Moves registered objects to different poses in the scene.cnr_scene_manager/remove_objects
: Removes registered objects from the scene.
You can run an example by launching roslaunch cnr_scene_manager cnr_scene_manager_test.launch
, but you need to download this package first.
- An example of object and scene descriptions can be found in this config file.
- The necessary services and messages are defined in this package.