My Tickets

Drivers Manual

Laser Scanning - QUANERGY M8 - 20

Description

Driver to decode laser data from a QUANERGY M8 laser scanner, a very small and quiet, cost-effective sensor ideal for applications with constrained form-factors and pricing demands.

Key Features:

  • Small / Compact
  • 8 laser beams vertical field
  • 360° horizontal field of view
  • 5 - 20 Hz Spin rate
  • 420K points/second
  • 150 meter range
  • Accurate NMEA/PPS timing
  • Laser class 1 (Eye-safe)


Laser stands for Light Amplification by Stimulated Emission of Radiation.


Driver Information

Driver QUANERGY M8 Interface Type Freebase/TCP/IP  Driver Class Type Freebase 
UTC Driver Yes Input / Output  Input Executable DrvLaser.exe QUANERGY_M8
Related Systems

Related Pages

General

  • All communication to and from the laser unit goes via a LAN network which is accessible through the black 3 foot sensor interface cable.
  • The RJ45 connector of the Ethernet sub-cable should go to a dedicated network card of the QINSy computer.
  • The two other sub-cables are used for power and GNSS/Time Synchronization timing.

  • Data is broadcast with TCP Ethernet packets using port 4141 of the LAN network.
  • It is advisable to use a fast network card (preferably 1 Gigabit), due to real-time scanning and the huge amount of data.
  • The scanner must be configured with a static IP address, the use of a dynamic IP assignment is not supported.
  • Notice that a Quanergy Processing Unit (QPU™) is not supported and therefore not needed.




Network Setup

The exact LAN IP address of the laser unit should be provided by the manufacturer or your re-seller, or it should be stated in the documentation that comes with your scanner. QUANERGY configures their laser units with IP address 192.168.1.3.

The LAN IP address of your computer's network should be in the same range, except for the last digit. This must be any number 4-254 that does not conflict. In the example below the value 124 is used. The subnet mask must be 255.255.255.0, the default gateway 192.168.1.1.

  • Windows 7 / Windows 8:
    Control Panel, Network and Sharing Center, Change adapter settings, Click right-mouse on Local Area Connection, Properties, Internet Protocol Version 4 (TCP/IPv4), Properties...
  • Windows 10:
    Click right-mouse on Start menu, Control Panel, Network and Internet, Network and Sharing Center, Change adapter settings, Click right-mouse on Local Area Connection, Properties, Internet Protocol Version 4 (TCP/IPv4), Properties...

It is recommended to check the network connection between your computer and the laser unit before commencing any scan operation. You may do this by using the ping command from the Windows Command Prompt:

Select Start from the Windows task bar, Run..., Cmd <Enter>, and 'ping' the IP address of your laser unit.
The network connection is okay when you receive a reply three times within a few milliseconds.

Web GUI Control

You should use a standard web browser in order to set some initial settings.

Most important setting is the desired spin rate of the scanner (Frame Rate in Hz) and the used baud rate of the NMEA time message from the external GNSS receiver.

