Drivers Manual
Laser Scanning - Teledyne Optech Polaris - 20
Description
Driver to decode data from a Teledyne Polaris Terrestrial Laser Scanner.
- The combination of Qinsy interfaced to the Polaris on a moving platform while scanning profiles (line scanning in a fixed direction) will deliver a geo-referenced point cloud of co-ordinates, in real-time corrected for motion, heading and timing.
- The combination of Qinsy with the scanner, while scanning statically (e.g. on tripod, 360 degrees horizontally) will deliver you immediately a geo-referenced point cloud of your scanned surroundings.
The driver automatically detects which model of the Polaris family is connected: the Polaris HD, the Polaris ER or the Polaris LR.
Although the Polaris has an integrated GNSS and an internal camera on board, they will not be used by Qinsy.
Driver Information
Driver | Teledyne Polaris | Interface Type | Freebase/TCP/IP/UDP | Driver Class Type | Freebase |
---|---|---|---|---|---|
UTC Driver |
Yes | Input / Output | Input and Output | Executable | DrvLaser.exe POLARIS |
Related Systems | |||||
Related Pages |
Communication between Qinsy and the scanner always goes via the wired network. Other communication channels (like Wifi, Bluetooth or Serial) are not supported.
It is advisable to use a fast (Gigabit) network card, due to the enormous amount of data to be expected.
Please note that the IP Address of the scanner is set to 192.168.0.1 and can't be changed.
So make sure to set the IP Address of the network card of the Qinsy computer in the same range:
In this example the Qinsy computer will have address 192.168.0.103. Set the subnet mask to 255.255.255.0.
Always 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 address of your laser unit:
The network connection is okay when you receive a reply three times within a few milliseconds.
Once the driver has made a successful connection with the scanner, the on board display will turn yellow:
From this moment on you can not control the scanner anymore using the on board touch screen.
If you need to use the on board touch screen again, please disconnect first. How to connect and disconnect can be read in the Qinsy Online section of this document.
Without external timing from an accurate time source the driver will time-stamp the data when received at the network port using the computer's own internal clock. Due to network characteristics in general, this will result in inaccurate timing.
If you use the scanner on a non-moving platform for horizontal (3D) scanning, then of course accurate timing doesn't matter.
But when using the scanner on a moving platform (vessel or car) then timing via Time Synchronization pulse from GPS is highly recommended (read: mandatory).
For this the scanner needs a pulse (PPS) and a time message every second.
Unfortunately you can not use the internal GNSS for this, you will need to connect an external GNSS to the serial connector.
Time Message
The time message for older models must be NMEA $GPPPS at baudrate 38400; newer models will also support NMEA $GPZDA time messages.
The latest firmware of the Polaris will now correct for the leap-second when receiving the $GPPPS message.
However this modified behavior has not been addressed yet in the Qinsy driver.
So when you experience a negative ping age of around 17 to 18 seconds then make sure to use the $GPZDA time message and not $GPPPS.
The ping age can be checked as described under section Qinsy Online, paragraph Displays.
Format:
$GPPPS,hhmmss.ssss,d,wwww,uu.uu,pppp,*hh<CR><LF> | $GPZDA,hhmmss.sss,dd,mm,yyyy,h,m*hh<CR><LF> | |||
---|---|---|---|---|
hhmmss.ssss | hour, minutes, seconds, decimal seconds - UTC | hhmmss.ssss | hour, minutes, seconds, decimal seconds - UTC | |
d | day offset in the week | dd | day | |
wwww | GNSS weeknumber | mm | month | |
uu.uu | GPS leapsecond | yyyy | year | |
pppp | counter | h,m | local zone hours, local zone minutes | |
*hh | NMEA XOR Checksum | *hh | NMEA XOR Checksum | |
<CR><LF> | Carriage return and Line feed character | <CR><LF> | Carriage return and Line feed character | |
Example | Example | |||
$GPPPS,101958.0000,3,2030,18.00,162,*4E
|
$GPZDA,201930.000,10,02,2020,00,00*5C |
- Other NMEA formats are not supported at the time of writing.
- Other baudrates are not supported at the time of writing.
- The time message must arrive after the pulse.
- Only field hhmmss.ssss is parsed, other fields are ignored. Therefore the time in this field must be UTC.
Pulse
- The scanner accepts the 1PPS event at the rising edge of the pulse (note that pulse width doesn't matter).
- The pulse must arrive before the time message.
Info
In order for the Polaris to receive the time a specific cable needs to be used. The pinout of the cable can be found below.
POLARIS REAR PANEL |
PPS (BNC) | Serial DB9 RS232 | Time Synchronization | ||
---|---|---|---|---|---|
Pin 3 (Serial Ground) | ← | Pin 5 (Ground) | $GPPPS Message | ||
Pin 4 (Serial Rx) | ← | Pin 3 (Tx) | |||
Pin 5 (PPS Pulse) | ← | Core of coax | PPS Pulse | ||
Pin 9 (PPS Ground) | ← | Shield of coax |
Note that internally the laser driver is treated as a multibeam system: creating multibeam x/y/z observations. Therefore you will find the laser system drivers under category type Multibeam Echosounders.
Multibeam versus Laser scanning terminology: ping = scan = swath = line, footprint = pixel = pulse = return
Database Setup
Add a Multibeam Echosounder system to your template setup and select from the list driver "Laser Scanning - Teledyne Optech Polaris TLS".
Note that the driver will automatically detect online which model of the Polaris family is connected: the Polaris HD, the Polaris ER or the Polaris LR.
Edit System Wizard
- The Port number must be 5000
- The IP address must be 192.168.0.1
- Leave the Maximum update rate at zero
Multibeam Echosounder Parameters
Important are the location of the Transducer Node and the Mounting Angles (Roll/Pitch/Heading offsets) on the second wizard page.
- The exact values for the roll, pitch and heading offsets should be established with a patch test/calibration procedure.
It is important that in the online setup the correct Scanner Mounting is selected.
In that case you can leave the Roll, Pitch and Heading offsets around zero, you don't have to use values anymore like +270, or -90, etc. - Leave the Max. beams per ping value at 9999.
The actual number of beams will be variable, and depends for example on the used online settings and on the targets being scanned.
Echosounder Accuracy Parameters
This last wizard page can be skipped, so leave all values at their defaults.
Multibeam Echosounder Corrections
This last wizard page can be skipped, so leave all values at their defaults.
Windows Firewall
The 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
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. Each time you go online you must make this connection manually. To establish a connection automatically, please follow the guidelines as described in the Network paragraph under System Interfacing.
|
||||||||||||||||
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 in combination with the mounting alignment corrections (roll, pitch and heading offset) from your database system setup.
You can only change this setting when not connected. |
||||||||||||||||
Action | Selected action will be send to the laser unit, immediately after hitting the Apply or OK button. You must have initialized the connection first in order to select any action. Note that any selection will always revert back to [None], after each selected action. Always wait a few moments after each action, until the status in the Event list is updated with a message. It takes some time before the unit handles the requested command (action) and reverts back.
|
||||||||||||||||
Vertical Area Selection |
The maximum physical vertical field of view will be 120° (from -45° to +75°) Select one of the predefined vertical scan areas in which you are interested:
Note that excluded data due to this setting will not be recorded! |
||||||||||||||||
Scan Rate | Select the desired laser repetition rate in kHz. The value reflects the maximum number of expected points per second.
When the selected Scan Rate is not supported by the connected Polaris model, you will be informed in the Events list panel. |
||||||||||||||||
Scan Resolution | The vertical resolution (distance between two consecutive laser hits) depends on a combination of the selected scan rate, the vertical area selection (FOV), an average reference range and a so-called galvo-speed value which will be send to the scanner: a lower galvo-speed value means a decreasing vertical resolution (more density), a higher galvo-speed value means an increasing vertical resolution (less density). So therefore the driver calculates for each combination a minimum and maximum galvo-speed value and the Scan Resolution selection here is actually a percentage (0% - 100%) of that dynamically calculated galvo-speed range:
For example when you select Low then the maximum allowed galvo-speed value will be send. As mentioned before the vertical resolution depends also on the selected scan rate and the vertical area selection:
Note that for the calculations an average reference range of 250 meter is used. The actual used galvo-speed value send to the scanner is logged in the daily laser log file for analyzing purposes. |
||||||||||||||||
Scan Interval | Leave to 1 (default) to accept all incoming scans. To use every n-th scan only, use a value greater than 1, which results in less points per seconds being recorded by Qinsy. Note that excluded data due to this setting will not be recorded! |
||||||||||||||||
Scan Mode | Select the required measurement method: Line (2D) which means looking at one fixed direction, or Radar (3D), for example scanning 360° around. | ||||||||||||||||
Scan Direction | Set the line scan direction in degrees with respect to the vehicle heading. Valid Values are between 0 and 360 degrees. This setting is used in combination with the Scanner Mounting setting: 0 degree means scanning in forward direction, 90 degrees means scanning to starboard, 180 means scanning backwards and 270 means scanning to port side. This option is only available when Scan Mode is set to Line (2D) |
||||||||||||||||
Horizontal Area Selection | Select one of the predefined horizontal scan areas. The scanner will turn continuously clockwise, counter-clockwise, clockwise, etc. The selected area is used in combination with the Scanner Mounting setting.
So in these predefined schemes Wide means ± 60 degrees and Narrow means ± 20 degrees. This option is only available when Scan Mode is set to Radar (3D) |
||||||||||||||||
Continuous | When enabled (default Yes) the scanner will start endless scanning after Start, until the Stop command is received.
This option is only available when Scan Mode is set to Radar (3D). In Line (2D) mode the scanner will always scan continuously. This option may not be available in your setup. In that case the scanner will always scan continuously until the Stop command is received. |
||||||||||||||||
Rotation Speed (deg/sec) | Set the required horizontal rotation speed in degrees per second. Valid values must be between 1 (slow) and 90 (very fast) degrees per second. This option is only available when Scan Mode is set to Radar (3D) |
||||||||||||||||
Minimum Range | Set the minimum required range in meters. Valid Values: 1.5 m to 250 m (Polaris HD), 1.5 m to 750 m (ER) or 1.5 m to 2000 m (LR). Using this setting is recommended, but be careful: Blocked data due to this setting (i.e. all pixels less than this range) will not be recorded! |
||||||||||||||||
Maximum Range | Set the maximum required range in meters. Valid Values: 1.5 m to 250 m (Polaris HD), 1.5 m to 750 m (ER) or 1.5 m to 2000 m (LR). Using this setting is recommended, but be careful: Blocked data due to this setting (i.e. all pixels more than this range) will not be recorded! |
||||||||||||||||
Minimum Intensity | Set the minimum allowed intensity. Valid values are: 0 to 255. Note that blocked data due to this setting (i.e. all returns with an intensity lower than this) will not be recorded! |
||||||||||||||||
Maximum Intensity | Set the maximum allowed intensity. Valid values are: 0 to 255. Note that blocked data due to this setting (i.e. all returns with an intensity higher than this intensity) will not be recorded! |
||||||||||||||||
Multiple Return Measurement | An emitted laser pulse may hit one or several targets, causing one or several laser returns. Select here which return you want to decode.
Notice that blocked data due to this setting will not be recorded |
||||||||||||||||
Use PPS |
See for more information about the use of accurate timing the following sections in this document: |
||||||||||||||||
Store Laser Location |
|
||||||||||||||||
Leave Survey on Scanner SSD | This option is only available when scanning in Radar (3D) mode.
|
||||||||||||||||
Trigger External Camera | First, this setting has nothing to do with the internal camera onboard the laser scanner: the driver does not use or control this device. But you can connect an external DSLR camera (currently only model Nikon D5500 or D5600) to the laser scanner using the 3.5 mm TRS headphone jack.
In the unlikely situation that your scanner has more then five configuration xml files loaded and you need to select one of these, please contact QPS support for additional instructions. |
||||||||||||||||
Trigger Interval | If you've connected an external DSLR camera (currently only model Nikon D5500 or D5600) to the laser scanner (via the 3.5 mm TRS headphone jack) then you can set the trigger interval (in seconds) for capturing images automatically. This option is only available when a Camera Configuration file has been selected Triggering the camera is currently one-way only; there is no feedback from the camera to Polaris. This means images are all saved on the camera’s SD card, so it’s better to start with an empty SD card. Please note that in case you need more image control with your external camera it can be an option to use our dedicated camera driver "DSLR Camera - WIA Compatible" instead. |
||||||||||||||||
Session Storage Format Specifier |
This format specifier can be used in combination with the Controller Session Storage Format Specifier #E. The following specifiers are supported (plus your own free text): #A: Scan Mode The format specifiers are case-sensitive. If you use lower-case then only a value or index number will be displayed. So if you use #E in the Session Storage Setup the filename of the newly recorded database will automatically contain the scanner settings that you were using. Example:
|
Generic Display
The Generic Display can be used to show the numerical values for the number of beams (pixels) being scanned per ping (scan), the number of beams being scanned per second, the ping rate (scans per seconds), range values, etc.
Use this display to check two important values:
- Ping Age
The Ping Age is the difference between the current computer time and the time of the last received data package.
The ping age value (in seconds) must be around zero (e.g. 0.01 or 0.005), especially when setting 'Use PPS' is enabled.
A ping age value around 17 to 18 seconds clearly indicates that the time field inside the $GPPPS time message is GPS time and not the expected UTC time.
Solution for this problem is to use the $GPZDA as external time message to the scanner (see section System Interfacing, paragraph Timing). - Status Flag
Make sure that the status flag value is 2, meaning 'PPS OKAY'.
If the Status Flag is 0 then this either means that:- setting 'Use PPS' is not enabled, or
- your template setup has no Time Synchronization system defined (not recommended), or
- your Qinsy Time Synchronization system is not working (please check), or
- the PPS pulse and/or $GPPPS message is not accepted by the scanner.
You may use the attached example Generic Display Layout file as example:
Download the file using the link (for this you need Internet access), copy the layout (Use 'Save Link As...') to your current Project's Settings\Display folder and open it using a new Generic Display.
You only need to select the correct laser system as defined in your template setup.
Raw Multibeam Display
Laser data in a Raw Multibeam Display is uncorrected for motion, but it will give you a good indication whether laser data is decoded or not and what kind of objects are detected.
If you set Color Coding to Backscatter then the intensity will be used for color coding.
Adjust the Backscatter Intensity scale, so set the minimum and maximum values to somewhere between 0 (min) to 65000 (max).
You may quickly determine the current maximum intensity value by selecting the Intensity Distribution view (D toolbar button) and then the Auto Scale button.
In this example the max value of the last ping is 16 961, therefore a value of 20 000 is used as maximum backscatter intensity for color-coding.
Timing
Problem
Scanner has been started and it is scanning, but no data is received in Qinsy.
Possible explanation
You have enabled setting 'Use PPS' but (for whatever reason) PPS/NMEA message is not accepted by the scanner.
So when this happens no data is streamed to Qinsy, although the scanner is working.
Solution
Disable setting 'Use PPS'. See if data is now coming in Qinsy.
If this is true, then you know that the PPS/NMEA was not accepted at the serial back panel connector.
See section System Interfacing, Timing for more details.
Problem
In a Generic Display I notice a more or less constant (negative) Ping Age value of around 17 to 18 seconds.
The ping age should be around close to zero seconds.
Possible explanation
Your scanner is using the latest firmware from Teledyne and the external time source is $GPPPS.
The latest firmware corrects for the leap-second when using the GPPPS format and converts the time to GPS instead of UTC.
Solution
Do not use the $GPPPS message as external time source but use the $GPZDA time message instead.
Firmware
When your scanner has firmware SCADA v1.3 or higher installed it is recommended to use Qinsy v9.1 or higher.
This version will fully support the new firmware of Teledyne.
Network
Daily Laser Log File
All user actions, system information and reported errors are logged in a daily laser log file which can be found in the current project's LogFiles subfolder.
The filename convention for this ASCII log-file is <System Name> DD-MM-YYYY.log, so every day there will be a new one.
Note 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.0\Drivers\DrvLaser\Settings\TimeLogFileUtc value from 1 to 0.
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 |
|
---|---|
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. |
Virus Scanner |
Disable Virus Scanner, or at least the setting 'Scan Files when Writing/Reading to/from disk'. |
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. |
Navigation Display |
Open only one Navigation Display. |
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. Under Sensor settings set the Time window setting to a short period, e.g. 10 sec |
- 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.
To create a final DTM and/or Sounding Grid file you need to Replay the recorded databases afterwards. |
Real-time Performance Monitoring
Intensity
The reported intensity from the laser scanner for each laser return is a float number between 0 (dark surfaces) and 1.0 (white surfaces or retro-reflectors)
The driver will convert this number automatically to a Quality attribute (always in the range between 0 and 255) and to an Intensity attribute (always in the range between 0 and 65535).
Both attributes will be stored in the raw database (*.db) and Qinsy Processing DTM file (*.QPD).
These attributes are ideal for color-coding the final DTM point cloud (e.g inside the Validator, Qimera or other third party programs).
When exporting a Qinsy Processing DTM file (*.QPD) to LAS note that the Intensity attribute will be exported to the LAS Intensity field and the Quality attribute will be exported to the LAS User Data field.