|
manymove_object_manager package from manymove repomanymove_bringup manymove_cpp_trees manymove_hmi manymove_msgs manymove_object_manager manymove_planner manymove_py_trees manymove_signals |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | To plan and execute moves with manipulators in ROS2 |
| Checkout URI | https://github.com/pastoriomarco/manymove.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-10-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Marco Pastorio
Authors
- Marco Pastorio
ManyMove Object Manager
This package is part of the manymove project for ROS 2 Humble. It provides a unified, topic-based approach for managing collision objects within MoveIt 2. Use at your own risk; the repository is experimental and does not include safety features.
This package allows to add, remove, and check the existence of an object, and also to attach and detach object to a certain link and to obtain the pose of an object relative to a link.
Unlike other approaches that rely on the /apply_planning_scene service, Object Manager uses the default MoveIt 2 topics to publish collision objects, and it exposes action servers to handle sequential operations (such as verifying whether objects are truly added or removed in the scene).
This approach is meant to ease the use with the manymove packages: it is compatible with both implementations of manymove_planner (MoveGroup and MoveItCPP), and doen’t access the planning scene directly to avoid possible racing conditions with the parallel planning and execution of the nodes in manymove_py_trees and manymove_cpp_trees.
Overview
Key Functionalities
-
Topic-Based Collision Updates Publishes collision objects (add/remove) to MoveIt 2’s default
/collision_objectand/attached_collision_objecttopics; no direct calls to/apply_planning_scene. -
Action Interfaces
Offers multiple action servers for:
-
/add_collision_object: Adds a collision object, verifying presence by querying/get_planning_scene. -
/remove_collision_object: Publishes a remove operation and confirms its success. -
/check_object_exists: Checks if an object is present or attached. -
/attach_detach_object: Attaches/detaches an object to/from a specified link. -
/get_object_pose: Retrieves an object’s pose relative to a link with optional transformations.
-
-
Sequential Verification Retries actions until the planning scene is updated, mitigating race conditions.
- Collision Spawner Reads a YAML file to spawn or remove multiple objects at once, simplifying environment setup.
Architecture
1. object_manager_node
This node hosts the action servers:
-
AddCollisionObject Action
Publishes the object to the default topic. Then, repeatedly checks if the object is in the planning scene. If confirmed, returns success. -
RemoveCollisionObject Action
Publishes a remove operation for a given object ID. Then, repeatedly checks if the object is truly gone from the scene. If confirmed, returns success. -
CheckObjectExists Action
Submits a request to/get_planning_sceneto verify the presence of a specific object ID.
Under the hood, object_manager_node:
- Publishes
moveit_msgs/msg/CollisionObjectto/collision_object. - Queries the planning scene via the
/get_planning_sceneservice. - Implements a retry/backoff mechanism to robustly confirm that the scene is updated.
2. collision_spawner
This node reads a YAML configuration describing multiple objects to spawn. On startup:
- Removes all existing “_spawner” objects (i.e., previously spawned objects), cleaning up or resetting the scene.
- Iterates through the YAML list:
- If a pose is provided, uses it.
- Otherwise, generates a random pose within specified boundaries.
- Sends an AddCollisionObject action goal to the
object_manager_nodeto create each object in the scene.
When done, the node shuts itself down by default.
Installation & Dependencies
Please refer to the main ManyMove README for overall setup instructions, build steps, and prerequisites.
Usage
Launching the Nodes
-
Object Manager Node Only
This will start the node that hosts all the action servers.
ros2 launch object_manager object_manager.launch.py
- This launch file:
- Starts
object_manager_nodewith a defaultframe_idparameter set toworld.
- Starts
-
Collision Spawner
This will start the spawner node, which will read your YAML configuration and attempt to add collision objects.
ros2 launch object_manager collision_spawner.launch.py
- This launch file:
- Runs the
collision_spawnernode. - Loads the YAML file from
object_manager/config/objects.yamlby default. - Removes any “_spawner” objects already in the scene, then adds new ones.
- Runs the
Design Choices (Beginner-Friendly)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| geometry_msgs | |
| moveit_msgs | |
| std_srvs | |
| tf2 | |
| tf2_ros | |
| tf2_geometry_msgs | |
| yaml_cpp_vendor | |
| geometric_shapes | |
| manymove_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| manymove_cpp_trees |
Launch files
Messages
Services
Plugins
Recent questions tagged manymove_object_manager at Robotics Stack Exchange
|
manymove_object_manager package from manymove repomanymove_bringup manymove_cpp_trees manymove_hmi manymove_msgs manymove_object_manager manymove_planner manymove_py_trees manymove_signals |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | To plan and execute moves with manipulators in ROS2 |
| Checkout URI | https://github.com/pastoriomarco/manymove.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-10-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Marco Pastorio
Authors
- Marco Pastorio
ManyMove Object Manager
This package is part of the manymove project for ROS 2 Humble. It provides a unified, topic-based approach for managing collision objects within MoveIt 2. Use at your own risk; the repository is experimental and does not include safety features.
This package allows to add, remove, and check the existence of an object, and also to attach and detach object to a certain link and to obtain the pose of an object relative to a link.
Unlike other approaches that rely on the /apply_planning_scene service, Object Manager uses the default MoveIt 2 topics to publish collision objects, and it exposes action servers to handle sequential operations (such as verifying whether objects are truly added or removed in the scene).
This approach is meant to ease the use with the manymove packages: it is compatible with both implementations of manymove_planner (MoveGroup and MoveItCPP), and doen’t access the planning scene directly to avoid possible racing conditions with the parallel planning and execution of the nodes in manymove_py_trees and manymove_cpp_trees.
Overview
Key Functionalities
-
Topic-Based Collision Updates Publishes collision objects (add/remove) to MoveIt 2’s default
/collision_objectand/attached_collision_objecttopics; no direct calls to/apply_planning_scene. -
Action Interfaces
Offers multiple action servers for:
-
/add_collision_object: Adds a collision object, verifying presence by querying/get_planning_scene. -
/remove_collision_object: Publishes a remove operation and confirms its success. -
/check_object_exists: Checks if an object is present or attached. -
/attach_detach_object: Attaches/detaches an object to/from a specified link. -
/get_object_pose: Retrieves an object’s pose relative to a link with optional transformations.
-
-
Sequential Verification Retries actions until the planning scene is updated, mitigating race conditions.
- Collision Spawner Reads a YAML file to spawn or remove multiple objects at once, simplifying environment setup.
Architecture
1. object_manager_node
This node hosts the action servers:
-
AddCollisionObject Action
Publishes the object to the default topic. Then, repeatedly checks if the object is in the planning scene. If confirmed, returns success. -
RemoveCollisionObject Action
Publishes a remove operation for a given object ID. Then, repeatedly checks if the object is truly gone from the scene. If confirmed, returns success. -
CheckObjectExists Action
Submits a request to/get_planning_sceneto verify the presence of a specific object ID.
Under the hood, object_manager_node:
- Publishes
moveit_msgs/msg/CollisionObjectto/collision_object. - Queries the planning scene via the
/get_planning_sceneservice. - Implements a retry/backoff mechanism to robustly confirm that the scene is updated.
2. collision_spawner
This node reads a YAML configuration describing multiple objects to spawn. On startup:
- Removes all existing “_spawner” objects (i.e., previously spawned objects), cleaning up or resetting the scene.
- Iterates through the YAML list:
- If a pose is provided, uses it.
- Otherwise, generates a random pose within specified boundaries.
- Sends an AddCollisionObject action goal to the
object_manager_nodeto create each object in the scene.
When done, the node shuts itself down by default.
Installation & Dependencies
Please refer to the main ManyMove README for overall setup instructions, build steps, and prerequisites.
Usage
Launching the Nodes
-
Object Manager Node Only
This will start the node that hosts all the action servers.
ros2 launch object_manager object_manager.launch.py
- This launch file:
- Starts
object_manager_nodewith a defaultframe_idparameter set toworld.
- Starts
-
Collision Spawner
This will start the spawner node, which will read your YAML configuration and attempt to add collision objects.
ros2 launch object_manager collision_spawner.launch.py
- This launch file:
- Runs the
collision_spawnernode. - Loads the YAML file from
object_manager/config/objects.yamlby default. - Removes any “_spawner” objects already in the scene, then adds new ones.
- Runs the
Design Choices (Beginner-Friendly)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| geometry_msgs | |
| moveit_msgs | |
| std_srvs | |
| tf2 | |
| tf2_ros | |
| tf2_geometry_msgs | |
| yaml_cpp_vendor | |
| geometric_shapes | |
| manymove_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| manymove_cpp_trees |
Launch files
Messages
Services
Plugins
Recent questions tagged manymove_object_manager at Robotics Stack Exchange
|
manymove_object_manager package from manymove repomanymove_bringup manymove_cpp_trees manymove_hmi manymove_msgs manymove_object_manager manymove_planner manymove_py_trees manymove_signals |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | To plan and execute moves with manipulators in ROS2 |
| Checkout URI | https://github.com/pastoriomarco/manymove.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-10-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Marco Pastorio
Authors
- Marco Pastorio
ManyMove Object Manager
This package is part of the manymove project for ROS 2 Humble. It provides a unified, topic-based approach for managing collision objects within MoveIt 2. Use at your own risk; the repository is experimental and does not include safety features.
This package allows to add, remove, and check the existence of an object, and also to attach and detach object to a certain link and to obtain the pose of an object relative to a link.
Unlike other approaches that rely on the /apply_planning_scene service, Object Manager uses the default MoveIt 2 topics to publish collision objects, and it exposes action servers to handle sequential operations (such as verifying whether objects are truly added or removed in the scene).
This approach is meant to ease the use with the manymove packages: it is compatible with both implementations of manymove_planner (MoveGroup and MoveItCPP), and doen’t access the planning scene directly to avoid possible racing conditions with the parallel planning and execution of the nodes in manymove_py_trees and manymove_cpp_trees.
Overview
Key Functionalities
-
Topic-Based Collision Updates Publishes collision objects (add/remove) to MoveIt 2’s default
/collision_objectand/attached_collision_objecttopics; no direct calls to/apply_planning_scene. -
Action Interfaces
Offers multiple action servers for:
-
/add_collision_object: Adds a collision object, verifying presence by querying/get_planning_scene. -
/remove_collision_object: Publishes a remove operation and confirms its success. -
/check_object_exists: Checks if an object is present or attached. -
/attach_detach_object: Attaches/detaches an object to/from a specified link. -
/get_object_pose: Retrieves an object’s pose relative to a link with optional transformations.
-
-
Sequential Verification Retries actions until the planning scene is updated, mitigating race conditions.
- Collision Spawner Reads a YAML file to spawn or remove multiple objects at once, simplifying environment setup.
Architecture
1. object_manager_node
This node hosts the action servers:
-
AddCollisionObject Action
Publishes the object to the default topic. Then, repeatedly checks if the object is in the planning scene. If confirmed, returns success. -
RemoveCollisionObject Action
Publishes a remove operation for a given object ID. Then, repeatedly checks if the object is truly gone from the scene. If confirmed, returns success. -
CheckObjectExists Action
Submits a request to/get_planning_sceneto verify the presence of a specific object ID.
Under the hood, object_manager_node:
- Publishes
moveit_msgs/msg/CollisionObjectto/collision_object. - Queries the planning scene via the
/get_planning_sceneservice. - Implements a retry/backoff mechanism to robustly confirm that the scene is updated.
2. collision_spawner
This node reads a YAML configuration describing multiple objects to spawn. On startup:
- Removes all existing “_spawner” objects (i.e., previously spawned objects), cleaning up or resetting the scene.
- Iterates through the YAML list:
- If a pose is provided, uses it.
- Otherwise, generates a random pose within specified boundaries.
- Sends an AddCollisionObject action goal to the
object_manager_nodeto create each object in the scene.
When done, the node shuts itself down by default.
Installation & Dependencies
Please refer to the main ManyMove README for overall setup instructions, build steps, and prerequisites.
Usage
Launching the Nodes
-
Object Manager Node Only
This will start the node that hosts all the action servers.
ros2 launch object_manager object_manager.launch.py
- This launch file:
- Starts
object_manager_nodewith a defaultframe_idparameter set toworld.
- Starts
-
Collision Spawner
This will start the spawner node, which will read your YAML configuration and attempt to add collision objects.
ros2 launch object_manager collision_spawner.launch.py
- This launch file:
- Runs the
collision_spawnernode. - Loads the YAML file from
object_manager/config/objects.yamlby default. - Removes any “_spawner” objects already in the scene, then adds new ones.
- Runs the
Design Choices (Beginner-Friendly)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| geometry_msgs | |
| moveit_msgs | |
| std_srvs | |
| tf2 | |
| tf2_ros | |
| tf2_geometry_msgs | |
| yaml_cpp_vendor | |
| geometric_shapes | |
| manymove_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| manymove_cpp_trees |
Launch files
Messages
Services
Plugins
Recent questions tagged manymove_object_manager at Robotics Stack Exchange
|
manymove_object_manager package from manymove repomanymove_bringup manymove_cpp_trees manymove_hmi manymove_msgs manymove_object_manager manymove_planner manymove_py_trees manymove_signals |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | To plan and execute moves with manipulators in ROS2 |
| Checkout URI | https://github.com/pastoriomarco/manymove.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-10-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Marco Pastorio
Authors
- Marco Pastorio
ManyMove Object Manager
This package is part of the manymove project for ROS 2 Humble. It provides a unified, topic-based approach for managing collision objects within MoveIt 2. Use at your own risk; the repository is experimental and does not include safety features.
This package allows to add, remove, and check the existence of an object, and also to attach and detach object to a certain link and to obtain the pose of an object relative to a link.
Unlike other approaches that rely on the /apply_planning_scene service, Object Manager uses the default MoveIt 2 topics to publish collision objects, and it exposes action servers to handle sequential operations (such as verifying whether objects are truly added or removed in the scene).
This approach is meant to ease the use with the manymove packages: it is compatible with both implementations of manymove_planner (MoveGroup and MoveItCPP), and doen’t access the planning scene directly to avoid possible racing conditions with the parallel planning and execution of the nodes in manymove_py_trees and manymove_cpp_trees.
Overview
Key Functionalities
-
Topic-Based Collision Updates Publishes collision objects (add/remove) to MoveIt 2’s default
/collision_objectand/attached_collision_objecttopics; no direct calls to/apply_planning_scene. -
Action Interfaces
Offers multiple action servers for:
-
/add_collision_object: Adds a collision object, verifying presence by querying/get_planning_scene. -
/remove_collision_object: Publishes a remove operation and confirms its success. -
/check_object_exists: Checks if an object is present or attached. -
/attach_detach_object: Attaches/detaches an object to/from a specified link. -
/get_object_pose: Retrieves an object’s pose relative to a link with optional transformations.
-
-
Sequential Verification Retries actions until the planning scene is updated, mitigating race conditions.
- Collision Spawner Reads a YAML file to spawn or remove multiple objects at once, simplifying environment setup.
Architecture
1. object_manager_node
This node hosts the action servers:
-
AddCollisionObject Action
Publishes the object to the default topic. Then, repeatedly checks if the object is in the planning scene. If confirmed, returns success. -
RemoveCollisionObject Action
Publishes a remove operation for a given object ID. Then, repeatedly checks if the object is truly gone from the scene. If confirmed, returns success. -
CheckObjectExists Action
Submits a request to/get_planning_sceneto verify the presence of a specific object ID.
Under the hood, object_manager_node:
- Publishes
moveit_msgs/msg/CollisionObjectto/collision_object. - Queries the planning scene via the
/get_planning_sceneservice. - Implements a retry/backoff mechanism to robustly confirm that the scene is updated.
2. collision_spawner
This node reads a YAML configuration describing multiple objects to spawn. On startup:
- Removes all existing “_spawner” objects (i.e., previously spawned objects), cleaning up or resetting the scene.
- Iterates through the YAML list:
- If a pose is provided, uses it.
- Otherwise, generates a random pose within specified boundaries.
- Sends an AddCollisionObject action goal to the
object_manager_nodeto create each object in the scene.
When done, the node shuts itself down by default.
Installation & Dependencies
Please refer to the main ManyMove README for overall setup instructions, build steps, and prerequisites.
Usage
Launching the Nodes
-
Object Manager Node Only
This will start the node that hosts all the action servers.
ros2 launch object_manager object_manager.launch.py
- This launch file:
- Starts
object_manager_nodewith a defaultframe_idparameter set toworld.
- Starts
-
Collision Spawner
This will start the spawner node, which will read your YAML configuration and attempt to add collision objects.
ros2 launch object_manager collision_spawner.launch.py
- This launch file:
- Runs the
collision_spawnernode. - Loads the YAML file from
object_manager/config/objects.yamlby default. - Removes any “_spawner” objects already in the scene, then adds new ones.
- Runs the
Design Choices (Beginner-Friendly)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| geometry_msgs | |
| moveit_msgs | |
| std_srvs | |
| tf2 | |
| tf2_ros | |
| tf2_geometry_msgs | |
| yaml_cpp_vendor | |
| geometric_shapes | |
| manymove_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| manymove_cpp_trees |
Launch files
Messages
Services
Plugins
Recent questions tagged manymove_object_manager at Robotics Stack Exchange
|
manymove_object_manager package from manymove repomanymove_bringup manymove_cpp_trees manymove_hmi manymove_msgs manymove_object_manager manymove_planner manymove_py_trees manymove_signals |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | To plan and execute moves with manipulators in ROS2 |
| Checkout URI | https://github.com/pastoriomarco/manymove.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-10-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Marco Pastorio
Authors
- Marco Pastorio
ManyMove Object Manager
This package is part of the manymove project for ROS 2 Humble. It provides a unified, topic-based approach for managing collision objects within MoveIt 2. Use at your own risk; the repository is experimental and does not include safety features.
This package allows to add, remove, and check the existence of an object, and also to attach and detach object to a certain link and to obtain the pose of an object relative to a link.
Unlike other approaches that rely on the /apply_planning_scene service, Object Manager uses the default MoveIt 2 topics to publish collision objects, and it exposes action servers to handle sequential operations (such as verifying whether objects are truly added or removed in the scene).
This approach is meant to ease the use with the manymove packages: it is compatible with both implementations of manymove_planner (MoveGroup and MoveItCPP), and doen’t access the planning scene directly to avoid possible racing conditions with the parallel planning and execution of the nodes in manymove_py_trees and manymove_cpp_trees.
Overview
Key Functionalities
-
Topic-Based Collision Updates Publishes collision objects (add/remove) to MoveIt 2’s default
/collision_objectand/attached_collision_objecttopics; no direct calls to/apply_planning_scene. -
Action Interfaces
Offers multiple action servers for:
-
/add_collision_object: Adds a collision object, verifying presence by querying/get_planning_scene. -
/remove_collision_object: Publishes a remove operation and confirms its success. -
/check_object_exists: Checks if an object is present or attached. -
/attach_detach_object: Attaches/detaches an object to/from a specified link. -
/get_object_pose: Retrieves an object’s pose relative to a link with optional transformations.
-
-
Sequential Verification Retries actions until the planning scene is updated, mitigating race conditions.
- Collision Spawner Reads a YAML file to spawn or remove multiple objects at once, simplifying environment setup.
Architecture
1. object_manager_node
This node hosts the action servers:
-
AddCollisionObject Action
Publishes the object to the default topic. Then, repeatedly checks if the object is in the planning scene. If confirmed, returns success. -
RemoveCollisionObject Action
Publishes a remove operation for a given object ID. Then, repeatedly checks if the object is truly gone from the scene. If confirmed, returns success. -
CheckObjectExists Action
Submits a request to/get_planning_sceneto verify the presence of a specific object ID.
Under the hood, object_manager_node:
- Publishes
moveit_msgs/msg/CollisionObjectto/collision_object. - Queries the planning scene via the
/get_planning_sceneservice. - Implements a retry/backoff mechanism to robustly confirm that the scene is updated.
2. collision_spawner
This node reads a YAML configuration describing multiple objects to spawn. On startup:
- Removes all existing “_spawner” objects (i.e., previously spawned objects), cleaning up or resetting the scene.
- Iterates through the YAML list:
- If a pose is provided, uses it.
- Otherwise, generates a random pose within specified boundaries.
- Sends an AddCollisionObject action goal to the
object_manager_nodeto create each object in the scene.
When done, the node shuts itself down by default.
Installation & Dependencies
Please refer to the main ManyMove README for overall setup instructions, build steps, and prerequisites.
Usage
Launching the Nodes
-
Object Manager Node Only
This will start the node that hosts all the action servers.
ros2 launch object_manager object_manager.launch.py
- This launch file:
- Starts
object_manager_nodewith a defaultframe_idparameter set toworld.
- Starts
-
Collision Spawner
This will start the spawner node, which will read your YAML configuration and attempt to add collision objects.
ros2 launch object_manager collision_spawner.launch.py
- This launch file:
- Runs the
collision_spawnernode. - Loads the YAML file from
object_manager/config/objects.yamlby default. - Removes any “_spawner” objects already in the scene, then adds new ones.
- Runs the
Design Choices (Beginner-Friendly)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| geometry_msgs | |
| moveit_msgs | |
| std_srvs | |
| tf2 | |
| tf2_ros | |
| tf2_geometry_msgs | |
| yaml_cpp_vendor | |
| geometric_shapes | |
| manymove_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| manymove_cpp_trees |
Launch files
Messages
Services
Plugins
Recent questions tagged manymove_object_manager at Robotics Stack Exchange
|
manymove_object_manager package from manymove repomanymove_bringup manymove_cpp_trees manymove_hmi manymove_msgs manymove_object_manager manymove_planner manymove_py_trees manymove_signals |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | To plan and execute moves with manipulators in ROS2 |
| Checkout URI | https://github.com/pastoriomarco/manymove.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-10-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Marco Pastorio
Authors
- Marco Pastorio
ManyMove Object Manager
This package is part of the manymove project for ROS 2 Humble. It provides a unified, topic-based approach for managing collision objects within MoveIt 2. Use at your own risk; the repository is experimental and does not include safety features.
This package allows to add, remove, and check the existence of an object, and also to attach and detach object to a certain link and to obtain the pose of an object relative to a link.
Unlike other approaches that rely on the /apply_planning_scene service, Object Manager uses the default MoveIt 2 topics to publish collision objects, and it exposes action servers to handle sequential operations (such as verifying whether objects are truly added or removed in the scene).
This approach is meant to ease the use with the manymove packages: it is compatible with both implementations of manymove_planner (MoveGroup and MoveItCPP), and doen’t access the planning scene directly to avoid possible racing conditions with the parallel planning and execution of the nodes in manymove_py_trees and manymove_cpp_trees.
Overview
Key Functionalities
-
Topic-Based Collision Updates Publishes collision objects (add/remove) to MoveIt 2’s default
/collision_objectand/attached_collision_objecttopics; no direct calls to/apply_planning_scene. -
Action Interfaces
Offers multiple action servers for:
-
/add_collision_object: Adds a collision object, verifying presence by querying/get_planning_scene. -
/remove_collision_object: Publishes a remove operation and confirms its success. -
/check_object_exists: Checks if an object is present or attached. -
/attach_detach_object: Attaches/detaches an object to/from a specified link. -
/get_object_pose: Retrieves an object’s pose relative to a link with optional transformations.
-
-
Sequential Verification Retries actions until the planning scene is updated, mitigating race conditions.
- Collision Spawner Reads a YAML file to spawn or remove multiple objects at once, simplifying environment setup.
Architecture
1. object_manager_node
This node hosts the action servers:
-
AddCollisionObject Action
Publishes the object to the default topic. Then, repeatedly checks if the object is in the planning scene. If confirmed, returns success. -
RemoveCollisionObject Action
Publishes a remove operation for a given object ID. Then, repeatedly checks if the object is truly gone from the scene. If confirmed, returns success. -
CheckObjectExists Action
Submits a request to/get_planning_sceneto verify the presence of a specific object ID.
Under the hood, object_manager_node:
- Publishes
moveit_msgs/msg/CollisionObjectto/collision_object. - Queries the planning scene via the
/get_planning_sceneservice. - Implements a retry/backoff mechanism to robustly confirm that the scene is updated.
2. collision_spawner
This node reads a YAML configuration describing multiple objects to spawn. On startup:
- Removes all existing “_spawner” objects (i.e., previously spawned objects), cleaning up or resetting the scene.
- Iterates through the YAML list:
- If a pose is provided, uses it.
- Otherwise, generates a random pose within specified boundaries.
- Sends an AddCollisionObject action goal to the
object_manager_nodeto create each object in the scene.
When done, the node shuts itself down by default.
Installation & Dependencies
Please refer to the main ManyMove README for overall setup instructions, build steps, and prerequisites.
Usage
Launching the Nodes
-
Object Manager Node Only
This will start the node that hosts all the action servers.
ros2 launch object_manager object_manager.launch.py
- This launch file:
- Starts
object_manager_nodewith a defaultframe_idparameter set toworld.
- Starts
-
Collision Spawner
This will start the spawner node, which will read your YAML configuration and attempt to add collision objects.
ros2 launch object_manager collision_spawner.launch.py
- This launch file:
- Runs the
collision_spawnernode. - Loads the YAML file from
object_manager/config/objects.yamlby default. - Removes any “_spawner” objects already in the scene, then adds new ones.
- Runs the
Design Choices (Beginner-Friendly)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| geometry_msgs | |
| moveit_msgs | |
| std_srvs | |
| tf2 | |
| tf2_ros | |
| tf2_geometry_msgs | |
| yaml_cpp_vendor | |
| geometric_shapes | |
| manymove_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| manymove_cpp_trees |
Launch files
Messages
Services
Plugins
Recent questions tagged manymove_object_manager at Robotics Stack Exchange
|
manymove_object_manager package from manymove repomanymove_bringup manymove_cpp_trees manymove_hmi manymove_msgs manymove_object_manager manymove_planner manymove_py_trees manymove_signals |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | To plan and execute moves with manipulators in ROS2 |
| Checkout URI | https://github.com/pastoriomarco/manymove.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-10-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Marco Pastorio
Authors
- Marco Pastorio
ManyMove Object Manager
This package is part of the manymove project for ROS 2 Humble. It provides a unified, topic-based approach for managing collision objects within MoveIt 2. Use at your own risk; the repository is experimental and does not include safety features.
This package allows to add, remove, and check the existence of an object, and also to attach and detach object to a certain link and to obtain the pose of an object relative to a link.
Unlike other approaches that rely on the /apply_planning_scene service, Object Manager uses the default MoveIt 2 topics to publish collision objects, and it exposes action servers to handle sequential operations (such as verifying whether objects are truly added or removed in the scene).
This approach is meant to ease the use with the manymove packages: it is compatible with both implementations of manymove_planner (MoveGroup and MoveItCPP), and doen’t access the planning scene directly to avoid possible racing conditions with the parallel planning and execution of the nodes in manymove_py_trees and manymove_cpp_trees.
Overview
Key Functionalities
-
Topic-Based Collision Updates Publishes collision objects (add/remove) to MoveIt 2’s default
/collision_objectand/attached_collision_objecttopics; no direct calls to/apply_planning_scene. -
Action Interfaces
Offers multiple action servers for:
-
/add_collision_object: Adds a collision object, verifying presence by querying/get_planning_scene. -
/remove_collision_object: Publishes a remove operation and confirms its success. -
/check_object_exists: Checks if an object is present or attached. -
/attach_detach_object: Attaches/detaches an object to/from a specified link. -
/get_object_pose: Retrieves an object’s pose relative to a link with optional transformations.
-
-
Sequential Verification Retries actions until the planning scene is updated, mitigating race conditions.
- Collision Spawner Reads a YAML file to spawn or remove multiple objects at once, simplifying environment setup.
Architecture
1. object_manager_node
This node hosts the action servers:
-
AddCollisionObject Action
Publishes the object to the default topic. Then, repeatedly checks if the object is in the planning scene. If confirmed, returns success. -
RemoveCollisionObject Action
Publishes a remove operation for a given object ID. Then, repeatedly checks if the object is truly gone from the scene. If confirmed, returns success. -
CheckObjectExists Action
Submits a request to/get_planning_sceneto verify the presence of a specific object ID.
Under the hood, object_manager_node:
- Publishes
moveit_msgs/msg/CollisionObjectto/collision_object. - Queries the planning scene via the
/get_planning_sceneservice. - Implements a retry/backoff mechanism to robustly confirm that the scene is updated.
2. collision_spawner
This node reads a YAML configuration describing multiple objects to spawn. On startup:
- Removes all existing “_spawner” objects (i.e., previously spawned objects), cleaning up or resetting the scene.
- Iterates through the YAML list:
- If a pose is provided, uses it.
- Otherwise, generates a random pose within specified boundaries.
- Sends an AddCollisionObject action goal to the
object_manager_nodeto create each object in the scene.
When done, the node shuts itself down by default.
Installation & Dependencies
Please refer to the main ManyMove README for overall setup instructions, build steps, and prerequisites.
Usage
Launching the Nodes
-
Object Manager Node Only
This will start the node that hosts all the action servers.
ros2 launch object_manager object_manager.launch.py
- This launch file:
- Starts
object_manager_nodewith a defaultframe_idparameter set toworld.
- Starts
-
Collision Spawner
This will start the spawner node, which will read your YAML configuration and attempt to add collision objects.
ros2 launch object_manager collision_spawner.launch.py
- This launch file:
- Runs the
collision_spawnernode. - Loads the YAML file from
object_manager/config/objects.yamlby default. - Removes any “_spawner” objects already in the scene, then adds new ones.
- Runs the
Design Choices (Beginner-Friendly)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| geometry_msgs | |
| moveit_msgs | |
| std_srvs | |
| tf2 | |
| tf2_ros | |
| tf2_geometry_msgs | |
| yaml_cpp_vendor | |
| geometric_shapes | |
| manymove_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| manymove_cpp_trees |
Launch files
Messages
Services
Plugins
Recent questions tagged manymove_object_manager at Robotics Stack Exchange
|
manymove_object_manager package from manymove repomanymove_bringup manymove_cpp_trees manymove_hmi manymove_msgs manymove_object_manager manymove_planner manymove_py_trees manymove_signals |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | To plan and execute moves with manipulators in ROS2 |
| Checkout URI | https://github.com/pastoriomarco/manymove.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-10-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Marco Pastorio
Authors
- Marco Pastorio
ManyMove Object Manager
This package is part of the manymove project for ROS 2 Humble. It provides a unified, topic-based approach for managing collision objects within MoveIt 2. Use at your own risk; the repository is experimental and does not include safety features.
This package allows to add, remove, and check the existence of an object, and also to attach and detach object to a certain link and to obtain the pose of an object relative to a link.
Unlike other approaches that rely on the /apply_planning_scene service, Object Manager uses the default MoveIt 2 topics to publish collision objects, and it exposes action servers to handle sequential operations (such as verifying whether objects are truly added or removed in the scene).
This approach is meant to ease the use with the manymove packages: it is compatible with both implementations of manymove_planner (MoveGroup and MoveItCPP), and doen’t access the planning scene directly to avoid possible racing conditions with the parallel planning and execution of the nodes in manymove_py_trees and manymove_cpp_trees.
Overview
Key Functionalities
-
Topic-Based Collision Updates Publishes collision objects (add/remove) to MoveIt 2’s default
/collision_objectand/attached_collision_objecttopics; no direct calls to/apply_planning_scene. -
Action Interfaces
Offers multiple action servers for:
-
/add_collision_object: Adds a collision object, verifying presence by querying/get_planning_scene. -
/remove_collision_object: Publishes a remove operation and confirms its success. -
/check_object_exists: Checks if an object is present or attached. -
/attach_detach_object: Attaches/detaches an object to/from a specified link. -
/get_object_pose: Retrieves an object’s pose relative to a link with optional transformations.
-
-
Sequential Verification Retries actions until the planning scene is updated, mitigating race conditions.
- Collision Spawner Reads a YAML file to spawn or remove multiple objects at once, simplifying environment setup.
Architecture
1. object_manager_node
This node hosts the action servers:
-
AddCollisionObject Action
Publishes the object to the default topic. Then, repeatedly checks if the object is in the planning scene. If confirmed, returns success. -
RemoveCollisionObject Action
Publishes a remove operation for a given object ID. Then, repeatedly checks if the object is truly gone from the scene. If confirmed, returns success. -
CheckObjectExists Action
Submits a request to/get_planning_sceneto verify the presence of a specific object ID.
Under the hood, object_manager_node:
- Publishes
moveit_msgs/msg/CollisionObjectto/collision_object. - Queries the planning scene via the
/get_planning_sceneservice. - Implements a retry/backoff mechanism to robustly confirm that the scene is updated.
2. collision_spawner
This node reads a YAML configuration describing multiple objects to spawn. On startup:
- Removes all existing “_spawner” objects (i.e., previously spawned objects), cleaning up or resetting the scene.
- Iterates through the YAML list:
- If a pose is provided, uses it.
- Otherwise, generates a random pose within specified boundaries.
- Sends an AddCollisionObject action goal to the
object_manager_nodeto create each object in the scene.
When done, the node shuts itself down by default.
Installation & Dependencies
Please refer to the main ManyMove README for overall setup instructions, build steps, and prerequisites.
Usage
Launching the Nodes
-
Object Manager Node Only
This will start the node that hosts all the action servers.
ros2 launch object_manager object_manager.launch.py
- This launch file:
- Starts
object_manager_nodewith a defaultframe_idparameter set toworld.
- Starts
-
Collision Spawner
This will start the spawner node, which will read your YAML configuration and attempt to add collision objects.
ros2 launch object_manager collision_spawner.launch.py
- This launch file:
- Runs the
collision_spawnernode. - Loads the YAML file from
object_manager/config/objects.yamlby default. - Removes any “_spawner” objects already in the scene, then adds new ones.
- Runs the
Design Choices (Beginner-Friendly)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| geometry_msgs | |
| moveit_msgs | |
| std_srvs | |
| tf2 | |
| tf2_ros | |
| tf2_geometry_msgs | |
| yaml_cpp_vendor | |
| geometric_shapes | |
| manymove_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| manymove_cpp_trees |
Launch files
Messages
Services
Plugins
Recent questions tagged manymove_object_manager at Robotics Stack Exchange
|
manymove_object_manager package from manymove repomanymove_bringup manymove_cpp_trees manymove_hmi manymove_msgs manymove_object_manager manymove_planner manymove_py_trees manymove_signals |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | To plan and execute moves with manipulators in ROS2 |
| Checkout URI | https://github.com/pastoriomarco/manymove.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-10-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Marco Pastorio
Authors
- Marco Pastorio
ManyMove Object Manager
This package is part of the manymove project for ROS 2 Humble. It provides a unified, topic-based approach for managing collision objects within MoveIt 2. Use at your own risk; the repository is experimental and does not include safety features.
This package allows to add, remove, and check the existence of an object, and also to attach and detach object to a certain link and to obtain the pose of an object relative to a link.
Unlike other approaches that rely on the /apply_planning_scene service, Object Manager uses the default MoveIt 2 topics to publish collision objects, and it exposes action servers to handle sequential operations (such as verifying whether objects are truly added or removed in the scene).
This approach is meant to ease the use with the manymove packages: it is compatible with both implementations of manymove_planner (MoveGroup and MoveItCPP), and doen’t access the planning scene directly to avoid possible racing conditions with the parallel planning and execution of the nodes in manymove_py_trees and manymove_cpp_trees.
Overview
Key Functionalities
-
Topic-Based Collision Updates Publishes collision objects (add/remove) to MoveIt 2’s default
/collision_objectand/attached_collision_objecttopics; no direct calls to/apply_planning_scene. -
Action Interfaces
Offers multiple action servers for:
-
/add_collision_object: Adds a collision object, verifying presence by querying/get_planning_scene. -
/remove_collision_object: Publishes a remove operation and confirms its success. -
/check_object_exists: Checks if an object is present or attached. -
/attach_detach_object: Attaches/detaches an object to/from a specified link. -
/get_object_pose: Retrieves an object’s pose relative to a link with optional transformations.
-
-
Sequential Verification Retries actions until the planning scene is updated, mitigating race conditions.
- Collision Spawner Reads a YAML file to spawn or remove multiple objects at once, simplifying environment setup.
Architecture
1. object_manager_node
This node hosts the action servers:
-
AddCollisionObject Action
Publishes the object to the default topic. Then, repeatedly checks if the object is in the planning scene. If confirmed, returns success. -
RemoveCollisionObject Action
Publishes a remove operation for a given object ID. Then, repeatedly checks if the object is truly gone from the scene. If confirmed, returns success. -
CheckObjectExists Action
Submits a request to/get_planning_sceneto verify the presence of a specific object ID.
Under the hood, object_manager_node:
- Publishes
moveit_msgs/msg/CollisionObjectto/collision_object. - Queries the planning scene via the
/get_planning_sceneservice. - Implements a retry/backoff mechanism to robustly confirm that the scene is updated.
2. collision_spawner
This node reads a YAML configuration describing multiple objects to spawn. On startup:
- Removes all existing “_spawner” objects (i.e., previously spawned objects), cleaning up or resetting the scene.
- Iterates through the YAML list:
- If a pose is provided, uses it.
- Otherwise, generates a random pose within specified boundaries.
- Sends an AddCollisionObject action goal to the
object_manager_nodeto create each object in the scene.
When done, the node shuts itself down by default.
Installation & Dependencies
Please refer to the main ManyMove README for overall setup instructions, build steps, and prerequisites.
Usage
Launching the Nodes
-
Object Manager Node Only
This will start the node that hosts all the action servers.
ros2 launch object_manager object_manager.launch.py
- This launch file:
- Starts
object_manager_nodewith a defaultframe_idparameter set toworld.
- Starts
-
Collision Spawner
This will start the spawner node, which will read your YAML configuration and attempt to add collision objects.
ros2 launch object_manager collision_spawner.launch.py
- This launch file:
- Runs the
collision_spawnernode. - Loads the YAML file from
object_manager/config/objects.yamlby default. - Removes any “_spawner” objects already in the scene, then adds new ones.
- Runs the
Design Choices (Beginner-Friendly)
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| rclcpp | |
| geometry_msgs | |
| moveit_msgs | |
| std_srvs | |
| tf2 | |
| tf2_ros | |
| tf2_geometry_msgs | |
| yaml_cpp_vendor | |
| geometric_shapes | |
| manymove_msgs |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| manymove_cpp_trees |