You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge branch 'master' of github.mit.edu:SPARK/spark_vio_ros into fix/make_vio_work_on_tesse
* 'master' of github.mit.edu:SPARK/spark_vio_ros: (28 commits)
Fix gif
Center gif
Add demo gif
Add comments about mesh_rviz_plugins
Update Readme
Update Readme
Update Readme
Improve Readme
Update Readme
Update Readme
Make autoninitialize default to IMU: no gt init available
sim true only if online
update launch file for filtered bag
redelete deleted part in readme
update readme
update readme
update readme for kitti
Update readme
Update README.md
Update README.md
...
Copyright 2019 Massachusetts Institute of Technology.
2
+
3
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
+
5
+
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6
+
7
+
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8
+
9
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Install ROS distribution depending on your system: Ubuntu 14.04 -> kinetic, 16.04 -> melodic
12
-
sudo apt-get install ros-melodic-desktop-full
13
-
```
5
+
<divalign="center">
6
+
<img src="docs/media/SparkVIO_ROS_mesh.gif">
7
+
</div>
14
8
15
-
Install catkin tools.
9
+
# 1. Installation
16
10
17
-
# Installation
18
-
If you have [Spark VIO](https://github.mit.edu/SPARK/VIO) installed and built, installation should just be:
11
+
## A. Prerequisities
19
12
20
-
```
13
+
### i. ROS
14
+
15
+
Install ROS by following [our reference](./docs/ros_installation.md), or the official [ROS website](https://www.ros.org/install/).
16
+
17
+
### ii. SparkVIO's dependencies
18
+
19
+
Follow installation instructions in [SparkVIO](https://github.mit.edu/SPARK/VIO/blob/master/docs/sparkvio_installation.md).
20
+
Make sure you install **SparkVIO's dependencies**: GTSAM, OpenCV, OpenGV.
21
+
22
+
SparkVIO itself can be installed by cloning the **[SparkVIO catkin wrapper](https://github.mit.edu/SPARK/spark_vio_catkin)** in your catkin workspace, so you can spare installing SparkVIO from source (its dependencies must be installed anyway).
23
+
24
+
## B. SparkVIO ROS wrapper Installation
25
+
26
+
If you have the above prerequisities and [SparkVIO](https://github.mit.edu/SPARK/VIO) installed and built, installation of the SparkVIO ROS wrapper should be:
- Download the EuRoC dataset. (TODO provide a sliced rosbag of EUROC V1_01 for testing.)
47
-
48
-
## Online
49
-
50
-
- To run:
51
-
- In one terminal, launch the spark vio ROS wrapper:
63
+
# 2. Usage
64
+
Download a [Euroc](https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets) rosbag: for example [V1_01_easy](http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room1/V1_01_easy/V1_01_easy.bag).
65
+
66
+
## Online
67
+
1. As a general good practice, open a new terminal and run: `roscore`
68
+
69
+
2. In another terminal, launch SparkVIO ROS wrapper:
> Note: this rviz configuration makes use of a rviz plugin: [mesh_rviz_plugins](https://github.com/ToniRV/mesh_rviz_plugins). To visualize the textured 3D mesh, clone this plugin to your catkin workspace and catkin build it (note that this should be done automatically via `wstool`).
79
+
80
+
4. Finally, in another terminal, launch the downloaded Euroc rosbag:
81
+
```bash
82
+
rosbag play --clock /PATH/TO/EUROC_ROSBAG
83
+
```
84
+
85
+
> Note that you will need to both source ROS and your `catkin_ws` for each new terminal unless you added the following lines to your `~/.bashrc` file:
86
+
> ```bash
87
+
>source /opt/ros/melodic/setup.bash # Change `melodic` for your ROS distribution.
88
+
>source~/catkin_ws/devel/setup.bash # Change `bash` to the shell you use.
89
+
>```
90
+
91
+
## Offline
92
+
In this mode, the provided rosbag will be first parsed and then sent to the VIO for processing.
93
+
This is particularly useful when debugging to avoid potential ROS networking issues.
94
+
- To run, launch the SparkVIO ROS wrapper with the `online` parameter set to `false` and specify the rosbag's path:
The launch file and parameters can also be configured for other datasets. For example, here we provide a [kitti rosbag for testing](https://drive.google.com/drive/folders/1mPdc1XFa5y1NrZtffYTkrkGaxj5wvX0T?usp=sharing). To run, in one terminal, launch the spark vio ROS wrapper with the launch file we configured for kitti:
To use your own dataset, you can copy the param/EuRoC folder and exchange all the values within the folder to those corresponding to your dataset (calibration, topic name, tracker/vio values, etc. ). Then, copy the launch file and just exchange the argument for dataset name to the name of your new folder.
72
-
73
-
For debugging, the VERBOSITY argument in the launch file can be toggled.
74
-
75
-
You can also run this offline (the rosbag is parsed before starting the pipeline). To do this, type
One possible source of confusion is the DUMMY_DATASET_PATH argument. This is needed because of the way the SparkVio architecture is currently setup. More precisely, it requires the ETH Parser to be passed into the pipeline, so the quick way around it is to give it a dummy eth dataset (placed in the temp folder), that it doesn't really use.
86
-
87
-
Another thing to note is that in regularVioParameters.yaml, autoinitialize needs to be set to 1, otherwise the pipeline will initialize according to the ground truth in the dummy data.
108
+
- In rviz, you can use the provided config file provided at spark_vio_ros/rviz/sparkvio_kitti.rviz
0 commit comments