No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro kilted. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

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-06-05
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package publishing action servers to plan and execute moves with move_group and moveitcpp

Additional Links

No additional links.

Maintainers

  • Marco Pastorio

Authors

  • Marco Pastorio

ManyMove Planner

This package provides a simplified set of motion planning and trajectory execution action servers for robotic manipulators, built on ROS 2 and MoveIt 2. It is part of the manymove project and is highly experimental. Use at your own risk; see the main repository’s disclaimer regarding safety and stability.

manymove_planner exposes action servers that make possible to organize the planning and execution actions in logic builder packages using a unified interface, without having to worry if the underlying implementation uses MoveGroupInterface or MoveitCPP. It supports diverse robots, with an example configuration for Franka Emika Panda, which is the default demo model for Moveit, but most of the exmples are built around Ufactory Lite6 and UF850, simply because I’m going in production with these first.

Overview

Key Functionalities

  • Move Manipulator Action Server
    Accepts single-goal planning requests via the MoveManipulator action (joint, named, pose, or Cartesian targets).
    Applies time parameterization to generate smooth, velocity-scaled trajectories. Uses cartesian speed limit for all moves. Handles soft stop with spring-back action and deceleration time on all moves.

  • Stop Motion
    Issues a controlled stop command to smoothly decelerate the manipulator.

  • Load & Unload Controllers
    Offers dedicated actions (LoadTrajController and UnloadTrajController) for dynamic controller management (e.g., loading a new trajectory controller or unloading one at runtime).

Architecture

  1. Planner Interface
    An abstract C++ interface (planner_interface.hpp) defining essential methods:

    • plan(...): path planning for joint, named, pose, or Cartesian goals.
    • applyTimeParameterization(...): smoothing and velocity constraint application.
    • executeTrajectory(...): sends trajectories to the robot’s controller.
    • sendControlledStop(...): gently stops motion on demand.
  2. Planner Implementations

    • MoveItCppPlanner: Uses MoveItCpp for planning, collision checks, and parametric trajectory generation.
    • MoveGroupPlanner: (Alternative) leverages move_group_interface for those who prefer MoveGroup’s standard pipeline.
  3. Action Servers (in action_server.cpp & action_server_node.cpp):

    • move_manipulator: Receives planning requests, executes the resulting RobotTrajectory.
    • stop_motion: Sends a single-point, decelerating trajectory to stop the manipulator safely.
    • load_trajectory_controller / unload_trajectory_controller: Dynamically loads/unloads a trajectory controller.
  4. ROS 2 Node

    • The main node (action_server_node) loads parameters and spins up the chosen planner plus the action servers.
    • Supports prefixes (e.g., prefix:=L_ or prefix:=R_) for multi-robot setups.

Installation & Dependencies

Please refer to the main ManyMove README for overall setup instructions, build steps, and prerequisites.

Controllers

This package expects a standard FollowJointTrajectory-type controller (e.g., a JointTrajectoryController). Use the included actions to dynamically load or unload controllers if needed.


Configuration & Parameters

Key parameters (set via launch files):

  • planner_type:

    • Selects the underlying planning approach.
    • Valid options: "moveitcpp" (default) or "movegroup".
  • planning_group:

    • Sets the MoveIt planning group name for the manipulator (e.g., "lite6").
  • base_frame:

    • The robot’s base link frame.
  • tcp_frame:

    • The manipulator’s end-effector (TCP) frame.

Notes & Disclaimer

  • This package does not provide safety features. Always configure appropriate safety systems on your robot controller.
  • It is highly experimental; use with caution.
  • See the manymove main README for disclaimers, licensing, and credits.
CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged manymove_planner at Robotics Stack Exchange

No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.