Initial Release of OmniPlan
Overview
This is the initial release of OmniPlan, a comprehensive ROS 2 framework designed for automated task planning and execution in robotic applications. This release establishes the architecture for integrating classical PDDL planners with flexible execution mechanisms, supporting both knowledge base and knowledge graph approaches for state management.
New Features
Core Framework
- Plugin Architecture: Extensible design using ROS 2 pluginlib for seamless integration of new planners, plan validators, knowledge sources and execution mechanisms.
- PDDL Support: domain and problem generation with proper encapsulation classes.
- Parameter Management: Centralized parameter loading system for all components.
Planners Integration
- POPF Planner: Integration of the POPF planner.
- SMTP Planner: Support for SMTPlan+.
- VHPOP Planner: Implementation of VHPOP.
Plan Validation
- VAL Integration: Built-in plan validation using the VAL tool.
Execution Mechanisms
- Direct Actions: Basic action execution framework.
- YASMIN State Machines: Integration with YASMIN for state machine-based execution.
- Behavior Trees: Support for Behavior Tree execution.
Knowledge Management
- Knowledge Base: ROS 2 node-based knowledge base implementation.
- Knowledge Graph: Graph-based knowledge representation.
- Extensible Interface: Plugin system for custom knowledge sources.
ROS 2 Packages
omni_plan: Core planning framework.omni_plan_popf: POPF planner integration.omni_plan_smtp: SMTP planner integration.omni_plan_vhpop: VHPOP planner integration.omni_plan_val: Plan validation tools.omni_plan_knowledge_base: Knowledge base implementation.omni_plan_knowledge_graph: Knowledge graph implementation.omni_plan_yasmin: YASMIN integration.omni_plan_bt: Behavior Tree integration.omni_plan_demos: Demonstration applications.omni_plan_tests: Comprehensive test suite.omni_plan_msgs: ROS 2 message definitions.omni_plan_bringup: Launch and configuration files.
Development Tools
- CI/CD Pipelines: GitHub Actions workflows for building and testing across ROS 2 distributions (Foxy, Galactic, Humble, Iron, Jazzy, Kilted, Rolling).
- Code Formatting: Automated C++ and Python code formatting checks.
- Documentation: Doxygen integration and comprehensive README.