Difference between revisions of "The CINDY Cognitive Architecture"
m (Dvernon moved page CINDY Cognitive Architecture to The CINDY Cognitive Architecture) |
|||
(30 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | == Long-term Goal == | |
− | + | CINDY stands for '''Ci'''rcular '''N'''etwork '''Dy'''namics. As a project in developing a complete cognitive system, it is just getting started. It is based on several other cognitive architectures, especially the iCub cognitive architecture [Vernon et al. 2007; Vernon et al. 2011]. | |
− | CINDY | + | While CINDY is a work-in-progress the long-term goal is to design and implement of an emergent artificial cognitive system that builds on the principles of growth and development through circular causality, sharing many of the principles of the field of Systems Dynamics, Second-order Cybernetics, and Enaction (e.g. positive feedback, circular causality, non-linearity, far-from-equilibrium stability, endogenous change, structurally-determined dynamic patterns). |
+ | |||
+ | At present, CINDY focusses mainly on visual attention because the attention problem shares many of the features of cognition in general. Specifically, it has components dedicated to | ||
− | * exogenous | + | * exogenous attention (both overt and covert) |
− | * joint perceptuo-motor representations ( | + | * joint perceptuo-motor representations (i.e. joint episodic-procedural memory) |
− | * value-system driven development | + | |
− | + | I am currently implementing | |
+ | |||
+ | * endogenous attention (both overt and covert) | ||
+ | * value-system driven development | ||
+ | |||
+ | Eventually, CINDY will feature predictive action selection based on internal simulation | ||
+ | |||
+ | Currently, the attention system uses Bruce's Attention based Information Maximization (AIM) saliency filter [Bruce and Tsotsos 2009], Tsotsos's Selective Tuning Model [Tstotsos et al 1995] for winner-take-all selection of fixation points, and a custom implementation of inhibition of return (IOR) and habituation using decaying and growing Gaussian function, respectively, the parameters of which are user selectable through a dedicated GUI. Log-polar images of fixation points are stored in episodic memory and saccade gaze control commands are stored in procedural memory. These are combined as a network of image and gaze identification indices and stores in joint episodic-procedural memory. | ||
+ | |||
+ | CINDY, as a software system, also has two prototype components that serve as examples of how a typical component in the architecture should be implemented. These are included to show students how to develop components for CINDY, in particular, but more generally '''these prototype components can also be used as the basis for developing applications using the component-port-connector model of component-based software engineering''' [Brugali and Scandurra 2009; Brugali and Shakhimardanov 2010, and Bruyninckx et al. 2013]. One of the prototypes features a graphic user interface (GUI) implemented using FLTK, while the other does not. | ||
+ | |||
+ | == What to Do Next == | ||
The following sections will help you install the current implementation and run some test applications. It also provides a comprehensive overview of how to develop a new component for the architecture. | The following sections will help you install the current implementation and run some test applications. It also provides a comprehensive overview of how to develop a new component for the architecture. | ||
− | There are also a set of software engineering standards which have been adopted to make sure the software can be maintained in the long term. Please respect these standards if you are developing code that you intend to be integrated into the architecture. | + | There are also a set of software engineering standards which have been adopted to make sure the software can be maintained in the long term. Please respect these standards if you are developing code that you intend to be integrated into the architecture. |
+ | |||
+ | These guides and standards were originally developed for the [http://www.icub.org iCub] in the [http://www.robotcub.eu RobotCub] project and subsequently adapted for the [http://www.dream2020.eu DREAM] project. | ||
== Developer Guides == | == Developer Guides == | ||
Line 18: | Line 33: | ||
* [[Software Users Guide]] | * [[Software Users Guide]] | ||
* [[Software Development Guide]] | * [[Software Development Guide]] | ||
− | + | <!-- * [[Component Reference Manual]] --> | |
− | + | ||
− | * [[Component Reference Manual]] | + | |
== Software Engineering Standards == | == Software Engineering Standards == | ||
− | * [[ | + | * [[Standards for File Organization]] |
− | * [[ | + | * [[Standards for Internal Documentation]] |
− | * [[ | + | * [[Standards for Component Functionality]] |
− | * [[ | + | * [[Standards for Programming Style]] |
− | * [[ | + | * [[Standards for Programming Practice]] |
− | + | ||
+ | == References == | ||
+ | |||
+ | N. D. B. Bruce and J. K. Tsotsos. Saliency, attention, and visual search: An information theoretic approach. Journal of Vision, 9(3):1–24, 2009. | ||
+ | |||
+ | D. Brugali and P. Scandurra. Component-Based Robotic Engineering (Part I). IEEE Robotics and Automation Magazine, pages 84–96, December 2009. | ||
+ | |||
+ | D. Brugali and A. Shakhimardanov. Component-Based Robotic Engineering (Part II). IEEE Robotics and Automation Magazine, pages 100–112, March 2010. | ||
+ | |||
+ | H. Bruyninckx, M. Klotzbücher, N. Hochgeschwender, G. Kraetzschmar, L. Gherardi, and D. Brugali. The BRICS component model: A model-based development paradigm for complex robotics software systems. In Proceedings of the 28th Annual ACM Symposium on Applied Computing, SAC ‘13, pages 1758–1764, New York, NY, USA, 2013. ACM. | ||
+ | |||
+ | J. K. Tsotsos, S. Culhane, W. Wai, Y. Lai, N. David, and F. Nuflo. Modeling visual attention via selective tuning. Artificial Intelligence, 78:507–547, 1995. | ||
+ | |||
+ | [http://vernon.eu/publications/07_Vernon_Metta_Sandini_ICDL.pdf D. Vernon, G. Metta, and G. Sandini, "The iCub Cognitive Architecture: Interactive Development in a Humanoid Robot", IEEE International Conference on Development and Learning, Imperial College, London, July 2007.] | ||
+ | |||
+ | [http://vernon.eu/publications/10_Vernon_vonHofsten_Fadiga_COSMOS_Extracts.pdf D. Vernon, C. von Hofsten, and L. Fadiga. "A Roadmap for Cognitive Development in Humanoid Robots", Cognitive Systems Monographs (COSMOS), Vol. 11, Springer, ISBN 978-3-642-16903-8, 2011. Book Extracts.] | ||
+ | |||
+ | [http://vernon.eu/publications/15_Vernon_et_al_Frontiers.pdf D. Vernon, R. Lowe, S. Thill, and T. Ziemke, "Embodied Cognition and Circular Causality: On the Role of Constitutive Autonomy in the Reciprocal Coupling of Perception and Action"], [http://journal.frontiersin.org/article/10.3389/fpsyg.2015.01660/full Frontiers in Psychology, Vol. 6, No. 1660, 2015] | ||
+ | |||
+ | [http://vernon.eu/15_Vernon_Beetz_Sandini_Frontiers.pdf D. Vernon, M. Beetz, and G. Sandini, "Prospection in cognition: the case for joint episodic-procedural memory"], [http://journal.frontiersin.org/article/10.3389/frobt.2015.00019/full Frontiers in AI and Robotics, Vol. 2, No. 19, 2015.] |
Latest revision as of 04:35, 17 July 2016
Contents
Long-term Goal
CINDY stands for Circular Network Dynamics. As a project in developing a complete cognitive system, it is just getting started. It is based on several other cognitive architectures, especially the iCub cognitive architecture [Vernon et al. 2007; Vernon et al. 2011].
While CINDY is a work-in-progress the long-term goal is to design and implement of an emergent artificial cognitive system that builds on the principles of growth and development through circular causality, sharing many of the principles of the field of Systems Dynamics, Second-order Cybernetics, and Enaction (e.g. positive feedback, circular causality, non-linearity, far-from-equilibrium stability, endogenous change, structurally-determined dynamic patterns).
At present, CINDY focusses mainly on visual attention because the attention problem shares many of the features of cognition in general. Specifically, it has components dedicated to
- exogenous attention (both overt and covert)
- joint perceptuo-motor representations (i.e. joint episodic-procedural memory)
I am currently implementing
- endogenous attention (both overt and covert)
- value-system driven development
Eventually, CINDY will feature predictive action selection based on internal simulation
Currently, the attention system uses Bruce's Attention based Information Maximization (AIM) saliency filter [Bruce and Tsotsos 2009], Tsotsos's Selective Tuning Model [Tstotsos et al 1995] for winner-take-all selection of fixation points, and a custom implementation of inhibition of return (IOR) and habituation using decaying and growing Gaussian function, respectively, the parameters of which are user selectable through a dedicated GUI. Log-polar images of fixation points are stored in episodic memory and saccade gaze control commands are stored in procedural memory. These are combined as a network of image and gaze identification indices and stores in joint episodic-procedural memory.
CINDY, as a software system, also has two prototype components that serve as examples of how a typical component in the architecture should be implemented. These are included to show students how to develop components for CINDY, in particular, but more generally these prototype components can also be used as the basis for developing applications using the component-port-connector model of component-based software engineering [Brugali and Scandurra 2009; Brugali and Shakhimardanov 2010, and Bruyninckx et al. 2013]. One of the prototypes features a graphic user interface (GUI) implemented using FLTK, while the other does not.
What to Do Next
The following sections will help you install the current implementation and run some test applications. It also provides a comprehensive overview of how to develop a new component for the architecture.
There are also a set of software engineering standards which have been adopted to make sure the software can be maintained in the long term. Please respect these standards if you are developing code that you intend to be integrated into the architecture.
These guides and standards were originally developed for the iCub in the RobotCub project and subsequently adapted for the DREAM project.
Developer Guides
Software Engineering Standards
- Standards for File Organization
- Standards for Internal Documentation
- Standards for Component Functionality
- Standards for Programming Style
- Standards for Programming Practice
References
N. D. B. Bruce and J. K. Tsotsos. Saliency, attention, and visual search: An information theoretic approach. Journal of Vision, 9(3):1–24, 2009.
D. Brugali and P. Scandurra. Component-Based Robotic Engineering (Part I). IEEE Robotics and Automation Magazine, pages 84–96, December 2009.
D. Brugali and A. Shakhimardanov. Component-Based Robotic Engineering (Part II). IEEE Robotics and Automation Magazine, pages 100–112, March 2010.
H. Bruyninckx, M. Klotzbücher, N. Hochgeschwender, G. Kraetzschmar, L. Gherardi, and D. Brugali. The BRICS component model: A model-based development paradigm for complex robotics software systems. In Proceedings of the 28th Annual ACM Symposium on Applied Computing, SAC ‘13, pages 1758–1764, New York, NY, USA, 2013. ACM.
J. K. Tsotsos, S. Culhane, W. Wai, Y. Lai, N. David, and F. Nuflo. Modeling visual attention via selective tuning. Artificial Intelligence, 78:507–547, 1995.
D. Vernon, R. Lowe, S. Thill, and T. Ziemke, "Embodied Cognition and Circular Causality: On the Role of Constitutive Autonomy in the Reciprocal Coupling of Perception and Action", Frontiers in Psychology, Vol. 6, No. 1660, 2015
D. Vernon, M. Beetz, and G. Sandini, "Prospection in cognition: the case for joint episodic-procedural memory", Frontiers in AI and Robotics, Vol. 2, No. 19, 2015.