When you enter the IP address of the scanner in the address bar of the browser (most likely http://192.168.1.3:7780), the following page should appear:

In order to change the settings you need to login first, most likely with Username: editor and Password: qeditor.

Press Submit after you have made changes.

The web page will be redirected automatically to another page where you may edit the M8 Network settings, e.g. the IP address.

Cancel this page if no network settings were changed.

NMEA/PPS Signals

For all details about the use of NMEA/PPS Signals please consult the official M8 Sensor User guide.

  • In general: the M8 is expecting next to a PPS signal an NMEA $GPRMC or $GPZDA message, of which interfacing should go via the black sub-cable.
  • It is recommend to send only one of these two NMEA messages to the unit and if possible, use a high baud rate, e.g. 115200.
  • The talker ID is important: the M8 will only recognize the message if it starts with '$GP'
    For example, if your NMEA message is coming from an Applanix GNSS device (e.g. APX-15), make sure to enable the option 'Report legacy talker id'.
  • Unfortunately there is no feedback from an M8 scanner whether NMEA/PPS is accepted or not: there are no led lights on the scanner, nor specific error messages will be generated or logged.
    The only way to verify whether timing is okay (or not) is by going online with QINSy and using a Generic Display: please see the explanation in the Online - Displays tab panel for further instructions.

Database Setup

Internally the driver is treated as a multibeam system, creating multibeam 'xyz' observations, therefore you will find the laser system drivers under category type Multibeam Echosounders.

('multibeam' versus 'laser scanning'-terminology: ping = scan, footprint = pixel = pulse = return, swath = line)

1. Edit System Wizard

Add a Multibeam Echosounder system to your template setup and select from the list driver "Laser Scanning - QUANERGY M8".

  • The Port number should be 4141. The driver will receive all laser firing data packages via this unique port number.

  • It is important to enter the correct IP Address of the laser scanner. This default static IP address is 192.168.1.3.

  • Leave the Maximum update rate at zero

2. Multibeam Echosounder Parameters 

Important are the Transducer Location (Node) and Mounting Angles (offsets) on the second wizard page.

  • The exact values for the roll, pitch and heading offsets should be established with a calibration procedure.

    In the online setup it is important to select the correct Scanner Mounting. In that case you can leave the Roll, Pitch and Heading offsets around zero and therefore values like +270, or -90 are not needed anymore.

  • Leave the Max. beams per ping value at 9999.
    The actual number of beams will be variable, and depends for example on the used on-line settings and on the targets being scanned.


Examples Mobile Scanning Setup
 

In the first image the unit is mounted underneath a UAV, backward tilted at 90 degrees with the cable pointing upward. Make sure to select in the online setup for the Scanner Mounting setting "Backward Tilted, Cable Up".

In the second image the unit is mounted on top of a car roof, with the cable pointing backward, away from the driving direction. Make sure to select in the online setup for the Scanner Mounting setting "Normal, Cable Backward".

So when using the correct Scanner Mounting, the default alignment offsets should be around 0° (Roll, Pitch and Heading).

3. Echosounder Accuracy Parameters

  • You may leave all values on the third wizard page at their defaults.

4. Multibeam Echosounder Corrections

  • You may leave all values on the last wizard page at their defaults.

Windows Firewall

This very first time Windows may pop up a security message:

Just enable all check-boxes!

If you forgot to do this, or if you are not sure if this has been done, you may want to follow the steps as described in the Additional Info or Trouble Shooting section about Windows firewall.

Controller

Hardly any other control is needed for this type of laser scanner. Once you make a connection, it starts rotating, scanning and broadcasting the data automatically.

In order to set the desired spin rate you should use the Web GUI. For some additional other control settings you can use the Qinsy Controller:

Select Echosounder Settings, click on the Laser System icon, and select the 'Control' tab page.

Control

Device Settings

Connected

In order to communicate with the scanner, the driver must make a network connection first. This attempt to connect will always be done automatically when going online.

  • No
    This means that there is no TCP network connection between the driver and the laser unit, and therefore no laser firing data will be received.
    The scanner will automatically stop physically with scanning after disconnecting.
  • Yes
    Check this every time you go online with the Controller, in order to communicate with the scanner. If no connection could be made, a notification message will be displayed in the Events list. Under normal circumstances a connection will be established within a second.
    The scanner will start scanning automatically once a connection has been established.

    It will take 10 to 15 seconds before the first laser data is received after connecting.

  • [ Do Not Auto Connect at startup ]
    Select this option (only once, and hit the Apply button) if you want to disable the 'Auto Connect' option. This means that every time you go online with the Controller, you must make a connection yourself by selecting 'Yes' from this list.
  • [ Automatically Connect at startup ]
    Select this option (only once, and hit the Apply button) and the next time that you go online with the Controller, the driver will try to connect to the laser unit immediately.

Further notice that the driver will automatically disconnect when going offline, so there is no need to do that manually, although you may do so.

Scanner Mounting:

This is a very important setting and it informs the driver how the scanner is physically mounted on the vehicle, with respect to its heading.
This setting is used i.c.w. the mounting alignment corrections (roll, pitch and heading offset) from your database system setup. It means that when the selected scanner mounting is correct, your alignment corrections will be around zero.

  • Normal, Cable Backward
    Select this when the scanner is mounted horizontally (flat on the table), with the cable pointing backwards.
  • Backward Tilted, Cable Down
    Select this when your scanner is 'looking' backwards (opposite to the vehicle moving direction), with the cable pointing downwards.
  • Forward Tilted, Cable Down
    Select this when your scanner is mounted on the front side of your vehicle, 'looking' forward in the vehicle's moving direction, with the cable pointing downwards.
  • Upside Down, Cable Backward
    Select this when your scanner is mounted underneath your vehicle (e.g. UAV or drone), with the cable pointing backwards.

More mounting scenarios are predefined and may be selected.

Scan Interval

Set to 1 to accept all scans. In this case the horizontal angle between two consecutive scans will be 0.07°, when scanning at 10 Hz spin rate.

To use every n-th scan only, set the interval greater than 1.

Notice that excluded data due to this setting will not be recorded!

Vertical Area Selection

Physical scan area comprises 8 laser beams and yields vertical 21 degrees (in case the scanner is mounted normally on a horizontal surface)

For example, laser 1 is looking downwards with an angle of -18°, laser 7 (the nadir) is looking forward (0°) and laser 8 is looking a bit upwards with an angle of +3°


  • Center (Nadir beam)
    Only data from laser 7 (with vertical angle of 0°) will be used.
  • Narrow Center (3 beams)
    Only data from laser 6, 7 and 8 will be used.
    This covers a vertical area of 6°, looking in the forward direction
  • Entire Area (All beams)
    Data from all 8 laser beams will be used.

Excluded data due to this setting will not be recorded!


Horizontal Area Selection

A full circle scan goes from 0 to 360 degrees, counter clockwise, with an angle step that depends on the current spin rate.

0 degrees means forward, 90 degrees means right (starboard side), 180 degrees looking backward, which is the cable direction, 270 means left (port side).

  • Full Circle
  • Forward / Above Horizon (-90 - +90 deg)
  • Narrow Forward (-45 - +45 deg)
  • Backward / Below Horizon (+90 - +270 deg)
  • Narrow Backward (+135 - +225 deg)
  • Starboard (0 - 180 deg)
  • Narrow Starboard (45 - 135 deg)
  • Port (180 - 360 deg)
  • Narrow Port (225 - 315 deg)

The Horizontal Area selection will be corrected for the selected Scanner Mounting. I.e. that when you have selected the correct scanner mounting, then Starboard will be starboard, Port will be port, etc.

Excluded data d/t this setting will not be recorded!

Minimum Range

Set the minimum required range in meters. Valid values: 1 to 150 meters.

Using this setting is recommended, but be careful: Blocked data due to this setting (i.e. all returns less or equal than this range) will not be recorded!

Maximum Range

Set the maximum allowed range in meters. Valid values: 1 to 150 meters.

Using this setting is recommended, but be careful: Blocked data due to this setting (i.e. all returns more than this range) will not be recorded!

Minimum Intensity

Set the minimum required intensity (signal strength). Valid values: 0 to 255.

The default minimum intensity is 1, which under normal circumstances only affects the blocking of unwanted 'ghost' returns.

Notice that blocked data due to this setting (i.e. all returns less than this intensity) will not be recorded!

Maximum Intensity

Set the maximum allowed intensity (signal strength). Valid values: 0 to 255.

Notice that blocked data due to this setting (i.e. all returns more than this intensity) will not be recorded!

Multiple Return Measurement

One emitted laser pulse may hit one or several targets, causing one, two or three echo pulses.

Select the type of echo pulse you want to decode:

  • First Return (Strongest)
    The returned pulse has the highest intensity/amplitude
  • Second Strongest Return
    The returned pulse has the second highest intensity/amplitude
  • Last Return
    The returned pulse has the highest range, that is, is the longest time-of-flight from the sensor
  • All three returns accepted
    Notice that when multiple returns are detected within the current ping, the Status Flag value will be masked with the value 32

Notice that excluded data d/t this setting will not be recorded!

Store Laser Location

If enabled, an additional pixel with zero range will be added to each ping, in order to indicate the exact laser scanner location in the resulting point cloud.

This extra pixel will always have beam number 1, its intensity value will be 255 and its quality value will be zero.

Use PPS

This setting is highly recommended, in order to use exact time stamping of the laser data.

When enabled, the laser unit must receive a valid PPS/Time Synchronization pulse from an external GNSS receiver and NMEA time-tag message.

The Status Flag value will be masked with the value 2 when external timing is okay.

Notice that this option is disabled while connected, so change setting Connected first from Yes to No in order to change it.

Validation Check

When changing settings, the theoretically expected points/sec will be calculated, which should not exceed the recommended maximum points/sec.

The expected points/sec depends on the selected Scan Interval, the Vertical Area Selection, the Horizontal Area Selection and the Multiple Return Measurement.

QINSy handles only approximately 250 thousand measurements per second. However, this value can be safely much higher but depends highly on the used hardware.
Nevertheless it is important to prepare the project prior to the start of the scanning by optimizing all parameters to meet the necessary requirements:
Select the right Scan Interval, Vertical Area Selection, Horizontal Area Selection and/or Range blocking in order to decrease the number of expected points/second.

As an advanced user you may overrule this limitation of max 250 thousand points per sec: Disable the Validation Check in order to ignore the warning and continue.

Capture Raw Data

Enable this option if you want to store the raw binary data stream coming straight from the unit to a log file on disk.
This may be useful for debugging purposes, or to load the data into other software.

This binary log file will be located in the current project's LogFile folder and the naming convention will be <System Name> - DD-MM-YYYY - <Sequence>.bin.
The sequence number is incremented after every Start/Stop capturing action.

Please note that this binary file is of no use for QINSy, and it may affect the online performance because of the extra hard disk activity.

This option may not be available in your setup. In that case no raw data will be captured.

Generic Display

The Generic Display can be used to validate the laser data integrity. It shows the numerical values for the number of beams (laser returns) being scanned per ping, the number of beams being scanned per second, the ping rate (scan rate in Hz), range values, etc.

Important value to monitor is the Ping Age, especially when setting 'Use PPS' is enabled. The Ping Age is the difference between the current computer time and the time of the last received data package. This value should be small, around zero!
Notice that when a GNSS/PPS is connected (using the sensor interface cable) there is no feedback whether the unit has accepted pulse and/or time-tag.
For example, if you see a very high Ping Age value (+ve or -ve), then this is a severe indication that the initial timing inside the laser unit is wrong.

The Beam Quality value contains the actual beam number (1 - 8), so it has nothing to do with any quality or intensity value.

The Status Flag value indicates whether PPS/Time Synchronization is used and accepted or not, and whether multiple returns are detected in the last received ping.

Status Flag Use PPS Multiple Returns detected
0 No No
2 Yes No
32 No Yes
34 Yes Yes

You may use the attached example Generic Display Layout file as an example: Copy this layout (Use 'Save Link As...') to your current Project's Settings\Display folder and open it using a new Generic Display. You only have to select the correct laser system as defined in your template setup (Select Edit, Layout…, go to RAW DATA, Multibeam Echosounder (2), and select your laser system for the parent item).

Raw Multibeam Display

Open View Properties and set the Backscatter Intensity range between 0 and 100 (or 255).

Enable Waterfall scrolling, and set both scroll values to 0 (zero) pixels.

If you want to see the intensity while online, open View Properties and set the Color Coding to Backscatter.

Additional Info

 The M8 has the following features and limitations:

  • The vertical angle resolution between each of the 8 lasers is about 3.0°.
  • The horizontal angle resolution depends on the spin rate. The smallest angle is 0.035° at 5Hz, 0.07° at 10 Hz and 0.14° when spinning at 20Hz.
  • Spin rate of the unit is 5 Hz, 10Hz (recommended) or 20 Hz max.
  • Maximum deliverable of approximately 420 thousand measurements / second.
    Each single laser fire may generate up to three unique returns, so theoretically the maximum number of points / second could be three times as much. Whether the driver will decode these multiple returns depends on the selected setting 'Multiple Return Measurement'.
  • Maximum range 150 meters.
  • The decoded intensity will be a value between 0 and 255 and depends on the target's surface being hit.
    'Ghost' returns will normally have a value of 0 or 1, but also real returns may have a low intensity value.
    Newer shipped M8 units will support true calibrated intensity values. It means based on a logarithmic scale, compensated for distance and laser intensity. Please contact the manufacturer or your local dealer to check if your unit already supports this.

Due to the TCP broadcast characteristic of the M8 a ping (or full scan) does not contain all the beams from one full rotation. A ping in Qinsy will be filled with all laser firing data received from ten consecutive Ethernet packets. One packet contains 50 times data for all 8 lasers, so a Qinsy ping contains a maximum of 4000 beams. Notice that the beam quality value is 'mis-used' in order to store the real beam number (1 - 8). You may color-code on 'quality' in the Validator for an indication of which beams have been used.

Important Information

It is important to prepare the project prior to the start of the scanning by optimizing all parameters to meet the necessary requirements:
Select the right Vertical and/or Horizontal Area selection and/or range blocking in order to decrease the number of expected points per second.

Improve Performance

Due to the enormous amount of data to be expected while scanning and recording, it is recommended to keep the system overhead as low as possible.

Here you'll find some tips and tricks in order to fine-tune your setup.

However, these are not strict rules, because each project is different and depends on the current situation and hardware being used. Your goal should be to keep your system CPU usage as low as possible.

HARDWARE

Virus Scanner

Disable Virus Scanner, or at least the setting 'Scan Files when Writing/Reading to/from disk'.

Storage

Make use of Solid State Drive (SSD), or fast SATA hard drive (7200 - 10000 rpm).

Network

Your network card speed should never be lower than the scanner's network speed. Use a network card that can be configured for 100Mbit or 1Gbit speed. Do not use USB Networking Adapters, because this may result in loss of data when huge amounts of data are being broadcast.

Task Manager CPU

General Task Manager CPU Usage should be less than 50%. CPU load of each display must be less than 10-15%.

Make sure that the 'Working Set (Memory)' column for process Multibeamer.exe and/or DrvResultOut.exe is not constantly increasing, especially during recording.

PROJECT PREPARATION

Laser Device Settings

During project preparation, establish the optimum settings in order to achieve the required results.

The most benefit you will gain from setting the Scan Speed, Scan Rate, Scan Resolution, Angle Resolution, Vertical Area Selection, Scan Area Selection and Sector Reduction as well as possible.

Especially the Vertical or Scan Area Selection is very important. Make use of Mask schemes to define areas which you don't want to scan.

 ONLINE

Raw Multibeam Display

Open only one Raw Multibeam Display.

Disable the options 'Show Big Dots' and 'Draw Lines'.

Navigation Display

Open only one Navigation Display.

Preferably disable DXF and TIFF layers. These layers should only be used during project preparation.

When 'object tracking' is enabled, do not zoom in too close. Keep in mind that the display should not be 'refreshed' more than 1x per second.

3D Point Cloud Display

It is not recommended to use a 3D Point Cloud Display.

If you do so, make sure your hardware contains a high-spec video card.

- Sounding Grid

- Dynamic Surface

Storage to a Sounding Grid is not recommended, and should be purely for display purposes: e.g. for checking the scan coverage or for showing the 95% Confidence Level statistics.

If you do want to see the scan coverage then it is advisable to store to a sounding grid and not to the dynamic surface

Do not use a small cell-size, preferably not less than 1.0 meter.

If you notice in the Navigation Display that the real-time sounding grid is drawn/updated with a delay, then please increase the cell-size or disable the storage completely.

Offline (Replay) there are no limitations and you may use small cell-sizes, e.g. 0.10 meter.

 OFFLINE

Replay

In Replay there are no limitations as mentioned above: use as many displays as you like, store to sounding grids with small cell-sizes, update the dynamic surface, etc.

All this may only affect the replay speed, but the data integrity of your final DTM processing files should be fine.


Controller Computation Setup

While working online, disabling the laser system in your Computation Setup will have the most effect on the performance

Footprints will not be geo-referenced, nor corrected for motion, heading or timing in real-time. This will save a tremendous amount of CPU power and memory usage.

This tip allows you to get the most out of your scanner: maximum scanning speed and maximum scanning rate, without the risk of losing scans due to performance issues.


Drawback is that no DTM file (e.g. QPD) is created, nor a sounding grid is filled, while working online.

To create a final DTM and/or Sounding Grid file you need to Replay the recorded databases afterwards.



Real-time Performance Monitoring

When the scan data rate is too high, the other core Qinsy processes may not be able to handle the amount of data published by the driver (too many pixels/sec) and in the past it would eventually crash the system.

An extra safety check has been implemented in order to prevent crashing of Qinsy: abnormal memory usage will be detected and when it exceeds a certain threshold limit a Stop command will be send automatically to the scanner.

When that happens, the following message is displayed in the Events list in order to inform the user:

"SCANNING ABORTED"
"PROCESS MULTIBEAMER.EXE EXCEEDED CRITICAL MEMORY 1.7GB"

Whether such an event may occur is very much hardware dependent and/or on which settings are used.


You can check yourself if your setup is vulnerable: open the Windows Task Manager and monitor process Multibeamer.exe and/or DrvResultOut.exe while scanning. Under normal conditions the memory used by these processes should be constant.
If you notice that column Working Set (Memory) is constantly increasing, then the process will eventually crash when it exceeds 2GB and you will have to restart Qinsy. Note that 2GB is the maximum memory allowed for a 32bit process.


There may be situations that the default 1.7GB threshold is a little too low, or that the Stop scanning command must be sent earlier, e.g after exceeding a memory usage of 1GB.
So as an advanced user you may modify the following registry key in order to increase this threshold:
HKEY_CURRENT_USER\Software\QPS\QINSy\8.0\Drivers\DrvLaser\Settings\ProcessMemoryLimit

Note:

  • If you enter a value (in bytes) higher than 2GB it won't be accepted and the default will be used. You may try the following key value: 2000000000
  • If the value is set to zero, no monitoring of the Multibeamer.exe or DrvResultOut.exe process memory usage will be done. This is at your own risk because it may cause a crash when the memory usage exceeds 2GB.

But most important

Try to prevent having such events happening in your setup:

  • Check all your hardware and upgrade where possible. (Especially CPU power, Memory installed, Network card, Hard disk storage, etc.)
  • Read carefully the Improve Performance paragraph below and try to follow up all the tips.


Problems

If you experience problems using your laser scanner in combination with this driver, or if you need additional information or support, please attach the daily laser log-file when submitting your JIRA support ticket.


  • The most commonly reported problem is that network data is blocked by the Windows Firewall. When this happens you may see that data does come in using other utilities (like the IO Tester or the manufacturer's own software), but that the Qinsy driver does not accept any data.

    The following (Windows 7) steps may solve this:
  1. Go offline, open the Control Panel (Start menu, Settings, Control Panel)
  2. Select Windows Firewall (System and Security)
  3. Select Advanced Settings (Upper left corner)
  4. Select Inbound Rules, highlight all 'Driver for Laser Scanning' entries and delete them using the right mouse popup menu (or Del key)
  5. If you now go online, the Windows Security Alert message will pop up: It is important to check all three check boxes!
  • Another possible problem could be that your computer has more than one network cards installed (e.g. LAN and WIFI), but within the same sub-net mask range (255.255.255.0). It is recommended to make the first three digits unique for each network card IP address.
    You may check the daily laser log-file, it will show the IP addresses for all available network adapters and indicates which one the driver will use.

    Please check that the driver is using the correct one.

Daily Laser Log File

All user actions are logged in a daily laser log file. You will find this file in the current project's LogFiles folder.
The filename convention for this ASCII log-file is <System Name> DD-MM-YYYY.log.

Notice that all time stamps in this log file are by default in UTC.
An advanced user may change this to local time zone (LTZ) by changing the registry key:

HKEY_CURRENT_USER\Software\QPS\QINSy\8.1\Drivers\DrvLaser\Settings\TimeLogFileUtc value from 1 to 0.