Package Summary

Tags No category tags.
Version 2.0.9
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/IntelligentRoboticsLabs/ros2_planning_system.git
VCS Type git
VCS Version humble-devel
Last Updated 2022-07-10
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

This package contains the Executor module for the ROS2 Planning System

Additional Links

No additional links.

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Executor

The Executor module is responsible for requesting a plan to the Planner, and carry it out, calling to the nodes in the client application that implements the actions. While executing each action, it checks the requisites (At Start, At End and Over all, in case of durative Actions). If the requirements are not meet, it cancels the plan execution. It also is responsible for applying the effects of the actions, requesting updates to the Problem Expert.

The main class of Executor is plansys2::ExecutorNode, which is instantiated from executor_node.cpp.

The executions of plans are carried out using ROS2 actions, in particular, plansys2_msgs::action::ExecutePlan. Take note that the goal must be already in the Domain Expert.

ExecutorNode ask for the domain and problem, and ask for a plan to the Planner. For each action in the plan, ExecuterNode creates a plansys2::ActionExecutor. The lifetime of this object is only one action. This object calls the actions implemented in the client appliciation using the ROS2 actions plansys2_msgs::action::ExecuteAction. Each client action implementation can use the class plansys2::ActionExecutorClient to avoid the complexity of managing ROS2 actions.

Using the feedback information from plansys2_msgs::action::ExecuteAction, feedback for plansys2::ExecutorNode is composed and returned to plansys2::ExecutorClient. It contains the current action in the plan and the progress in the currently executing action.

Next graph shows an example of the execution flow:

Executor Flow

Actions:

(in ActionExecutorClient)

Services:

Subscribed topics:

(in ActionExecutor)

  • /problem_expert/update_notify [std_msgs::msg::Empty]

Parameters:

(in ExecutorNode)

  • ~/action_timeouts/actions [list of strings]

    • List of actions which have duration overrun percentages specified.
  • ~/action_timeouts/[ACTION_NAME]/duration_overrun_percentage [double]

    • Defines the allowable time overrun of an action based on a percentage of the predicted plan duration. For example, if the plan predicts that an action should take 1000 secs and a duration overrun percentage of 20% is specified, then the action should be halted if the actual duration exceeds 1200 secs.
executor:
  ros__parameters:
    action_timeouts:
      actions: ["move"]
      move:
        duration_overrun_percentage: 20.0

CHANGELOG

Changelog for package plansys2_executor

2.0.9 (2022-07-10)

  • Humble Upgrade
  • Fix possible bug https://github.com/ros2/rclcpp/issues/1968
  • Expose lifecyclemanager timeout as a parameter, other misc fixes/features
  • Linters are explicit
  • Add ctor to ExecutorClient for varying node name
  • Fix uninitialized variable in ExecutorClient
  • Contributors: Francisco Mart

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

Plugins

No plugins found.

Recent questions tagged plansys2_executor at answers.ros.org

Package Summary

Tags No category tags.
Version 2.0.8
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/IntelligentRoboticsLabs/ros2_planning_system.git
VCS Type git
VCS Version galactic-devel
Last Updated 2022-05-04
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

This package contains the Executor module for the ROS2 Planning System

Additional Links

No additional links.

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Executor

The Executor module is responsible for requesting a plan to the Planner, and carry it out, calling to the nodes in the client application that implements the actions. While executing each action, it checks the requisites (At Start, At End and Over all, in case of durative Actions). If the requirements are not meet, it cancels the plan execution. It also is responsible for applying the effects of the actions, requesting updates to the Problem Expert.

The main class of Executor is plansys2::ExecutorNode, which is instantiated from executor_node.cpp.

The executions of plans are carried out using ROS2 actions, in particular, plansys2_msgs::action::ExecutePlan. Take note that the goal must be already in the Domain Expert.

ExecutorNode ask for the domain and problem, and ask for a plan to the Planner. For each action in the plan, ExecuterNode creates a plansys2::ActionExecutor. The lifetime of this object is only one action. This object calls the actions implemented in the client appliciation using the ROS2 actions plansys2_msgs::action::ExecuteAction. Each client action implementation can use the class plansys2::ActionExecutorClient to avoid the complexity of managing ROS2 actions.

Using the feedback information from plansys2_msgs::action::ExecuteAction, feedback for plansys2::ExecutorNode is composed and returned to plansys2::ExecutorClient. It contains the current action in the plan and the progress in the currently executing action.

Next graph shows an example of the execution flow:

Executor Flow

Actions:

(in ActionExecutorClient)

Services:

Subscribed topics:

(in ActionExecutor)

  • /problem_expert/update_notify [std_msgs::msg::Empty]

