README
Domain Expert
The Domain Expert module is responsible for maintaining the PDDL domain.
The main class is plansys2::DomainExpertNode, which is instantiated from DomainExpertNode.cpp. plansys2::DomainExpertNode is a rclcpp_lifecycle::LifecycleNode and in its configuration phase reads the model_file parameter, which contains the .pddl file from which to read the model.
The class responsible for maintaining this domain is plansys2::DomainExpert, which is independent of ROS2.
The Domain Expert does not change while active, accessing its functionality through ROS2 services. To facilitate the task of the application developer, an plansys2::DomainExpertClient class has been implemented that hides the complexity of handling ROS2 messages and services. Its API is similar to that of plansys2::DomainExpert, since both have to implement the plansys2::DomainExpertInterface interface.
Services:
/domain_expert/get_domain[plansys2_msgs::srv::GetDomain]/domain_expert/get_domain_action_details[plansys2_msgs::srv::GetDomainActionDetails]/domain_expert/get_domain_actions[plansys2_msgs::srv::GetDomainActions]/domain_expert/get_domain_durative_action_details[plansys2_msgs::srv::GetDomainDurativeActionDetails]/domain_expert/get_domain_durative_actions[plansys2_msgs::srv::GetDomainActions]/domain_expert/get_domain_function_details[plansys2_msgs::srv::GetNodeDetails]/domain_expert/get_domain_functions[plansys2_msgs::srv::GetStates]/domain_expert/get_domain_predicate_details[plansys2_msgs::srv::GetNodeDetails]/domain_expert/get_domain_predicates[plansys2_msgs::srv::GetStates]/domain_expert/get_domain_types[plansys2_msgs::srv::GetDomainTypes]/domain_expert/get_domain_constants[plansys2_msgs::srv::GetDomainConstants]