OpenPsi is an implementation, within OpenCog, of significant aspects of the Psi model of human motivation and emotion, inspired significantly by aspects of Joscha Bach's MicroPsi AI system. (However, MicroPsi also contains other aspects not included in OpenCog, for example a specific neural net like knowledge representation.)
An overview of Psi, oriented toward software implementation and tuning in the robotics context, is Emotion Modelling on the Hanson Robotics wiki. That page also contains many useful URLs linking into the relevant literature.
The current implentation can be found in github, here: opencog/openpsi. Very minimalist examples can be found here: examples/openpsi - these examples only illustrate the core "decider" subsystem, rather than the entire integrated robot.
The previous version of OpenPsi, as it worked in the 2007-2014 time-frame, is documented on the OpenPsi (2010) page. The source code that implemented that older version was removed from the github repositories in 2015.
Current status, Notes
The current OpenPsi system really consists of two parts: a rule-base, and a mechanism for selecting rules. The rules are of the generic form
- context + action -> goal
The "decider" picks among these rules to select a handful to be performed. The selection/decision process is probabilistic, and is driven by demands, modulated by modulators. These can be understood as an additional set of rules, in a somewhat different format, and are given some very emotionally laden names, such as "happiness/sadness", etc. However, these rules are also mechanistic; there is no particular reason to give them such laden names; they are completely configurable, and (for example) a fork-lift might operate under a much less emotionall-laden rule-selection process.
The central location defining the current robot model is here: psi-dynamics and the code that drives it can be found in the files referred to here. Openpsi(aka decider) is not closely coupled with the emotion modeling module; the modulators aren't influencing how action-selection is made presently.
other misc notes
This section to be cleaned up later:
- Sentiment analysis is here: opencog/nlp/chatbot/readme4sentiment -- this code should probably be moved to the ros-behavior-scripting repo.
- Global configuration is here: Sophis behavior config
We need to explain how these pieces all fit together ...