Parameters:

(in ExecutorNode)

  • ~/action_timeouts/actions [list of strings]

    • List of actions which have duration overrun percentages specified.
  • ~/action_timeouts/[ACTION_NAME]/duration_overrun_percentage [double]

    • Defines the allowable time overrun of an action based on a percentage of the predicted plan duration. For example, if the plan predicts that an action should take 1000 secs and a duration overrun percentage of 20% is specified, then the action should be halted if the actual duration exceeds 1200 secs.
executor:
  ros__parameters:
    action_timeouts:
      actions: ["move"]
      move:
        duration_overrun_percentage: 20.0

CHANGELOG

Changelog for package plansys2_executor

2.0.8 (2022-05-04)

2.0.7 (2022-05-04)

2.0.6 (2022-05-03)

2.0.5 (2022-05-03)

2.0.4 (2022-05-03)

  • Fix version
  • Merge pull request #223 from IntelligentRoboticsLabs/fix_threads_buildfarm Fix threads buildfarm
  • Fix ROS2 Buildfarm error due to Threads
  • Merge pull request #217 from jjzapf/check-action-finished Check action finished
  • check-action-finished: Putting leftover requirement check after state update in get_graph function.
  • check-action-finished: Use distinct names for temporary predicate/function variables inside of while loop.
  • check-action-finished: Reverting previous changes. Adding checks to WaitAction node to verify that action has finished.
  • check-action-finished: Fixing problem_expert.wait_overall_req_test in plansys2_executor/bt_node_test.cpp.
  • check-action-finished: Do not declare failure in check_overall_req_node if action has already finished.
  • Merge pull request #209 from sarcasticnature/master Improvements on recent BtActionNode changes
  • Merge pull request #216 from jjzapf/action-graph-bug-fix Plan-to-Action Graph Bug Fix
  • action-graph-bug-fix: Not applying at end effects when testing if actions can be run in parallel. Fixing bug in prune_backwards function.
  • Update unit tests to match changes
  • Remove extra do_work() call in on_activate() do_work() may call the function finish(), which will fail to deactivate the node if it is still in the on_activate callback.
  • Merge branch \'IntelligentRoboticsLabs:master\' into master
  • Merge pull request #208 from xydesa/plan-dotgraph-bug Plan dotgraph color bug
  • Merge branch \'IntelligentRoboticsLabs:master\' into master
  • Removing unused variable.
  • More accurately getting the status of an action by including the action\'s start time in the index for coloring the dotgraph.
  • Contributors: Alexander Xydes, Francisco Mart

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

Plugins

No plugins found.

Recent questions tagged plansys2_executor at answers.ros.org

Package Summary

Tags No category tags.
Version 1.0.10
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/IntelligentRoboticsLabs/ros2_planning_system.git
VCS Type git
VCS Version foxy-devel
Last Updated 2021-07-05
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

This package contains the Executor module for the ROS2 Planning System

Additional Links

No additional links.

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Executor

The Executor module is responsible for requesting a plan to the Planner, and carry it out, calling to the nodes in the client application that implements the actions. While executing each action, it checks the requisites (At Start, At End and Over all, in case of durative Actions). If the requirements are not meet, it cancels the plan execution. It also is responsible for applying the effects of the actions, requesting updates to the Problem Expert.

The main class of Executor is plansys2::ExecutorNode, which is instantiated from executor_node.cpp.

The executions of plans are carried out using ROS2 actions, in particular, plansys2_msgs::action::ExecutePlan. Take note that the goal must be already in the Domain Expert.

ExecutorNode ask for the domain and problem, and ask for a plan to the Planner. For each action in the plan, ExecuterNode creates a plansys2::ActionExecutor. The lifetime of this object is only one action. This object calls the actions implemented in the client appliciation using the ROS2 actions plansys2_msgs::action::ExecuteAction. Each client action implementation can use the class plansys2::ActionExecutorClient to avoid the complexity of managing ROS2 actions.

Using the feedback information from plansys2_msgs::action::ExecuteAction, feedback for plansys2::ExecutorNode is composed and returned to plansys2::ExecutorClient. It contains the current action in the plan and the progress in the currently executing action.

Next graph shows an example of the execution flow:

Executor Flow

Actions:

(in ActionExecutorClient)

Services:

Subscribed topics:

(in ActionExecutor)

  • /problem_expert/update_notify [std_msgs::msg::Empty]

Parameters:

(in ExecutorNode)

  • ~/action_timeouts/actions [list of strings]

    • List of actions which have duration overrun percentages specified.
  • ~/action_timeouts/[ACTION_NAME]/duration_overrun_percentage [double]

    • Defines the allowable time overrun of an action based on a percentage of the predicted plan duration. For example, if the plan predicts that an action should take 1000 secs and a duration overrun percentage of 20% is specified, then the action should be halted if the actual duration exceeds 1200 secs.
