Pure Rotation in Monocular VIO

143 views
Skip to first unread message

Benjamin Raskob

unread,
Feb 10, 2021, 6:56:38 AM2/10/21
to gtsam users
Hello all,

I am developing a monocular VIO system, and I am trying to figure out the best way to handle periods where the camera undergoes a pure rotation. I have been using the GenericProjectionFactor factors when I can triangulate 3D points, but I want to still be able to optimize camera poses when it rotates away from these triangulated points. In the pure rotation case, estimating the essential matrix is degenerate. I don't see a way within GTSAM to add a factor representing tracked features with a pure camera rotation, so I was wondering how other folks may have handled this. I was thinking about two possibilities:

1. Make a custom factor that computes the residual from warping a matched feature in one image to another image using a homography based on their orientations only. Then use this factor when detecting a pure rotation situation.

2. Use the GenericProjectionFactor with a fake depth value for features tracked during rotation, and set that depth as constant using NonlinearEquality. Then be careful not to use these features once the camera translates.

Is there another option that I am missing? Any input is appreciated.

Thanks,
Ben

Dellaert, Frank

unread,
Feb 10, 2021, 8:18:55 AM2/10/21
to Benjamin Raskob, gtsam users
Look for project functions that take Unit3 :-) Unit3 is a normalized 3D vector that we use for directions in space.  I forget whether we have a factor (not near code right now) but if am not mistaken there is a templated one where you could pass Unit3 as the “point”.

There are also inverse depth versions, which are more suited to this scenario. 

Happy hunting! as always, testXXX.cpp are often your best bet in finding out how to use factors/types.

Frank

From: gtsam...@googlegroups.com <gtsam...@googlegroups.com> on behalf of Benjamin Raskob <bra...@gmail.com>
Sent: Wednesday, February 10, 2021 6:56:38 AM
To: gtsam users <gtsam...@googlegroups.com>
Subject: [GTSAM] Pure Rotation in Monocular VIO
 
--
You received this message because you are subscribed to the Google Groups "gtsam users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gtsam-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gtsam-users/365328e5-5e03-4fdf-8714-0ee619c0072bn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages