Package Summary
Tags | No category tags. |
Version | 1.0.7 |
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-01-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
Additional Links
Maintainers
- Francisco Martin Rico
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:
Actions:
-
/execute_plan
[plansys2_msgs::action::ExecutePlan
]
(in ActionExecutorClient)
-
/${ACTION_NAME
}[plansys2_msgs::action::ExecuteAction
]
Subscribed topics:
(in ActionExecutor)
-
/problem_expert/update_notify
[std_msgs::msg::Empty
]
Changelog for package plansys2_executor
1.0.7 (2021-01-04)
- Making explicit dependencies
- Contributors: Francisco Martin Rico
1.0.6 (2020-12-29)
- Disable boost functions
- Contributors: Francisco Martin Rico
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Mart
Wiki Tutorials
Source Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged plansys2_executor at answers.ros.org
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
Additional Links
Maintainers
- Francisco Martin Rico
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:
Actions:
-
/execute_plan
[plansys2_msgs::action::ExecutePlan
]
(in ActionExecutorClient)
-
/${ACTION_NAME
}[plansys2_msgs::action::ExecuteAction
]
Subscribed topics:
(in ActionExecutor)
-
/problem_expert/update_notify
[std_msgs::msg::Empty
]
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