Contents
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
- FSM
Finite State Machine Intro
- FSM C++ Reference
Finite State Machine C++ Reference
- HSM
Writing Hierarchical FSM
- Behavior Trees
Behavior Trees Intro
- Behavior Trees C++ Reference
Behavior Trees C++ Reference
- CogniTAO (BDI)
BDI Intro
- CogniTAO C++ Reference
CogniTAO C++ Reference
Runtime
- Runtime inspection of Decision Making Models
Using ros and rqt to view, monitor, record and interact with the decision making model
ActionLib
- Actionlib API support
Create remote tasks as Actionlib Client
Textbook Examples
Dual Task FSM decision_making/Tutorials/DualTask FSM
Turnstile FSM decision_making_examples/Tutorials/Turnstile
Roomba FSM decision_making_examples/Tutorials/Roomba
Wandering Robot FSM decision_making_examples/Tutorials/FSM_Wandering
Event Raise HSM decision_making/Tutorials/Eventraise HSM
Increment TAO decision_making/Tutorials/Increment TAO
Example TAO decision_making/Tutorials/Example TAO
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
Questions: http://answers.ros.org, tag with decision_making
Bug reports, new feature requests: https://github.com/cogniteam/decision_making/issues
Use GitHub to report bugs or submit feature requests. [View active issues]