SoftBank Robotics documentation What's new in NAOqi 2.8?

APIs – Synthesis – from 2.1 to 2.8


Core - New services

New service: ALExpressionWatcher

ALExpressionWatcher allows you to be notified or query the validity of a condition expression.

For further details, see: ALExpressionWatcher.

New service: ALKnowledge

ALKnowledge implements a triplestore which is a way to store information in a Subject-Predicate-Object representation. It uses a library called Soprano.

For further details, see: ALKnowledge.

New service: ALUserInfo

ALUserInfo provides a simple API to store and get information about a given user. It is built on top of ALKnowledge.

For further details, see: ALUserInfo.

Core - Improvements

ALAutonomousLife: new methods

Methods for Autonomous Ability management:

And also:

New extractor for life: ALMood

ALMood is now part of the extractors started automatically by Autonomous Life.

For further details, see: ALMood Activated during Autonomous Life and Extractors management.

Conditions expression language: new types supported

The conditions expression language, used by Launch trigger conditions and ALExpressionWatcher, now takes signals and maps.

For further details, see: Conditions expression language.

Trigger conditions: improved

  • New operators and functions for trigger conditions: @, #, bang(), stable(), pref(), int(), float(), string()
  • Non-existing memory keys used in a trigger condition will make that key evaluate to false instead of ignoring the entire condition. Uninitialized memory keys (with ALValue type “Invalid”) also evaluate to false.

For further details, see: Launch trigger conditions.

rand: new Trigger Condition operator

A new random operator returns a random value according to parameters.

For further details, see: Conditions expression language.

ServiceManager: error recovery added

If your service is an autorun service and it crashes, it is now restarted by the ServiceManager.

For further details, see: ServiceManager.

ServiceManager: new methods

Add start|stop|restart API to ServiceManager API that throw on error.

ALDiagnosis: new method and event

To summarize active and passive diagnostic results:

  • ALDiagnosisProxy::getDiagnosisStatus
  • ALDiagnosis/DiagnosisErrorChanged()

ALUserSession: API finalized

ALUserSession is no longer a “work in progress”.

New methods to get user creation and detection dates:

New methods for users introspection:

New methods for translating a UserSession ID in a PeoplePerception ID and conversely:

API change for user bindings introspection:

Data sources API deprecated, the following methods should not be used anymore:

Note: use ALUserInfo to store user data.

ALUserSession: improved user recognition

When a user is focused by ALBasicAwareness, ALUserSession tries to recognize them only with good quality pictures. It can make the overall process a bit longer but reduces the risk of false positives.

Core - Deprecated

ALStore: deprecated module

ALStore has been deprecated. Do not use it.

Interaction engines

Interaction engines - New services

New service: ALAutonomousBlinking

ALAutonomousBlinking enables the robot to make its eye LEDs blink when it sees someone and when it is interacting.

For further details, see: ALAutonomousBlinking.

New service: ALBackgroundMovement

ALBackgroundMovement triggers some slight movements that the robot does autonomously. If the robot makes some other motion (i.e. there is a call to a method of ALMotion), the background movements are stopped until the motion is done.

For further details, see: ALBackgroundMovement.

New service: ALListeningMovement

ALListeningMovement enables some slight movements showing that the robot is listening.

For further details, see: ALListeningMovement.

New service: ALSpeakingMovement

ALSpeakingMovement enables to start autonomously movements during the speech of the robot.

For further details, see: ALSpeakingMovement.

New: Dialog lexicon

The content of the Dialog lexicon is published.

For further details, see: Dialog Lexicon.

New: use Basic Channel topics in applications

It is now possible to include Basic Channel topics in applications.

For further details, see: include.

ALDialog - Improvements

Collaborative Dialog fully integrated

Collaborative Dialog management is now fully integrated. It is available by default on all robots.

It means that any topic tagged as Collaborative Dialog is automatically activated when Talking with Pepper.

For further details, see: Collaborative dialog vs applications.

Collaborative Dialog uses the Semantic Engine

During a Collaborative Dialog, the Semantic Engine is activated. So, be aware of the additional content it brings.

