CoBaIR is a Python library for Context Based Intention Recognition
CoBaIR is a python library for Context Based Intention Recognition.
It provides the means to infer an intention from given context.
An intention is a binary value e.g.
repair pipe that can either be present or not. Only one intention can be present at a time.
Context on the otherhand can have multiple discrete instantiations e.g.
If context values are continuous, discretizer functions can be used to create discrete values.
From the infered intention in a HRI scenario the robot can perform corresponding actions to help the human with a specific task.
For a more in-depth explanation consult the following papers:
pip install CoBaIR
You can install the library from your local copy after cloning this repo with pip using
pip install .
or install the newest experimental features from the
develop branch with
pip install git+https://github.com/dfki-ric/CoBaIR.git@develop
On some Linux Distros there seems to be a problem with a shared library. This Solutions suggests to
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 which works on Ubuntu 22.04.
Graphical User Interface
To make the configuration of a scenario easier we provide a Graphical User Interface(GUI). The GUI can be started with
if you want to start the GUI with a loaded config use
python start_configurator.py -f config.yml
The Documentation can be accessed on https://dfki-ric.github.io/CoBaIR/
In the bayesian approach CoBaIR uses a two-layer Bayesian Net of the following structure.
Configs will be saved in yml files. For convenience the is a configurator which can be started with
The configuration file for a two layer bayesian net for context based intention recognition follows the given format:
# List of contexts. Contexts can have different discrete instantiations. # Number of instantiations must be larger than 1. # For all discrete instantiations a prior probability must be given(sum for one context must be 1) contexts: context 1: instantiation 1 : float . instantiation m_1 : float context n: instantiation 1 : float . instantiation m_n : float # List of intentions. Intentions are always binary(either present or not) # For every intention the context variables and their influence on the intention is given # [very high, high, medium, low, very low, no] => [5, 4, 3, 2, 1, 0] intentions: intention 1: context 1: instantiation 1: int # one out of [5, 4, 3, 2, 1, 0] . instantiation m_1: int # one out of [5, 4, 3, 2, 1, 0] context n: instantiation 1: int # one out of [5, 4, 3, 2, 1, 0] . instantiation m_n: int # one out of [5, 4, 3, 2, 1, 0] intention p: context 1: instantiation 1: int # one out of [5, 4, 3, 2, 1, 0] . instantiation m_1: int # one out of [5, 4, 3, 2, 1, 0] context n: instantiation 1: int # one out of [5, 4, 3, 2, 1, 0] . instantiation m_n: int # one out of [5, 4, 3, 2, 1, 0] # decision_threshold is a float value between 0 and 1 which decides # when an intention should be considered in inference. # Probability must be greater than decision_threshold. decision_threshold: float
How to contribute
If you find any Bugs or want to contribute/suggest a new feature you can create a Merge Request / Pull Request or contact me directly via email@example.com
Tests are implemented with pytest. To install test dependencies you need to run
pip install -r requirements/test_requirements.txt
Then you can run
python -m pytest tests/
You can as well see the test report for a specific commit in gitlab under pipeline->Tests
If you want to see coverage for the tests you can run
coverage run -m pytest tests/
You can as well see the coverage for a specific job in gitlab under jobs
To show results of the coverage analysis.
Install all dependencies for building the docu with
pip install -r requirements/doc_requirements.txt
Build the docu with
The documentation will be in the
Adrian Lubitz & Arunima Gopikrishnan
CoBaIR is currently developed in the Robotics Group of the University of Bremen, together with the Robotics Innovation Center of the German Research Center for Artificial Intelligence (DFKI) in Bremen. CoBaIR has been funded by the German Federal Ministry for Economic Affairs and Energy and the German Aerospace Center (DLR). CoBaIR been used and/or developed in the KiMMI-SF project.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.