Package Summary

Tags No category tags.
Version 2.5.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-planning/moveit2.git
VCS Type git
VCS Version main
Last Updated 2022-07-01
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Hybrid planning components of MoveIt 2

Additional Links

Maintainers

  • MoveIt Release Team

Authors

  • Sebastian Jahr

Hybrid Planning

A Hybrid Planning architecture. You can find more information in the project's issues#300, #433 and on the MoveIt 2 roadmap. Furthermore, there is an extensive tutorial available here.

Getting started

To start the demo run:

ros2 launch moveit_hybrid_planning hybrid_planning_demo.launch.py

You can exchange the planner logic plugin in the hybrid_planning_manager.yaml. Currently available demo plugins are: - planner logic plugins: - replan_invalidated_trajectory: Runs the global planner once and starts executing the global solution with the local planner. In case the local planner detects a collision the global planner is rerun to update the invalidated global trajectory. - single_plan_execution: Run the global planner once and starts executing the global solution with the local planner - global_planner plugins: - moveit_planning_pipeline: Global planner plugin that utilizes MoveIt's planning pipeline accessed via the MoveItCpp API. - trajectory operator plugins: - simple_sampler: Samples the next global trajectory waypoint as local goal constraint based on the current robot state. When the waypoint is reached the index that marks the current local goal constraint is updated to the next global trajectory waypoint. Global trajectory updates simply replace the reference trajectory. - local solver plugins: - forward_trajectory: Forwards the next waypoint of the sampled local trajectory. Additionally, it is possible to enable collision checking, which lets the robot stop in front of a collision object.

CHANGELOG

Changelog for package moveit_hybrid_planning

