LuoXubo / JointLoc

[IROS 2024] JointLoc: A Real-time Visual Localization Framework for Planetary UAVs Based on Joint Relative and Absolute Pose Estimation
https://luoxubo.github.io/projects/iros2024.html
MIT License
36 stars 1 forks source link

Question about dataset #6

Open vasnakh opened 3 months ago

vasnakh commented 3 months ago

can you please elaborate more on dataset side of things? specifically about satellite images: 1) when a filename is 0_x0_y0.png is x0 and y0 latitude and longitude respectively? or are they just pixel coordinates based on original satellite image? based on example dataset i feel like it's pixel coordinates, but just wanted to make sure.

2) If it's pixel coordinates then i probably need to have a mapping from pixel coordinates of satellite imagery to actual geolocation, correct?

3) what exactly is gt.txt under uav folder and where does that come from? From quick look AbsLoc/estimate.py seems like it's being used to get the pose and publish it to slam? but i thought the estimated absolute pose actually gets published into slam. a bit confused here, since i thought the absolute pose being sent to orbslam2 is 2-dof and it comes from superpoint matches

LuoXubo commented 2 months ago

Of course,

  1. 0_x0y0 is the [index]_[left]\[up] of the sub-satellite image. They are pixel coordinates based on the original satellite images.
  2. Yeah, you need a mapping.
  3. Sorry to confuse you. "gt.txt" is actually generated from the Unreal Engine, and it's also used to evaluate the algorithms. The absolute poses are estimated by the Absolute module in estimate.py and published to Redis. We have fixed this bug.
vasnakh commented 2 months ago

Thank you so much for the explanation and fixing the bug. Regarding estimate.py, can i just modify the code to not use gt.txt when i want to evaluate the algorithm on real data that was not generated via Unreal Engine? I am assuming that only estimated x and y and best_score will be used during algorithm runtime/optimization and pose.z, pose.qw, pose.qx, pose.qy, pose.qz can just be set to 0 for example?

LuoXubo commented 2 months ago

Yeah, you can modify the code in estimate.py to ignore the gt.txt. We introduce quaternions here only for future work. In this project, you will find that quaternions do not affect the final accuracy :-)

Wu-ZW commented 2 months ago

Yeah, you can modify the code in estimate.py to ignore the gt.txt. We introduce quaternions here only for future work. In this project, you will find that quaternions do not affect the final accuracy :-)

In this project, the height value z can be set to zero?

vasnakh commented 2 months ago

Yeah, you can modify the code in estimate.py to ignore the gt.txt. We introduce quaternions here only for future work. In this project, you will find that quaternions do not affect the final accuracy :-)

In this project, the height value z can be set to zero?

Setting z to 0 most likely will cause the RMSE to be large due to discrepancy between true z and what you set I am assuming. In real scenario z can be estimated from some other sensor such as Barometer. I am still new to this repo and trying to figure things out but when i briefly tested ORBSLAM3 (which is similar to ORBSLAM2 used for relative position in this repo) there is going to be relative z value, but not super sure how that'll be reflected into overall optimization and final abs_res.txt.