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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 2.0.18 |
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 | jazzy-devel |
Last Updated | 2025-02-05 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.18 (2024-12-30)
2.0.17 (2024-12-30)
2.0.16 (2024-12-30)
2.0.15 (2024-12-03)
2.0.14 (2024-11-14)
2.0.13 (2024-11-06)
2.0.12 (2024-10-16)
- add uint8 EXISTS = 10 to Node.msg
- support for ParamExpression and ConstExpression
- add Derived.msg and GetDomainDerivedPredicateDetails.srv
- Add option to use planner node to validate domain in domain expert
- Contributors: Francisco Martín Rico, Gustavo, Josh Zapf, Marco Roveri, Robodrome, Sebastian Castro
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDerivedPredicateDetails.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
- srv/ValidateDomain.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 3.0.1 |
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 | kilted-devel |
Last Updated | 2025-06-22 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
3.0.1 (2025-06-22)
3.0.0 (2025-06-06)
- Multiple plans and replanning stability
- Add getProblemWithTimestamp to Problem Expert
- Service and logic for get multiple plans
- Replanning
- Executor basic replanning done
- Add support for ParamExpression and ConstExpression
- Support for existential preconditions
- add uint8 EXISTS = 10 to Node.msg
- Add support for derived predicates
- support for ParamExpression and ConstExpression
- add Derived.msg and GetDomainDerivedPredicateDetails.srv
- Fix CI after BT-CPP v4
- Remove cmake warning
- Add option to use planner node to validate domain in domain expert
- add Derived.msg and GetDomainDerivedPredicateDetails.srv
- Contributors: Francisco Martín Rico, Gustavo, Josh Zapf, Marco Roveri, Robodrome, Sebastian Castro
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDerivedPredicateDetails.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetPlanArray.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
- srv/ValidateDomain.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
![]() |
plansys2_msgs package from ros2_planning_system repoplansys2_bringup plansys2_domain_expert plansys2_executor plansys2_lifecycle_manager plansys2_msgs plansys2_pddl_parser plansys2_planner plansys2_problem_expert plansys2_terminal |
ROS Distro
|
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 |
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
Changelog for package plansys2_msgs
0.0.17 (2020-08-11)
0.0.16 (2020-08-11)
0.0.15 (2020-08-09)
0.0.14 (2020-08-07)
0.0.13 (2020-08-05)
0.0.12 (2020-07-26)
0.0.11 (2020-07-25)
0.0.10 (2020-07-19)
0.0.9 (2020-07-06)
0.0.8 (2020-06-26)
0.0.7 (2020-03-26)
0.0.6 (2020-03-23)
0.0.5 (2020-01-12)
0.0.4 (2020-01-09)
- Adding missing action dependencies Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Contributors: Francisco Martin Rico
0.0.3 (2020-01-09)
0.0.2 (2020-01-08)
- Packages.xml description Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Setting CI Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Change to lowercasegit Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Executor initial version Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- First version of planner complete Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Problem expert client and node Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Domain types and messages changed Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Predicate Tree and types changed Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- First version of domain expert Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Contributors: Francisco Martin Rico
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
- srv/AddProblemGoal.srv
- srv/AddProblemInstance.srv
- srv/AddProblemPredicate.srv
- srv/ExistProblemPredicate.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainPredicateDetails.srv
- srv/GetDomainPredicates.srv
- srv/GetDomainTypes.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetProblemPredicateDetails.srv
- srv/GetProblemPredicates.srv
- srv/RemoveProblemGoal.srv
- srv/RemoveProblemInstance.srv
- srv/RemoveProblemPredicate.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
* Contributors: Francisco Martín Rico 0.0.8 (2020-07-18)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
* Contributors: Francisco Martín Rico 0.0.8 (2020-07-18) ------------------
0.0.7 (2020-03-26)
0.0.6 (2020-03-23)
0.0.5 (2020-01-12)
0.0.4 (2020-01-09)
- Adding missing action dependencies Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
* Contributors: Francisco Martín Rico 0.0.3 (2020-01-09) ------------------
0.0.2 (2020-01-08)
- Packages.xml description Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Setting CI Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Change to lowercasegit Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Executor initial version Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- First version of planner complete Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Problem expert client and node Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Domain types and messages changed Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- Predicate Tree and types changed Signed-off-by: Francisco Martin Rico <<fmrico@gmail.com>>
- First version of domain expert Signed-off-by: Francisco Martin Rico
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.11 (2023-08-02)
2.0.10 (2023-07-17)
- Merge remote-tracking branch 'origin/humble-devel'
- Merge remote-tracking branch 'origin/master' into fix_goal_structure_issue_205
- Contributors: Francisco Martín Rico, Marco Roveri
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv
Plugins
Recent questions tagged plansys2_msgs at Robotics Stack Exchange
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 | 2024-11-06 |
Dev Status | DEVELOPED |
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
PlanSys2 Messages
Representing PDDL Expressions as Trees
PDDL expressions are conveniently represented as trees. To see this, consider the following PDDL expression.
(and (robot_at r2d2 millennium_falcon)(not (robot_at r2d2 death_star)))
The root node of the tree corresponds to the outer parentheses encompassing the “and” statement.
The “and” statement then has two children.
The first child corresponds to the predicate (robot_at r2d2 millennium_falcon)
and the second
child corresponds to the “not” expression (not (robot_at r2d2 death_star))
.
Similarly, the “not” expression has one child corresponding to the predicate (robot_at r2d2 death_star)
.
A tree node is often implemented as a simple class object of the form
class Node {
public String name;
public Node[] children;
}
Thus, the node contains the data relevant to the node as well as the links to its children. A tree is then stored as a list of nodes.
Representing PDDL Expressions with ROS Messages
PlanSys2 requires that the PDDL construct trees be passed back and forth between the various nodes of the system.
To define a PDDL tree in ROS, we use two custom messages, plansys2_msgs/Tree
and plansys2_msgs/Node
.
The contents of plansys2_msgs/Tree
is simply an array of type plansys2_msgs/Node
.
plansys2_msgs/Node[] nodes
The contents of plansys2_msgs/Node
contains the data relevant to the node as well as links to its children.
uint8 node_type
uint8 expression_type
uint8 modifier_type
uint32 node_id
uint32[] children
string name
plansys2_msgs/Param[] parameters
float64 value
bool negate
The node_type
defines the type of PDDL construct that the node represents.
The following values are currently supported by PlanSys2.
uint8 AND = 1
uint8 OR = 2
uint8 NOT = 3
uint8 ACTION = 4
uint8 PREDICATE = 5
uint8 FUNCTION = 6
uint8 EXPRESSION = 7
uint8 FUNCTION_MODIFIER = 8
uint8 NUMBER = 9
When the node_type
is EXPRESSION
, the expr_type
field is used to define the type of expression represented.
The following expressions types are currently supported by PlanSys2.
uint8 COMP_GE = 10
uint8 COMP_GT = 11
uint8 COMP_LE = 12
uint8 COMP_LT = 13
uint8 ARITH_MULT = 14
uint8 ARITH_DIV = 15
uint8 ARITH_ADD = 16
uint8 ARITH_SUB = 17
When the node_type
is FUNCTION_MODIFIER
the modifier_type
field is used to define the type of function modifier represented.
The following function modifier types are currently supported by PlanSys2.
uint8 ASSIGN = 18
uint8 INCREASE = 19
uint8 DECREASE = 20
uint8 SCALE_UP = 21
uint8 SCALE_DOWN = 22
The node_id
corresponds to the node’s location in the nodes list and takes on a value in the range [0, len(nodes)-1].
The children
list specifies the locations, or node id’s, of the node’s children.
The name
string and parameters
list are used by predicate and function nodes, which are defined
by a name and a list of parameters.
The value
field is used by PDDL functions and stores a numeric value.
Finally, the negate
field tracks whether the inverse truth value should be used.
For example, if a NOT
node is the parent of a PREDICATE
node, then the PREDICATE
node will
have a negate
value opposite that of the NOT
node’s value.
Actions
plansys2_msgs::action::ExecutePlan
- Used to start and continuously monitor the execution of a plan.
File truncated at 100 lines see the full file
Changelog for package plansys2_msgs
2.0.9 (2022-07-10)
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)
- Merge branch 'IntelligentRoboticsLabs:master' into master
- Contributors: Jake Keller
2.0.3 (2022-04-03)
2.0.2 (2022-04-03)
- Full supportr for (= _ _) PDDL constraints, added possibility to refer to constants, added initial test cases
- Add Status recency in performers
- Pddl domain (:constants ) handling and planning
- [domain_expert] GetDomainConstants service and tests
- [msgs] GetDomainConstants srv
- Contributors: Francisco Martín Rico, Jake Keller, Josh Zapf, Marco Roveri, Mostafa Gomaa
2.0.1 (2022-02-03)
- get-domain-name: Added service for retrieving domain name. Concatenating domain names when using multiple domains.
- Merge galactic-devel
- Contributors: Francisco Martín Rico, Josh Zapf
2.0.0 (2021-07-04)
1.0.10 (2021-07-03)
- Add ability to read in pddl problem files to plansys2 and a new AddProblem service to the plansys2_problem_expert. Adding problem_file node parameter to plansys2_problem_expert to load a single problem file at launch.
- ros2-plan-msg: Adding functions to plansys2_msgs/Knowledge message.
- ros2-plan-msg: Passing plan to executor to add further separation between plan creation and plan execution.
- pddl-tree-messages: Performing some minor cleanup.
- pddl-tree-messages: Merging master and resolving conflicts.
- Using custom behavior tree to enable action timeouts.
- pddl-tree-messages: Adding README to plansys2_msgs.
- pddl-tree-messages: Using ROS messages to define the PDDL construct trees.
- Plansys2_tests package
- 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ín Rico, Josh Zapf
1.0.9 (2021-03-15)
1.0.8 (2021-03-12)
- Action execution refactoring
- Adding isGoalSatisfied function and unit tests to the problem expert api.
- Fixing typo in message name.
- Add support for numeric conditions and effects.
- Remove unused field
- Publish knownledge content
- Monitorization info
- fix minor typo
- Contributors: Alexander Xydes, Fabrice Larribe, Francisco Martin Rico, Josh Zapf
1.0.7 (2021-01-04)
1.0.6 (2020-12-29)
1.0.5 (2020-12-28)
- Migration to c++17
- Contributors: Francisco Martín Rico
1.0.4 (2020-12-24)
1.0.3 (2020-12-23)
1.0.2 (2020-12-23)
- Plan solvers as plugins
- Contributors: Fabrice Larribe, Francisco Martin Rico, f269858
1.0.1 (2020-07-19)
1.0.0 (2020-07-19)
- Foxy initial version
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
- srv/AddProblem.srv
- srv/AddProblemGoal.srv
- srv/AffectNode.srv
- srv/AffectParam.srv
- srv/ClearProblemKnowledge.srv
- srv/ExistNode.srv
- srv/GetDomain.srv
- srv/GetDomainActionDetails.srv
- srv/GetDomainActions.srv
- srv/GetDomainConstants.srv
- srv/GetDomainDurativeActionDetails.srv
- srv/GetDomainName.srv
- srv/GetDomainTypes.srv
- srv/GetNodeDetails.srv
- srv/GetOrderedSubGoals.srv
- srv/GetPlan.srv
- srv/GetProblem.srv
- srv/GetProblemGoal.srv
- srv/GetProblemInstanceDetails.srv
- srv/GetProblemInstances.srv
- srv/GetStates.srv
- srv/IsProblemGoalSatisfied.srv
- srv/RemoveProblemGoal.srv