Jean-François Cloutier – Modeling The Mind Of An Autonomous Robot

video:

Explore DDD 2017 – Denver, Sept. 21-22

A couple of years ago, Jean-François found out he could program a Lego EV3 robot using his favorite concurrent programming language (Elixir). Way back in the 80s, he had read Marvin Minsky's "Society of Mind". Now was my chance to implement a simplified version of it, just enough to give a Lego robot interesting autonomous behaviors. Minsky's Society of Mind calls for many agents doing simple things and interacting in simple ways, causing emergent behaviors we perceive as intelligent. So Jean-François set out to design and implement a simple model of the mind, with concurrent agents responsible for perception, memory, motivation, attention, behavior, and actuation.

It worked! His robot could "feel" hunger, fear, or curiosity and act accordingly, always "aware" of its environment. He then extended his model to encompass simple social interactions between robots, such as greed and panic. It was all great fun. Stepping back, he now realizes that the most engrossing aspect of this project was coming up with a working domain model for the mind, and defining a domain language for cognition. He shares his journey.

About Jean-François

An avid programmer since the mid-80s, I have used and abused Prolog, LISP, Smalltalk, Java, Erlang, and Elixir. Years spent in corporate IT departments and with startups have me convinced that a lack of conceptual clarity is the death of software projects, which makes me a friend of Domain-Driven Design.

Jean is currently a software architect at Starlit Software. He lives and works in Portland, Maine.

In his spare time, he trains obsessively at Aikido of Maine, organizes the local Erlang/Elixir and Elm meetups, and dabbles in robotics with the Lego Robotics sets he bought "for his son".

WEBSITE: http://exploreddd.com
TWITTER: http://twitter.com/ExploreDDD

Tags

Follow us

Read our latest news from Virtual DDD on any of these social networks!

Recent videos

Systems Thinking Intro with Lorraine Steyn

Systems thinking is the macro behaviour that we must understand in analyzing our world. A system always produces what it is designed to do, even if that isn't at all what we meant it to do! Systems are self-maintaining, and contain balancing and/or reinforcing...