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
Copy file name to clipboardexpand all lines: ReadMe.md
+3-1
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,7 @@ Please take a look at the feature list below for full details on what the system
18
18
19
19
## News / Events
20
20
21
+
***July 19, 2021** - Camera classes, masking support, alignment utility, and other small fixes. See v2.4 [PR#117](https://github.com/rpng/open_vins/pull/186) for details.
21
22
***December 1, 2020** - Released improved memory management, active feature pointcloud publishing, limiting number of features in update to bound compute, and other small fixes. See v2.3 [PR#117](https://github.com/rpng/open_vins/pull/117) for details.
22
23
***November 18, 2020** - Released groundtruth generation utility package, [vicon2gt](https://github.com/rpng/vicon2gt) to enable creation of groundtruth trajectories in a motion capture room for evaulating VIO methods.
23
24
***July 7, 2020** - Released zero velocity update for vehicle applications and direct initialization when standing still. See [PR#79](https://github.com/rpng/open_vins/pull/79) for details.
@@ -62,9 +63,10 @@ Please take a look at the feature list below for full details on what the system
62
63
* Stereo camera
63
64
* Binocular camera
64
65
* KLT or descriptor based
66
+
* Masked tracking
65
67
* Static IMU initialization (sfm will be open sourced later)
66
68
* Zero velocity detection and updates
67
-
* Out of the box evaluation on EurocMav and TUM-VI datasets
69
+
* Out of the box evaluation on EurocMav, TUM-VI, UZH-FPV, KAIST Urban and VIO datasets
68
70
* Extensive evaluation suite (ATE, RPE, NEES, RMSE, etc..)
From there we can install [NVIDIA Container Toolkit](https://github.com/NVIDIA/nvidia-docker) to allow for the docker to use our GPU and for easy GUI pass through.
23
+
You might also want to check out [this](https://roboticseabass.wordpress.com/2021/04/21/docker-and-ros/) blogpost for some more details.
Alternatively we can launch directly into a bash shell and run commands from in there.
55
+
This basically gives you a terminal in the docker container.
56
+
57
+
@code{.shell-session}
58
+
docker run -it --net=host --gpus all \
59
+
--env="NVIDIA_DRIVER_CAPABILITIES=all" \
60
+
--env="DISPLAY" \
61
+
--env="QT_X11_NO_MITSHM=1" \
62
+
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
63
+
osrf/ros:noetic-desktop-full \
64
+
bash
65
+
# you should be able to launch rviz once in bash
66
+
rviz
67
+
@endcode
68
+
69
+
70
+
@section dev-docker-openvins Running OpenVINS with Docker
71
+
72
+
Clone the OpenVINS repository, build the container and then launch it.
73
+
The [Dockerfile](https://github.com/rpng/open_vins/blob/master/Dockerfile) will not build the repo by default, thus you will need to build the project.
74
+
75
+
76
+
@m_class{m-block m-warning}
77
+
78
+
@par Use a Workspace Directory Mount
79
+
Here it is important to note that we are going to create a dedicated ROS *workspace* which will then be loaded into the workspace.
80
+
Thus if you are going to develop packages alongside OpenVINS you would make sure you have cloned your source code into the same workspace.
81
+
The workspace local folder will be mounted to `/catkin_ws/` in the docker, thus all changes from the host are mirrored.
82
+
83
+
@code{.shell-session}
84
+
mkdir -p ~/workspace/catkin_ws_ov/src
85
+
cd ~/workspace/catkin_ws_ov/src
86
+
git clone https://github.com/rpng/open_vins.git
87
+
cd open_vins
88
+
docker build -t openvins .
89
+
cd ~/workspace/catkin_ws_ov
90
+
@endcode
91
+
92
+
If the dockerfile breaks, you can remove the image and reinstall using the above
93
+
94
+
@code{.shell-session}
95
+
docker image list
96
+
docker image rm openvins --force
97
+
@endcode
98
+
99
+
From here it is a good idea to create a nice helper command which will launch the docker and also pass the GUI to your host machine.
100
+
Here you can append it to the bottom of the ~/.bashrc so that we always have it on startup or just run the two commands on each restart
101
+
102
+
@m_class{m-block m-warning}
103
+
104
+
@par Directory Binding
105
+
You will need to specify *absolute directory paths* to the workspace and dataset folders on the host you want to bind.
106
+
Bind mounts are used to ensure that the host directory is directly used and all edits made on the host are sync'ed with
107
+
the docker container. See the docker [bind mounts](https://docs.docker.com/storage/bind-mounts/) documentation. You
108
+
can add and remove mounts from this command as you see the need.
After building the OpenVINS image (as above) we can do the following which will start a detached process in the docker.
163
+
This process will allow us to connect Clion to it.
164
+
165
+
@code{.shell-session}
166
+
docker run -d --cap-add sys_ptrace -p127.0.0.1:2222:22 --name clion_remote_env openvins
167
+
@endcode
168
+
169
+
We can now change Clion to use the docker remote:
170
+
171
+
1. In short, you should add a new Toolchain entry in settings under Build, Execution, Deployment as a Remote Host type.
172
+
2. Click in the Credentials section and fill out the SSH credentials we set-up in the Dockerfile
173
+
- Host: localhost
174
+
- Port: 2222
175
+
- Username: user
176
+
- Password: password
177
+
3. Add a CMake profile that uses this toolchain and you’re done.
178
+
4. Change build target to be this new CMake profile (optionally just edit / delete the default)
179
+
180
+
To add support for ROS you will need to manually set environmental variables in the CMake profile.
181
+
These were generated by going into the ROS workspace, building a package, and then looking at `printenv` output.
182
+
It should be under `Settings > Build,Execution,Deployment > CMake > (your profile) > Environment`.
183
+
This might be a brittle method, but not sure what else to do... (also see [this](https://www.allaban.me/posts/2020/08/ros2-setup-ide-docker/) blog post).
To use the dataset, the dataset's file player can be used to publish the sensor information on to ROS.
168
177
See the above commands on what packages you need to clone into your ROS workspace.
169
-
One can record a rosbag after manually and use the serial OpenVINS processing node, or use the live node and manually playback the datasets.
170
178
It is important to *disable* the "skip stop section" to ensure that we have continuous sensor feeds.
171
-
Typically we process the datasets at 2x rate so we get a 20 Hz image feed and the datasets can be processed in a more efficient manor.
172
-
173
-
@m_class{m-block m-warning}
174
-
175
-
@par Dynamic Environments
176
-
A challenging open research question is being able to handle dynamic objects seen from the cameras.
177
-
By default we rely on our tracking 8 point RANSAC to handle these dynamics objects.
178
-
In the most of the KAIST datasets the majority of the scene can be taken up by other moving vehicles, thus the performance can suffer.
179
-
Please be aware of this fact.
180
-
179
+
Typically we process the datasets at 1.5x rate so we get a ~20 Hz image feed and the datasets can be processed in a more efficient manor.
181
180
182
181
@m_div{m-text-center}
183
182
| Dataset Name | Length (km) | Dataset Link | Groundtruth Traj. | Example Launch |
@@ -188,6 +187,32 @@ Typically we process the datasets at 2x rate so we get a 20 Hz image feed and th
188
187
@m_enddiv
189
188
190
189
190
+
@section gs-data-kaist-vio KAIST VIO Dataset
191
+
192
+
The [KAIST VIO dataset](https://github.com/zinuok/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.
193
+
The camera is intel realsense D435i 25 Hz, while the IMU is 100 Hz sensing rate from the pixelhawk 4 unit.
194
+
A groundtruth "baseline" trajectory is also provided from a OptiTrack Mocap system at 50 Hz, the bag files have the marker body frame to IMU frame already applied.
195
+
This topic has been provided in ov_data for convinces sake.
196
+
197
+
@m_div{m-text-center}
198
+
| Dataset Name | Length (km) | Dataset Link | Groundtruth Traj. | Example Launch |
0 commit comments