ROS 2 Clips-Executive
The ROS2 CLIPS-Executive offers an integration for CLIPS with the ROS ecosystem for developing knowledge-based applications.
CLIPS
CLIPS (C Language Integrated Production System) is a rule-based programming language designed for building expert systems. It was developed in the 1980s by NASA to provide a portable, efficient, and easy-to-use environment for developing knowledge-based applications. CLIPS uses a production rule system, where knowledge is represented as if-then rules. These rules operate on facts, which represent data or conditions in the system. The inference engine (based on the Rete algorithm) matches rules against facts and executes the applicable rules based on a conflict resolution strategy. Once no rules can be activated anymore, the execution is halted.
The documentation assumes a basic understanding of CLIPS. If you have never worked with CLIPS before, check out the documentation at clipsrules.net to get familiar with its functionalities.
The clips_vendor package provides a packaged version of CLIPS suitable for the ROS ecosystem (and is also used by the CLIPS-Executive).
Overview
The heart of the ROS2 CLIPS-Executive is the CLIPS Environment Manager node of the cx_clips_env_manager package that allows creating and destroying CLIPS environments and extending these environments through dynamically loadable plugins (e.g., to inject C++ functions).
Several plugins are provided out-of-the-box that enable interfacing with ROS as well as other useful features. See the CLIPS Plugins page for more information.
Package Index
The cx_bringup package provides example configurations of the CLIPS-Executive that serve as a good starting point for familiarization with the system.
To further customize CLIPS, refer to the cx_clips_env_manager documentation for more details on plugin handling. You may also review cx_example_plugin as a template for writing custom plugins.