SoftBank Robotics documentation What's new in NAOqi 2.8?

ALPeoplePerception

NAOqi People Perception - Overview | API


What it does

ALPeoplePerception is an extractor which keeps track of the people around the robot and provides basic information about them. It gathers visual information from RGB cameras and a 3D sensor if available.

Once people have been detected and their attributes are constantly updated by ALPeoplePerception. All the gathered data are made available through ALMemory keys and raised events.

ALMemory keys examples:

  • Position in space relative to the FRAME_TORSO frame,
  • How long they have been detected for.

Raised events examples:

  • A new person is detected,
  • A person is considered as gone.

The whole list of memory keys and events is documented in ALPeoplePerception API.

How it works

ALPeoplePerception tries to find potential humans around the robot using visual cues.

People list

All new people detected in the current video frame are associated (when possible) with previously known people. This helps track someone and update his attributes. If a new person cannot be associated to a previously known person, it is added to the population.

Visible / Non visible people lists

When somebody gets out of the field of view, he/she is not immediately removed form the people list, as this disappearance may be temporary and the result of the robot movements.

So, the People list is divided in two sub-lists:

  • visible people list and
  • non visible people list.

When someone has not been seen for a while, he or she will be removed from the current population.

Two methods allow you to set the amount of time before a person is removed from the population:

Performances and limitations

The detection process may benefit from additional techniques to improve the detection but they generally require more CPU resources. They can be enabled or disabled by calling ALPeoplePerception::setFastModeEnabled. Currently only movement detection is impacted by the fast mode.

Another way to save processing resources is to limit the detection and tracking range. This is especially interesting when the robot is in close-range interaction because it does not always need to see many people at the same time and might need to save power for text-to-speech or dialog tasks for example. See ALPeoplePerception::setMaximumDetectionRange.

Warning

Please note that since some memory keys contain positions relative to the robot’s head position, their value can become erroneous when the robot moves.

Known limitations

The following conditions hinder correct detection:

  • Extremely strong back light. Especially if the cameras are directly hit by sunlight.
  • A person standing too close to: a wall, a human-sized object, or another person.
  • A person standing less than 0.5 meter from the robot.

It is recommended to avoid such conditions to ensure a better detection.

../../_images/backlight_sunlight.png

Example situation of extreme back light where ALPeoplePerception can fail to detect someone.