For further details, see:

QiChat: language management improved

New syntax to specify the language of a topic: use the English name of the language, like French or Japanese, instead of the former codification, like frf or jpj:

language: English

language: enu # DEPRECATED since 2.7

For further details, see QiChat reference about language.

QiChat: file management improved

include & unloadTopic

In order to avoid unpredictable side effects between topics, ALDialogProxy::unloadTopic has no effect on topics loaded via an include instruction.

%script ^call & Dialog Engine

In order to avoid unexpected effects, it is no longer allowed to use a %script or a ^call to call back the Dialog Engine.

ALBasicAwareness - Improvements

Pausing and resuming ALBasicAwareness

ALBasicAwareness can be paused, which means it will stop making the robot move until it is resumed.

For further details, see: Pausing and Resuming.

Interaction engines - Deprecated

Deprecated module: ALAutonomousMoves

Deprecated modules
ALAutonomousMoves Use the ALBackgroundMovement and ALListeningMovement instead.

Run_dialog is deprecated and disabled

Collaborative Dialog management is now fully integrated: as a consequence, former Run_dialog applications are now useless.

In order to avoid redundant call and potential conflicts, an empty Run_dialog application is now installed as a system application on the robot, preventing former version to override it.

ALDialog: deprecated methods

Deprecated Methods Instead, use ...
ALDialogProxy::setASRConfidenceThreshold ALDialogProxy::setConfidenceThreshold
ALDialogProxy::getASRConfidenceThreshold ALDialogProxy::getConfidenceThreshold
  • ALDialogProxy::startApp
  • ALDialogProxy::startUpdate


Emotion - New services

New service: ALMood

ALMood reads instantaneous emotion of persons and ambiance.

For further details, see: ALMood.


Motion - New services

New service: ALAnimationPlayer

ALAnimationPlayer allows you to run animations. This service is a wrapper of ALBehaviorManager, its goal is to have an easy way to start animations according to animation tags or the current posture of the robot.

ALAnimationPlayer is used by ALAnimatedSpeech and brings some new features to this module (dynamic selection of animations depending on robot position and model).

For further details, see: ALAnimationPlayer.

ALNavigation: New experimental exploration APIs

ALNavigation implements new APIs dedicated to exploration & localization.


This is still a work in progress, and API may change in the future.

For further details, see: Mapping and Localization and Exploration API.

Motion - Improvements

ALMotion move methods improved

Pepper: Leg animations are now supported during move.

The former limitations during a Move command, are now removed. It is now possible to generate animation on the leg joints, using directly: HipPitch, KneePitch and even HipRoll joint.

ALMotion: wakeUp method improved

ALMotion: new event

Obstacle avoidance for ALRecharge

ALRecharge now uses ALNavigationProxy::navigateTo when going to the Charging station from far distance, so he is able to avoid obstacles.

ALRecharge: new error code

The following method now returns an ALValue containing an int errorcode:

The following methods now returns an int errorcode:

For further details, see: errorcode.

Push Recovery reflex improved

Push recovery reactivity has been improved, allowing a stronger reaction of the robot to a potential fall.

For further details, see: Push Recovery.

Motion - Deprecated

ALRobotPose: module removed

Use ALRobotPosture instead.

Removed methods

  • ALRobotPose::getActualPoseAndTime
  • ALRobotPose::getPoseNames

Removed event

  • robotPoseChanged()

Removed ALMemory Keys

  • robotPose
  • robotPoseSince

ALMotion: deprecated methods

Now ALBackgroundMovement configures the breathing animation automatically.

ALMotion: deprecated event

Deprecated Event Instead, use ...
ALMotion/Safety/RobotPushed() ALMotion/RobotPushed()

ALRecharge: deprecated method

ALRechargeProxy::stopAll is deprecated.

This call may not operate during critical operation like docking or undocking.


Audio - Improvements

Language management improved and secured

An application cannot anymore permanently change the language of the robot: setLanguage methods scope is now limited to the application.

For further details, see: How to temporarily change the language of the robot.

ALTextToSpeech: New API to change the pronunciation of a word