2.5.1 (2022-05-31)

  • Remove position controllers from CMake (#1285)
  • Contributors: Vatan Aksoy Tezer

2.5.0 (2022-05-26)

  • Fix hybrid planning launching (#1271)
  • Enable cppcheck (#1224) Co-authored-by: jeoseo <jeongwooseo2012@gmail.com>
  • Make moveit_common a \'depend\' rather than \'build_depend\' (#1226)
  • Avoid bind(), use lambdas instead (#1204) Adaption of https://github.com/ros-planning/moveit/pull/3106
  • banish bind() source:https://github.com/ros-planning/moveit/pull/3106/commits/a2911c80c28958c1fce8fb52333d770248c4ec05; required minor updates compared to original source commit in order to ensure compatibility with ROS2
  • RCLCPP Upgrade Bugfixes (#1181)
  • Enable rolling / jammy CI (again) (#1134)
    • Use ros2_control binaries
    • Use output screen instead of explicitly stating stderr
  • [hybrid planning] Adjust planning scene locking (#1087)
    • Create a copy of the planning scene. const robot state.
    • Use LockedPlanningSceneRO over lockSceneRead()
    • Use lambda function
  • [Hybrid Planning] configurable planning scene topics (#1052)
  • [hybrid planning] Use a map of expected feedback codes (#1065)
    • Use a map of expected feedback codes
    • Use a constexpr function instead of unordered_map
    • Don\'t need this #include
    • Minor function renaming
  • Disable hybrid planning test, don\'t cache ci docker at all and don\'t cache upstream_ws if repos file is changed (#1051)

    • Don\'t cache docker builds
    • Don\'t cache upstream ws
    • Use new action for getting the latest timestamp .repos file has been edited
    • Debug
    • Fix repos path
    • Disable hybrid planning test

    * Use more verbose name Co-authored-by: Tyler Weaver <tylerjw@gmail.com>

  • [hybrid planning] Add action abortion and test; improve the existing test (#980)

    • Add action abortion and test; improve the existing test
    • Add controller run-dependency
    • Fix the clearing of robot trajectory when a collision would occur
    • Fix replanning if local planner is stuck
    • Lambda function everything
    • Thread safety for stop_hybrid_planning_
    • Thread-safe state_
    • Clang tidy
    • Update the planning scene properly

    * Update Servo test initial_positions.yaml Co-authored-by: Tyler Weaver <tyler@picknik.ai>

  • [hybrid planning] Delete the pass-through option (#986)

    • Delete the pass-through option
    • Suppress clang warning

    * Handle (waypoint_count < 0) possibility Co-authored-by: Tyler Weaver <tyler@picknik.ai>

  • Remove unused parameters. (#1018) Co-authored-by: Tyler Weaver <tyler@picknik.ai> Co-authored-by: Vatan Aksoy Tezer <vatan@picknik.ai>

  • Contributors: AndyZe, Cory Crean, David V. Lu!!, Henning Kayser, Jafar, Vatan Aksoy Tezer, jeoseo, v4hn

2.4.0 (2022-01-20)

  • hybrid_planning: Fix global_planner action name (#960)
  • Put hybrid planning actions under a common namespace (#932)

    • Put hybrid planning actions under a common namespace
    • Use ~
    • New pkg for common resources. Does not work.

    * Use inline rather than anonymous namespace Co-authored-by: Jafar Abdi <cafer.abdi@gmail.com> * Revert \"Use inline rather than anonymous namespace\" This reverts commit 29a7d279776be21f4666c7e0fadeaa6b7ef8debf. * Revert \"New pkg for common resources. Does not work.\" This reverts commit 68a173baee4b7f8b2c1f74285f96c8e3892c5909. * Some progress toward loading common parameters Co-authored-by: Jafar Abdi <cafer.abdi@gmail.com>

  • Contributors: AndyZe

2.3.2 (2021-12-29)

2.3.1 (2021-12-23)

  • Bump new packages to 2.3.0
  • Add codespell to precommit, fix A LOT of spelling mistakes (#934)
  • CMake fix and cleanup abstract class (#6)
    • Install hybrid_planning_demo_node separately to avoid exporting it
    • Fix exported include directory
    • Remove getTargetWayPointIndex() from abstract trajectory operator class
    • Delete unused getTargetWayPointIndex()
  • Standardize with moveit_cpp parameters. Fix some parameter loading errors
  • Enable reaction to planner failure in the planner logic (#3)

    • Add unsuccessful action Hybrid Planning events and handle them in logic
    • Replace std::once with simple bool variable

    * Remove unneeded variable and update comments Don\'t const& for built-in types Co-authored-by: Tyler Weaver <tylerjw@gmail.com>

  • Update robot state properly Update robot state properly; remove debug prints; clang format Check if the local planner is stuck within the forward_traj plugin, not local_planner_component

  • Pass GlobalPlanner failing to HybridPlanningManager

  • Move common launch elements to a Python file, for easy re-use Refactor Global and Local Planner Components into NodeClasses Add a simple launch test (#1) Try to fix plugin export; add helpful debug when stuck Error if global planning fails READY and AWAIT_TRAJ states are redundant Lock the planning scene as briefly as possible Specify joint group when checking waypoint distance Implement a reset() function in the local planner Detect when the local planner gets stuck

  • Add generic global planner plugin, support MotionSequenceRequest (#585) Fix hybrid planning include folders (#675) Order stuff in the CMakeLists.txt and remove control_box package Update README Move member initialization to initializer lists Remove control_box include dependency Replace \"loop-run\" with \"iteration\" Remove cpp interface class constructors and destructors Use joint_state_broadcaster, clean up test node, add execution dependencies Use only plugin interface header files and add missing dependencies Clean up constructor and destructor definitions Declare missing parameter in moveit_planning_pipeline_plugin Move rclcpp::Loggers into anonymous namespaces Switch CI branches to feature/hybrid_planning Update message name Remove moveit_msgs from .repos file Update github workflows Remove note from readme about building from source Minor renamings, make reset() noexcept Check for vector length of zero Load moveit_cpp options with the Options helper. Reduces LOC. Set the planning parameters within plan() Function renaming Authors and descriptions in header files only. New header file for error code interface. Update namespacing Use default QoS for subscribers Better progress comparison Add publish_joint_positions and publish_joint_velocities param Grammar and other minor nitpicks Restore moveit_msgs to .repos, for now

  • Refactor local planner plugins (#447)

    • Add reset method for trajectory operator and local constraint sampler
    • Refactor next_waypoint_sampler into simple_sampler
    • Include collision checking to forward_trajectory and remove unneeded plugin
    • Fix formatting and plugin description

    * Update README and add missing planner logic plugin description Add TODO to use lifecycle components nodes to trigger initialization Return a reaction result instead of bool on react() Set invalidation flag to false on reset() in ForwardTrajectory local solver Return local planner feedback from trajectory operator function calls Fix segfault caused by passing through the global trajectory Update comment, unify logging and add missing config parameters Update to rolling

  • Restructure hybrid_planning package (#426)

    • Add forward_trajectory local solver plugin (#359)
    • Use ros2_control based joint simulation and remove unnecessary comment
    • Update copyrights
    • Restructure hybrid planning package
    • Fix formatting and add missing time stamp in local solver plugin
    • Remove unnecessary logging and param loading
    • Enable different interfaces between local planner and controller
    • Use JointGroupPositionController as demo hardware controller
  • Code cleanup & MoveIt best practices (#351)

    • Export missing plugins
    • Use std::chrono_literals
    • Construct smart pointers with std::make_* instead of \'new\'
    • Fixup const-ref in function signatures, reduce copies
    • Improve planning scene locking, robot state processing, controller logic
  • Refine local planner component (#326)

    • Make local planner component generic
    • Add next_waypoint_sampler trajectory operator
    • Update hybrid planning test to include collision object
    • Clean up code and fix minor bugs.
    • Update local planner component parameter
    • Add local collision constraint solver
    • Update planning scene topic name and test node
    • Fix bugs and runtime errors in local planner component and it\'s plugins
    • Add collision object that invalidates global trajectory
    • Add simple \"stop in front of collision object\" demo
    • Add hybrid planning manager reaction to local planner feedback
    • Fix ament_lint_cmake
    • Ensure that local planner start command and collision event are send once
    • Add simple replanning logic plugin
    • Use current state as start state for global planner
    • Use RobotTrajectory instead of constraint vector describe local problem
    • Add PlanningSceneMonitorPtr to local solver plugin
    • Add local planner frequency parameter
    • Use PID controller to create control outputs for robot controller
    • Add hybrid_planning_manager config file
    • Add more complex test node
    • Update README
    • Reset index in next_waypoint_sampler
    • Use correct isPathValid() interface
    • Rename path_invalidation flag
    • Read planning scene instead of cloning it in local planner
    • Add TODO creator
    • Rename local constraint solver plugin
    • Use read-locked access to the planning scene for collision checking
    • Rename constraint_solver into local_constraint_solver
    • Add missing pointer initialization
  • Hybrid planning architecture (#311)

    • Add hybrid_planning architecture skeleton code
    • Add simple state machines to hybrid planning manager and local planner
    • Initial global planner prototype implementation
    • Forward joint_trajectory with local planner
    • Forward hybrid planning motion request to global planner
    • Abstract planner logic from hybrid planning manager by using a plugin
    • Implement single plan execution logic
    • Add test launch files, RViz and demo config
    • Add test for motion_planning_request
  • Contributors: AndyZe, David V. Lu!!, Henning Kayser, Jens Vanhooydonck, Sebastian Jahr

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Recent questions tagged moveit_hybrid_planning at answers.ros.org

Package Summary

Tags No category tags.
Version 2.5.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-planning/moveit2.git
VCS Type git
VCS Version main
Last Updated 2022-07-01
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Hybrid planning components of MoveIt 2

Additional Links

Maintainers

  • MoveIt Release Team

Authors

  • Sebastian Jahr

Hybrid Planning

A Hybrid Planning architecture. You can find more information in the project's issues#300, #433 and on the MoveIt 2 roadmap. Furthermore, there is an extensive tutorial available here.

Getting started

To start the demo run:

ros2 launch moveit_hybrid_planning hybrid_planning_demo.launch.py

You can exchange the planner logic plugin in the hybrid_planning_manager.yaml. Currently available demo plugins are: - planner logic plugins: - replan_invalidated_trajectory: Runs the global planner once and starts executing the global solution with the local planner. In case the local planner detects a collision the global planner is rerun to update the invalidated global trajectory. - single_plan_execution: Run the global planner once and starts executing the global solution with the local planner - global_planner plugins: - moveit_planning_pipeline: Global planner plugin that utilizes MoveIt's planning pipeline accessed via the MoveItCpp API. - trajectory operator plugins: - simple_sampler: Samples the next global trajectory waypoint as local goal constraint based on the current robot state. When the waypoint is reached the index that marks the current local goal constraint is updated to the next global trajectory waypoint. Global trajectory updates simply replace the reference trajectory. - local solver plugins: - forward_trajectory: Forwards the next waypoint of the sampled local trajectory. Additionally, it is possible to enable collision checking, which lets the robot stop in front of a collision object.

CHANGELOG

Changelog for package moveit_hybrid_planning

2.5.1 (2022-05-31)

  • Remove position controllers from CMake (#1285)
  • Contributors: Vatan Aksoy Tezer

2.5.0 (2022-05-26)

  • Fix hybrid planning launching (#1271)
  • Enable cppcheck (#1224) Co-authored-by: jeoseo <jeongwooseo2012@gmail.com>
  • Make moveit_common a \'depend\' rather than \'build_depend\' (#1226)
  • Avoid bind(), use lambdas instead (#1204) Adaption of https://github.com/ros-planning/moveit/pull/3106
  • banish bind() source:https://github.com/ros-planning/moveit/pull/3106/commits/a2911c80c28958c1fce8fb52333d770248c4ec05; required minor updates compared to original source commit in order to ensure compatibility with ROS2
  • RCLCPP Upgrade Bugfixes (#1181)
  • Enable rolling / jammy CI (again) (#1134)
    • Use ros2_control binaries
    • Use output screen instead of explicitly stating stderr
  • [hybrid planning] Adjust planning scene locking (#1087)
    • Create a copy of the planning scene. const robot state.
    • Use LockedPlanningSceneRO over lockSceneRead()
    • Use lambda function
  • [Hybrid Planning] configurable planning scene topics (#1052)
  • [hybrid planning] Use a map of expected feedback codes (#1065)
    • Use a map of expected feedback codes
    • Use a constexpr function instead of unordered_map
    • Don\'t need this #include
    • Minor function renaming
  • Disable hybrid planning test, don\'t cache ci docker at all and don\'t cache upstream_ws if repos file is changed (#1051)

    • Don\'t cache docker builds
    • Don\'t cache upstream ws
    • Use new action for getting the latest timestamp .repos file has been edited
    • Debug
    • Fix repos path
    • Disable hybrid planning test

    * Use more verbose name Co-authored-by: Tyler Weaver <tylerjw@gmail.com>

  • [hybrid planning] Add action abortion and test; improve the existing test (#980)

    • Add action abortion and test; improve the existing test
    • Add controller run-dependency
    • Fix the clearing of robot trajectory when a collision would occur
    • Fix replanning if local planner is stuck
    • Lambda function everything
    • Thread safety for stop_hybrid_planning_
    • Thread-safe state_
    • Clang tidy
    • Update the planning scene properly

    * Update Servo test initial_positions.yaml Co-authored-by: Tyler Weaver <tyler@picknik.ai>

  • [hybrid planning] Delete the pass-through option (#986)

    • Delete the pass-through option
    • Suppress clang warning

    * Handle (waypoint_count < 0) possibility Co-authored-by: Tyler Weaver <tyler@picknik.ai>

  • Remove unused parameters. (#1018) Co-authored-by: Tyler Weaver <tyler@picknik.ai> Co-authored-by: Vatan Aksoy Tezer <vatan@picknik.ai>

  • Contributors: AndyZe, Cory Crean, David V. Lu!!, Henning Kayser, Jafar, Vatan Aksoy Tezer, jeoseo, v4hn

2.4.0 (2022-01-20)

  • hybrid_planning: Fix global_planner action name (#960)
  • Put hybrid planning actions under a common namespace (#932)

    • Put hybrid planning actions under a common namespace
    • Use ~
    • New pkg for common resources. Does not work.

    * Use inline rather than anonymous namespace Co-authored-by: Jafar Abdi <cafer.abdi@gmail.com> * Revert \"Use inline rather than anonymous namespace\" This reverts commit 29a7d279776be21f4666c7e0fadeaa6b7ef8debf. * Revert \"New pkg for common resources. Does not work.\" This reverts commit 68a173baee4b7f8b2c1f74285f96c8e3892c5909. * Some progress toward loading common parameters Co-authored-by: Jafar Abdi <cafer.abdi@gmail.com>

  • Contributors: AndyZe

2.3.2 (2021-12-29)

2.3.1 (2021-12-23)

  • Bump new packages to 2.3.0
  • Add codespell to precommit, fix A LOT of spelling mistakes (#934)
  • CMake fix and cleanup abstract class (#6)
    • Install hybrid_planning_demo_node separately to avoid exporting it
    • Fix exported include directory
    • Remove getTargetWayPointIndex() from abstract trajectory operator class
    • Delete unused getTargetWayPointIndex()
  • Standardize with moveit_cpp parameters. Fix some parameter loading errors
  • Enable reaction to planner failure in the planner logic (#3)

    • Add unsuccessful action Hybrid Planning events and handle them in logic
    • Replace std::once with simple bool variable

    * Remove unneeded variable and update comments Don\'t const& for built-in types Co-authored-by: Tyler Weaver <tylerjw@gmail.com>

  • Update robot state properly Update robot state properly; remove debug prints; clang format Check if the local planner is stuck within the forward_traj plugin, not local_planner_component

  • Pass GlobalPlanner failing to HybridPlanningManager

  • Move common launch elements to a Python file, for easy re-use Refactor Global and Local Planner Components into NodeClasses Add a simple launch test (#1) Try to fix plugin export; add helpful debug when stuck Error if global planning fails READY and AWAIT_TRAJ states are redundant Lock the planning scene as briefly as possible Specify joint group when checking waypoint distance Implement a reset() function in the local planner Detect when the local planner gets stuck

  • Add generic global planner plugin, support MotionSequenceRequest (#585) Fix hybrid planning include folders (#675) Order stuff in the CMakeLists.txt and remove control_box package Update README Move member initialization to initializer lists Remove control_box include dependency Replace \"loop-run\" with \"iteration\" Remove cpp interface class constructors and destructors Use joint_state_broadcaster, clean up test node, add execution dependencies Use only plugin interface header files and add missing dependencies Clean up constructor and destructor definitions Declare missing parameter in moveit_planning_pipeline_plugin Move rclcpp::Loggers into anonymous namespaces Switch CI branches to feature/hybrid_planning Update message name Remove moveit_msgs from .repos file Update github workflows Remove note from readme about building from source Minor renamings, make reset() noexcept Check for vector length of zero Load moveit_cpp options with the Options helper. Reduces LOC. Set the planning parameters within plan() Function renaming Authors and descriptions in header files only. New header file for error code interface. Update namespacing Use default QoS for subscribers Better progress comparison Add publish_joint_positions and publish_joint_velocities param Grammar and other minor nitpicks Restore moveit_msgs to .repos, for now

  • Refactor local planner plugins (#447)

    • Add reset method for trajectory operator and local constraint sampler
    • Refactor next_waypoint_sampler into simple_sampler
    • Include collision checking to forward_trajectory and remove unneeded plugin
    • Fix formatting and plugin description

    * Update README and add missing planner logic plugin description Add TODO to use lifecycle components nodes to trigger initialization Return a reaction result instead of bool on react() Set invalidation flag to false on reset() in ForwardTrajectory local solver Return local planner feedback from trajectory operator function calls Fix segfault caused by passing through the global trajectory Update comment, unify logging and add missing config parameters Update to rolling

  • Restructure hybrid_planning package (#426)

    • Add forward_trajectory local solver plugin (#359)
    • Use ros2_control based joint simulation and remove unnecessary comment
    • Update copyrights
    • Restructure hybrid planning package
    • Fix formatting and add missing time stamp in local solver plugin
    • Remove unnecessary logging and param loading
    • Enable different interfaces between local planner and controller
    • Use JointGroupPositionController as demo hardware controller
  • Code cleanup & MoveIt best practices (#351)

    • Export missing plugins
    • Use std::chrono_literals
    • Construct smart pointers with std::make_* instead of \'new\'
    • Fixup const-ref in function signatures, reduce copies
    • Improve planning scene locking, robot state processing, controller logic
  • Refine local planner component (#326)

    • Make local planner component generic
    • Add next_waypoint_sampler trajectory operator
    • Update hybrid planning test to include collision object
    • Clean up code and fix minor bugs.
    • Update local planner component parameter
    • Add local collision constraint solver
    • Update planning scene topic name and test node
    • Fix bugs and runtime errors in local planner component and it\'s plugins
    • Add collision object that invalidates global trajectory
    • Add simple \"stop in front of collision object\" demo
    • Add hybrid planning manager reaction to local planner feedback
    • Fix ament_lint_cmake
    • Ensure that local planner start command and collision event are send once
    • Add simple replanning logic plugin
    • Use current state as start state for global planner
    • Use RobotTrajectory instead of constraint vector describe local problem
    • Add PlanningSceneMonitorPtr to local solver plugin
    • Add local planner frequency parameter
    • Use PID controller to create control outputs for robot controller
    • Add hybrid_planning_manager config file
    • Add more complex test node
    • Update README
    • Reset index in next_waypoint_sampler
    • Use correct isPathValid() interface
    • Rename path_invalidation flag
    • Read planning scene instead of cloning it in local planner
    • Add TODO creator
    • Rename local constraint solver plugin
    • Use read-locked access to the planning scene for collision checking
    • Rename constraint_solver into local_constraint_solver
    • Add missing pointer initialization
  • Hybrid planning architecture (#311)

    • Add hybrid_planning architecture skeleton code
    • Add simple state machines to hybrid planning manager and local planner
    • Initial global planner prototype implementation
    • Forward joint_trajectory with local planner
    • Forward hybrid planning motion request to global planner
    • Abstract planner logic from hybrid planning manager by using a plugin
    • Implement single plan execution logic
    • Add test launch files, RViz and demo config
    • Add test for motion_planning_request
  • Contributors: AndyZe, David V. Lu!!, Henning Kayser, Jens Vanhooydonck, Sebastian Jahr

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Recent questions tagged moveit_hybrid_planning at answers.ros.org

Package Summary

Tags No category tags.
Version 2.5.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-planning/moveit2.git
VCS Type git
VCS Version main
Last Updated 2022-07-01
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Hybrid planning components of MoveIt 2

Additional Links

Maintainers

  • MoveIt Release Team

Authors

  • Sebastian Jahr

Hybrid Planning

A Hybrid Planning architecture. You can find more information in the project's issues#300, #433 and on the MoveIt 2 roadmap. Furthermore, there is an extensive tutorial available here.

Getting started

To start the demo run:

ros2 launch moveit_hybrid_planning hybrid_planning_demo.launch.py

You can exchange the planner logic plugin in the hybrid_planning_manager.yaml. Currently available demo plugins are: - planner logic plugins: - replan_invalidated_trajectory: Runs the global planner once and starts executing the global solution with the local planner. In case the local planner detects a collision the global planner is rerun to update the invalidated global trajectory. - single_plan_execution: Run the global planner once and starts executing the global solution with the local planner - global_planner plugins: - moveit_planning_pipeline: Global planner plugin that utilizes MoveIt's planning pipeline accessed via the MoveItCpp API. - trajectory operator plugins: - simple_sampler: Samples the next global trajectory waypoint as local goal constraint based on the current robot state. When the waypoint is reached the index that marks the current local goal constraint is updated to the next global trajectory waypoint. Global trajectory updates simply replace the reference trajectory. - local solver plugins: - forward_trajectory: Forwards the next waypoint of the sampled local trajectory. Additionally, it is possible to enable collision checking, which lets the robot stop in front of a collision object.

CHANGELOG

Changelog for package moveit_hybrid_planning

2.5.1 (2022-05-31)

  • Remove position controllers from CMake (#1285)
  • Contributors: Vatan Aksoy Tezer

2.5.0 (2022-05-26)

  • Fix hybrid planning launching (#1271)
  • Enable cppcheck (#1224) Co-authored-by: jeoseo <jeongwooseo2012@gmail.com>
  • Make moveit_common a \'depend\' rather than \'build_depend\' (#1226)
  • Avoid bind(), use lambdas instead (#1204) Adaption of https://github.com/ros-planning/moveit/pull/3106
  • banish bind() source:https://github.com/ros-planning/moveit/pull/3106/commits/a2911c80c28958c1fce8fb52333d770248c4ec05; required minor updates compared to original source commit in order to ensure compatibility with ROS2
  • RCLCPP Upgrade Bugfixes (#1181)
  • Enable rolling / jammy CI (again) (#1134)
    • Use ros2_control binaries
    • Use output screen instead of explicitly stating stderr
  • [hybrid planning] Adjust planning scene locking (#1087)
    • Create a copy of the planning scene. const robot state.
    • Use LockedPlanningSceneRO over lockSceneRead()
    • Use lambda function
  • [Hybrid Planning] configurable planning scene topics (#1052)
  • [hybrid planning] Use a map of expected feedback codes (#1065)
    • Use a map of expected feedback codes
    • Use a constexpr function instead of unordered_map
    • Don\'t need this #include
    • Minor function renaming
  • Disable hybrid planning test, don\'t cache ci docker at all and don\'t cache upstream_ws if repos file is changed (#1051)

    • Don\'t cache docker builds
    • Don\'t cache upstream ws
    • Use new action for getting the latest timestamp .repos file has been edited
    • Debug
    • Fix repos path
    • Disable hybrid planning test

    * Use more verbose name Co-authored-by: Tyler Weaver <tylerjw@gmail.com>

  • [hybrid planning] Add action abortion and test; improve the existing test (#980)

    • Add action abortion and test; improve the existing test
    • Add controller run-dependency
    • Fix the clearing of robot trajectory when a collision would occur
    • Fix replanning if local planner is stuck
    • Lambda function everything
    • Thread safety for stop_hybrid_planning_
    • Thread-safe state_
    • Clang tidy
    • Update the planning scene properly

    * Update Servo test initial_positions.yaml Co-authored-by: Tyler Weaver <tyler@picknik.ai>

  • [hybrid planning] Delete the pass-through option (#986)

    • Delete the pass-through option
    • Suppress clang warning

    * Handle (waypoint_count < 0) possibility Co-authored-by: Tyler Weaver <tyler@picknik.ai>

  • Remove unused parameters. (#1018) Co-authored-by: Tyler Weaver <tyler@picknik.ai> Co-authored-by: Vatan Aksoy Tezer <vatan@picknik.ai>

  • Contributors: AndyZe, Cory Crean, David V. Lu!!, Henning Kayser, Jafar, Vatan Aksoy Tezer, jeoseo, v4hn

2.4.0 (2022-01-20)

  • hybrid_planning: Fix global_planner action name (#960)
  • Put hybrid planning actions under a common namespace (#932)

    • Put hybrid planning actions under a common namespace
    • Use ~
    • New pkg for common resources. Does not work.

    * Use inline rather than anonymous namespace Co-authored-by: Jafar Abdi <cafer.abdi@gmail.com> * Revert \"Use inline rather than anonymous namespace\" This reverts commit 29a7d279776be21f4666c7e0fadeaa6b7ef8debf. * Revert \"New pkg for common resources. Does not work.\" This reverts commit 68a173baee4b7f8b2c1f74285f96c8e3892c5909. * Some progress toward loading common parameters Co-authored-by: Jafar Abdi <cafer.abdi@gmail.com>

  • Contributors: AndyZe

2.3.2 (2021-12-29)

2.3.1 (2021-12-23)

  • Bump new packages to 2.3.0
  • Add codespell to precommit, fix A LOT of spelling mistakes (#934)
  • CMake fix and cleanup abstract class (#6)
    • Install hybrid_planning_demo_node separately to avoid exporting it
    • Fix exported include directory
    • Remove getTargetWayPointIndex() from abstract trajectory operator class
    • Delete unused getTargetWayPointIndex()
  • Standardize with moveit_cpp parameters. Fix some parameter loading errors
  • Enable reaction to planner failure in the planner logic (#3)

    • Add unsuccessful action Hybrid Planning events and handle them in logic
    • Replace std::once with simple bool variable

    * Remove unneeded variable and update comments Don\'t const& for built-in types Co-authored-by: Tyler Weaver <tylerjw@gmail.com>

  • Update robot state properly Update robot state properly; remove debug prints; clang format Check if the local planner is stuck within the forward_traj plugin, not local_planner_component

  • Pass GlobalPlanner failing to HybridPlanningManager

  • Move common launch elements to a Python file, for easy re-use Refactor Global and Local Planner Components into NodeClasses Add a simple launch test (#1) Try to fix plugin export; add helpful debug when stuck Error if global planning fails READY and AWAIT_TRAJ states are redundant Lock the planning scene as briefly as possible Specify joint group when checking waypoint distance Implement a reset() function in the local planner Detect when the local planner gets stuck

  • Add generic global planner plugin, support MotionSequenceRequest (#585) Fix hybrid planning include folders (#675) Order stuff in the CMakeLists.txt and remove control_box package Update README Move member initialization to initializer lists Remove control_box include dependency Replace \"loop-run\" with \"iteration\" Remove cpp interface class constructors and destructors Use joint_state_broadcaster, clean up test node, add execution dependencies Use only plugin interface header files and add missing dependencies Clean up constructor and destructor definitions Declare missing parameter in moveit_planning_pipeline_plugin Move rclcpp::Loggers into anonymous namespaces Switch CI branches to feature/hybrid_planning Update message name Remove moveit_msgs from .repos file Update github workflows Remove note from readme about building from source Minor renamings, make reset() noexcept Check for vector length of zero Load moveit_cpp options with the Options helper. Reduces LOC. Set the planning parameters within plan() Function renaming Authors and descriptions in header files only. New header file for error code interface. Update namespacing Use default QoS for subscribers Better progress comparison Add publish_joint_positions and publish_joint_velocities param Grammar and other minor nitpicks Restore moveit_msgs to .repos, for now

  • Refactor local planner plugins (#447)

    • Add reset method for trajectory operator and local constraint sampler
    • Refactor next_waypoint_sampler into simple_sampler
    • Include collision checking to forward_trajectory and remove unneeded plugin
    • Fix formatting and plugin description

    * Update README and add missing planner logic plugin description Add TODO to use lifecycle components nodes to trigger initialization Return a reaction result instead of bool on react() Set invalidation flag to false on reset() in ForwardTrajectory local solver Return local planner feedback from trajectory operator function calls Fix segfault caused by passing through the global trajectory Update comment, unify logging and add missing config parameters Update to rolling

  • Restructure hybrid_planning package (#426)

    • Add forward_trajectory local solver plugin (#359)
    • Use ros2_control based joint simulation and remove unnecessary comment
    • Update copyrights
    • Restructure hybrid planning package
    • Fix formatting and add missing time stamp in local solver plugin
    • Remove unnecessary logging and param loading
    • Enable different interfaces between local planner and controller
    • Use JointGroupPositionController as demo hardware controller
  • Code cleanup & MoveIt best practices (#351)

    • Export missing plugins
    • Use std::chrono_literals
    • Construct smart pointers with std::make_* instead of \'new\'
    • Fixup const-ref in function signatures, reduce copies
    • Improve planning scene locking, robot state processing, controller logic
  • Refine local planner component (#326)

    • Make local planner component generic
    • Add next_waypoint_sampler trajectory operator
    • Update hybrid planning test to include collision object
    • Clean up code and fix minor bugs.
    • Update local planner component parameter
    • Add local collision constraint solver
    • Update planning scene topic name and test node
    • Fix bugs and runtime errors in local planner component and it\'s plugins
    • Add collision object that invalidates global trajectory
    • Add simple \"stop in front of collision object\" demo
    • Add hybrid planning manager reaction to local planner feedback
    • Fix ament_lint_cmake
    • Ensure that local planner start command and collision event are send once
    • Add simple replanning logic plugin
    • Use current state as start state for global planner
    • Use RobotTrajectory instead of constraint vector describe local problem
    • Add PlanningSceneMonitorPtr to local solver plugin
    • Add local planner frequency parameter
    • Use PID controller to create control outputs for robot controller
    • Add hybrid_planning_manager config file
    • Add more complex test node
    • Update README
    • Reset index in next_waypoint_sampler
    • Use correct isPathValid() interface
    • Rename path_invalidation flag
    • Read planning scene instead of cloning it in local planner
    • Add TODO creator
    • Rename local constraint solver plugin
    • Use read-locked access to the planning scene for collision checking
    • Rename constraint_solver into local_constraint_solver
    • Add missing pointer initialization
  • Hybrid planning architecture (#311)

    • Add hybrid_planning architecture skeleton code
    • Add simple state machines to hybrid planning manager and local planner
    • Initial global planner prototype implementation
    • Forward joint_trajectory with local planner
    • Forward hybrid planning motion request to global planner
    • Abstract planner logic from hybrid planning manager by using a plugin
    • Implement single plan execution logic
    • Add test launch files, RViz and demo config
    • Add test for motion_planning_request
  • Contributors: AndyZe, David V. Lu!!, Henning Kayser, Jens Vanhooydonck, Sebastian Jahr

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Recent questions tagged moveit_hybrid_planning at answers.ros.org

Package Summary

Tags No category tags.
Version 2.5.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-planning/moveit2.git
VCS Type git
VCS Version main
Last Updated 2022-07-01
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Hybrid planning components of MoveIt 2

Additional Links

Maintainers

  • MoveIt Release Team

Authors

  • Sebastian Jahr

Hybrid Planning

A Hybrid Planning architecture. You can find more information in the project's issues#300, #433 and on the MoveIt 2 roadmap. Furthermore, there is an extensive tutorial available here.

Getting started

To start the demo run:

ros2 launch moveit_hybrid_planning hybrid_planning_demo.launch.py

You can exchange the planner logic plugin in the hybrid_planning_manager.yaml. Currently available demo plugins are: - planner logic plugins: - replan_invalidated_trajectory: Runs the global planner once and starts executing the global solution with the local planner. In case the local planner detects a collision the global planner is rerun to update the invalidated global trajectory. - single_plan_execution: Run the global planner once and starts executing the global solution with the local planner - global_planner plugins: - moveit_planning_pipeline: Global planner plugin that utilizes MoveIt's planning pipeline accessed via the MoveItCpp API. - trajectory operator plugins: - simple_sampler: Samples the next global trajectory waypoint as local goal constraint based on the current robot state. When the waypoint is reached the index that marks the current local goal constraint is updated to the next global trajectory waypoint. Global trajectory updates simply replace the reference trajectory. - local solver plugins: - forward_trajectory: Forwards the next waypoint of the sampled local trajectory. Additionally, it is possible to enable collision checking, which lets the robot stop in front of a collision object.

CHANGELOG

Changelog for package moveit_hybrid_planning

2.5.1 (2022-05-31)

  • Remove position controllers from CMake (#1285)
  • Contributors: Vatan Aksoy Tezer

2.5.0 (2022-05-26)

  • Fix hybrid planning launching (#1271)
  • Enable cppcheck (#1224) Co-authored-by: jeoseo <jeongwooseo2012@gmail.com>
  • Make moveit_common a \'depend\' rather than \'build_depend\' (#1226)
  • Avoid bind(), use lambdas instead (#1204) Adaption of https://github.com/ros-planning/moveit/pull/3106
  • banish bind() source:https://github.com/ros-planning/moveit/pull/3106/commits/a2911c80c28958c1fce8fb52333d770248c4ec05; required minor updates compared to original source commit in order to ensure compatibility with ROS2
  • RCLCPP Upgrade Bugfixes (#1181)
  • Enable rolling / jammy CI (again) (#1134)
    • Use ros2_control binaries
    • Use output screen instead of explicitly stating stderr
  • [hybrid planning] Adjust planning scene locking (#1087)
    • Create a copy of the planning scene. const robot state.
    • Use LockedPlanningSceneRO over lockSceneRead()
    • Use lambda function
  • [Hybrid Planning] configurable planning scene topics (#1052)
  • [hybrid planning] Use a map of expected feedback codes (#1065)
    • Use a map of expected feedback codes
    • Use a constexpr function instead of unordered_map
    • Don\'t need this #include
    • Minor function renaming
  • Disable hybrid planning test, don\'t cache ci docker at all and don\'t cache upstream_ws if repos file is changed (#1051)

    • Don\'t cache docker builds
    • Don\'t cache upstream ws
    • Use new action for getting the latest timestamp .repos file has been edited
    • Debug
    • Fix repos path
    • Disable hybrid planning test

    * Use more verbose name Co-authored-by: Tyler Weaver <tylerjw@gmail.com>

  • [hybrid planning] Add action abortion and test; improve the existing test (#980)

    • Add action abortion and test; improve the existing test
    • Add controller run-dependency
    • Fix the clearing of robot trajectory when a collision would occur
    • Fix replanning if local planner is stuck
    • Lambda function everything
    • Thread safety for stop_hybrid_planning_
    • Thread-safe state_
    • Clang tidy
    • Update the planning scene properly

    * Update Servo test initial_positions.yaml Co-authored-by: Tyler Weaver <tyler@picknik.ai>

  • [hybrid planning] Delete the pass-through option (#986)

    • Delete the pass-through option
    • Suppress clang warning

    * Handle (waypoint_count < 0) possibility Co-authored-by: Tyler Weaver <tyler@picknik.ai>

  • Remove unused parameters. (#1018) Co-authored-by: Tyler Weaver <tyler@picknik.ai> Co-authored-by: Vatan Aksoy Tezer <vatan@picknik.ai>

  • Contributors: AndyZe, Cory Crean, David V. Lu!!, Henning Kayser, Jafar, Vatan Aksoy Tezer, jeoseo, v4hn

2.4.0 (2022-01-20)

  • hybrid_planning: Fix global_planner action name (#960)
  • Put hybrid planning actions under a common namespace (#932)

    • Put hybrid planning actions under a common namespace
    • Use ~
    • New pkg for common resources. Does not work.

    * Use inline rather than anonymous namespace Co-authored-by: Jafar Abdi <cafer.abdi@gmail.com> * Revert \"Use inline rather than anonymous namespace\" This reverts commit 29a7d279776be21f4666c7e0fadeaa6b7ef8debf. * Revert \"New pkg for common resources. Does not work.\" This reverts commit 68a173baee4b7f8b2c1f74285f96c8e3892c5909. * Some progress toward loading common parameters Co-authored-by: Jafar Abdi <cafer.abdi@gmail.com>

  • Contributors: AndyZe

2.3.2 (2021-12-29)

2.3.1 (2021-12-23)

  • Bump new packages to 2.3.0
  • Add codespell to precommit, fix A LOT of spelling mistakes (#934)
  • CMake fix and cleanup abstract class (#6)
    • Install hybrid_planning_demo_node separately to avoid exporting it
    • Fix exported include directory
    • Remove getTargetWayPointIndex() from abstract trajectory operator class
    • Delete unused getTargetWayPointIndex()
  • Standardize with moveit_cpp parameters. Fix some parameter loading errors
  • Enable reaction to planner failure in the planner logic (#3)

    • Add unsuccessful action Hybrid Planning events and handle them in logic
    • Replace std::once with simple bool variable

    * Remove unneeded variable and update comments Don\'t const& for built-in types Co-authored-by: Tyler Weaver <tylerjw@gmail.com>

  • Update robot state properly Update robot state properly; remove debug prints; clang format Check if the local planner is stuck within the forward_traj plugin, not local_planner_component

  • Pass GlobalPlanner failing to HybridPlanningManager

  • Move common launch elements to a Python file, for easy re-use Refactor Global and Local Planner Components into NodeClasses Add a simple launch test (#1) Try to fix plugin export; add helpful debug when stuck Error if global planning fails READY and AWAIT_TRAJ states are redundant Lock the planning scene as briefly as possible Specify joint group when checking waypoint distance Implement a reset() function in the local planner Detect when the local planner gets stuck

  • Add generic global planner plugin, support MotionSequenceRequest (#585) Fix hybrid planning include folders (#675) Order stuff in the CMakeLists.txt and remove control_box package Update README Move member initialization to initializer lists Remove control_box include dependency Replace \"loop-run\" with \"iteration\" Remove cpp interface class constructors and destructors Use joint_state_broadcaster, clean up test node, add execution dependencies Use only plugin interface header files and add missing dependencies Clean up constructor and destructor definitions Declare missing parameter in moveit_planning_pipeline_plugin Move rclcpp::Loggers into anonymous namespaces Switch CI branches to feature/hybrid_planning Update message name Remove moveit_msgs from .repos file Update github workflows Remove note from readme about building from source Minor renamings, make reset() noexcept Check for vector length of zero Load moveit_cpp options with the Options helper. Reduces LOC. Set the planning parameters within plan() Function renaming Authors and descriptions in header files only. New header file for error code interface. Update namespacing Use default QoS for subscribers Better progress comparison Add publish_joint_positions and publish_joint_velocities param Grammar and other minor nitpicks Restore moveit_msgs to .repos, for now

  • Refactor local planner plugins (#447)

    • Add reset method for trajectory operator and local constraint sampler
    • Refactor next_waypoint_sampler into simple_sampler
    • Include collision checking to forward_trajectory and remove unneeded plugin
    • Fix formatting and plugin description

    * Update README and add missing planner logic plugin description Add TODO to use lifecycle components nodes to trigger initialization Return a reaction result instead of bool on react() Set invalidation flag to false on reset() in ForwardTrajectory local solver Return local planner feedback from trajectory operator function calls Fix segfault caused by passing through the global trajectory Update comment, unify logging and add missing config parameters Update to rolling

  • Restructure hybrid_planning package (#426)

    • Add forward_trajectory local solver plugin (#359)
    • Use ros2_control based joint simulation and remove unnecessary comment
    • Update copyrights
    • Restructure hybrid planning package
    • Fix formatting and add missing time stamp in local solver plugin
    • Remove unnecessary logging and param loading
    • Enable different interfaces between local planner and controller
    • Use JointGroupPositionController as demo hardware controller
  • Code cleanup & MoveIt best practices (#351)

    • Export missing plugins
    • Use std::chrono_literals
    • Construct smart pointers with std::make_* instead of \'new\'
    • Fixup const-ref in function signatures, reduce copies
    • Improve planning scene locking, robot state processing, controller logic
  • Refine local planner component (#326)

    • Make local planner component generic
    • Add next_waypoint_sampler trajectory operator
    • Update hybrid planning test to include collision object
    • Clean up code and fix minor bugs.
    • Update local planner component parameter
    • Add local collision constraint solver
    • Update planning scene topic name and test node
    • Fix bugs and runtime errors in local planner component and it\'s plugins
    • Add collision object that invalidates global trajectory
    • Add simple \"stop in front of collision object\" demo
    • Add hybrid planning manager reaction to local planner feedback
    • Fix ament_lint_cmake
    • Ensure that local planner start command and collision event are send once
    • Add simple replanning logic plugin
    • Use current state as start state for global planner
    • Use RobotTrajectory instead of constraint vector describe local problem
    • Add PlanningSceneMonitorPtr to local solver plugin
    • Add local planner frequency parameter
    • Use PID controller to create control outputs for robot controller
    • Add hybrid_planning_manager config file
    • Add more complex test node
    • Update README
    • Reset index in next_waypoint_sampler
    • Use correct isPathValid() interface
    • Rename path_invalidation flag
    • Read planning scene instead of cloning it in local planner
    • Add TODO creator
    • Rename local constraint solver plugin
    • Use read-locked access to the planning scene for collision checking
    • Rename constraint_solver into local_constraint_solver
    • Add missing pointer initialization
  • Hybrid planning architecture (#311)

    • Add hybrid_planning architecture skeleton code
    • Add simple state machines to hybrid planning manager and local planner
    • Initial global planner prototype implementation
    • Forward joint_trajectory with local planner
    • Forward hybrid planning motion request to global planner
    • Abstract planner logic from hybrid planning manager by using a plugin
    • Implement single plan execution logic
    • Add test launch files, RViz and demo config
    • Add test for motion_planning_request
  • Contributors: AndyZe, David V. Lu!!, Henning Kayser, Jens Vanhooydonck, Sebastian Jahr

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Recent questions tagged moveit_hybrid_planning at answers.ros.org

No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.