Oxford-PTAM / PTAM-GPL

PTAM (Parallel Tracking and Mapping) re-released under GPLv3.
GNU General Public License v3.0
790 stars 360 forks source link

PTAM with IMU sensor #17

Open AndreV2890 opened 6 years ago

AndreV2890 commented 6 years ago

Hi all. I'm working on an indoor tracking project using PTAM.
I'd like to use an IMU sensor to retrieve more precise information about velocities and accelerations because if I have understood well, PTAM considers the camera motion with a constant motion model. Analyzing the code seems that the piece of code that I have to modify in order to deal with the camera motion is the one in the function "Tracker::ApplyMotionModel()". The v6Vector appears to be composed of 3 (for transactional velocities along x, y, z) plus 3 (for rotational velocities, maybe roll, pitch and yaw) components. First of all, is it right? And what about the measurement units? In case it is right, in order to reduce the scale error and generate a more precise tracking, can I put the IMU values in the vector v6Vector?

Oxford-PTAM commented 6 years ago

Hi - PTAM is a monocular system so the translation units are arbitrary. They could be mm or they could be km. Before you can use the accel measurements you need to figure out the scale of the world, and also estimate your accel biases and the direction of gravity. All this is possible, but a lot of work.

On Thu, May 3, 2018 at 8:14 AM, Andrea Vincentini notifications@github.com wrote:

Hi all. I'm working on an indoor tracking project using PTAM. I'd like to use an IMU sensor to retrieve more precise information about velocities and accelerations because if I have understood well, PTAM considers the camera motion with a constant motion model. Analyzing the code seems that the piece of code that I have to modify in order to deal with the camera motion is the one in the function "Tracker::ApplyMotionModel()". The v6Vector appears to be composed of 3 (for transactional velocities along x, y, z) plus 3 (for rotational velocities, maybe roll, pitch and yaw) components. First of all, is it right? And what about the measurement units? In case it is right, in order to reduce the scale error and generate a more precise tracking, can I put the IMU values in the vector v6Vector?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Oxford-PTAM/PTAM-GPL/issues/17, or mute the thread https://github.com/notifications/unsubscribe-auth/AFfuEk-pF_sgKCgZZbroIJLrObxMedZYks5tux7NgaJpZM4TxRwK .