Table of contents generated with markdown-toc
Note: This documentation is related to the DSR/CORTEX components. You can find the DSR/CORTEX related library in robocomp repository (libs/dsr) with some developer documentation to use the APIs and UIs.
CORTEX is a long term effort to build a series of architectural designs around the simple idea of a group of agents that share a distributed, dynamic representation acting as a working memory. This data structure is called Deep State Representation (DSR) due to the hybrid nature of the managed elements, geometric and symbolic, and concrete (laser data) and abstract (logical predicates). A CORTEX instance is a set of software components, called agents, that share a distributed data structure called (G)raph playing the role of a working memory. Agents are C++ programs that can be generated using RoboComp's code generator, robocompdsl.
The illustration shows a possible instance of the CORTEX architecture. The central part of the ring contains the DSR graph that is shared by all agents, from whom a reference implementation is presented here. Coloured boxes represent agents providing different functionalities to the whole. The purple box is an agent that can connect to the real robot or to a realistic simulation of it, providing the basic infrastructure to explore prediction and anticipation capabilities
đź”´ Attention: these are not instructions to install DSR!
đź”´ Check the libs/dsr documentation for specific instructions on the installation of the needed infrastructure.
To install these components in this repository it's assumed that you have already installed robocomp. You must clone this (dsr-graph) repository in ~/robocomp/components/
cd ~/robocomp/components/
git clone https://github.com/robocomp/dsr-graph/
cd dsr-graph/components/
Note: In Ubuntu 20.04 you need to replace the file in
sudo cp TriangleFunctor /usr/include/osg
Note: To compile some agents you need g++-10.2 and change the directive set(CMAKE_CXX_STANDARD 17) to set(CMAKE_CXX_STANDARD 20) but then you'll get a compilation error in one of ZeroC's Ice include files. Please, replace it with:
sudo cp Connection.h /usr/include/Ice/Connection.h
Goto to this tutorial where you can follow several use cases of increasing complexity.
P. Bustos GarcĂa, L. Manso ArgĂĽelles, A. J. Bandera, J. P. Bandera, I. GarcĂa-Varea, and J. MartĂnez-GĂłmez, «The CORTEX cognitive robotics architecture: Use cases,» Cognitive Systems Research, vol. 55, pp. 107-123, 2019. https://robolab.unex.es/wp-content/papercite-data/pdf/luis-pablo-cortex.pdf
P. Núñez Trujillo, L. J. Manso ArgĂĽelles, P. Bustos GarcĂa, P. Drews-Jr, and D. G. Macharet, «A Proposal for the Design of a Semantic Social Path Planner using CORTEX Ëś,» in Workshop of Physical Agents 2016, Málaga, Spain, 2016. https://robolab.unex.es/wp-content/papercite-data/pdf/proposal-design-semantic.pdf
L. V. Calderita EstĂ©vez and P. Bustos GarcĂa, «Deep State Representation: an Unified Internal Representation for the Robotics Cognitive Architecture CORTEX,» PhD Thesis, ., 2015. https://robolab.unex.es/wp-content/papercite-data/pdf/deep-state-representation.pdf
P. Bustos GarcĂa, L. Manso ArgĂĽelles, A. J. Bandera, J. P. Bandera, I. GarcĂa-Varea, and J. MartĂnez-GĂłmez, «The CORTEX cognitive robotics architecture: Use cases,» Cognitive Systems Research, vol. 55, pp. 107-123, 2019. https://robolab.unex.es/wp-content/papercite-data/pdf/luis-pablo-cortex.pdf
P. Bustos GarcĂa, L. J. Manso ArgĂĽelles, A. Bandera, J. P. Bandera, I. GarcĂa-Varea, and J. MartĂnez-GĂłmez, «CORTEX: a new Cognitive Architecture for Social Robots,» in EUCognition Meeting – Cognitive Robot Architectures, Viena, 2016. https://robolab.unex.es/wp-content/papercite-data/pdf/cortex-new-cognitive-architecture.pdf
Paulo Sérgio Almeida, Ali Shoker, Carlos Baquero, «Delta State Replicated Data Types» Journal of Parallel and Distributed Computing, Volume 111, January 2018, Pages 162-173 https://arxiv.org/abs/1603.01529