Overview

Decision making package is being actively developed by Cogniteam http://wiki.ros.org/cogniteam-ros-pkg. The goal of this package is to implement light-weight, generic and extendable tools for writing, executing, debugging and monitoring decision making models through ROS standard tools.

Installation

Create your catkin workspace

mkdir catkin_workspace
cd catkin_workspace
mkdir src
cd src
catkin_init_workspace
cd ..
catkin_make
source devel/setup.bash

Check out and compile decision_making packages

cd src
git clone https://github.com/cogniteam/cognitao.git
cd ..
catkin_make

How to use

Navigate to your catkin workspace source directory (in our case .../catkin_workspace/src), and create new package:

catkin_create_pkg decision_making_tutorial roscpp decision_making decision_making_parser

Now you can create your decision making models. After creating your model, add the following line to the CMakeLists.txt file (just after target_link_libraries command):

decision_making_parsing(src/your_dm_model.cpp)

This command ensures that your model will be converted to xml and dot formats (for visualization)


Tutorials

Decision Making Models

  1. FSM

    Finite State Machine Intro

  2. FSM C++ Reference

    Finite State Machine C++ Reference

  3. HSM

    Writing Hierarchical FSM

  4. Behavior Trees

    Behavior Trees Intro

  5. Behavior Trees C++ Reference

    Behavior Trees C++ Reference

  6. CogniTAO (BDI)

    BDI Intro

  7. CogniTAO C++ Reference

    CogniTAO C++ Reference

Runtime

  1. Runtime inspection of Decision Making Models

    Using ros and rqt to view, monitor, record and interact with the decision making model

ActionLib

  1. Actionlib API support

    Create remote tasks as Actionlib Client

Simulated Robot examples

The following collection of packages are practical use cases of the decision_making_tools in simulated robots.

Decision Making Models in progress

  • Behavior trees
    • Decorators
    • Visualization
    • Tutorials
  • Plan execution based architectures / BDI
    • Tutorials
  • Rule Based
  • Fuzzy logic control

ROS API

decision_making

Subscribed Topics

/decision_making/NODE_NAME/events (std_msgs/String)
  • Events to the decision making model

Published Topics

/diagnostics (diagnostic_msgs/DiagnosticStatus)
  • State information

Technical support

Use GitHub to report bugs or submit feature requests. [View active issues]

Wiki: decision_making (last edited 2019-12-23 09:22:56 by Ari Yakir)