ALBasicAwareness

NAOqi PeoplePerception - Overview | API | Getting started


What it does

ALBasicAwareness is a simple way to make the robot establish and keep eye contact with people.

How it works

The ALBasicAwareness module enables the robot to be aware of the stimuli coming from its surrounding environment. For further details, see: Types of stimulus.

The robot doesn’t look for stimuli, but if it gets one stimulus (with its associated position), it looks at the origin of the stimulus and checks if there is a human there.

  • If yes, it tracks it: the robot is now engaged with the user (engaged person)
  • Else, it goes back to its previous occupation:
    • if the robot was already tracking somebody before the stimulus was detected, it resumes tracking
    • else, its head goes back to the standard position.

Types of stimulus

It is possible to enable or disable the following types of stimulus:

Engagement Modes

To allow a wider range of behaviors, ALBasicAwareness provides 3 engagement modes that specify how “focused” the robot is on the engaged person.

  • “Unengaged”: (Default mode) when the robot is engaged with a user, it can be distracted by any stimulus, and engage with another person.
  • “FullyEngaged”: as soon as the robot is engaged with a person, it stops listening to stimuli and stays engaged with the same person. If it loses the engaged person, it will listen to stimuli again and may engage with a different person.
  • “SemiEngaged”: when the robot is engaged with a person, it keeps listening to the stimuli, and if it gets a stimulus, it will look in its direction, but it will always go back to the person it is engaged with. If it loses the person, it will listen to stimuli again and may engage with a different person.

Tracking Modes

  • “Head”: the tracking only uses the head
  • “BodyRotation”: the tracking uses the head and the rotation of the body
  • “WholeBody”: the tracking uses the whole body, but doesn’t make it rotate
  • “MoveContextually”: the tracking uses the head and autonomously performs small moves such as approaching the tracked person, stepping backward, rotating...

Performances and Limitations

ALBasicAwareness module is a “meta-module”, i.e. it uses other modules to add its extra features. The list of modules is the following:

Thus, parallel calls to these modules from another program or Choregraphe box when ALBasicAwareness is running should be done carefully.