executor:
  ros__parameters:
    action_timeouts:
      actions: ["move"]
      move:
        duration_overrun_percentage: 20.0

CHANGELOG

Changelog for package plansys2_executor

1.0.10 (2021-07-03)

  • Minor update
  • Fix tests
  • Fix rate conversions
  • Add rate parameter
  • Remove node parameter in client constructors
  • ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
  • Suggestion for #118
  • pddl-tree-messages: Performing some minor cleanup.
  • pddl-tree-messages: Using explicit specifier for single parameter constructors in plansys2_core/Types.hpp.
  • pddl-tree-messages: Replacing user access function calls with shorter versions where possible.
  • pddl-tree-messages: Adding predicate user access functions to problem expert client.
  • pddl-tree-messages: Adding predicate user access functions to problem expert client.
  • pddl-tree-messages: Applying ament uncrustify.
  • pddl-tree-messages: Updating addInstance and removeInstance calls to use helper classes.
  • pddl-tree-messages: Reverting change to log statement severity.
  • pddl-tree-messages: Removing a couple unnecessary includes.
  • pddl-tree-messages: Merging master and resolving conflicts.
  • action-timeout-clean: Renaming test behavior tree.
  • Using custom behavior tree to enable action timeouts.
  • pddl-tree-messages: Merging upstream master and resolving conflicts.
  • pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
  • Adding action execution status (as color changes) to the plan dotgraph. Adding legend to plan dotgraph, adding node params for dotgraph legend and printing plan graph to terminal.
  • Fix tests and linting
  • linting
  • Configurable action BT
  • Configurable BT Action
  • Reducing log message severity because lack of a plan isn\'t necessarily an error.
  • Reduce debug output
  • Plansys2_tests package
  • Adding unit test for getOrderedSubGoals.
  • Add GetOrderedSubGoals service to Executor, allowing executor clients to get the order in which sub-goals will be completed by the current plan.
  • Update version
  • Contributors: Alexander Xydes, Francisco Mart

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

Plugins

No plugins found.

Recent questions tagged plansys2_executor at answers.ros.org

No version for distro rolling. Known supported distros are highlighted in the buttons above.
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.

Package Summary

Tags No category tags.
Version 0.0.17
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/IntelligentRoboticsLabs/ros2_planning_system.git
VCS Type git
VCS Version eloquent-devel
Last Updated 2020-08-11
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

This package contains the Executor module for the ROS2 Planning System

Additional Links

No additional links.

Maintainers

  • Francisco Martin Rico

Authors

No additional authors.

Executor

The Executor module is responsible for requesting a plan to the Planner, and carry it out, calling to the nodes in the client application that implements the actions. While executing each action, it checks the requisites (At Start, At End and Over all, in case of durative Actions). If the requirements are not meet, it cancels the plan execution. It also is responsible for applying the effects of the actions, requesting updates to the Problem Expert.

The main class of Executor is plansys2::ExecutorNode, which is instantiated from executor_node.cpp.

The executions of plans are carried out using ROS2 actions, in particular, plansys2_msgs::action::ExecutePlan. Take note that the goal must be already in the Domain Expert.

ExecutorNode ask for the domain and problem, and ask for a plan to the Planner. For each action in the plan, ExecuterNode creates a plansys2::ActionExecutor. The lifetime of this object is only one action. This object calls the actions implemented in the client appliciation using the ROS2 actions plansys2_msgs::action::ExecuteAction. Each client action implementation can use the class plansys2::ActionExecutorClient to avoid the complexity of managing ROS2 actions.

Using the feedback information from plansys2_msgs::action::ExecuteAction, feedback for plansys2::ExecutorNode is composed and returned to plansys2::ExecutorClient. It contains the current action in the plan and the progress in the currently executing action.

Next graph shows an example of the execution flow:

Executor Flow

Actions:

(in ActionExecutorClient)

Subscribed topics:

(in ActionExecutor)

  • /problem_expert/update_notify [std_msgs::msg::Empty]
CHANGELOG

Changelog for package plansys2_executor

0.0.17 (2020-08-11)

  • Adjust calls to BT API
  • Contributors: Francisco Martin Rico

0.0.16 (2020-08-11)

  • Merge pull request #28 from mjcarroll/remove_boost_optional [eloquent] Remove boost::optional
  • Remove boost::optional and fix build
  • Contributors: Francisco Mart

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

Plugins

No plugins found.

Recent questions tagged plansys2_executor at answers.ros.org

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.