9 votes

How do monocular visual odometry algorithms work?

Monocular vision is a difficult and very interesting, particularly in its application to the general navigation problem. I will make an attempt at answering your questions, but if you find anything ...
JSycamore's user avatar
  • 926
6 votes

SLAM: Why use two cameras (stereo) if SLAM can be done using single camera (monocular)?

The most important point is the scale. If you do monocular SLAM, your map will only be accurate up to scale so that you e.g. cannot compute the length of the travelled path in meters. The scale ...
FooTheBar's user avatar
  • 1,355
4 votes
Accepted

Why do we need to know the translation between Camera and IMU?

You answered yourself. Your underlying model of point moving through space usually assumes the center of gravity to match the camera frame. If your inertial sensor have a translational offset from ...
SystemSigma_'s user avatar
4 votes
Accepted

Visual Odometry terminology: Scale, Relative scale, absolute scale

What does the absolute scale mean? In this context, scale refers to what property related to an image? Essentially scale refers to the size of the object/scene that the camera sees. As a projective ...
edwinem's user avatar
  • 1,801
3 votes

Difference between motion-only bundle adjustment and pose-graph optimization

From the Appendix section of the ORB SLAM paper: ... In pose optimization, or motion-only BA, (see section V) all points are fixed and only the camera pose is optimized. So yes, they are the same, I ...
Samuel Rodríguez's user avatar
3 votes

Calculate information matrix for graph slam

The information matrix is just the inverse of the covariance matrix. I recommend you read the page I linked, or just google covariance matrix. Essentially it contains how certain you are in your ...
edwinem's user avatar
  • 1,801
3 votes
Accepted

Problem understanding a paper about visual odometry

So SVO works a bit differently then other VO systems as it uses dense image alignment. You need to understand this concept first before understanding SVO. Look up Lucas and Kanade image alignment. The ...
edwinem's user avatar
  • 1,801
3 votes
Accepted

Marginalization vs Dropping states for sliding window VO

Short answer: Marginalization is a fancy way of applying a prior on certain nodes of your factor graph. Note that Marginalization vs Dropping data is not only specific to the sliding window case, but ...
edwinem's user avatar
  • 1,801
2 votes
Accepted

How to derive the camera trajectory from ICP

Yes that is correct. Easiest way is probably to work with the homogeneous 4x4 Tranform Matrix($T$) composed of $\begin{bmatrix}R & t\\0 & 1\end{bmatrix}$. Then your new pose is then just $T_i$ ...
edwinem's user avatar
  • 1,801
2 votes
Accepted

How to plot the 3D camera trajectory from a VSLAM output

That's simple. If you use matlab or opengl what you need to do is just drawing 3 axis at (tx,ty,tz). You need to convert quaternion to rotation matrix. (qx,qy,qz,qw) -> R(3x3 matrix) where each col ...
Chanoh Park's user avatar
  • 1,517
2 votes

Scale estimation in datasets for monocular odometry

The absolute scale cannot be estimated if you are utilizing a monocular camera. Either you add an additional sensor information such as IMU or you need a size known object to be in your dataset. As ...
Chanoh Park's user avatar
  • 1,517
2 votes

Scale estimation in datasets for monocular odometry

Assume something, then adjust your guess based on your measured distance traversed versus actual distance traversed. If you can get data from a vehicle that drove down a road, and you know the path ...
Chuck's user avatar
  • 15.9k
2 votes
Accepted

TU Munich Monocular Visual Odometry Dataset has NaN values in the ground truth data.

From the webpage for the dataset: All sequences contain mostly exploring camera motion, starting and ending at the same position: this allows to evaluate tracking accuracy via the accumulated drift ...
Adam Williams's user avatar
2 votes

TU Munich Monocular Visual Odometry Dataset has NaN values in the ground truth data.

NaN values are sometimes used to indicate unavailable data. Is it possible that these are simply portions of the dataset for which ground truth was not available, but you can still evaluate on the ...
surtur's user avatar
  • 324
2 votes

How can I calibrate 3 cameras without knowing global pose of the object & camera locations? How can I find the pose of each camera wrt the first one?

