updated docs
This commit is contained in:
parent
19f8f32642
commit
df18656fd5
|
@ -26,7 +26,7 @@ The command line options have the following meaning:
|
||||||
After that, you should see the calibration GUI:
|
After that, you should see the calibration GUI:
|
||||||
![tumvi_cam_calib](doc/img/tumvi_cam_calib.png)
|
![tumvi_cam_calib](doc/img/tumvi_cam_calib.png)
|
||||||
|
|
||||||
The buttons in the GUI are located in the order which you should follow to calibrate the camera:
|
The buttons in the GUI are located in the order which you should follow to calibrate the camera. After pressing a button the system will print the output to the command line:
|
||||||
* `load_dataset` loads the dataset.
|
* `load_dataset` loads the dataset.
|
||||||
* `detect_corners` starts corner detection in the backround thread. Since it is the most time consuming part of the calibration process, the detected corners are cached and loaded if you run the executable again pointing to the same result folder path.
|
* `detect_corners` starts corner detection in the backround thread. Since it is the most time consuming part of the calibration process, the detected corners are cached and loaded if you run the executable again pointing to the same result folder path.
|
||||||
* `init_cam_intr` computes an initial guess for camera intrinsics.
|
* `init_cam_intr` computes an initial guess for camera intrinsics.
|
||||||
|
|
|
@ -84,3 +84,30 @@ basalt_opt_flow --dataset-path MH_05_difficult/ --cam-calib /usr/etc/basalt/euro
|
||||||
|
|
||||||
This will run the GUI and print an average track length after the dataset is processed.
|
This will run the GUI and print an average track length after the dataset is processed.
|
||||||
![MH_05_OPT_FLOW](doc/img/MH_05_OPT_FLOW.png)
|
![MH_05_OPT_FLOW](doc/img/MH_05_OPT_FLOW.png)
|
||||||
|
|
||||||
|
|
||||||
|
## TUM-VI dataset
|
||||||
|
|
||||||
|
We demonstrate the usage of the system with the `magistrale1` sequence of the [TUM-VI dataset](https://vision.in.tum.de/data/datasets/visual-inertial-dataset) as an example.
|
||||||
|
|
||||||
|
Download the sequence from the dataset and extract it.
|
||||||
|
```
|
||||||
|
mkdir tumvi_data
|
||||||
|
cd tumvi_data
|
||||||
|
wget http://vision.in.tum.de/tumvi/exported/euroc/512_16/dataset-magistrale1_512_16.tar
|
||||||
|
tar -xvf dataset-magistrale1_512_16.tar
|
||||||
|
```
|
||||||
|
|
||||||
|
### Visual-inertial odometry
|
||||||
|
To run the visual-inertial odometry execute the following command in `tumvi_data` folder where you downloaded the dataset.
|
||||||
|
```
|
||||||
|
basalt_vio --dataset-path dataset-magistrale1_512_16/ --cam-calib /usr/etc/basalt/tumvi_512_ds_calib.json --dataset-type euroc --config-path /usr/etc/basalt/tumvi_512_config.json --marg-data tumvi_marg_data --show-gui 1
|
||||||
|
```
|
||||||
|
![magistrale1_vio](doc/img/magistrale1_vio.png)
|
||||||
|
|
||||||
|
### Visual-inertial mapping
|
||||||
|
To run the mapping tool execute the following command:
|
||||||
|
```
|
||||||
|
basalt_mapper --cam-calib /usr/etc/basalt/tumvi_512_ds_calib.json --marg-data tumvi_marg_data --vocabulary /usr/etc/basalt/orbvoc.dbow3
|
||||||
|
```
|
||||||
|
![magistrale1_mapping](doc/img/magistrale1_mapping.png)
|
Binary file not shown.
After Width: | Height: | Size: 270 KiB |
Binary file not shown.
After Width: | Height: | Size: 188 KiB |
|
@ -37,6 +37,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#include <basalt/io/dataset_io.h>
|
#include <basalt/io/dataset_io.h>
|
||||||
|
|
||||||
|
#include <experimental/filesystem>
|
||||||
|
namespace fs = std::experimental::filesystem;
|
||||||
|
|
||||||
namespace basalt {
|
namespace basalt {
|
||||||
|
|
||||||
class EurocVioDataset : public VioDataset {
|
class EurocVioDataset : public VioDataset {
|
||||||
|
@ -124,6 +127,9 @@ class EurocIO : public DatasetIoInterface {
|
||||||
EurocIO() {}
|
EurocIO() {}
|
||||||
|
|
||||||
void read(const std::string &path) {
|
void read(const std::string &path) {
|
||||||
|
if (!fs::exists(path))
|
||||||
|
std::cerr << "No dataset found in " << path << std::endl;
|
||||||
|
|
||||||
data.reset(new EurocVioDataset);
|
data.reset(new EurocVioDataset);
|
||||||
|
|
||||||
data->num_cams = 2;
|
data->num_cams = 2;
|
||||||
|
|
|
@ -51,6 +51,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <sensor_msgs/Image.h>
|
#include <sensor_msgs/Image.h>
|
||||||
#include <sensor_msgs/Imu.h>
|
#include <sensor_msgs/Imu.h>
|
||||||
|
|
||||||
|
#include <experimental/filesystem>
|
||||||
|
namespace fs = std::experimental::filesystem;
|
||||||
|
|
||||||
namespace basalt {
|
namespace basalt {
|
||||||
|
|
||||||
class RosbagVioDataset : public VioDataset {
|
class RosbagVioDataset : public VioDataset {
|
||||||
|
@ -154,6 +157,9 @@ class RosbagIO : public DatasetIoInterface {
|
||||||
RosbagIO(bool with_images) : with_images(with_images) {}
|
RosbagIO(bool with_images) : with_images(with_images) {}
|
||||||
|
|
||||||
void read(const std::string &path) {
|
void read(const std::string &path) {
|
||||||
|
if (!fs::exists(path))
|
||||||
|
std::cerr << "No dataset found in " << path << std::endl;
|
||||||
|
|
||||||
data.reset(new RosbagVioDataset);
|
data.reset(new RosbagVioDataset);
|
||||||
|
|
||||||
data->bag.reset(new rosbag::Bag);
|
data->bag.reset(new rosbag::Bag);
|
||||||
|
|
Loading…
Reference in New Issue