This Support Guide article will guide users through performing a boresight calibration to improve the angular and linear accuracy of Pointclouds. This process is carried out using OxTS Georeferencer. See here for a useful webinar on boresighting.
A Boresight Calibration training video can be found here:
Please note, in order to use the boresight calibration feature, you will need to collect data in the best conditions (open skies) possible and use RTK (rinex) corrections. Check the quality of the navigation data and the accuracies are in specification before proceeding with the boresight data collection.
|Georeferencer 1.0||January 2020||18.104.22.168193||Boresight calibration (LIR) for the VLP16.|
|Georeferencer 1.2||November 2020||22.214.171.124||Boresight calibration for linear displacements released in beta.|
|Georeferencer 1.4||June 2021||21.06.04.0||UI and processing speed improvements.|
|Georeferencer 1.5||September 2021||21.08.04.0||Bug fixes.|
|Georeferencer 2.0||~Start of 2022||-||
Algorithm improved and target dimensions can be used to improve the calibration.
This article applies for the latest version of Georeferencer, 1.5.
An example of the improvement boresight calibration gives a LiDAR survey. UAV survey before (left) and after (right) boresighting.
This feature of OxTS Georeferencer is a calibration technique that OxTS have developed in-house. The calibration corrects the user's angular and linear configuration measurements of the LiDAR device in the INS frame. These values are saved in an LIR and LIP file respectively.
A full guide for using OxTS Georeferencer can be found here. Some information useful for boresighting may be included here instead.
LIP Calibration: With the new version of Georeferencer, Georeferencer 1.2, released in October 2020 the boresight calibration can now also calibrate displacements measured between INS and LiDAR coordinate frames. This functionality is in beta and there are cases where it cannot work. The default is to calibrate only the angles, LIP calibration can be selected in the 'Processing Options' section of Georeferencer. The user interaction following this is the same whichever option is chosen. It is recommended that you calibrate only your LIR first and then, if necessary, calibrate LIP only.
Checking your calibration: A technique you should be very familiar with is processing a pointcloud at the retroreflective threshold of your LiDAR (e.g. 100). This is an option in the Processing Options window. This will produce a pointcloud that contains only the boresight targets so you can evaluate how good your overall accuracy is. This processing takes seconds and the pointcloud will only be some hundreds of kilobytes. Doing this before and after the calibration procedure will show you the improvement. Ensure that the targets are roughly correct before calibrating to see an improvement.
The intensity of a reflected LiDAR pulse is usually recorded between 0 and 255 but different manufacturers calibrate the value differently. It should be that any retroreflective points up to some range, 100m let’s say, are recorded with an intensity above a certain value, for example 100 for the VLP16. Setting the reflectivity threshold to 100 will give you a pointcloud with only retroreflective objects, i.e. the targets. Use this as the fastest way to verify the accuracy of your system and processing.
Pointcloud that only contains retroreflective points showing two boresight targets and some retroreflective strips. The targets are flat and square, the system and processing have been used correctly.
Please make sure you are familiar with both Georeferencer and getting the best navigation data possible before attempting to use the boresight calibration feature. In order to refine the angles to the precision that the calibration offers, the very best navigation data is needed.
- Ensure you are using a system that is warmed up and is operating within specification (check in NAVdisplay if possible that the heading, pitch, roll, and position accuracies are around those stated on the datasheet).
- Have the targets set out several meters apart and preferably at somewhat different orientations to maximise the different perspectives the LiDAR has on the reflective surfaces.
- Record a PCAP as you would for georeferencing of the LiDAR data and an RD/NCOM file of about 3-5 minutes in length full of manoeuvres such that the LiDAR is able to view the targets from as wide a range of angles and distances as possible. You can record this PCAP and RD as part of a larger survey. You do not need to do the calibration in Georeferencer before surveying, it can all be processed together later on.
- It is imperative that high accuracy is maintained throughout the data collection. In real time you can monitor accuracies in NAVdisplay, in post-processing you can view the accuracies in NAVgraph by adding the relevant measurements to the plot. You should have centimetre-level (Integer) accuracy throughout.
- If you have done the above then you can use the boresight calibration feature in OxTS Georeferencer. Simply upload your files, NCOM, PCAP, LIP and LIR (and VAT). Input your roughly measured angles and orientations of the LiDAR with respect to the INS, you can check this configuration in the Hardware tab.
- In the 'Processing Options', you will not have to change anything except in special cases. The only thing you have to ensure is correct is the boresight reflectivity threshold. Make sure this is correct for your LiDAR. (Hesai: 130, Veldyne: 100, Ouster: 100, Livox: 150, exact number may vary on your device). You can check if you have it wrong in the next step when if you see many objects other than the targets in the clusterplot.
- Click Run Boresight Calibration. After sorting through the LiDAR to find only those over the reflectivity threshold, you will see a 2D top-down view of your pointcloud that should contain only highly reflective points. You should see two clusters where the targets are. There may be other objects such as licence plates in the pointcloud.
- Select the two targets' positions and reduce the radius of the blue circle to about 2m. This is important: the blue circle should contain all points that belong to one target and no points that belong to any other object.
- Click through the next step and Georeferencer will present the calibrated angles to you after some processing. The LIR file will be updated with these angles and you can create a pointcloud with the calibrated angles.
- The best way to check the performance of the calibration is creating a pointcloud before and after the calibration. Simply set the georeferencing reflectivity threshold to the suitable number (eg 100) and Run Georeferencing to create a pointcloud that only contains the targets. Use the LIR file before and after processing to see the difference.
The idea behind boresighting is to calibrate the coordinate frame from the LiDAR device with that of the INS to obtain a more precise or “true” angular and linear configuration with the INS (the x, y, z, yaw, pitch and roll that the user configures and is stored in the LIP/LIR files). The boresighting data extraction is done in post-processing but there is a process to be followed before data collection. Using the same hardware configuration, boresighting only needs to be done once and the results of it can range from a mild improvement to a significant and essential improvement depending on the accuracy you are able to obtain initially.
A small error in the true configuration of the LiDAR device with respect to the INS can result in large apparent problems with the generated Pointcloud when points are surveyed at range. Not only does the error increase with distance but when an object is viewed from multiple angles, as it likely will be in surveying projects, the difference in the angle of each perspective will create a blurring effect that can lower the quality of the survey. In the worst case, one object can appear as two or more.
Diagram showing the effect of a configuration problem. The Pointcloud will end up looking like a superposition of the red and blue perspectives.
Due to the error in position of points being approximated well by Range x angular error the small correction in angles that boresight applies can produce large improvements especially when repeatedly surveying the same area and at large distances.
The effect of calibrating the LIP, or the displacements, is less significant because it is not multiplied by range. However, for a precise pointcloud it still needs to be precise itself especially when you are looking for centimetre-level accuracy. An error in your displacement will translate a frame away from where it should be. This can cause double vision in details and blurring when frames overlap.
Further examples of boresighting results
UAV survey before and after boresighting showing an elimination of 'double-vision'.
A comparison of an East (red) and West (blue) drive down a road. In this before and after comparison you can see clearly how the error increases linearly with range and how the frames are perfectly aligned after the calibration has taken place.
this is a comparison of before and after an LIP calibration. These reflective strips on our airfield are about 1.5m long. You can see the difference this makes to fine detail, removing double vision from the strips. Before x=-0.8m, y=-0.1m, z=-0.75m and after: x=-0.78m, y=-0.11m, z=-0.77m.
Again comparing a West and East survey of a road. This lamppost exhibits double vision before being calibrated but not afterwards.
You will require:
- A LiDAR device that is compatible with OxTS Georeferencer (a full list is viewable on the web page or guide)
- An OxTS INS (with power, user cable and antennae) with the boresight calibration feature code unlocked
- OxTS Georeferencer which is free to download here
- 2 square retroreflective targets (recommended size of 80cm x 80cm)
Targets: OxTS does not provide or supply the targets that are required for boresighting, they are however easy to make. Using a flat, rigid piece of material roughly 80cm by 80cm layered with retroreflective tape is perfectly usable as long as one has a way of keeping the face of the target adequately supported and stationary for the LiDAR device to see during the data collection.
- Flat: Importantly the targets must be flat, not warped.
- Retroreflective: Defined as reflecting light back along the incident direction, there are many retroreflective materials out there. We recommend retroreflective tape. Reflective material like tin foil is not retroreflective.
- Stationary: DO not allow the targets to move during the procedure.
- Size: The size is not strictly defined but 50-100cm is ideal. The larger, the more accurate the calibration can be. OxTS test with 80x80cm targets.
- Number: Use 2 targets for the boresight calibration.
- Visible: Ensure that your targets are at a good angle for viewing. For a UAV this might be flat on the floor, for a car survey this might be propped at 70° to the ground.
- Shape: The targets only need to be flat for the algorithms however we have only tested with square shaped targets and recommend these.
- Backside: Make sure that the backside of the target is not retroreflective so it does not interfere with the flat shape of the front face seen by the LiDAR.
In Georeferencer 1.5, only the planarity of the targets is used. In Georeferencer 2.0 you have the option to use both the planarity and the target dimensions.
Using a UAV, targets can be laid on the ground whereas for a land vehicle they can be supported by a suitable structure (see below). What is essential is the retroreflective, flat face being visible to the LiDAR. Dimensions do not have to be 80cm x 80cm however this is what OxTS tests with and can guarantee works. Ensure that the boards are not warped and can be set up sturdy.
The LiDAR device records the position of the object it hits and also the intensity of the reflected beam, for retroreflective surfaces the reflected beam is recorded at the retroreflective threshold of the LiDAR device (defined by the manufacturer) whereas other points are usually considerably less and so we can filter the Pointcloud for only the points reflecting off retroreflective surfaces.
An example of a suitable target. 80x80cm square face made with retroreflective tape (left). On the right, the same target seen in a pointcloud by reflection intensity.
To set up to perform the boresight calibration it is important to make sure that the targets are secure and won’t move during the boresight procedure, take into account wind if it may be a problem. It is recommended that the targets are set out in an open environment without obstructions near the targets and with an open sky such that GNSS communication is uninterrupted. The targets can be placed at, or close to, right angles and tilted to help ensure that all axes are properly calibrated but this is not strictly necessary. It is also best practice to calibrate your configuration at the distance you intend to survey. So if your survey will be of roadside buildings about 10 metres away then survey the boresight targets from 2-30 metres away.
GNSS signals that bounce of other objects to hit antennas can cause large errors in position measurements. Ensure that your antennas have ground planes for best performance.
You can change the minimum and maximum distance from the device you want to calibrate with in the Processing Options of Georeferencer.
- Set up targets at least 5m away from each other.
- Try to have the targets at different angles, preferably at right angles and both tilted.
An example of a set up including two targets at right angles.
Ensure that the INS is logging data and has been initialised and that the LiDAR device is also logging (either via PCAP or the OxTS INS onboard LCOM logging) . The more data that the LiDAR takes the more accurate the boresight calibration will be, however; a 1-2 minute survey should be sufficient (longer is always better if it is viable). The vehicle needs to be manoeuvred in such a way that many hits are landed on the targets from as many angles as possible. In addition, hits at a range of distances over which you expect to obtain the useful information of your survey should be acquired. Looping around the targets, zig-zagging, moving in a serpentine fashion are all ways of systematically approaching many angles (The first picture below shows a suitable driving route around the two targets in pink). The second picture below shows the azimuth-range chart, a good range of angles and distances need to be surveyed. There is no need to do such a lengthy boresight procedure, 2-3 minutes will suffice as long as the full range of perspectives possible is surveyed. It is best to do manoeuvres for 5 minutes.
The ideal driving/flying conditions would be:
- Do not start the boresight data collection without doing a warmup beforehand and checking that the accuracies are in spec.
- 5-10 minutes of data collection.
- Do not start or end in view of the targets.
- Speed is not important but 5-25mph would be typical. The faster you go the fewer frames of LiDAR data will be viewing the targets.
- No specific driving patterns are needed (for example figure-of-eights) however this can be useful for knowing which perspectives are covered.
- Driving/flying should maximise the number of different perspectives of the targets (range and angles of LiDAR with respect to targets).
- If using a drone, ensure you vary the altitude as well as angles and range. Try not to hover or change altitude in view of the targets as the accuracy of the system will be reduced during these periods.
- You can see images below for ideal driving trajectories for the boresight.
The NCOM data is shown on Bing maps. This is a typical driving pattern for a boresight calibration. Pink circles have been added to show where the targets are.
The Azimuth-Range chart 'heatmap'. This shows you the number of hits for each azimuth angle and at each range segment.
Example of manoeuvres fore a boresight calibration with a 360° FOV LiDAR. The grey line is the vehicle's trajectory and the yellow dots are the locations of the targets.
Motion image of the vehicle trajectory for a boresight calibration. The targets are within the driving pattern and driven round on both sides for maximum perspective exposure.
If using the Livox LiDAR, or any other that has a limited FOV, it might take longer to perform the boresight calibration, especially on a mobile mapping vehicle. Many of the same manoeuvres will of course yield no hits on the targets. Ensure that for 3-5 minutes of the surveying the LiDAR is seeing the targets.
The Boresight Calibration process applies algorithms to the LIR file, modifying its values until they produce the best pointcloud.
In the Files tab you can create the LIP and LIR files by clicking the plus icon. The files are then edited and viewed using the Hardware Configuration tab.
The process is very simple.
- Measure the distance from the INS to the LiDAR along each axis of the INS. The centre of the IMU and the direction of the axes are shown on the top of the INS. The position of the LiDAR origin will be described in its manual. You want the x, y and z displacements. This information goes into the LIP file.
- Measure the rotation of each axis of the LiDAR with respect to the INS axes. Check the LiDAR manual to see where the axes are directed. Then, measure the rotation f each with respect to the INS axes. You want the rotation of the LiDAR x-axis to the INS x-axis and the same for y and z. This information goes into the LIR file.
- You can create the LIP and LIR files by clicking the 'plus' icons in the Files tab of Georeferencer.
- View the resultant hardware configuration in the Hardware tab. Check the displacements and rotations are what you are expecting.
- When you perform the boresight calibration, the LIR (/LIP) file in Georeferencer will be updated. The calibrated file will also be saved in a folder with information about the calibration.
- To check the before and after resultant pointclouds, process the boresight data collection with the reflectivity threshold set to 100 using first the uncalibrated LIR and then the calibrated LIR file.
LIP and LIR
The LIP file is the positional configuration of the LiDAR with respect to the INS frame. This is the x, y and z displacement from the INS measurement point to the LiDAR device, each of these measurements is on their own respective line in a simple text file with an .lip extension. You can create an LIP file by clicking on the LIP plus icon in Georeferencer and then input the numbers in the Hardware Configuration tab. You should have measured these while setting up and they should be as accurate as possible. A feature of the boresight calibration that is in beta is the LIP calibration. This will calibrate the LIP values. We recommend that you calibrate the LIR values and then the LIP values if using this feature. The format of the file is:
x (yaw) measurement
y (pitch) measurement
z (roll) measurement
1 or 0 (indicates if data has been calibrated)
Screenshot of Georeferencer's Hardware Configuration tab.
Make sure that the displacements are measured form the measurement point of the IMU (this is shown on the INS exterior) and not simply the centre of the device.
It is very important that this file is correct.
The LIR file is the angular configuration of the LiDAR with respect to the INS frame. This is the relative yaw, pitch and roll displacement between the INS measurement axes and the LiDAR device axes (x, y, z), each of these measurements is on their own respective line in a simple text file with an .lir extension. You can create an LIR file by clicking on the LIR plus icon in Georeferencer just like the LIP.
Measure the angles as best you can between the orthogonal axes of the LiDAR and the INS. The INS axes are printed on the device and shown in Georeferencer. The axes for the LiDAR device will be shown in the user manual and they are typically different for each LiDAR. Ideally take photographs of your setup to troubleshoot this process especially if you want support from OxTS. If you are using any LiDAR in Georeferencer 1.4 then you will be able to see a 3D model of your LiDAR with the correctly oriented axes in the viewer. Simply check that the angles are correct and if they are they are off by some degrees you can use the boresight calibration to fix the configuration. You can also view the INS and LiDAR configuration as it is oriented on the vehicle you are using.
If you happen to be using a LiDAR that is not supported by a 3D model in Georeferencer (e.g Livox) then you can use a blue cube model that shows the INS axes on it. Simply rotate the axes to where they are in relation to the INS by checking how they are oriented in the LiDAR manual. For example:
Screenshot of origin and axes for the Livox Avia.
The best way to do this is to make the angles between INS and LiDAR multiples of 90 or close to it. You can then make sure that the axes in the hardware tab on the LiDAR are where they should be. You will likely have to work out the correct combinations of rotations to get the correct setup, do this by performing each rotation one after the other: yaw, pitch and roll.
Example of determining the LIR for a Livox setup using the blue cube model.
- Check the manual for the LiDAR unit axes and visualise how these relate to the INS axes. For example, the y axis of the VLP16 points the opposite direction of the cable and the z axis points up.
- Work out the correct combination of rotation to rotate the axes of the cube into the correct LiDAR axes. To begin with a 0, 0, 0 LIR corresponds to having the same axes as the INS but we need to rotate the axes to reproduce the image on the right above.
- This can be done by applying first a 180 yaw rotation followed a 90 pitch rotation and a 90 roll rotation so an LIR of 180, 90, 90 is used in Georeferencer.
You can make estimations for the correct axes beforehand and then edit them in the Hardware tab of Georeferencer where you can view the configuration. In addition, if you have done a boresighting run, make sure you use the boresighted LIR values. A boresighted LIR file will have a flag value of '1' on a fourth line to signify it is optimised.
The hardware tab allows you to view your configuration and make alterations to the LIP and LIR files. The above compares the view from previous versions of Georeferencer to the new version (bottom) for the same setup.
As usual in the post-processing stage, obtain the best possible NCOM data file using combined processing and base station files in the NAVsolve software. Next, use the NCOM file and VAT file from that processing in the Georeferencer software with the PCAP or LCOM files that the LiDAR device logged, in addition; the LIR and LIP files are also required (these can be created in the files tab and viewed in “Hardware Configuration” in Georeferencer if they do not already exist).
Georeferencer will check if the files are synchronised and, if they are, a boresight calibration can be completed simply by clicking the “Run Boresight Calibration” button. The software will process the raw data to decide which configuration angles are necessary for the square targets to be accurately represented in the Pointcloud. For the next step, see the gif below. A visual plot of the retroreflective areas that have been identified will be laid over the path of the vehicle in the next stage of the process; if the raw data and configuration files are all correct then there should be two clusters of points which represent the targets. The user will be prompted at this stage to confirm the software’s automatic selection of the targets’ positions as well as altitude (3D definition is required). To select the Altitude, click on the section of the bell curve to the right of the map which demonstrates the highest hit count, so it turns from yellow to red (this is done automatically in Georeferencer 1.4). Next, click "Check Target Points" to verify you have at least a few thousand hits on the targets and then click “Continue Boresight”. The GIF below shows the target selection process:
The targets are seen as a cluster of points inside a searching radius. Retroreflective strips on our airfield can also be seen. Red points are retroreflective points in the LiDAR data, grey points are the vehicle trajectory, the yellow circles are where the software has currently located the boresight targets and the blue circles are boresight search radii (within which only and all of the target should be contained).
Following this, the LIR and LIP file will be updated in OxTS Georeferencer with a much more precise configuration than the user is usually capable of obtaining without boresight calibration.
Boresight calibration has now been completed and OxTS Georeferencer can now be run to produce the pointcloud LAZ file with the optimised alignment settings. A processing folder will have been created which includes the original and the optimised value files.
The manually entered angles and the boresighted calibration angles are compared.
Several settings can be changed for the boresighting algorithms, it is recommended that the default settings are used unless a user has some experience and understanding of the settings and the effect their changing may have.
During the target selection stage, the size of the point cluster search radius can also be adjusted. This is useful if there are other retroreflective objects in the vicinity (some road markings for example) that may incorrectly shift the automated prediction of where the target is. One can also change the proportion of points within the cluster that need to be considered to be inliers for the software to perceive it as a target. You want to get all of the target inside the blue circle and no other retroreflective points.
If your LiDAR has reflectivity calibrated differently to a Velodyne VLP16 LiDAR then you may have to increase the reflectivity threshold used in the Processing Options. For example, a Hesai LiDAR usually has to be set to a reflectivity threshold of 150.
Reducing the maximum range from 100 to 70 or less can improve the boresighting accuracy slightly due to the LiDAR becoming noisier on any hits from distances nearing its maximum range. The distances away from the LiDAR at which points have been seen can be visualised on the Boresight Overview tab after running the first stage of the boresight process.
If you are having problem getting correct results, refer to the Georeferencer guide, if this does not help then send us an email and we can have a look at your data.
- Other objects during boresighting: If your LiDAR unit is not calibrated to have retroreflective objects at a registered reflectivity of 100 (out of 255) then the default boresight calibration might not work. If this is the case then you can select 'processing options' before calibrating and change the 'reflectivity threshold' on under 'boresight options' to a higher number e.g. 150. It might also be the case that the LiDAR is picking up part of the vehicle, this can be removed by using a minimum range.
Example clusterplot with the default reflectivity threshold of 100 using a VLP32. Instead of just the targets many objects show up.
- Target smearing: If your setup or navigation data is poorly configured then the targets may be too smeared out to correctly boresight. When choosing the locations of the targets on the clusterplot page you must ensure that the blue circle encompasses all of the points that correspond to a target and also that no other retroreflective points are encompassed in the circle. If you can't make this happen you may have to manually measure your setup better until it is good enough to boresight. Also, try removing the first part of your survey where the INS may still be warming up.
If there is major smearing in your pointcloud or boresight clusterplot then this will be one of two issues: an incorrect LIR or a time offset between the navigation and LiDAR data. Triple check the LIR of your setup using the LiDAR manual to view the correct orientation axes. If you are using PTP as your time synchronisation method then a time offset might be present depending on how time epochs have been implemented on the receiving device. For example, if using an Ouster LiDAR you might have to apply a -18s offset. In 2.0 this can be easily done by selecting Unix and a -18s offset. In previous versions of Georeferencer you can use the command 'lidar_time_offset=-18000000000’.
- Pointcloud 'lite': A common technique for troubleshooting boresighting is to produce a light pointcloud by setting reflectivity to 100 and running georeferencing.
Checking your calibration
It is recommended that you check the calibration before going on to do your surveying work. This is not necessary but does not take long. Collect your boresight data collection and then calibrate it in OxTS Georeferencer. Check that the data is now good by georeferencing a pointcloud with the reflectivity set to 100-150 as described at the top of this article. Open the resultant pointcloud in some viewing software and check that the targets are as they should be. Then, proceed with your survey work.
If the data is not as it should be, check the quality of the navigation data throughout the data collection, check that the starting LIR is correct and the configuration set in NAVconfig is good.
Contact OxTS for information on troubleshooting a boresight calibration, obtaining survey-grade INS devices or to share your boresighting data with us or test some of our data sets.