Comments (3)
@precyon @lijx10 Same questions as above.
- I think the tag should move during calibration because the calculation requirement for triangulation error.
- Firstly from the paper I have thought the input may between each other. but the calibration code seems to use only the range between tag with anchors. In fact this may be more useful for calibration because we may not necessary to calibration before using them, may be simultaneously using in other problems like localization.
- This also confused me, this parameters seems only can give roughly by manual measurement, which may cause errors for calibration.
Hope communication with you! Thank you.
from uwb-localization.
- The calibration process involves only the anchors. The anchors are fixed and we estimate their positions according to the relative distance between any pair of anchors.
- The input is: the relative distance between any pair of anchors. That is, for anchor A and anchor B, we have the measurement d_{AB} and d_{BA} from the readings these to anchors. Any single measurement from UWB sensors are unreliable. Therefore we take the median of multiple measurements as the estimated distance between A and B, i.e., \hat{d_{AB}}, \hat{d_{BA}}. Ideally \hat{d_{AB}} should be very close to \hat{d_{BA}}.
- Yes, the relative distance doesn't give unique coordinates. In order to get a unique coordinate system, we apply the following practices:
- Relative distance between any pair of anchors. That is
triangulation_error_term.hpp
- Fix one of the anchor as the origin, i.e.,
anchor_101: [0, 0, 0]
inuwb_calibration.yaml
- Force the direction of one of the anchor, i.e.,
anchor_102_direction: [0,0,0, 1,0,0]
, inuwb_calibration.yaml
. More specifically, denote the coordinate of anchor_102 and [x, y, z], we force [x-0, y-0, z-0] and [1, 0, 0] are in the same direction (angle between these two vectors = 0). This is defined inpoint_line_distance_error_term.hpp
. - Until now, there is still one degree of freedom not fixed. We solve it by setting the
z
coordinate of another anchor. That isanchor_103_coordinate: {z: 0}
inuwb_calibration.yaml
. - We enforce some prior information. For example, we have accurate measurement (acquired by high precision laser ranger) of the height of anchors. Therefore we set the
z
coordinate of anchor_104, 105, 106.
from uwb-localization.
@goldenminerlmg
In our implementation, calibration (involved uncalibrated anchors) and localization (between calibrated anchors and the UAVs) are separate. That is:
- Fix the position of anchors.
- Perform calibration of the anchors.
- Localize the UAVs
For your questions:
1 & 2. Actually it is possible to perform calibration and localization simultaneously. But that requires quite some time for the algorithm to converge from initial guess. In our application, we requires the agile and accurate flight of UAVs once they takeoff. Therefore, we perform accurate calibration of the anchors before UAVs taking off.
- Our anchor calibration is formulated as an least square optimization. Therefore, initial guess is required. Line 5-11 in
uwb_calibration.yaml
are initial guess. The calibration will be performed based on relative distance measurements between anchors and the constraints. Please refer to my reply to @precyon for details.
from uwb-localization.
Related Issues (8)
- Some message files are missing HOT 1
- Is there any other detail to understand those code? HOT 1
- Could you share your firmware version and parameters setting?
- how to convert imu acc into uwb's global frame? HOT 4
- Build error HOT 3
- Error in code
- How did you calculate the Position Errors reported in Table 1 in the paper? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from uwb-localization.