Monitor plugins

Created by Support Team, Modified on Fri, 1 Apr, 2022 at 9:21 AM by Hervé FRANCO



The Camera viewer allows you to:

  • configure robot cameras,
  • display what they see,
  • take pictures or
  • record videos.

To load the Camera viewer plugin into Monitor, see How to launch a Monitor plugin.

Once loaded, the following panel is displayed:

AViewer settings

The following settings have an impact limited to the display on Camera viewer, and has no impact on video recording: whatever the settings, videos are recorded in QVGA (320*240) at 15 fps, with MJPG compression.

  • Framerateset the maximum framerate you want to display. The lower the lighter will be the charge for both your robot’s CPU and your LAN.


High rates of high resolution frames sometimes cannot be reached. You can ensure better conditions by stopping all consuming programs and by setting a wired connection with your robot.

  • Resolution
  • Black and white
  • Mark detection: detect NAOmarks and locate them on the image.
  • Vision recognition: detect learnt objects and locate them on the image.
BCamera settings

The following settings impact video recording and all the modules using the cameras.

  • Exposure: check Auto exposition to automatically set the exposition time. When unchecked, Exposure slider is enabled to let you set the parameter manually. A long exposition time may slow the framerate, but gets a brighter image with less noise.
  • Gain: check Auto gain to automatically set the gain. When unchecked, Gain slider is enabled to let you set the parameter manually. A great gain will make a brighter image, but may amplify noise.
  • Exposure correction: additional exposure correction taking place after exposure and gain operation.
  • White balance: check Auto white balance to automatically set the white balance. When unchecked, Blue / Red chroma: sliders are enabled to let you set color proportions in the image manually.
  • Brightness / Contrast / Hue
  • Vertical / Horizontal flip
CAction buttons
  • Playmonitor-camera-playstarts retrieving and displaying images from your robot in the video widget.
  • Pausemonitor-camera-pausepauses video display and stops requesting images.
  • Recordmonitor-camera-recordstarts recording a video.
monitor-camera-stopstops recording the video and prompts for a destination file.
  • Snapshotmonitor-camera-snapshottakes three pictures (a,b,c) of what the robot sees. The files will be saved to: /home/nao/.local/share/naoqi/vision/{timestamp}{a,b,c}.jpg
  • Switch camera: switches between head’s top and bottom cameras.
DVideo Recorder tab

This panel allows you to define the file name used to store the video on the robot.

It also displays information about the last recorded video file.


     The 3D Sensor Monitor plugin can be used to display the depth image from a supported 3D camera connected to the robot. This plugin features a Playmonitor-camera-playand a Pausemonitor-camera-pausebutton to start and stop the image acquisition.

     The depth image will be displayed with a resolution of 320x240 and a frame rate of 10 frames per second. The image is shown as a peudo-color image, where the color indicates the distance of a given image region to the camera: similar colors correspond to similar distances.

     The plugin also prints the exact depth measure (in millimeters) of a given pixel by simply clicking on it in the image region. Once the pixel is selected, the distance measurement will be updated at every image acquisition. White regions in the image correspond to invalid pixel values, which may be caused by objects that are too close/too far from the camera, overly reflexive materials or interferences with infrared light sources (sunlight, another depth camera...).


     This plugin allows you to watch the data held by the ALMemory module of a given NAOqi. Number-like data evolution can also be plotted. This is very useful to diagnose behaviors through the internal data they use. You can also follow hardware data.

Architecture overview

     There are a lot of data keys in ALMemory. That is why it is recommended to select a restricted set of keys to watch, saved as an XML configuration file, instead of gathering all the values, which is much slower.

     When you load the Memory viewer plugin, as explained in How to launch a Monitor plugin section, several possibilities are offered:

New configuration fileSelect a new set keys to track.
Open configuration fileSelect a previously saved set of keys.
Do not use a config file (slow)Select every data key and filter them manually.

Once you have your configuration set up, the plugin will load its main window:

Plot Widget

     On the right side of the widget, you can see the plot viewer. Every key which option Graph is checked will be shown in this plot.

Managing the Key list

     On the left side of the widget, is displayed the list of keys defined in the configuration file. The list shows several columns:

  • Name
  • Watch: whether to track the value or not.
  • Graph: whether to add the value to the plot. Overrides Watch, as the value must be tracked to be plotted.
  • Type: the value type. Can be bool, int, float, string or invalid.
  • Value: the value.
  • Color: the color of the curve representing the key values in the plot.

Below the list, you can also select Watch all or Graph all, to easily have an overview of all the keys.

Managing the Subscription Mode

  • Subscription Mode controls the refresh rate of the key list values. When selecting the mode "Every <nb> ms", you will be prompted the refresh period you like. Selecting the mode “No subscription” disables automatic update of the values.
  • The blue arrow button allow you to refresh manually the values of the list. This is useful whenever you set the Subscription mode to “No subscription”.

Note: The subscription period parameter does not affect the plot scroll. It may only affect plot resolution.

Managing configuration file

     You can save every change you have done on this panel by clicking the save button in the Save/Merge config section, at the bottom left of the widget.

You can also import configuration files using the second button, so that it is merged with your current configuration.

Managing the plot

Along with this view, few options below are available:

  • Start/Stop graph: start / stop value plotting.
  • Speed in pixel/second: set here the plot auto-scrolling speed.
  • Autoscale: when checked, the widget will zoom the plot to fit exactly the minimum and maximum values displayed. Min and Max are enabled only when Autoscale is disabled, and allows you to set the vertical bounds of the plot manually.


This feature is only available for NAO Laser Head owners.

This plugin allows you to display what is seen by the laser telemeter.

Once loaded, the following panel is displayed:

     Distances measured by the laser sensor, are projected as cross dots on a polar graph, with the correct angular ratio and offsets.

     The scrollbar at the bottom of the widget filters the points, so you can focus on closer obstacles, it has no effect on the laser sensor.

Log Viewer

The Log viewer allows you to visualize the logs sent by a robot and filter them, based on their:

  • level
  • category
  • message content

Once loaded, the following panel is displayed:

Categories and Levels filtersThrough these, you can filter logs displayed in the log view. Only logs matching the selected filters and categories will be shown.
LogsThe logs emitted by the robot since the plugin was loaded. Only the logs satisfying the current filters settings are displayed.
Settings menuYou can customize the various log view options with this button.
FilterThe text entered here is used to filter the logs based on their message content.
Detailed viewWhen selecting one or several logs in the log view, they appear here in a textual detailed way, allowing you to copy and paste them.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article