Package Summary

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

Repository Summary

Checkout URI https://github.com/PlanSys2/ros2_planning_system.git
VCS Type git
VCS Version iron-devel
Last Updated 2023-08-02
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.11 (2023-08-02)

2.0.10 (2023-07-17)

  • Merge remote-tracking branch \'origin/humble-devel\'
  • Merge pull request #252 from PlanSys2/check_at_end Check at end reqs in bt builder
  • Check at end reqs in bt builder
  • Merge pull request #251 from PlanSys2/fix_bt_node Fix bt node
  • Change MultiThreaded for SingleThreaded in CI failing tests
  • Change double quotes for simple ones (linter)
  • Insert in blackboard the action ROS 2 Node
  • Merge pull request #247 from jjzapf/standalone-bt-builder Standalone BT Builder Service
  • Fixing cpplint warning.
  • Fixing cpplint warnings.
  • Checking for self-referencing edges in STNBTBuilder. Adding standalone compute_bt service.
  • Merge remote-tracking branch \'origin/master\' into fix_goal_structure_issue_205
  • Merge pull request #240 from jjzapf/bt-builder-plugins New BT Builder and Plugin Interface
  • bt-builder-plugins: Setting default BT builder plugin to SimpleBTBuilder.
  • bt-builder-plugins: Creating BT builder plugin interface. Moving current BT builder to plugin named SimpleBTBuilder. Adding new and improved STN-based BT builder plugin named STNBTBuilder.
  • Merge remote-tracking branch \'origin/master\' into fix_goal_structure_issue_205
  • Merge remote-tracking branch \'upstream/master\'
  • Merge branch \'IntelligentRoboticsLabs:master\' into master
  • Contributors: Andrianov Roman, 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

Recent questions tagged plansys2_executor at Robotics Stack Exchange