diff --git a/docs/gs-calibration.dox b/docs/gs-calibration.dox index 6e29d5634..1a95e877f 100644 --- a/docs/gs-calibration.dox +++ b/docs/gs-calibration.dox @@ -56,7 +56,7 @@ The first task is to calibrate the camera intrinsic values such as the focal len Our group often uses the [Kalibr](https://github.com/ethz-asl/kalibr/) @cite Furgale2013IROS calibration toolbox to perform both intrinsic and extrinsic offline calibrations, by proceeding the following steps: 1. Clone and build the [Kalibr](https://github.com/ethz-asl/kalibr/) toolbox -2. Print out a calibration board to use (we normally use the [Aprilgrid 6x6 0.8x0.8 m (A0 page)](https://drive.google.com/file/d/1TCZJ1KPJrsj3ffCNnj001ege54jffc19/view)) +2. Print out a calibration board to use (we normally use the Aprilgrid 6x6 0.8x0.8 m (A0 page) [pdf](https://drive.google.com/file/d/14dY7z8pDb2iEBdveTviDXsoi5H9AaQP1/view?usp=drive_link) [yaml](https://drive.google.com/file/d/1zXfr48_OY0RafwJalBLjqkqgnme-r7Gd/view?usp=drive_link)) 3. Ensure that your sensor driver is publishing onto ROS with correct timestamps. 4. Sensor preparations - Limit motion blur by decreasing exposure time (can be achieved through high framerate) @@ -72,7 +72,7 @@ Our group often uses the [Kalibr](https://github.com/ethz-asl/kalibr/) @cite Fur @image html kalibr_reprojection.png width=60% -An example script [calibrate_camera_static.sh](https://github.com/rpng/ar_table_dataset/blob/9d556a789e2d01387e5ba2aeb2453269bc2c4001/calibrate_camera_static.sh), dataset, and configuration can be found in our group's [ar\_table\_dataset](https://github.com/rpng/ar_table_dataset/) repository. +An example script [calibrate_camera_static.sh](https://github.com/rpng/ar_table_dataset/blob/master/calibrate_camera_static.sh), dataset, and configuration can be found in our group's [ar\_table\_dataset](https://github.com/rpng/ar_table_dataset/) repository. @section gs-calib-imu-static IMU Noise Calibration (Offline) @@ -108,7 +108,7 @@ We recommend using the [allan_variance_ros](https://github.com/ori-drs/allan_var - Finally process the command via their `analysis.py` script 5. Typically these noise values should be inflated by maybe 10-20x their values to take into account unmodelled errors (one can test to see how different inflations perform) -An example script [calibrate_imu.sh](https://github.com/rpng/ar_table_dataset/blob/9d556a789e2d01387e5ba2aeb2453269bc2c4001/calibrate_imu.sh), dataset, and configuration can be found in our group's [ar\_table\_dataset](https://github.com/rpng/ar_table_dataset/) repository. +An example script [calibrate_imu.sh](https://github.com/rpng/ar_table_dataset/blob/master/calibrate_imu.sh), dataset, and configuration can be found in our group's [ar\_table\_dataset](https://github.com/rpng/ar_table_dataset/) repository. @@ -121,7 +121,7 @@ One needs to have at least one translational motion along with two degrees of or We recommend having as much change in orientation as possible in order to ensure convergence. 1. Clone and build the [Kalibr](https://github.com/ethz-asl/kalibr/) toolbox -2. Print out a calibration board to use (we normally use the [Aprilgrid 6x6 0.8x0.8 m (A0 page)](https://drive.google.com/file/d/1TCZJ1KPJrsj3ffCNnj001ege54jffc19/view)) +2. Print out a calibration board to use (we normally use the Aprilgrid 6x6 0.8x0.8 m (A0 page) [pdf](https://drive.google.com/file/d/14dY7z8pDb2iEBdveTviDXsoi5H9AaQP1/view?usp=drive_link) [yaml](https://drive.google.com/file/d/1zXfr48_OY0RafwJalBLjqkqgnme-r7Gd/view?usp=drive_link)) 3. Ensure that your sensor driver is publishing onto ROS with correct timestamps (inspect the IMU time dt plot carefully in the PDF report!) 4. Sensor preparations - Limit motion blur by decreasing exposure time @@ -131,13 +131,13 @@ We recommend having as much change in orientation as possible in order to ensure 6. Finally run the calibration - Use the `kalibr_calibrate_imu_camera` - Input your static calibration file which will have the camera topics in it - - You will need to make an [imu.yaml](https://drive.google.com/file/d/1F9e9I1Xdm14nJw_E1j06HyinlBxRp3yu/view) file with your noise parameters. + - You will need to make an [imu.yaml](https://drive.google.com/file/d/1oucvH3FABHPUmzkyEH3rX8n4lp8_AH8P/view?usp=drive_link) file with your noise parameters. - Depending on how many frames are in your dataset this can take on the upwards of half a day. 7. Inspect the final result. You will want to make sure that the spline fitted to the inertial reading was properly fitted. Your accelerometer and gyroscope errors are within their 3-sigma bounds (if not then your IMU noise or the dataset are incorrect). Ensure that your estimated biases do not leave your 3-sigma bounds. If they do leave then your trajectory was too dynamic, or your noise values are not good. Sanity check your final rotation and translation with hand-measured values. @image html kalibr_accel_err.png width=60% -An example script [calibrate_camera_dynamic.sh](https://github.com/rpng/ar_table_dataset/blob/9d556a789e2d01387e5ba2aeb2453269bc2c4001/calibrate_camera_dynamic.sh), dataset, and configuration can be found in our group's [ar\_table\_dataset](https://github.com/rpng/ar_table_dataset/) repository. +An example script [calibrate_camera_dynamic.sh](https://github.com/rpng/ar_table_dataset/blob/master/calibrate_camera_dynamic.sh), dataset, and configuration can be found in our group's [ar\_table\_dataset](https://github.com/rpng/ar_table_dataset/) repository. diff --git a/docs/gs-datasets.dox b/docs/gs-datasets.dox index 64a046c67..3c56c6e7c 100644 --- a/docs/gs-datasets.dox +++ b/docs/gs-datasets.dox @@ -25,22 +25,22 @@ Please take a look at the [run_ros_eth.sh](https://github.com/rpng/open_vins/blo @par Groundtruth on V1_01_easy We have found that the groundtruth on the V1_01_easy dataset is not accurate in its orientation estimate. We have recomputed this by optimizing the inertial and vicon readings in a graph to get the trajectory of the imu (refer to our [vicon2gt](https://github.com/rpng/vicon2gt) @cite Geneva2020TRVICON2GT project). - You can find the output at this [link](https://drive.google.com/drive/folders/1d62Q_RQwHzKLcIdUlTeBmojr7j0UL4sM?usp=sharing) and is what we normally use to evaluate the error on this dataset. + You can find the output at this [link](https://drive.google.com/drive/folders/1GospxhpVnyzvJNVUdN4qyrl8GlOd7vw8?usp=drive_link) and is what we normally use to evaluate the error on this dataset. @m_div{m-text-center} | Dataset Name | Length (m) | Dataset Link | Groundtruth Traj. | Config | |-------------:|--------|--------------|------------------|------------------| -| Vicon Room 1 01 | 58 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room1/V1_01_easy/V1_01_easy.bag), [rosbag2](https://drive.google.com/drive/folders/1xQ1KcZhZ5pioPXTyrZBN6Mjxkfpcd_B3?usp=sharing) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | -| Vicon Room 1 02 | 76 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room1/V1_02_medium/V1_02_medium.bag) , [rosbag2](https://drive.google.com/drive/folders/1xQ1KcZhZ5pioPXTyrZBN6Mjxkfpcd_B3?usp=sharing)| [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | -| Vicon Room 1 03 | 79 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room1/V1_03_difficult/V1_03_difficult.bag), [rosbag2](https://drive.google.com/drive/folders/1xQ1KcZhZ5pioPXTyrZBN6Mjxkfpcd_B3?usp=sharing) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | -| Vicon Room 2 01 | 37 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room2/V2_01_easy/V2_01_easy.bag), [rosbag2](https://drive.google.com/drive/folders/1xQ1KcZhZ5pioPXTyrZBN6Mjxkfpcd_B3?usp=sharing) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | -| Vicon Room 2 02 | 83 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room2/V2_02_medium/V2_02_medium.bag), [rosbag2](https://drive.google.com/drive/folders/1xQ1KcZhZ5pioPXTyrZBN6Mjxkfpcd_B3?usp=sharing) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | -| Vicon Room 2 03 | 86 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room2/V2_03_difficult/V2_03_difficult.bag), [rosbag2](https://drive.google.com/drive/folders/1xQ1KcZhZ5pioPXTyrZBN6Mjxkfpcd_B3?usp=sharing) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | -| Machine Hall 01 | 80 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_01_easy/MH_01_easy.bag), [rosbag2](https://drive.google.com/drive/folders/1xQ1KcZhZ5pioPXTyrZBN6Mjxkfpcd_B3?usp=sharing) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | -| Machine Hall 02 | 73 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_02_easy/MH_02_easy.bag), [rosbag2](https://drive.google.com/drive/folders/1xQ1KcZhZ5pioPXTyrZBN6Mjxkfpcd_B3?usp=sharing) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | -| Machine Hall 03 | 131 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_03_medium/MH_03_medium.bag), [rosbag2](https://drive.google.com/drive/folders/1xQ1KcZhZ5pioPXTyrZBN6Mjxkfpcd_B3?usp=sharing) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | -| Machine Hall 04 | 92 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_04_difficult/MH_04_difficult.bag), [rosbag2](https://drive.google.com/drive/folders/1xQ1KcZhZ5pioPXTyrZBN6Mjxkfpcd_B3?usp=sharing) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | -| Machine Hall 05 | 98 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_05_difficult/MH_05_difficult.bag), [rosbag2](https://drive.google.com/drive/folders/1xQ1KcZhZ5pioPXTyrZBN6Mjxkfpcd_B3?usp=sharing) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | +| Vicon Room 1 01 | 58 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room1/V1_01_easy/V1_01_easy.bag), [rosbag2](https://drive.google.com/file/d/1LFrdiMU6UBjtFfXPHzjJ4L7iDIXcdhvh/view?usp=drive_link) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | +| Vicon Room 1 02 | 76 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room1/V1_02_medium/V1_02_medium.bag) , [rosbag2](https://drive.google.com/file/d/1rlGSy7h38ucm8jr8ssH-sJPX84JfkBtX/view?usp=drive_link)| [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | +| Vicon Room 1 03 | 79 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room1/V1_03_difficult/V1_03_difficult.bag), [rosbag2](https://drive.google.com/file/d/1Gy1zc4LaMlwsLpXBqOIci6Y3cV_5r-0k/view?usp=drive_link) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | +| Vicon Room 2 01 | 37 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room2/V2_01_easy/V2_01_easy.bag), [rosbag2](https://drive.google.com/file/d/1KAkE8Ptq3eSQlXMozJgzNIAVUBH3h0FP/view?usp=drive_link) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | +| Vicon Room 2 02 | 83 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room2/V2_02_medium/V2_02_medium.bag), [rosbag2](https://drive.google.com/file/d/1Gj4psmvcAwYwCp4T4CQH-d2ZVJ09d3x2/view?usp=drive_link) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | +| Vicon Room 2 03 | 86 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room2/V2_03_difficult/V2_03_difficult.bag), [rosbag2](https://drive.google.com/file/d/1ohWd0JqDvVhTqjOS5MqHafit5MPdlbff/view?usp=drive_link) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | +| Machine Hall 01 | 80 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_01_easy/MH_01_easy.bag), [rosbag2](https://drive.google.com/file/d/1UP4nkuSEOQECZTswwh9BPgfMl-dnDstA/view?usp=drive_link) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | +| Machine Hall 02 | 73 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_02_easy/MH_02_easy.bag), [rosbag2](https://drive.google.com/file/d/1wWZgZCqYz6zzzTXS0iqvQCP-cWfFuGLK/view?usp=drive_link) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | +| Machine Hall 03 | 131 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_03_medium/MH_03_medium.bag), [rosbag2](https://drive.google.com/file/d/1er07gZ8rso8R3Su00hJMm_GZ4z1n9Rpq/view?usp=drive_link) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | +| Machine Hall 04 | 92 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_04_difficult/MH_04_difficult.bag), [rosbag2](https://drive.google.com/file/d/1eC8joRXo1rh0wzOpq3e-B4dQ8-w6wZYz/view?usp=drive_link) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | +| Machine Hall 05 | 98 | [rosbag](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_05_difficult/MH_05_difficult.bag), [rosbag2](https://drive.google.com/file/d/1zoN94K1Afrp7HXSduRLkJBiEjPKdk1UA/view?usp=drive_link) | [link](https://github.com/rpng/open_vins/tree/master/ov_data/euroc_mav) | [config](https://github.com/rpng/open_vins/blob/master/config/euroc_mav) | @m_enddiv @@ -102,6 +102,8 @@ The groundtruth was recovered using the [vicon2gt](https://github.com/rpng/vicon + + @section gs-data-rpng RPNG OpenVINS Dataset In additional the community maintained datasets, we have also released a few datasets. @@ -112,14 +114,14 @@ Here are the specifics of the sensors that each dataset uses: - Core visual-inertial sensor is the [VI-Sensor](https://furgalep.github.io/bib/nikolic_icra14.pdf) - Stereo global shutter images at 20 Hz - ADIS16448 IMU at 200 Hz - - Kalibr calibration file can be found [here](https://drive.google.com/file/d/1I0C-z3ZrTKne4bdbgBI6CtH1Rk4EQim0/view?usp=sharing) + - Kalibr calibration file can be found [here](https://drive.google.com/file/d/1eYymZIMZhvH80O3ae7NSNT_KOhKkuB7q/view?usp=drive_link) - Ironsides Datasets: - Core visual-inertial sensor is the [ironsides](https://arxiv.org/pdf/1710.00893v1.pdf) - Has two [Reach RTK](https://docs.emlid.com/reach/) one subscribed to a base station for corrections - Stereo global shutter fisheye images at 20 Hz - InvenSense IMU at 200 Hz - GPS fixes at 5 Hz (/reach01/tcpfix has corrections from [NYSNet](https://cors.dot.ny.gov/sbc)) - - Kalibr calibration file can be found [here](https://drive.google.com/file/d/1bhn0GrIYNEeAabQAbWoP8l_514cJ0KrZ/view?usp=sharing) + - Kalibr calibration file can be found [here](https://drive.google.com/file/d/1N-DfxBDxEIiO_k6WbVaxZVViwplVJJY1/view?usp=drive_link) @image html datasets/neighborhood.png width=90% @@ -138,12 +140,12 @@ Additionally, there is no groundtruth for these datasets, but some do include GP @m_div{m-text-center} | Dataset Name | Length (m) | Dataset Link | Groundtruth Traj. | Config | |-------------:|--------|--------------|------------------|------------------| -| ArUco Room 01 | 27 | [rosbag](https://drive.google.com/file/d/1ytjo8V6pCroaVd8-QSop7R4DbsvvKyRQ/view?usp=sharing) | none | [config aruco](https://github.com/rpng/open_vins/blob/master/config/rpng_aruco) | -| ArUco Room 02 | 93 | [rosbag](https://drive.google.com/file/d/1l_hnPUW6ufqxPtrLqRRHHI4mfGRZB1ha/view?usp=sharing) | none | [config aruco](https://github.com/rpng/open_vins/blob/master/config/rpng_aruco) | -| ArUco Hallway 01 | 190 | [rosbag](https://drive.google.com/file/d/1FQBo3uHqRd0qm8GUb50Q-sj5gukcwaoU/view?usp=sharing) | none | [config aruco](https://github.com/rpng/open_vins/blob/master/config/rpng_aruco) | -| ArUco Hallway 02 | 105 | [rosbag](https://drive.google.com/file/d/1oAbnV3MPOeaUSjnSc3g8t-pWV1nVjbys/view?usp=sharing) | none | [config aruco](https://github.com/rpng/open_vins/blob/master/config/rpng_aruco) | -| Neighborhood 01 | 2300 | [rosbag](https://drive.google.com/file/d/1N07SDbaLEkq9pVEvi6oiHpavaRuFs3j2/view?usp=sharing) | none | [config ironsides](https://github.com/rpng/open_vins/blob/master/config/rpng_ironsides) | -| Neighborhood 02 | 7400 | [rosbag](https://drive.google.com/file/d/1QEUi40sO8OkVXEGF5JojiiZMHMSiSqtg/view?usp=sharing) | none | [config ironsides](https://github.com/rpng/open_vins/blob/master/config/rpng_ironsides) | +| ArUco Room 01 | 27 | [rosbag](https://drive.google.com/file/d/1DnVPafN3qeyuf0nESCk7gGXnhTgEcOlT/view?usp=drive_link) | none | [config aruco](https://github.com/rpng/open_vins/blob/master/config/rpng_aruco) | +| ArUco Room 02 | 93 | [rosbag](https://drive.google.com/file/d/1_ektsxj1UvZ51ZEs9zPEKL7x4kZtcgbg/view?usp=drive_link) | none | [config aruco](https://github.com/rpng/open_vins/blob/master/config/rpng_aruco) | +| ArUco Hallway 01 | 190 | [rosbag](https://drive.google.com/file/d/1JLvy6zBgGCkRUTd0Bo14vJVYuVxpZ3ix/view?usp=drive_link) | none | [config aruco](https://github.com/rpng/open_vins/blob/master/config/rpng_aruco) | +| ArUco Hallway 02 | 105 | [rosbag](https://drive.google.com/file/d/1GQiyVLIimGjX3LEFD5kptGHbLTiOypuL/view?usp=drive_link) | none | [config aruco](https://github.com/rpng/open_vins/blob/master/config/rpng_aruco) | +| Neighborhood 01 | 2300 | [rosbag](https://drive.google.com/file/d/1JAWpTE_tqs__XYa_906JgFy9CeZ1KccO/view?usp=drive_link) | none | [config ironsides](https://github.com/rpng/open_vins/blob/master/config/rpng_ironsides) | +| Neighborhood 02 | 7400 | [rosbag](https://drive.google.com/file/d/1WmCigwqq-eOa6nOqjzF5m3J4VTw_sVIu/view?usp=drive_link) | none | [config ironsides](https://github.com/rpng/open_vins/blob/master/config/rpng_ironsides) | @m_enddiv @@ -237,6 +239,9 @@ Typically we process the datasets at 1.5x rate so we get a ~20 Hz image feed and @m_enddiv + + + @section gs-data-kaist-vio KAIST VIO Dataset The [KAIST VIO dataset](https://github.com/url-kaist/kaistviodataset) @cite Jeon2021RAL is a dataset of a MAV in an indoor 3.15 x 3.60 x 2.50 meter environment which undergoes various trajectory motions. diff --git a/docs/gs-tutorial.dox b/docs/gs-tutorial.dox index cacd1fe40..698eb2c16 100644 --- a/docs/gs-tutorial.dox +++ b/docs/gs-tutorial.dox @@ -17,7 +17,7 @@ In this tutorial we will run on the [EuRoC MAV Dataset](https://projects.asl.eth @m_enddiv @m_div{m-col-m-6 m-button m-primary} - + @m_div{m-big}Download ROS 2 Bag@m_enddiv @m_div{m-small}Vicon Room 1 01 Easy @m_enddiv