lijx10 / uwb-localization

Accurate 3D Localization for MAV Swarms by UWB and IMU Fusion. ICCA 2018
Apache License 2.0
340 stars 148 forks source link

how to convert imu acc into uwb's global frame? #5

Closed narutojxl closed 4 years ago

narutojxl commented 4 years ago

Hi @lijx10, thanks for sharing your work to community. After read the reference paper: Accurate 3D Localization for MAV Swarms by UWB and IMU Fusion, when use imu's acc to serve as input to filter, i have a doubt. As we all know, imu's acc is a measurement of imu body acc, in other words, it is local measurement, not a global measurement. The filter's variables x = [px, vx, abx, py, vy, aby, pz, vz, abz ] are all global variables, in uwb's global frame, which is constructed by 6 uwb anchors in paper. Before use imu's acc, how to calculate the rotation between one imu frame attached on MAV and the uwb's global frame? Any suggestion will be much appreciated! Thanks for your help :)

lijx10 commented 4 years ago

We setup the UWB frame so that the xy plane (assume NWU coordinate) is horizontal, and we mount the IMU in a horizontal way as well. Of course there will be slight error because we didn't perform calibration. However, the slight calibration error is a lot smaller than the noise of the IMU itself, therefore it doesn't matter in practice.

narutojxl commented 4 years ago

Hi @lijx10, thanks for your reply. Please forgive me for not making myself clear. The 6 uwb anchors's coordinates are as follows:

pAx0 = 0; pAy0 = 0; pAz0 = 0 pAx1 = 14:6; pAy1 = 0; pAz1 = 0 pAx2 = 14:6; pAy2 = 25:5; pAz2 = 0 pAx3 = 0; pAy3 = −1; pAz3 = 5:3 pAx4 = 0; pAy4 = 26:6; pAz4 = 5:3 pAx5 = 17:4; pAy5 = 10:1; pAz5 = 5:3 That's to say, anchor_0 is the global frame's origin. Let mark this frame as G frame, the other 5 anchors 's coordinates are all in the G frame. The MAV carries a uwb tag on it, let's mark this uwb tag frame as uwb frame, as the Fig. 3 of paper. And we attach a IMU on it horizontally, orientation coincide with uwb frame . The IMU's acc measurement is in IMU frame. In this case, it also say the acc measurement is also in the uwb frame. We want to estimate the MAV's coordinate(uwb's coordinate): px, vx, py, vy, pz, vz at time t in the G frame, But the acc of imu is in IMU frame, not in the G frame. Before use it, we need to convert acc into G frame, but we don't know the rotation between G and imu_t, we only know rotation between imu_0(MAV start takeoff attitude) and imu_t. Do we must know the rotation between G and imu_0 in advance?
I drew a sketch and hoped to express my meaning clearly, if you need to add any information, please feel free to @me, Thanks for your help very much! :) 1

lijx10 commented 4 years ago

Yes, we need to know the transformation between G and imu_0. That is, we need to know the initial position and orientation of the UAV. In practice, we just manually align the orientation of UAVs to the global coordinate.

narutojxl commented 4 years ago

Hi @lijx10, thank you very very much :) :)