Skip to content

Commit c8481f7

Browse files
TeamA F22: External state estimation (#171)
* Added new wiki pages for robotic total stations and ultra wide band beacon positioning. --------- Co-authored-by: John Harrington <[email protected]>
1 parent 9530584 commit c8481f7

14 files changed

+211
-0
lines changed

_data/navigation.yml

+6
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,12 @@ wiki:
110110
url: /wiki/sensing/gps/
111111
- title: Intel Realsense
112112
url: /wiki/sensing/realsense/
113+
- title: Robotic Total Station (Leica TS16)
114+
url: /wiki/sensing/robotic-total-stations.md
113115
- title: Thermal Cameras
114116
url: /wiki/sensing/thermal-cameras/
117+
- title: DWM1001 UltraWideband Positioning System
118+
url: /wiki/sensing/ultrawideband-beacon-positioning.md
115119
- title: Actuation
116120
url: /wiki/actuation/
117121
children:
@@ -169,6 +173,8 @@ wiki:
169173
url: /wiki/state-estimation/visual-servoing/
170174
- title: Cartographer SLAM ROS Integration
171175
url: /wiki/state-estimation/Cartographer-ROS-Integration/
176+
- title: Externally Referenced State Estimation for GPS Lacking Environments
177+
url: /wiki/state-estimation/gps-lacking-state-estimation-sensors.md
172178
- title: Programming
173179
url: /wiki/programming/
174180
children:
Loading

wiki/sensing/assets/drtls_app.png

2.98 KB
Loading

wiki/sensing/assets/drtls_ids.png

82.8 KB
Loading

wiki/sensing/assets/dwm_arch.png

133 KB
Loading

wiki/sensing/assets/gdop_example.png

105 KB
Loading
6.24 KB
Loading
93.8 KB
Loading
+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
---
2+
date: 2022-12-05
3+
title: Robotic Total Station (Leica TS16)
4+
---
5+
This page will go into detail about to get started with the TS16 Total Station, manufactured by Leica Geosystems. This information is likely helpful for other robotic total station integration, but is has not been tested.
6+
7+
### How does it work?
8+
9+
Total stations have an extended heritage in civil engineering, where they have been used to precisely survey worksites since the 1970s. The total station sends beams of light directly to a glass reflective prism, and uses the time-of-flight properties of the beam to measure distances. The robotic total station tracks it's calibration orientaiton to high precision, such that the measured distance can be converted into a high-precision 3D position mesaurement. Total stations, depending on the prism type and other factors, can accurate track with in millimeter range at up to 3.5km [Leica-Geosystems](file:///home/john/Downloads/Leica_Viva_TS16_DS-2.pdf).
10+
11+
![Example usage of a Total Station in the Field](assets/leica_field_image.jpg)
12+
[Source](https://leica-geosystems.com/)
13+
14+
### Best Use Cases & Expected Quality
15+
16+
There are various companies that make robotic total stations including Leica and Trimble. While there is a wide variety of abilities between different models, there are certain key characteristics that matter when used as a real-time positioning system:
17+
18+
- Range (How far does this need to work at?)
19+
- Angular tracking ability (Can the total station track objects moving closeby?)
20+
- Frequency (How often does it provide measurements?)
21+
22+
Accuracy is the bottom line for robotic total stations. If the system is able to maintain line-of-sight with the total station, it is reasonable to expect <2cm accuracy in positioning, even over rather large distances (unknown exactly). This is especially valuable since it can provide an accurate positioning in XYZ, rather than just XY like many alternatives.
23+
24+
### Limitations
25+
26+
The key limitation of the total station is that it requires constant line-of-sight with the reflector prism it is tracking. Unlike other methods such as UltrawideBand or Ultrasonic positioing, recovery is not trivial.
27+
28+
While certain companies like Caterpillar have official partnerships with total station manufacturers to allow for seemless integration with their vehicles [source](https://www.constructionequipment.com/technology/construction-technology-software/news/10757055/caterpillar-and-trimble-announce-change-to-joint-venture-providing-greater-flexibility-and-customer-focus), this technology is not currently available in such a robust manner to all. For that reason, "hacking" a total station to provide real-time sensory information made result in a unknowable latency with difficult to characterize dropout at times. While this did not become a detriment while the author was working on it, it's important to note.
29+
30+
Additionally, it's possible for the total station to lose it's track of the reflective prism, meaning that it ceases to provide valuable data. In a more robust system, there could be an automatic search process to return to a tracked state, but it is not explored in this wiki.
31+
32+
## Setup
33+
34+
In order to setup a total station tracking system, it's important to have all of the hardware:
35+
36+
### Hardware
37+
38+
This method has been tested on a TS16, but it would likely work on a TS15 or other Leica products. Most total stations use a [GEOCOM communication standard](https://www.naic.edu/~phil/hardware/theodolites/TPS1200_GeoCOM_Manual.pdf), which means that it's very likely that a similar serial interface could be adapted for most total station hardware. Leica hardware is particularly expensive, so a brand new total station with the best tracking specifications will run approximately [$30k](https://www.allenprecision.com/leica-viva-ts16p-series-robotic-packages).
39+
40+
The other side of the total station is the reflector, which is used to get the high precision ranging. This is an important piece of hardware, especially in this use case. Since the prism will be moving, having high quality glass will reduce the imperfections that could cause the reflected beam to be off-center, resulting in a higher likelihood of losing tracking of the prism. A high quality prism from Leica will cost more than [$1k](https://www.allenprecision.com/360-reflector).
41+
42+
![Leica GRZ122 360 Prism](assets/leica_360_prism.jpeg)
43+
[Source](https://leica-geosystems.com/)
44+
45+
In order to connect the total station to a compute platform, it's possble to use wired or wireless methods. This wiki only explores the usage of USB connections using Leica's custom (and [expensive](https://www.baselineequipment.com/leica-instrument-to-datacollector-laptop-usb-cable)) cable.
46+
47+
### Calibration
48+
49+
In order to calibrate the total station, there are various ways to do it, all outlined in [various videos online](https://www.youtube.com/watch?v=ozbow6OgUlQ).
50+
51+
The simplest way to calibrate the total station in a repeatable fashion is to use the "Orientate to Line" method. The context for the following instructions is to create fixed locations (fixtures) that allow a repeatably placed reflector location at both sites. By default, the line created by these reflectors would now become the X-axis of the local coordinate frame (which can be transformed into any other desired frame at a later point).
52+
53+
1. Prepare reflector
54+
2. Attach reflector to fixture-1
55+
2. Change the Target settings of total station to `REFLECTOR_TYPE` (Settings -> TS Instrument -> Measure & Target)
56+
3. Go to Home -> Setup
57+
4. Choose the “Orientate to Line” method
58+
5. Measure two points that define an axis.
59+
6. Use default settings (no changes required)
60+
7. The first measured point becomes (0,0)
61+
8. The second line determines the vector of the axis
62+
9. Derive setup height from “Manually enter”. Leave 0.0 as the value
63+
10. Place the reflector in Location A (see Figure 1) via S-hook attachment
64+
11. Ensure the reflector is being tracked via the top bar options (“Target tracking on”)
65+
12. Press “Measure” to measure the first location
66+
13. Move reflector to fixture-2
67+
14. Press “Measure” to measure the second location
68+
15. Press “set” to finish calibration
69+
70+
At this point, any measurement that comes out of the total station will be with respect to the two measured points, which can be repeated for consistent testing and application.
71+
72+
### Publicly Available ROS/ROS2 Nodes
73+
74+
In order to setup the TS16 node into a ROS/ROS2 environment, follow the instructions in the repositories below:
75+
76+
[ROS](https://github.com/arpit6232/Leica_Total_Station_ROS)
77+
78+
[ROS2](https://github.com/John-HarringtonNZ/ts16_ros2_node)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
---
2+
date: 2022-12-05
3+
title: DWM1001 UltraWideband Positioning System
4+
---
5+
This page will go into detail about to get started with UltraWideband positioning, particuarly with the [DWM1001-Dev module](https://www.qorvo.com/products/p/DWM1001-DEV).
6+
7+
### How does it work?
8+
9+
UltraWideband is a short-range wireless communication protocol, allowing connected devices to communicate across short ranges, similar to bluetooth. Unlike blueooth, UltraWideband transmits over a wider frequency, allowing for a more precise and wider bandwith of communication, albeit over a shorter range.
10+
11+
Ultrawideband positioning takes advantage of the communication pulses to sense distances between transmitters through a two-way ranging protocol described in detail [here](https://forum.qorvo.com/uploads/short-url/5yIaZ3A99NNf2uPHsUPjoBLr2Ua.pdf). As a simplification, it is able to measure the time period that messages take to transmit between devices, while accouting for potential clock and frequency shift between devices.
12+
13+
By using multiple stationary devices, a single or multiple mobile beacons can be tracked by combining ranges through trilateration.
14+
15+
![Example usage of a DWM1001 setup](assets/decawave_example_multi_anchor.png)
16+
[Source](https://www.researchgate.net/profile/Teijo-Lehtonen/publication/281346001/figure/fig4/AS:284460038803456@1444831966619/DecaWave-UWB-localization-system-SDK-5.png)
17+
18+
### Best Use Cases & Expected Quality
19+
20+
At the time of writing, one of the most common modules for UWB is the DWM1001. Information of how to get started with that can be seen [here](LINK TO WIKI PAGE ON DWM1001). Since these modules are mass manufactured, they can be purchased very inexpensively and should be considered one of the most affordable options for positioning systems.
21+
22+
### Limitations
23+
24+
UltraWideband positioning systems work best in wide open spaces, such as convention spaces or warehouses. Not only will direct line-of-sight interference causes issues for UWB systems, but also multi-pathing can cause [serious problems](https://ieeexplore.ieee.org/document/7790604).
25+
26+
Even in the best scenario, it should be expected that a UWB positioning system will be able to get an accuracy of approximately (15-20cm) accuracy in XY, and even worse in Z (explained more in the calibration section).
27+
28+
## Setup
29+
30+
In order to setup a DWM1001-Dev UltraWideband positioning system, it's important to have enough DWM1001-Dev modules (`beacons`) for your use case. Each one of the `beacons` can either be configured as a `tag`, `anchor`, or `gateway`. `tag`s represent mobile `beacons` that will be on your robot, `anchors` represent stationary anchors, and `gateways` are modules that sole job are to pipe information over serial to your compute stack. While there are multiple ways to get information from these devices, this guide will describes how to access it over a direct USB serial connection.
31+
32+
![Architecture of a DWM1001-Dev setup with multiple gateways](assets/dwm_arch.png)
33+
34+
Before any work can be done on the `beacons`, they must be flashed with the pre-built software provided by the manufacturer for this task. A detailed guide can be found [here](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjNrN-T8OP7AhWTFVkFHRNTCzcQFnoECBMQAQ&url=https%3A%2F%2Fwww.qorvo.com%2Fproducts%2Fd%2Fda007972&usg=AOvVaw2va8gKJNC_mfXq5EQZAO0S)
35+
36+
### Configuration & Calibration
37+
38+
Once the beacons have been flashed, they need to be configured and calibrated. This can be one most easily using their provided Android app, [Decawave DRTLS APK](https://apkcombo.com/decawave-drtls-manager-r1/com.decawave.argomanager/). There is also information found [here](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjNrN-T8OP7AhWTFVkFHRNTCzcQFnoECBMQAQ&url=https%3A%2F%2Fwww.qorvo.com%2Fproducts%2Fd%2Fda007972&usg=AOvVaw2va8gKJNC_mfXq5EQZAO0S) about performing this work directly through a command line, but it is less documented.
39+
40+
![DRTLS App Screenshot](assets/drtls_app.png)
41+
42+
In order to use the app, follow the instructions linked [here](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwi-id_G9-P7AhVIGVkFHVIPBZ0QFnoECA0QAQ&url=https%3A%2F%2Fwww.qorvo.com%2Fproducts%2Fd%2Fda007996&usg=AOvVaw09yRMbgwEx7hxTDpJP4G8D).
43+
44+
#### Instructions Addendums
45+
46+
In the instructions, it shows how to either automatically calibrate the positions of the `anchors` as well as how to manually input their positions. For best results, manually measure the 3D positions of the `anchors` using a high-precision device, including either a MOCAP system, high-fidelity laser scanner (eg. FARO), or a total station.
47+
48+
It is possible to change the update rate of all `beacons`. For most real time positioning, it is reccomended to maximize this at 10Hz.
49+
50+
During configuration, make note of the `beacon` IDS (eg. from `Tag DW11A1` the tag ID is `11A1`). This should be the ID used in the driver config to identify multiple tags independently.
51+
52+
![DRTLS App - Beacon IDS](assets/drtls_ids.png)
53+
54+
At this point, the DRTLS app can be used directly to test the 3D positioning. Ensure all modules are powered, and if ther are, enter the "map" page of the app to view all of the `beacons` live, including the dynamic positioning of the `tag`.
55+
56+
#### Dilution of Precision
57+
58+
In most cases, the `anchors` are located around a room, such that they are relatively planar with respect to each other. For 2D localization, this is perfectly acceptable, but it becomes an issue when attempting 3D localization. This is due to the concept of *[dilution of precision](https://en.wikipedia.org/wiki/Dilution_of_precision_(navigation))*, which originated from GPS. For GPS, it means that as GPS satellites attempting to provide a location to a ground side receiver get relatively close to each other, the output precision of the ground side position estimation becomes poorer, as seen below:
59+
60+
![GDOP Example](assets/gdop_example.png)
61+
62+
For UWB, this means that if the `anchors` are all close to the same Z plane, their Z localization precision will suffer. Ideally, all anchors should be placed at widely different heights to improve this. However, the beacons need to also be placed away from corners (such as the intersection of the floor/ceiling to the wall), leading to a difficulty.
63+
64+
65+
### Publicly Available ROS/ROS2 Nodes
66+
67+
Now with a functioning module setup, including calibration, it is possible to link this up with a robotic system. Below are links to two existing repositories to read serial data into a ROS/ROS2 ecosystem.
68+
69+
[ROS Node](https://github.com/TIERS/ros-dwm1001-uwb-localization)
70+
71+
[ROS2 Node](https://github.com/John-HarringtonNZ/dwm1001_dev_ros2)
72+
73+
If you are linking multiple UART devices to a single compute platform, it is likely that they will showup as different names by default depending on when they are plugged in, etc. To standardize this, you can assign a specific name based on the hardware ID to ensure consistent naming conventions. Follow [this](https://gist.github.com/edro15/1c6cd63894836ed982a7d88bef26e4af) guide for details.
Loading
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
# Jekyll 'Front Matter' goes here. Most are set by default, and should NOT be
3+
# overwritten except in special circumstances.
4+
# You should set the date the article was last updated like this:
5+
date: 2022-12-05 # YYYY-MM-DD
6+
# This will be displayed at the bottom of the article
7+
# You should set the article's title:
8+
title: Externally Referenced State Estimation for GPS Lacking Environments
9+
# The 'title' is automatically displayed at the top of the page
10+
# and used in other parts of the site.
11+
---
12+
Robotic systems will often encounter environments where GPS access is either lacking or denied. In these environments, it's important to still maintain some accurate global representation of the robot's state, both for localization and mapping purposes. This is a relatively common problem in robotics, and is commonly dealt with through a combination of proprioceptive sensors and an estimation of the local environment in order to perform [SLAM](https://www.mathworks.com/discovery/slam.html). This is effective in environments where there are unique features to localize off of, but can struggle in uniform or dynamic environments. For that reason, there is benefit in considering sensor suites that take advantage of external infrastructure to provide a fixed positional reference. This fixed positional reference can mitigate drift or catastrophic localization error for robotic systems where signifacant state estimation errors are disallowed or not preferable.
13+
14+
15+
## Common Types of External Referencing Positioning Systems
16+
17+
### UltraWideband Beacons (UWB)
18+
19+
UltraWideband is a short-range wireless communication protocol, allowing connected devices to communicate across short ranges, similar to bluetooth. Unlike blueooth, UltraWideband transmits over a wider frequency, allowing for a more precise and wider bandwith of communication, albeit over a shorter range.
20+
21+
Ultrawideband positioning takes advantage of the communication pulses to sense distances between transmitters through a two-way ranging protocol described in detail [here](https://forum.qorvo.com/uploads/short-url/5yIaZ3A99NNf2uPHsUPjoBLr2Ua.pdf). As a simplification, it is able to measure the time period that messages take to transmit between devices, while accouting for potential clock and frequency shift between devices.
22+
23+
By using multiple stationary devices, a single or multiple mobile beacons can be tracked by combining ranges through trilateration.
24+
25+
![Example usage of a DWM1001 setup](assets/decawave_example_multi_anchor.png)
26+
[Source](https://www.researchgate.net/profile/Teijo-Lehtonen/publication/281346001/figure/fig4/AS:284460038803456@1444831966619/DecaWave-UWB-localization-system-SDK-5.png)
27+
28+
At the time of writing, one of the most common modules for UWB is the DWM1001. Since these modules are mass manufactured, they can be purchased very inexpensively and should be considered one of the most affordable options for positioning systems.
29+
30+
### Ultrasonic Positioning
31+
32+
Ultrasonic positioning works in a similar way to UWB, but rather than transitting frequencies at a very high frequency, the products instead rely on a combination of lower frquency communication pulses and beamforming. By using a sensor array on each device, they are able to claim a 2D positioning accuracy of +-2cm.
33+
34+
35+
![Example usage of a DWM1001 setup](assets/marvelmind_example.jpg)
36+
[Source](https://marvelmind.com/)
37+
38+
As an important note, ultrasonic pulses are harmful to human hearing over an extended period of time and should not deployed around humans without ear protection.
39+
40+
### Robotic Total Stations
41+
42+
Total stations have an extended heritage in civil engineering, where they have been used to precisely survey worksites since the 1970s. The total station sends beams of light directly to a glass reflective prism, and uses the time-of-flight properties of the beam to measure distances. The robotic total station tracks it's calibration orientaiton to high precision, such that the measured distance can be converted into a high-precision 3D position mesaurement. Total stations, depending on the prism type and other factors, can accurate track with in millimeter range at up to 3.5km [Leica-Geosystems](file:///home/john/Downloads/Leica_Viva_TS16_DS-2.pdf).
43+
44+
![Example usage of a Total Station in the Field](assets/leica_field_image.jpg)
45+
[Source](https://leica-geosystems.com/)
46+
47+
## Key Factors to Consider
48+
49+
When considering external referencing positioning systems, it's important to consider the following:
50+
51+
- What is the environmental conditions? Is the robot running indoors or outdoors? interference)
52+
- Will there be humans in environment
53+
- Will the robot have line-of-sight to the fixed infrastructure?
54+
- What are the accuracy and precision requirements?

0 commit comments

Comments
 (0)