In order to act intelligently, there's
a lot of things you have to know about the world.
And one approach is to try and tell an artificial intelligence
program everything, write it out in great detail
and tell it all the facts.
By building a robot, we're trying
to build a system which can act in the world,
interact with people, and learn for itself,
and our hope is that will lead to a quicker
accumulation of the sort of knowledge
of what it is to act in the world,
so that we can have true artificial intelligence.
To encourage people to interact with the robot naturally,
we've built the robot to look like a human
and to act like a human.
Cog has two eyes, microphones for ears,
and a set of gyroscopes that give it a sense of balance.
Each of Cog's eyes has two cameras.
One that has a very wide angle, peripheral field of view
and one that has a very narrow field of view, but much higher
resolution.
Cog has a total of 21 degrees of freedom,
including two six degree of freedom arms,
three degrees of freedom in the torso, three in the neck,
and three in the eyes.
So my area of specialty is the arms of Cog
and in keeping with the rest of the project,
instead of trying to program the arms explicitly
so that I explicitly tell the arms what they should do,
I've been trying to program the arms so that they
respond to their environment and interact
with their environment.
I have the oscillators at these two joints here,
and they're getting feedback about how
the weight of the slinky goes from arm to arm,
and they're using that to coordinate the two joints.
And because the system is reactive
and I can stop this thing, when I let
go it will straightaway start again
into the right slinky action.
Using the same program and relying on this feedback
coupling between the program and its environment,
it means I can perform a lot of very different tasks.
So this pendulum swinging is one,
and the robot can also turn cranks.
So there, the robot does turn the crank a little bit.
The movement isn't smooth and it's somewhat jerky.
But then if I switch on the system
so that it is then feeling, at each joint if it senses
what the motion imposed by the crank
is and then tunes into that.
So here's a demonstration of the [INAUDIBLE] to motion routine.
And what you see is, Brian moves his hand around
and Cog moves his eyes to look directly at his moving hand.
The way that works is we have a routine shown here,
and this motion information is sent to a second routine, which
is learned previously, how to move the eyes to focus on
to any target.
When it gets that data, then it ends up
moving the eyes to focus on Brian's moving hand.
We've built a number of additional visual motor
routines, such as orienting to a salient stimulus,
tracking a moving object, and stabilizing the visual field
using a vestibular ocular reflex.
So without the vestibular ocular reflex,
as I move the head around, the eyes
follow the position of the head.
They don't actually follow the position
of the target out in the world.
With the vestibular ocular reflex,
the feedback from the gyroscopes controls the position
of the eyes.
So as I move it back and forth now,
the eyes stay locked towards me, they keep tracking the target
regardless of how I move the head,
even when I move it quite violently.
People recognize a number of different social cues
that are very important for the way they interact.
Things like eye contact are very important
to normal human social interactions.
We'd like to have our robot be able to recognize
these same sorts of social cues and be able to respond
to them appropriately.
Using models from developmental psychology
and from studies of autism, we've
been building systems that can utilize joint attention.
The first step is finding faces.
Once a face has been located, the robot [INAUDIBLE] to the
face in order to get a high resolution image of the eye.
One of the mechanisms for learning
in a social environment is imitation.
So you'd like the robot, perhaps,
to imitate you in what you're doing,
and this is something that you see very early in children.
By tracking the motion of the face,
the robot can imitate head nods.
The robot is only sensitive to faces,
not to any moving object.
The system also detects toys with faces
and imitates them in the same way.
I'm interested in learning in the social--
in a social context where it's the interaction
I try to exploit is something like an infant caretaker
interaction, where I'm the caretaker, essentially
and the robot is like an infant.
And I want to exploit these kinds of interactions
that parents have always been giving their children,
in terms of constraining the environment,
making the environment suitable for learning, helping
the infant learn over time.
And the motivations play a critical role in that,
as far as the infant telling the mother, am I being overwhelmed,
am I being bored, how should you be
interacting with me to optimize my learning ability?
And me being the caretaker, being
very receptive to reading these emotional issues
and responding to them in the way
I interact with the robot to promote its learning.
This is Kismet.
Kismet is my infant robot.
It gives me facial expressions, which tells me
what its motivational state is.
This first one is anger, extreme anger, disgust, excitement,
its fear, this is happiness, this one is interest,
this one is sadness, surprise, this one is tired,
and this one is sleep.
In a suitable learning environment,
Kismet's drives are in homeostatic balance.
This means that the robot is neither under-stimulated nor
overwhelmed by its interaction with the caretaker.
Stimulation intensity is computed
by the perceptual system, moving faces, or a social stimuli,
whose intensity is proportional to the amount of motion.
Any other motions treated as a nonsocial stimulus.
Kismet works with the caretaker to keep the perceptual stimuli
within an acceptable range.
Kismet's emotions and expressions
reflect its motivational state.
By reading Kismet's facial expressions,
the caretaker can respond to the robot's needs
and stimulate the robot appropriately.
One of Kismet's drives is to be social.
If Kismet does not receive any social stimulation,
it becomes lonely and looks sad.
The caretaker responds by making face
to face contact with the robot.
This satiates the social drive and Kismet displays happiness.
However, if the social stimulus is too intense,
Kismet becomes asocial and shows disgust.
This is a cue for the caretaker to back off and restore
the interaction to a suitable intensity level.
Kismet's face detector picks up the face of a toy cow.
As a result, Kismet uses the cow stimulus
to satiate its social drive.
Kismet's loneliness is satiated by the appearance of the toy
cow.
However, if the caretaker overstimulates
Kismet with the toy cow, Kismet shows displeasure.
Once the caretaker backs off, the social drive
is restored and Kismet returns to an interested and happy
state.
Another drive is to be stimulated
with toys and other objects.
When left unstimulated, Kismet grows bored and appears sad.
When the caretaker uses a slinky to play with the robot,
its stimulation drive is satiated
and the robot appears interested.
However, if the caretaker begins to overwhelm the robot,
a look of fear appears on its face.
Large slinky motions are confusing and intimidating.
Kismet's expression of fear tells the caretaker
that she is frightening the robot and should back off.
Kismet's mental stimulation drive
is also satiated by a toy block.
Similarly, Kismet can be overstimulated by the block.
Again, Kismet displays an expression of fear.
Extreme overstimulation causes the robot
to block out external stimuli by closing its eyes
and going to sleep.