# SoftBank Robotics documentation What's new in NAOqi 2.8?

# Addendum - 2.8.6

## NAOqi API & SDK

### Battery management improved

NAO has a better Battery management system, it should stop spamming notifications.

The description of the related events have also been improved:

- `BatteryChargingFlagChanged()`
- `BatteryPowerPluggedChanged()`

### libqi’s default listen URL has changed

C++/CLI/python

libqi’s default listen URL has changed from `tcp://0.0.0.0:9559` to `tcp://127.0.0.1:9559`.

This setting can be changed using:

- `qi::Session::listen()`,
- `qi::ApplicationSession::Config`,
- the `QI_LISTEN_URL` environment variable or
- the `--qi-listen-url` CLI option.

On the robot, `QI_LISTEN_URL` is set to “0.0.0.0” in order to preserve the former behavior. Hence, qi applications running on the robot can still be reached from the outside by default. But qi applications running on users computers are not anymore.

### Upgrade qiFramework from 1.0.5 to 1.6.10

- C++ API breakage: qi::Future returned qi::Strand::schedulerFor is not automatically unwrapped anymore. It impacts all qi::Strand or qi::Actor users.
- C++ API breakage: qi::Object’s conversion to bool is now explicit.
- C++ API breakage: qi::getIoService() was removed in 1.6.4
- qi-framework 1.6.9 provides complete support of optional libqi type.
- C++/CLI/python: libqi’s default listen URL has changed from tcp://0.0.0.0:9559 to tcp://127.0.0.1:9559. This setting can be changed using qi::Session::listen(), qi::ApplicationSession::Config, the QI_LISTEN_URL environment variable or the –qi-listen-url CLI option. On the robot, QI_LISTEN_URL is set to “0.0.0.0” in order to preserve the former behavior. Hence, qi applications running on the robot can still be reached from the outside by default. But qi applications running on users computers are not anymore.
- cmake: qi_gen_idl() behavior has changed, it must now be used together with qi_stage_dir.
- CLI: qilaunch: remove deprecated –module/-m argument.

For further details, see: qi Framework - ChangeLog.

### Removal of deprecated modules, events, and methods

In order to clarify the API, a huge cleaning has been done.

#### Deprecated modules

The following modules have been removed:

- ALCloseObjectDetection
- ALLaser
- ALSegmentation3D

#### ALBattery

Method

- `ALBatteryProxy::enablePowerMonitoring`

Events

- `ALBattery/BatteryLow()`
- `BatteryChargeCellVoltageMinChanged()`
- `BatteryFullChargedFlagChanged()`
- `BatteryDisChargingFlagChanged()`
- `BatteryEmpty()`
- `BatteryLowDetected()`
- `BatteryNearlyEmpty()`
- `BatteryNotDetected()`

#### ALBodyTemperature

All former methods deprecated and removed.

Methods

- `ALBodyTemperatureProxy::getTemperatureDiagnosis`
- `ALBodyTemperatureProxy::areNotificationsEnabled`
- `ALBodyTemperatureProxy::setEnableNotifications`

Events

- `DeviceNoLongerHotDetected()`
- `TemperatureDiagnosisErrorChanged()`
- `HeadProcessorIsHot()`
- `HeadProcessorIsCriticallyHot()`
- `HotJointDetected()`

#### ALDiagnosis

Methods

- `ALDiagnosisProxy::getDiagnosisStatus`
- `ALDiagnosisProxy::isNotificationEnabled`
- `ALDiagnosisProxy::setEnableNotification`

Event

- `ALDiagnosis/DiagnosisErrorChanged()`
- `ALDiagnosis/ActiveDiagnosisFinished()`

#### ALMotion

Method

- `ALMotionProxy::isCollision`
- `ALMotionProxy::areNotificationsEnabled`
- `ALMotionProxy::setEnableNotifications`

Events

- `ALMotion/Safety/RobotPushed()`
- `ALMotion/Stiffness/restStarted()`
- `ALMotion/Stiffness/restFinished()`
- `ALMotion/Protection/DisabledFeaturesChanged()`

#### ALVideoDevice

- `ALVideoDeviceProxy::onClientDisconnected`
- `ALVideoDeviceProxy::subscribe`
- `ALVideoDeviceProxy::unsubscribeAllInstances`
- `ALVideoDeviceProxy::getVIMResolution`
- `ALVideoDeviceProxy::getVIMColorSpace`
- `ALVideoDeviceProxy::getVIMFrameRate`
- `ALVideoDeviceProxy::getGVMResolution`
- `ALVideoDeviceProxy::getGVMColorSpace`
- `ALVideoDeviceProxy::getGVMFrameRate`
- ALVideoDeviceProxy::startFrameGrabber()
- ALVideoDeviceProxy::stopFrameGrabber()
- ALVideoDeviceProxy::isFrameGrabberOff()
- `ALVideoDeviceProxy::getCameraModelID`
- `ALVideoDeviceProxy::setParam`
- `ALVideoDeviceProxy::getParam`
- `ALVideoDeviceProxy::getAngPosFromImgPos`
- `ALVideoDeviceProxy::getAngSizeFromImgSize`
- `ALVideoDeviceProxy::getImgInfoFromAngInfo`
- `ALVideoDeviceProxy::getImgInfoFromAngInfoWithRes`
- `ALVideoDeviceProxy::getImgPosFromAngPos`
- `ALVideoDeviceProxy::getImgSizeFromAngSize`
- ALVideoDeviceProxy::getExpectedImageParameters()
- `ALVideoDeviceProxy::setSimCamInputSize`
- ALVideoDeviceProxy::putImage()
- `ALVideoDeviceProxy::resolutionToSizes`
- `ALVideoDeviceProxy::sizesToResolution`
- ALVideoDeviceProxy::startFrameGrabber()
- ALVideoDeviceProxy::stopFrameGrabber()
- ALVideoDeviceProxy::isFrameGrabberOff()
- `ALVideoDeviceProxy::recordVideo`
- `ALVideoDeviceProxy::stopVideo`

## Choregraphe

### Boxes re-factory

Following the API cleanup, some boxes have been re-factored. Here is the list of the impacted boxes, you should update in your former applications:

- “Select Camera”
- “Collision Display”
- “Has Hardware”
- “Battery”

We also fixed some bugs on others:

- “Learn Face”
- “Sonar”

## NAOqi OS

### NAOqi OS - user account

Running a command as root user is only possible using sudo command.

For further details, see: NAOqi OS - user account.

### Debugging and investigating on the robot has evolved

- Logging is now done with journald
- minidump files naming has changed on the robot.

For further details, see: Debugging and investigating on the robot.

### New, updated and removed packages

The history of new, updated and removed packages is so long it would be too fastidious to read.

It is easier to refer directly to the current list: Open Source Projects.

### New tool installed on robot: blackbox2csv

blackbox2csv is a CLI utility which can convert most of the information from an ALMotion blackbox to a table in CSV format.

Glossary Site map Index Support Contact Legal Notices