This new API makes it possible to tweak the pronunciation of a word by providing a phonetic transcription.

New methods:

ALSpeechRecognition: VOCON 4.7 update

Vocon is the embedded part of the Nuance Vocon hybrid distribution. It segments and processes speech utterances on the robot without server access.

New features in the 4.7 update:

  • Increased performance

    During our tests, the speech recognition latency was reduced by 15%. Nuance claims the reduction can be as good as 20%.

  • Updated mandarin Chinese acoustic models

    The new acoustic models improve the handling of tonal information for standard Mandarin Chinese, and reduces the error rate.

ALTextToSpeech: Increase Speech Volume

Japanese Voice only

When the speech volume is already at its maximum, and the gain hardware cannot be increased, the speech volume can be increased with an audio dynamic compressor. This audio dynamic compressor will be applied on the voice only (not on the other played sounds). It will increased the perceived volume of the voice.

For further details, see: ALTextToSpeechProxy::setParameter

Configuration Required: new version of Japanese language package.

Audio - Deprecated

ALSpeechRecognition: deprecated methods

The following methods are deprecated and not effective anymore:

The robot uses new sign & feedback instead.

ALSpeechRecognition: deprecated usage

New sign & feedback makes ALSpeechRecognition module almost deprecated.


ALSpeechRecognition is a low level module, offering elementary speech recognition functions, which are fully integrated in ALDialog.

Therefore, it is highly recommended to prefer the usage of ALDialog.

Notably, a direct usage of ALSpeechRecognition does not trigger the Listening feedback described in Talking with Pepper section.

For further details, see: New sign & feedback.


Vision - Improvements

ALVisionRecognition: New API for database management and to work on files

API for database management:

New methods to learn and detect objects from image files:

New methods to control the number of objects that can be detected at the same time, in the same image:

Vision - Deprecated

ALCloseObjectDetection: disabled and deprecated module

The results provided by ALCloseObjectDetection were not satisfactory. It does not deserve to be tested further, please do not use it anymore.

Furthermore, on Pepper V1.8, ALCloseObjectDetection is not available at all.

For further details, see: alcloseobjectdetection.

People Perception

People Perception - Improvements

ALFaceCharacteristics: New memory key with the facial features coordinates

This memory key contains, for a given user, the coordinates of all detected facial features.

ALPeoplePerception: performances improved

People detection is thwarted by a strong back light. However, improvements have been made, so some cases, previously in failure, now give better results.

Sensors & LEDs

Sensors & LEDs - New services

New service: ALTactileGesture

ALTactileGesture is intended to manage tactile gestures on the head sensors.

With ALTactileGesture, you can:

  • Detect tactile gestures performed on the head sensors,
  • Respond to tactile gestures via qi.Signals and ALMemory events,
  • Create new tactile gestures on-the-fly.

For further details, see: ALTactileGesture.

Sensors & LEDs - Improvements

ALTouch: new event

Sensors & LEDs - Deprecated

ALInfrared: deprecated module

ALInfrared has been deprecated and removed, use WiFi instead.

Python SDK

Python SDK includes the qicore module

Starting with 2.5.0, the Python SDK includes the qicore module, which should allow you to use qiFile from Python.

This means that the filesystem hierarchy inside the SDK had to change, you can no longer set PYTHONPATH to where you have extracted the Python SDK.


  • On Mac and Linux you have to set PYTHONPTAH to /path/to/python/sdk/lib/python2.7/site-packages.
  • On Windows you have to set PYTHONPATH to C:\path\to\python\sdk\lib.

For further details, see: Python SDK - Installation Guide.


Windows: Visual Studio 2013 instead of 2010

Visual Studio 2013 is now supported, replacing Visual Studio 2010.

Note that 2013 is mandatory because our SDK now implements the C++ 11 features available in Visual Studio 2013.

For further details, see: Supported Compiler and IDE.

qi Framework

New: qi::Clock, guaranteed system-wide, useful for time-stamping things

libqi exposes several clocks, each of which having a distinctive set of properties.

For further details, see: qi clocks and qi Framework - ChangeLog.

This release Note was generated on 2021-10-01.