Open precyon opened 5 years ago
@precyon @lijx10 Same questions as above. 1) I think the tag should move during calibration because the calculation requirement for triangulation error. 2) 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. 3) 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.
@precyon
triangulation_error_term.hpp
anchor_101: [0, 0, 0]
in uwb_calibration.yaml
anchor_102_direction: [0,0,0, 1,0,0]
, in uwb_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 in point_line_distance_error_term.hpp
.z
coordinate of another anchor. That is anchor_103_coordinate: {z: 0}
in uwb_calibration.yaml
.z
coordinate of anchor_104, 105, 106.@goldenminerlmg In our implementation, calibration (involved uncalibrated anchors) and localization (between calibrated anchors and the UAVs) are separate. That is:
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.
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.
Great work @lijx10 with the performance of your UAVs and thanks for making the localization code available.
I have been trying to understand the calibration part of your code. Is there is paper/documentation somewhere that could give me some hints? I understand that there is no unique solution to calibration of anchor positions if only the ranges between the anchors are known. So I have been trying to understand the following:
Thanks!