added info about camera model

This commit is contained in:
Christian Forster
2014-03-12 19:24:55 +01:00
parent 35c2fee2bd
commit 3c65f67676
+32 -19
View File
@@ -4,32 +4,16 @@ SVO
Disclaimer
----------
SVO has been tested under ROS Groovy and Hydro and Ubuntu 12.04 and 13.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
SVO has been tested under ROS Groovy and Hydro and Ubuntu 12.04 and 13.04. This is research code, any fitness for a particular purpose is disclaimed.
Installation Instructions
-------------------------
#### OPTIONAL: g2o - General Graph Optimization
Only required if you want to run bundle adjustment. It is not necessary for visual odometry.
g2o requires the following system dependencies: `cmake, libeigen3-dev, libsuitesparse-dev, libqt4-dev, qt4-qmake, libqglviewer-qt4-dev`, install them with `apt-get`
I suggest an out-of-source build of g2o:
cd workspace
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build
cd build
cmake ..
make
sudo make install
If you don't want to make a system install, then you can replace the cmake command with `cmake .. -DCMAKE_INSTALL_PREFIX:PATH=$HOME/installdir`
We use two workspaces, one for the plain CMake projects `Sophus`, `Fast` and optionally `g2o` and another workspace for the Catkin projects `rpg_vikit` and `rpg_svo`. Make sure to clone in the right folder.
#### Sophus - Lie groups
Sophus by Hauke Strasdat implements Lie groups that we need to describe rigid body transformations.
Sophus by Hauke Strasdat implements Lie groups that we need to describe rigid body transformations. Checkout in your workspace for plain CMake projects.
cd workspace
git clone https://github.com/strasdat/Sophus.git
@@ -55,6 +39,24 @@ To simplify installation we provide a CMake package that contains the fast detec
cmake ..
make
#### OPTIONAL: g2o - General Graph Optimization
Only required if you want to run bundle adjustment. It is not necessary for visual odometry. In fact, we don't run it on our MAVs.
g2o requires the following system dependencies: `cmake, libeigen3-dev, libsuitesparse-dev, libqt4-dev, qt4-qmake, libqglviewer-qt4-dev`, install them with `apt-get`
I suggest an out-of-source build of g2o:
cd workspace
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build
cd build
cmake ..
make
sudo make install
If you don't want to make a system install, then you can replace the cmake command with `cmake .. -DCMAKE_INSTALL_PREFIX:PATH=$HOME/installdir`
#### ViKit - Some useful tools that we need
ViKit for instance contains camera models, some math and interpolation functions that SVO needs.
@@ -112,6 +114,17 @@ Make sure to active the console window when pressing the keys.
* `q` Quit
* `r` Reset
Camera Calibration
------------------
You need a calibrated camera to run SVO. We use the Matrix Vision Bluefox cameras in our lab, which have VGA resolution and global shutter.
SVO supports three camera models:
1. The `ATAN` model --- our preference --- which is also used by `PTAM`. This model uses the _FOV_ distortion model of "Deverneay and Faugeras, Straight lines have to be straight, 2001". You can calibrate your camera with this model by using the calibration tool in this package: https://github.com/ethz-asl/ethzasl_ptam We prefer this model because the projection and unprojection can be computed faster than with the other models. Further, the industral cameras that we use have neglectable tangential distortion.
2. The `Pinhole` model with three radial and two tangential distortion parameters. This model is standard in OpenCV and ROS. You can use the ROS camera calibration tool: http://wiki.ros.org/camera_calibration
3. The `Ocam` model by Davide Scaramuzza which can be used to model Omnidirectional cameras. Use the OCamCalib toolbox to calibrate your camera: http://rpg.ifi.uzh.ch/software_datasets.html
Although SVO can be used with this camera model, the algorithm does not work yet (!) with omnidirectional cameras.
Parameter Settings
------------------