ADAS example

Updated: May 06, 2022

The ADAS example application demonstrates how to read sensor information from various sensors (lidar, radar, and cameras) to fuse all that information into a single view using the ADAS library.

The reference image should come up running the ADAS example application with the -c /system/etc/system/config/adas_sensors.conf -m script options.

By default, the reference image uses files (prerecorded) that contain lidar and radar data that simulate sensors. For demonstrative purposes, there are two viewers available to visualize the data. In a production-level application, rather than visualize the data, you'll likely provide the raw data (e.g., show the video from the camera directly) or even provide visual cues (e.g., warning lights).

These are the viewers available with this example:
Camera viewer
The camera viewer shows the perspective of the driver during a drive. On startup, the camera viewer does not run as there is no pre-recorded camera data.
Point Cloud viewer
The point cloud viewer demonstrates how to take various forms of data and fuse them to provide a representation of the objects from the various sensors. Information retrieved from the sensors is shown in a common 3D coordinate system. On the display, lidar firings show up as points while data from other sensors show up as boxes.
The ADAS example application (adas_example) takes the following parameters:

Run the application

To run the ADAS example application, do the following:
  1. Connect to your image using ssh.
  2. If another example application is running, type slmctl "stop example_app" in your ssh session to stop it; for instance:
    # slmctl "stop camera_mux"
    The application should stop running and you should see a blank display.
  3. Type adas_example with the -c option to run the application in manual mode:
    # adas_example -c /system/etc/system/config/adas_sensors.conf

After you run the command, a menu appears. You can type letters from the menu and press Enter to change the view. The views presented in the menu depend on the views supported by the active viewer (as specified in your ADAS library configuration file):

# adas_example -c /system/etc/system/config/adas_sensors.conf

# Please select the view type or zoom factor:
        1 to 6) Scale factor from 1x to 32x (Point cloud or Radar only)
        c) Change viewer
        f) Forward
        v) Driver
        d) Radar
        n) Navigation
        r) Start Record
        s) Stop Record
        x) Exit the application
Note: You can press c and Enter to change between the camera and point cloud viewer if you've configured both in your ADAS library configuration file. The numeric values work only for the point cloud views and radar views.
Here are the commands and views that you can toggle through in the point cloud viewer:
Point Cloud viewer
In this viewer, pressing a number key changes the zoom level.
Bird's Eye (t)
This is a point cloud of an aerial (above) view of the objects detected by the sensors on your system.

Isometric (i)
This is a point cloud view of the objects detected by the sensors and cameras on the system.

Forward view (f)
This is a point cloud view of what's occurring from the back of the vehicle. For this reason, you see a representation of the back of the vehicle.

Backward (b)
This is a point cloud view of what's occurring when looking backwards from the front of the vehicle. For this reason, you see the front of the car.

Radar (d)
The radar view consists of a 2D model of the car with concentric circles centered around the car to help measure distance. The supported field of view of the radar is drawn on the video as it is configured in the sensor configuration file. The detected radar tracks are displayed as 2D points with associated distance and speed measurements.

Navigation (n)
This is a point cloud representation of the vehicle and its surroundings with raw GPS and sensor data overlaid on it.

You can also choose to record data using the Start Record (f) command and stop the recording using the Stop Record (s) command.

Build the ADAS example application

On your host computer, the source code is provided for the ADAS example application. You can build the source code and deploy the resulting binary onto your target.

  1. A ZIP file installed with the QNX SDP 7.1 Sensor Framework Base package is located at installation_directory/source/sf-adas-sensor-examples-version.zip. You must extract it to get the ZIP file for the ADAS examples.
  2. In the extraction_directory/source_package_adas_sensor directory, there's a README.txt that you can follow to build the application.
  3. Create a backup of the original adas_example file on your target. This file is found in the target's /usr/bin/ directory.
  4. Deploy your newly built version of the ADAS example application, by navigating to extraction_directory/source_package_adas_sensor/apps/adas/adas_example/nto/aarch64/so.le on your host and transferring the adas_example file to the /usr/bin/ directory on the target. You can use the QNX Momentics IDE to transfer the file.
  5. Connect to your target through a terminal connection and run the ADAS example application.