The process you need to go through is actually similar to the camera calibration procedure in OpenCV or other software. The chessboard is replaced by your robot, and you can skip the intrinsic ...
edwinem's user avatar
  • 1,801
2 votes
Accepted

Question about bundle adjustment

The points are assumed to be static in the global frame and optimized in the global frame. Each time the point is detected within the camera frame a measurement is taken relative to the camera. The ...
Bahram Banisadr's user avatar
2 votes
Accepted

How to loop over each timestep in rosbags using Python?

The rosbag code API page includes an example of how to use the Python API to read messages out of a bag. It's a simple 5-line program. You need to replace line 4 (the ...
Geoff's user avatar
  • 1,823
1 vote

How does baseline work with forward motion in Monocular Visual Odometry

You are correct in your understanding that monocular VO will have an ambiguity in the scale of the reconstructed trajectory and scene. The easiest way to fix this ambiguity is to incorporate more ...
mjcarroll's user avatar
  • 1,601
1 vote

Relative scale problem

Does inliers and outliers have something to do with this problem? -> Yes, your odometry estimation error will be accumulated in the point cloud and it will eventually end up what you are ...
Chanoh Park's user avatar
  • 1,517
1 vote

What's the difference between factor graph optimization and bundle adjustment?

The simplest explanation will be: In structure from motion, it estimates structure(xyz points), camera locations, camera intrinsic. In graph optimization, it only estimates camera locations. In the ...
Chanoh Park's user avatar
  • 1,517
1 vote

Custom implementation of robot_localization package

I wrote the core filter classes to be ROS-agnostic, but then wrapped them in ROS-aware classes that take in messages, preprocess the data (transform into target frames, check for invalid messages, etc....
automatom's user avatar
  • 5,467
1 vote

Custom implementation of robot_localization package

Why would you not like to use ROS? Seems like if you use this package along with custom code for the rest of the solution it'll be good to go. Is there a way to use the package as a library, by ...
jash's user avatar
  • 329
1 vote

How to find visual odometry by video from cellphone camera mounted on robot?

When working with odometry, you need to consider that the resulting calculation may not be valid when comparing frames. Therefore I’d suggest you add try and except statements.
Omar Silva's user avatar
1 vote

Planar Robot Boundary Detection

Since the lines are (usually) going to be perpendicular to the normal vector of your image, you can sample columns and use a Butterworth filter to extract the "peak" frequencies (must be configured ...
koverman47's user avatar
1 vote

Scale problem with monocular visual odometry

processing 1st vs 10th image and 9th vs 10th image - will the fist give 10x relative scale than the second? It depends. In the simplest perspective, 'relative' means what the transformation is from ...
HighVoltage's user avatar
  • 1,096
1 vote
Accepted

Pose-graph-slam:using only a camera

(1) Usually, the poses are just your absolute camera poses, i.e $[R,T]$ where $R$ is a rotation matrix and $T$ is a translation, expressed in world coordinates. You can add a scale factor to that if ...
Ash's user avatar
  • 390
1 vote

Performing Image alignment using pyramid levels with semi dense depth

I'm going to try to answer this question but please don't flame me if I got something wrong. Those were two heavy papers and I didn't have as much time as I wish to go through them. The pyramids are ...
Malcolm's user avatar
  • 571
1 vote
Accepted

Why do strong rotations affect Monocular Vision based Visual Odometry?

The problem of the pure strong rotation is that the image will become easily blurred unless you use 1000FPS camera. This kind of super-strong rotation often occurs in hand-held camera motion. Simply ...
Chanoh Park's user avatar
  • 1,517
1 vote

How to publish odometry from 3 wheeled omnidirectional robot?

It looks like you have most of what you need to output the Odometry message. The tutorial at http://wiki.ros.org/navigation/Tutorials/RobotSetup/Odom is probably the best practical resource. The ...
Tully's user avatar
  • 24.5k
1 vote

Is pose estimation using images necessary in visual-inertial SLAM

No, nothing is "necessary". You can estimate the pose of the robot perfectly legitimately using only IMU data. You can also estimate it perfectly legitimately using only image data. But it won't be ...
Josh Vander Hook's user avatar

Only top scored, non community-wiki answers of a minimum length are eligible