![]() |
okvis_ros package from svin repookvis_ros pose_graph |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Underwater Navigation with tightly coupled fusion of Visual Inertial Sonar and Depth Information |
Checkout URI | https://github.com/autonomousfieldroboticslab/svin.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-24 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Stefan Leutenegger
- Bharat Joshi
Authors
- Stefan Leutenegger
- Sharmin Rahman
- Bharat Joshi
README
Welcome to OKVIS: Open Keyframe-based Visual-Inertial SLAM.
This is the Author’s implementation of the [1] and [3] with more results in [2].
[1] Stefan Leutenegger, Simon Lynen, Michael Bosse, Roland Siegwart and Paul Timothy Furgale. Keyframe-based visual–inertial odometry using nonlinear optimization. The International Journal of Robotics Research, 2015.
[2] Stefan Leutenegger. Unmanned Solar Airplanes: Design and Algorithms for Efficient and Robust Autonomous Operation. Doctoral dissertation, 2014.
[3] Stefan Leutenegger, Paul Timothy Furgale, Vincent Rabaud, Margarita Chli, Kurt Konolige, Roland Siegwart. Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization. In Proceedings of Robotics: Science and Systems, 2013.
Note that the codebase that you are provided here is free of charge and without any warranty. This is bleeding edge research software.
Also note that the quaternion standard has been adapted to match Eigen/ROS, thus some related mathematical description in [1,2,3] will not match the implementation here.
If you publish work that relates to this software, please cite at least [1].
How do I get set up?
This is a catkin package that wraps the pure CMake project.
You will need to install the following dependencies,
-
ROS (currently supported: hydro, indigo and jade). Read the instructions in http://wiki.ros.org/indigo/Installation/Ubuntu. You will need the additional package pcl-ros as (assuming indigo)
sudo apt-get install ros-indigo-pcl-ros
-
google-glog + gflags,
sudo apt-get install libgoogle-glog-dev
-
The following should get installed through ROS anyway:
sudo apt-get install libatlas-base-dev libeigen3-dev libsuitesparse-dev sudo apt-get install libopencv-dev libboost-dev libboost-filesystem-dev
-
Optional: use the the package with the Skybotix VI sensor. Note that this requires a system install, not just as ROS package. Also note that Skybotix OSX support is experimental (checkout the feature/osx branch).
git clone https://github.com/ethz-asl/libvisensor.git cd libvisensor ./install_libvisensor.sh
then download and expand the archive into your catkin workspace:
wget https://www.doc.ic.ac.uk/~sleutene/software/okvis_ros-1.1.3.zip
unzip okvis_ros-1.1.3.zip && rm okvis_ros-1.1.3.zip
Or, clone the repository from github into your catkin workspace:
git clone --recursive git@github.com:ethz-asl/okvis_ros.git
or
git clone --recursive https://github.com/ethz-asl/okvis_ros.git
Building the project
From the catkin workspace root, type
catkin_make
You will find a demo application in okvis_apps. It can process datasets in the ASL/ETH format.
In order to run a minimal working example, follow the steps below:
-
Download a dataset of your choice from http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets. Assuming you downloaded MH_01_easy/. You will find a corresponding calibration / estimator configuration in the okvis/config folder.
-
Run the app as
./okvis_apps path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
You can also run a dataset processing ros node that will publish topics that can be visualized with rviz
rosrun okvis_ros okvis_node_synchronous path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
Use the rviz.rviz configuration in the okvis_ros/config/ directory to get the pose / landmark display.
If you want to run the live application connecting to a sensor, use the okvis_node
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
pose_graph |
Launch files
- launch/flir_stereo.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/flir_stereo_config.yaml]
- launch/svin_flir_stereo_air.launch
-
- config_path [default: $(find pose_graph)/config/stereorig_flir/flir_air.yaml]
- launch/svin_gopro2_uw.launch
-
- config_path [default: $(find pose_graph)/config/gopro/gopro2_uw.yaml]
- launch/svin_speedo1_bbdo2019.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_config.yaml]
- launch/svin_speedo1_downsize_coral_square.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_downsize_coral_square.yaml]
- launch/svin_speedo1_water_downsize.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/config_speedo1_downsize.yaml]
- launch/svin_stereo_rig_cropped.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig2/stereo_rig_v4_config.yaml]
- launch/svin_stereorig_mexico.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/stereo_rig_v3config.yaml]
- launch/okvis_node.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_fpga_p2_euroc.yaml]
- launch/svin_gopro2_uw.xml
-
- posegraph_config [default: $(find-pkg-share pose_graph)/config/gopro/gopro2_uw.yaml]
- okvis_config [default: $(find-pkg-share okvis_ros)/okvis/config/config_gopro2_uw_radtan.yaml]
- launch/svin_gopro_uw.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_gopro_uw_radtan.yaml]
- launch/svin_stereorig_gv7.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_flir_stereo_gv7.yaml]
- launch/svin_stereorig_v1.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v1.yaml]
- launch/svin_stereorig_v2.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v2.yaml]
Messages
Services
Plugins
Recent questions tagged okvis_ros at Robotics Stack Exchange
![]() |
okvis_ros package from svin repookvis_ros pose_graph |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Underwater Navigation with tightly coupled fusion of Visual Inertial Sonar and Depth Information |
Checkout URI | https://github.com/autonomousfieldroboticslab/svin.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-24 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Stefan Leutenegger
- Bharat Joshi
Authors
- Stefan Leutenegger
- Sharmin Rahman
- Bharat Joshi
README
Welcome to OKVIS: Open Keyframe-based Visual-Inertial SLAM.
This is the Author’s implementation of the [1] and [3] with more results in [2].
[1] Stefan Leutenegger, Simon Lynen, Michael Bosse, Roland Siegwart and Paul Timothy Furgale. Keyframe-based visual–inertial odometry using nonlinear optimization. The International Journal of Robotics Research, 2015.
[2] Stefan Leutenegger. Unmanned Solar Airplanes: Design and Algorithms for Efficient and Robust Autonomous Operation. Doctoral dissertation, 2014.
[3] Stefan Leutenegger, Paul Timothy Furgale, Vincent Rabaud, Margarita Chli, Kurt Konolige, Roland Siegwart. Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization. In Proceedings of Robotics: Science and Systems, 2013.
Note that the codebase that you are provided here is free of charge and without any warranty. This is bleeding edge research software.
Also note that the quaternion standard has been adapted to match Eigen/ROS, thus some related mathematical description in [1,2,3] will not match the implementation here.
If you publish work that relates to this software, please cite at least [1].
How do I get set up?
This is a catkin package that wraps the pure CMake project.
You will need to install the following dependencies,
-
ROS (currently supported: hydro, indigo and jade). Read the instructions in http://wiki.ros.org/indigo/Installation/Ubuntu. You will need the additional package pcl-ros as (assuming indigo)
sudo apt-get install ros-indigo-pcl-ros
-
google-glog + gflags,
sudo apt-get install libgoogle-glog-dev
-
The following should get installed through ROS anyway:
sudo apt-get install libatlas-base-dev libeigen3-dev libsuitesparse-dev sudo apt-get install libopencv-dev libboost-dev libboost-filesystem-dev
-
Optional: use the the package with the Skybotix VI sensor. Note that this requires a system install, not just as ROS package. Also note that Skybotix OSX support is experimental (checkout the feature/osx branch).
git clone https://github.com/ethz-asl/libvisensor.git cd libvisensor ./install_libvisensor.sh
then download and expand the archive into your catkin workspace:
wget https://www.doc.ic.ac.uk/~sleutene/software/okvis_ros-1.1.3.zip
unzip okvis_ros-1.1.3.zip && rm okvis_ros-1.1.3.zip
Or, clone the repository from github into your catkin workspace:
git clone --recursive git@github.com:ethz-asl/okvis_ros.git
or
git clone --recursive https://github.com/ethz-asl/okvis_ros.git
Building the project
From the catkin workspace root, type
catkin_make
You will find a demo application in okvis_apps. It can process datasets in the ASL/ETH format.
In order to run a minimal working example, follow the steps below:
-
Download a dataset of your choice from http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets. Assuming you downloaded MH_01_easy/. You will find a corresponding calibration / estimator configuration in the okvis/config folder.
-
Run the app as
./okvis_apps path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
You can also run a dataset processing ros node that will publish topics that can be visualized with rviz
rosrun okvis_ros okvis_node_synchronous path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
Use the rviz.rviz configuration in the okvis_ros/config/ directory to get the pose / landmark display.
If you want to run the live application connecting to a sensor, use the okvis_node
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
pose_graph |
Launch files
- launch/flir_stereo.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/flir_stereo_config.yaml]
- launch/svin_flir_stereo_air.launch
-
- config_path [default: $(find pose_graph)/config/stereorig_flir/flir_air.yaml]
- launch/svin_gopro2_uw.launch
-
- config_path [default: $(find pose_graph)/config/gopro/gopro2_uw.yaml]
- launch/svin_speedo1_bbdo2019.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_config.yaml]
- launch/svin_speedo1_downsize_coral_square.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_downsize_coral_square.yaml]
- launch/svin_speedo1_water_downsize.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/config_speedo1_downsize.yaml]
- launch/svin_stereo_rig_cropped.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig2/stereo_rig_v4_config.yaml]
- launch/svin_stereorig_mexico.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/stereo_rig_v3config.yaml]
- launch/okvis_node.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_fpga_p2_euroc.yaml]
- launch/svin_gopro2_uw.xml
-
- posegraph_config [default: $(find-pkg-share pose_graph)/config/gopro/gopro2_uw.yaml]
- okvis_config [default: $(find-pkg-share okvis_ros)/okvis/config/config_gopro2_uw_radtan.yaml]
- launch/svin_gopro_uw.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_gopro_uw_radtan.yaml]
- launch/svin_stereorig_gv7.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_flir_stereo_gv7.yaml]
- launch/svin_stereorig_v1.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v1.yaml]
- launch/svin_stereorig_v2.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v2.yaml]
Messages
Services
Plugins
Recent questions tagged okvis_ros at Robotics Stack Exchange
![]() |
okvis_ros package from svin repookvis_ros pose_graph |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Underwater Navigation with tightly coupled fusion of Visual Inertial Sonar and Depth Information |
Checkout URI | https://github.com/autonomousfieldroboticslab/svin.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-24 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Stefan Leutenegger
- Bharat Joshi
Authors
- Stefan Leutenegger
- Sharmin Rahman
- Bharat Joshi
README
Welcome to OKVIS: Open Keyframe-based Visual-Inertial SLAM.
This is the Author’s implementation of the [1] and [3] with more results in [2].
[1] Stefan Leutenegger, Simon Lynen, Michael Bosse, Roland Siegwart and Paul Timothy Furgale. Keyframe-based visual–inertial odometry using nonlinear optimization. The International Journal of Robotics Research, 2015.
[2] Stefan Leutenegger. Unmanned Solar Airplanes: Design and Algorithms for Efficient and Robust Autonomous Operation. Doctoral dissertation, 2014.
[3] Stefan Leutenegger, Paul Timothy Furgale, Vincent Rabaud, Margarita Chli, Kurt Konolige, Roland Siegwart. Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization. In Proceedings of Robotics: Science and Systems, 2013.
Note that the codebase that you are provided here is free of charge and without any warranty. This is bleeding edge research software.
Also note that the quaternion standard has been adapted to match Eigen/ROS, thus some related mathematical description in [1,2,3] will not match the implementation here.
If you publish work that relates to this software, please cite at least [1].
How do I get set up?
This is a catkin package that wraps the pure CMake project.
You will need to install the following dependencies,
-
ROS (currently supported: hydro, indigo and jade). Read the instructions in http://wiki.ros.org/indigo/Installation/Ubuntu. You will need the additional package pcl-ros as (assuming indigo)
sudo apt-get install ros-indigo-pcl-ros
-
google-glog + gflags,
sudo apt-get install libgoogle-glog-dev
-
The following should get installed through ROS anyway:
sudo apt-get install libatlas-base-dev libeigen3-dev libsuitesparse-dev sudo apt-get install libopencv-dev libboost-dev libboost-filesystem-dev
-
Optional: use the the package with the Skybotix VI sensor. Note that this requires a system install, not just as ROS package. Also note that Skybotix OSX support is experimental (checkout the feature/osx branch).
git clone https://github.com/ethz-asl/libvisensor.git cd libvisensor ./install_libvisensor.sh
then download and expand the archive into your catkin workspace:
wget https://www.doc.ic.ac.uk/~sleutene/software/okvis_ros-1.1.3.zip
unzip okvis_ros-1.1.3.zip && rm okvis_ros-1.1.3.zip
Or, clone the repository from github into your catkin workspace:
git clone --recursive git@github.com:ethz-asl/okvis_ros.git
or
git clone --recursive https://github.com/ethz-asl/okvis_ros.git
Building the project
From the catkin workspace root, type
catkin_make
You will find a demo application in okvis_apps. It can process datasets in the ASL/ETH format.
In order to run a minimal working example, follow the steps below:
-
Download a dataset of your choice from http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets. Assuming you downloaded MH_01_easy/. You will find a corresponding calibration / estimator configuration in the okvis/config folder.
-
Run the app as
./okvis_apps path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
You can also run a dataset processing ros node that will publish topics that can be visualized with rviz
rosrun okvis_ros okvis_node_synchronous path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
Use the rviz.rviz configuration in the okvis_ros/config/ directory to get the pose / landmark display.
If you want to run the live application connecting to a sensor, use the okvis_node
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
pose_graph |
Launch files
- launch/flir_stereo.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/flir_stereo_config.yaml]
- launch/svin_flir_stereo_air.launch
-
- config_path [default: $(find pose_graph)/config/stereorig_flir/flir_air.yaml]
- launch/svin_gopro2_uw.launch
-
- config_path [default: $(find pose_graph)/config/gopro/gopro2_uw.yaml]
- launch/svin_speedo1_bbdo2019.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_config.yaml]
- launch/svin_speedo1_downsize_coral_square.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_downsize_coral_square.yaml]
- launch/svin_speedo1_water_downsize.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/config_speedo1_downsize.yaml]
- launch/svin_stereo_rig_cropped.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig2/stereo_rig_v4_config.yaml]
- launch/svin_stereorig_mexico.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/stereo_rig_v3config.yaml]
- launch/okvis_node.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_fpga_p2_euroc.yaml]
- launch/svin_gopro2_uw.xml
-
- posegraph_config [default: $(find-pkg-share pose_graph)/config/gopro/gopro2_uw.yaml]
- okvis_config [default: $(find-pkg-share okvis_ros)/okvis/config/config_gopro2_uw_radtan.yaml]
- launch/svin_gopro_uw.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_gopro_uw_radtan.yaml]
- launch/svin_stereorig_gv7.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_flir_stereo_gv7.yaml]
- launch/svin_stereorig_v1.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v1.yaml]
- launch/svin_stereorig_v2.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v2.yaml]
Messages
Services
Plugins
Recent questions tagged okvis_ros at Robotics Stack Exchange
![]() |
okvis_ros package from svin repookvis_ros pose_graph |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Underwater Navigation with tightly coupled fusion of Visual Inertial Sonar and Depth Information |
Checkout URI | https://github.com/autonomousfieldroboticslab/svin.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-24 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Stefan Leutenegger
- Bharat Joshi
Authors
- Stefan Leutenegger
- Sharmin Rahman
- Bharat Joshi
README
Welcome to OKVIS: Open Keyframe-based Visual-Inertial SLAM.
This is the Author’s implementation of the [1] and [3] with more results in [2].
[1] Stefan Leutenegger, Simon Lynen, Michael Bosse, Roland Siegwart and Paul Timothy Furgale. Keyframe-based visual–inertial odometry using nonlinear optimization. The International Journal of Robotics Research, 2015.
[2] Stefan Leutenegger. Unmanned Solar Airplanes: Design and Algorithms for Efficient and Robust Autonomous Operation. Doctoral dissertation, 2014.
[3] Stefan Leutenegger, Paul Timothy Furgale, Vincent Rabaud, Margarita Chli, Kurt Konolige, Roland Siegwart. Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization. In Proceedings of Robotics: Science and Systems, 2013.
Note that the codebase that you are provided here is free of charge and without any warranty. This is bleeding edge research software.
Also note that the quaternion standard has been adapted to match Eigen/ROS, thus some related mathematical description in [1,2,3] will not match the implementation here.
If you publish work that relates to this software, please cite at least [1].
How do I get set up?
This is a catkin package that wraps the pure CMake project.
You will need to install the following dependencies,
-
ROS (currently supported: hydro, indigo and jade). Read the instructions in http://wiki.ros.org/indigo/Installation/Ubuntu. You will need the additional package pcl-ros as (assuming indigo)
sudo apt-get install ros-indigo-pcl-ros
-
google-glog + gflags,
sudo apt-get install libgoogle-glog-dev
-
The following should get installed through ROS anyway:
sudo apt-get install libatlas-base-dev libeigen3-dev libsuitesparse-dev sudo apt-get install libopencv-dev libboost-dev libboost-filesystem-dev
-
Optional: use the the package with the Skybotix VI sensor. Note that this requires a system install, not just as ROS package. Also note that Skybotix OSX support is experimental (checkout the feature/osx branch).
git clone https://github.com/ethz-asl/libvisensor.git cd libvisensor ./install_libvisensor.sh
then download and expand the archive into your catkin workspace:
wget https://www.doc.ic.ac.uk/~sleutene/software/okvis_ros-1.1.3.zip
unzip okvis_ros-1.1.3.zip && rm okvis_ros-1.1.3.zip
Or, clone the repository from github into your catkin workspace:
git clone --recursive git@github.com:ethz-asl/okvis_ros.git
or
git clone --recursive https://github.com/ethz-asl/okvis_ros.git
Building the project
From the catkin workspace root, type
catkin_make
You will find a demo application in okvis_apps. It can process datasets in the ASL/ETH format.
In order to run a minimal working example, follow the steps below:
-
Download a dataset of your choice from http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets. Assuming you downloaded MH_01_easy/. You will find a corresponding calibration / estimator configuration in the okvis/config folder.
-
Run the app as
./okvis_apps path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
You can also run a dataset processing ros node that will publish topics that can be visualized with rviz
rosrun okvis_ros okvis_node_synchronous path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
Use the rviz.rviz configuration in the okvis_ros/config/ directory to get the pose / landmark display.
If you want to run the live application connecting to a sensor, use the okvis_node
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
pose_graph |
Launch files
- launch/flir_stereo.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/flir_stereo_config.yaml]
- launch/svin_flir_stereo_air.launch
-
- config_path [default: $(find pose_graph)/config/stereorig_flir/flir_air.yaml]
- launch/svin_gopro2_uw.launch
-
- config_path [default: $(find pose_graph)/config/gopro/gopro2_uw.yaml]
- launch/svin_speedo1_bbdo2019.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_config.yaml]
- launch/svin_speedo1_downsize_coral_square.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_downsize_coral_square.yaml]
- launch/svin_speedo1_water_downsize.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/config_speedo1_downsize.yaml]
- launch/svin_stereo_rig_cropped.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig2/stereo_rig_v4_config.yaml]
- launch/svin_stereorig_mexico.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/stereo_rig_v3config.yaml]
- launch/okvis_node.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_fpga_p2_euroc.yaml]
- launch/svin_gopro2_uw.xml
-
- posegraph_config [default: $(find-pkg-share pose_graph)/config/gopro/gopro2_uw.yaml]
- okvis_config [default: $(find-pkg-share okvis_ros)/okvis/config/config_gopro2_uw_radtan.yaml]
- launch/svin_gopro_uw.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_gopro_uw_radtan.yaml]
- launch/svin_stereorig_gv7.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_flir_stereo_gv7.yaml]
- launch/svin_stereorig_v1.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v1.yaml]
- launch/svin_stereorig_v2.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v2.yaml]
Messages
Services
Plugins
Recent questions tagged okvis_ros at Robotics Stack Exchange
![]() |
okvis_ros package from svin repookvis_ros pose_graph |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Underwater Navigation with tightly coupled fusion of Visual Inertial Sonar and Depth Information |
Checkout URI | https://github.com/autonomousfieldroboticslab/svin.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-24 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Stefan Leutenegger
- Bharat Joshi
Authors
- Stefan Leutenegger
- Sharmin Rahman
- Bharat Joshi
README
Welcome to OKVIS: Open Keyframe-based Visual-Inertial SLAM.
This is the Author’s implementation of the [1] and [3] with more results in [2].
[1] Stefan Leutenegger, Simon Lynen, Michael Bosse, Roland Siegwart and Paul Timothy Furgale. Keyframe-based visual–inertial odometry using nonlinear optimization. The International Journal of Robotics Research, 2015.
[2] Stefan Leutenegger. Unmanned Solar Airplanes: Design and Algorithms for Efficient and Robust Autonomous Operation. Doctoral dissertation, 2014.
[3] Stefan Leutenegger, Paul Timothy Furgale, Vincent Rabaud, Margarita Chli, Kurt Konolige, Roland Siegwart. Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization. In Proceedings of Robotics: Science and Systems, 2013.
Note that the codebase that you are provided here is free of charge and without any warranty. This is bleeding edge research software.
Also note that the quaternion standard has been adapted to match Eigen/ROS, thus some related mathematical description in [1,2,3] will not match the implementation here.
If you publish work that relates to this software, please cite at least [1].
How do I get set up?
This is a catkin package that wraps the pure CMake project.
You will need to install the following dependencies,
-
ROS (currently supported: hydro, indigo and jade). Read the instructions in http://wiki.ros.org/indigo/Installation/Ubuntu. You will need the additional package pcl-ros as (assuming indigo)
sudo apt-get install ros-indigo-pcl-ros
-
google-glog + gflags,
sudo apt-get install libgoogle-glog-dev
-
The following should get installed through ROS anyway:
sudo apt-get install libatlas-base-dev libeigen3-dev libsuitesparse-dev sudo apt-get install libopencv-dev libboost-dev libboost-filesystem-dev
-
Optional: use the the package with the Skybotix VI sensor. Note that this requires a system install, not just as ROS package. Also note that Skybotix OSX support is experimental (checkout the feature/osx branch).
git clone https://github.com/ethz-asl/libvisensor.git cd libvisensor ./install_libvisensor.sh
then download and expand the archive into your catkin workspace:
wget https://www.doc.ic.ac.uk/~sleutene/software/okvis_ros-1.1.3.zip
unzip okvis_ros-1.1.3.zip && rm okvis_ros-1.1.3.zip
Or, clone the repository from github into your catkin workspace:
git clone --recursive git@github.com:ethz-asl/okvis_ros.git
or
git clone --recursive https://github.com/ethz-asl/okvis_ros.git
Building the project
From the catkin workspace root, type
catkin_make
You will find a demo application in okvis_apps. It can process datasets in the ASL/ETH format.
In order to run a minimal working example, follow the steps below:
-
Download a dataset of your choice from http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets. Assuming you downloaded MH_01_easy/. You will find a corresponding calibration / estimator configuration in the okvis/config folder.
-
Run the app as
./okvis_apps path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
You can also run a dataset processing ros node that will publish topics that can be visualized with rviz
rosrun okvis_ros okvis_node_synchronous path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
Use the rviz.rviz configuration in the okvis_ros/config/ directory to get the pose / landmark display.
If you want to run the live application connecting to a sensor, use the okvis_node
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
pose_graph |
Launch files
- launch/flir_stereo.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/flir_stereo_config.yaml]
- launch/svin_flir_stereo_air.launch
-
- config_path [default: $(find pose_graph)/config/stereorig_flir/flir_air.yaml]
- launch/svin_gopro2_uw.launch
-
- config_path [default: $(find pose_graph)/config/gopro/gopro2_uw.yaml]
- launch/svin_speedo1_bbdo2019.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_config.yaml]
- launch/svin_speedo1_downsize_coral_square.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_downsize_coral_square.yaml]
- launch/svin_speedo1_water_downsize.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/config_speedo1_downsize.yaml]
- launch/svin_stereo_rig_cropped.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig2/stereo_rig_v4_config.yaml]
- launch/svin_stereorig_mexico.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/stereo_rig_v3config.yaml]
- launch/okvis_node.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_fpga_p2_euroc.yaml]
- launch/svin_gopro2_uw.xml
-
- posegraph_config [default: $(find-pkg-share pose_graph)/config/gopro/gopro2_uw.yaml]
- okvis_config [default: $(find-pkg-share okvis_ros)/okvis/config/config_gopro2_uw_radtan.yaml]
- launch/svin_gopro_uw.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_gopro_uw_radtan.yaml]
- launch/svin_stereorig_gv7.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_flir_stereo_gv7.yaml]
- launch/svin_stereorig_v1.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v1.yaml]
- launch/svin_stereorig_v2.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v2.yaml]
Messages
Services
Plugins
Recent questions tagged okvis_ros at Robotics Stack Exchange
![]() |
okvis_ros package from svin repookvis_ros pose_graph |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Underwater Navigation with tightly coupled fusion of Visual Inertial Sonar and Depth Information |
Checkout URI | https://github.com/autonomousfieldroboticslab/svin.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-24 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Stefan Leutenegger
- Bharat Joshi
Authors
- Stefan Leutenegger
- Sharmin Rahman
- Bharat Joshi
README
Welcome to OKVIS: Open Keyframe-based Visual-Inertial SLAM.
This is the Author’s implementation of the [1] and [3] with more results in [2].
[1] Stefan Leutenegger, Simon Lynen, Michael Bosse, Roland Siegwart and Paul Timothy Furgale. Keyframe-based visual–inertial odometry using nonlinear optimization. The International Journal of Robotics Research, 2015.
[2] Stefan Leutenegger. Unmanned Solar Airplanes: Design and Algorithms for Efficient and Robust Autonomous Operation. Doctoral dissertation, 2014.
[3] Stefan Leutenegger, Paul Timothy Furgale, Vincent Rabaud, Margarita Chli, Kurt Konolige, Roland Siegwart. Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization. In Proceedings of Robotics: Science and Systems, 2013.
Note that the codebase that you are provided here is free of charge and without any warranty. This is bleeding edge research software.
Also note that the quaternion standard has been adapted to match Eigen/ROS, thus some related mathematical description in [1,2,3] will not match the implementation here.
If you publish work that relates to this software, please cite at least [1].
How do I get set up?
This is a catkin package that wraps the pure CMake project.
You will need to install the following dependencies,
-
ROS (currently supported: hydro, indigo and jade). Read the instructions in http://wiki.ros.org/indigo/Installation/Ubuntu. You will need the additional package pcl-ros as (assuming indigo)
sudo apt-get install ros-indigo-pcl-ros
-
google-glog + gflags,
sudo apt-get install libgoogle-glog-dev
-
The following should get installed through ROS anyway:
sudo apt-get install libatlas-base-dev libeigen3-dev libsuitesparse-dev sudo apt-get install libopencv-dev libboost-dev libboost-filesystem-dev
-
Optional: use the the package with the Skybotix VI sensor. Note that this requires a system install, not just as ROS package. Also note that Skybotix OSX support is experimental (checkout the feature/osx branch).
git clone https://github.com/ethz-asl/libvisensor.git cd libvisensor ./install_libvisensor.sh
then download and expand the archive into your catkin workspace:
wget https://www.doc.ic.ac.uk/~sleutene/software/okvis_ros-1.1.3.zip
unzip okvis_ros-1.1.3.zip && rm okvis_ros-1.1.3.zip
Or, clone the repository from github into your catkin workspace:
git clone --recursive git@github.com:ethz-asl/okvis_ros.git
or
git clone --recursive https://github.com/ethz-asl/okvis_ros.git
Building the project
From the catkin workspace root, type
catkin_make
You will find a demo application in okvis_apps. It can process datasets in the ASL/ETH format.
In order to run a minimal working example, follow the steps below:
-
Download a dataset of your choice from http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets. Assuming you downloaded MH_01_easy/. You will find a corresponding calibration / estimator configuration in the okvis/config folder.
-
Run the app as
./okvis_apps path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
You can also run a dataset processing ros node that will publish topics that can be visualized with rviz
rosrun okvis_ros okvis_node_synchronous path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
Use the rviz.rviz configuration in the okvis_ros/config/ directory to get the pose / landmark display.
If you want to run the live application connecting to a sensor, use the okvis_node
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
pose_graph |
Launch files
- launch/flir_stereo.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/flir_stereo_config.yaml]
- launch/svin_flir_stereo_air.launch
-
- config_path [default: $(find pose_graph)/config/stereorig_flir/flir_air.yaml]
- launch/svin_gopro2_uw.launch
-
- config_path [default: $(find pose_graph)/config/gopro/gopro2_uw.yaml]
- launch/svin_speedo1_bbdo2019.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_config.yaml]
- launch/svin_speedo1_downsize_coral_square.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_downsize_coral_square.yaml]
- launch/svin_speedo1_water_downsize.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/config_speedo1_downsize.yaml]
- launch/svin_stereo_rig_cropped.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig2/stereo_rig_v4_config.yaml]
- launch/svin_stereorig_mexico.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/stereo_rig_v3config.yaml]
- launch/okvis_node.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_fpga_p2_euroc.yaml]
- launch/svin_gopro2_uw.xml
-
- posegraph_config [default: $(find-pkg-share pose_graph)/config/gopro/gopro2_uw.yaml]
- okvis_config [default: $(find-pkg-share okvis_ros)/okvis/config/config_gopro2_uw_radtan.yaml]
- launch/svin_gopro_uw.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_gopro_uw_radtan.yaml]
- launch/svin_stereorig_gv7.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_flir_stereo_gv7.yaml]
- launch/svin_stereorig_v1.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v1.yaml]
- launch/svin_stereorig_v2.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v2.yaml]
Messages
Services
Plugins
Recent questions tagged okvis_ros at Robotics Stack Exchange
![]() |
okvis_ros package from svin repookvis_ros pose_graph |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Underwater Navigation with tightly coupled fusion of Visual Inertial Sonar and Depth Information |
Checkout URI | https://github.com/autonomousfieldroboticslab/svin.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-24 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Stefan Leutenegger
- Bharat Joshi
Authors
- Stefan Leutenegger
- Sharmin Rahman
- Bharat Joshi
README
Welcome to OKVIS: Open Keyframe-based Visual-Inertial SLAM.
This is the Author’s implementation of the [1] and [3] with more results in [2].
[1] Stefan Leutenegger, Simon Lynen, Michael Bosse, Roland Siegwart and Paul Timothy Furgale. Keyframe-based visual–inertial odometry using nonlinear optimization. The International Journal of Robotics Research, 2015.
[2] Stefan Leutenegger. Unmanned Solar Airplanes: Design and Algorithms for Efficient and Robust Autonomous Operation. Doctoral dissertation, 2014.
[3] Stefan Leutenegger, Paul Timothy Furgale, Vincent Rabaud, Margarita Chli, Kurt Konolige, Roland Siegwart. Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization. In Proceedings of Robotics: Science and Systems, 2013.
Note that the codebase that you are provided here is free of charge and without any warranty. This is bleeding edge research software.
Also note that the quaternion standard has been adapted to match Eigen/ROS, thus some related mathematical description in [1,2,3] will not match the implementation here.
If you publish work that relates to this software, please cite at least [1].
How do I get set up?
This is a catkin package that wraps the pure CMake project.
You will need to install the following dependencies,
-
ROS (currently supported: hydro, indigo and jade). Read the instructions in http://wiki.ros.org/indigo/Installation/Ubuntu. You will need the additional package pcl-ros as (assuming indigo)
sudo apt-get install ros-indigo-pcl-ros
-
google-glog + gflags,
sudo apt-get install libgoogle-glog-dev
-
The following should get installed through ROS anyway:
sudo apt-get install libatlas-base-dev libeigen3-dev libsuitesparse-dev sudo apt-get install libopencv-dev libboost-dev libboost-filesystem-dev
-
Optional: use the the package with the Skybotix VI sensor. Note that this requires a system install, not just as ROS package. Also note that Skybotix OSX support is experimental (checkout the feature/osx branch).
git clone https://github.com/ethz-asl/libvisensor.git cd libvisensor ./install_libvisensor.sh
then download and expand the archive into your catkin workspace:
wget https://www.doc.ic.ac.uk/~sleutene/software/okvis_ros-1.1.3.zip
unzip okvis_ros-1.1.3.zip && rm okvis_ros-1.1.3.zip
Or, clone the repository from github into your catkin workspace:
git clone --recursive git@github.com:ethz-asl/okvis_ros.git
or
git clone --recursive https://github.com/ethz-asl/okvis_ros.git
Building the project
From the catkin workspace root, type
catkin_make
You will find a demo application in okvis_apps. It can process datasets in the ASL/ETH format.
In order to run a minimal working example, follow the steps below:
-
Download a dataset of your choice from http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets. Assuming you downloaded MH_01_easy/. You will find a corresponding calibration / estimator configuration in the okvis/config folder.
-
Run the app as
./okvis_apps path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
You can also run a dataset processing ros node that will publish topics that can be visualized with rviz
rosrun okvis_ros okvis_node_synchronous path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
Use the rviz.rviz configuration in the okvis_ros/config/ directory to get the pose / landmark display.
If you want to run the live application connecting to a sensor, use the okvis_node
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
pose_graph |
Launch files
- launch/flir_stereo.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/flir_stereo_config.yaml]
- launch/svin_flir_stereo_air.launch
-
- config_path [default: $(find pose_graph)/config/stereorig_flir/flir_air.yaml]
- launch/svin_gopro2_uw.launch
-
- config_path [default: $(find pose_graph)/config/gopro/gopro2_uw.yaml]
- launch/svin_speedo1_bbdo2019.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_config.yaml]
- launch/svin_speedo1_downsize_coral_square.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_downsize_coral_square.yaml]
- launch/svin_speedo1_water_downsize.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/config_speedo1_downsize.yaml]
- launch/svin_stereo_rig_cropped.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig2/stereo_rig_v4_config.yaml]
- launch/svin_stereorig_mexico.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/stereo_rig_v3config.yaml]
- launch/okvis_node.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_fpga_p2_euroc.yaml]
- launch/svin_gopro2_uw.xml
-
- posegraph_config [default: $(find-pkg-share pose_graph)/config/gopro/gopro2_uw.yaml]
- okvis_config [default: $(find-pkg-share okvis_ros)/okvis/config/config_gopro2_uw_radtan.yaml]
- launch/svin_gopro_uw.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_gopro_uw_radtan.yaml]
- launch/svin_stereorig_gv7.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_flir_stereo_gv7.yaml]
- launch/svin_stereorig_v1.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v1.yaml]
- launch/svin_stereorig_v2.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v2.yaml]
Messages
Services
Plugins
Recent questions tagged okvis_ros at Robotics Stack Exchange
![]() |
okvis_ros package from svin repookvis_ros pose_graph |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Underwater Navigation with tightly coupled fusion of Visual Inertial Sonar and Depth Information |
Checkout URI | https://github.com/autonomousfieldroboticslab/svin.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-24 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Stefan Leutenegger
- Bharat Joshi
Authors
- Stefan Leutenegger
- Sharmin Rahman
- Bharat Joshi
README
Welcome to OKVIS: Open Keyframe-based Visual-Inertial SLAM.
This is the Author’s implementation of the [1] and [3] with more results in [2].
[1] Stefan Leutenegger, Simon Lynen, Michael Bosse, Roland Siegwart and Paul Timothy Furgale. Keyframe-based visual–inertial odometry using nonlinear optimization. The International Journal of Robotics Research, 2015.
[2] Stefan Leutenegger. Unmanned Solar Airplanes: Design and Algorithms for Efficient and Robust Autonomous Operation. Doctoral dissertation, 2014.
[3] Stefan Leutenegger, Paul Timothy Furgale, Vincent Rabaud, Margarita Chli, Kurt Konolige, Roland Siegwart. Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization. In Proceedings of Robotics: Science and Systems, 2013.
Note that the codebase that you are provided here is free of charge and without any warranty. This is bleeding edge research software.
Also note that the quaternion standard has been adapted to match Eigen/ROS, thus some related mathematical description in [1,2,3] will not match the implementation here.
If you publish work that relates to this software, please cite at least [1].
How do I get set up?
This is a catkin package that wraps the pure CMake project.
You will need to install the following dependencies,
-
ROS (currently supported: hydro, indigo and jade). Read the instructions in http://wiki.ros.org/indigo/Installation/Ubuntu. You will need the additional package pcl-ros as (assuming indigo)
sudo apt-get install ros-indigo-pcl-ros
-
google-glog + gflags,
sudo apt-get install libgoogle-glog-dev
-
The following should get installed through ROS anyway:
sudo apt-get install libatlas-base-dev libeigen3-dev libsuitesparse-dev sudo apt-get install libopencv-dev libboost-dev libboost-filesystem-dev
-
Optional: use the the package with the Skybotix VI sensor. Note that this requires a system install, not just as ROS package. Also note that Skybotix OSX support is experimental (checkout the feature/osx branch).
git clone https://github.com/ethz-asl/libvisensor.git cd libvisensor ./install_libvisensor.sh
then download and expand the archive into your catkin workspace:
wget https://www.doc.ic.ac.uk/~sleutene/software/okvis_ros-1.1.3.zip
unzip okvis_ros-1.1.3.zip && rm okvis_ros-1.1.3.zip
Or, clone the repository from github into your catkin workspace:
git clone --recursive git@github.com:ethz-asl/okvis_ros.git
or
git clone --recursive https://github.com/ethz-asl/okvis_ros.git
Building the project
From the catkin workspace root, type
catkin_make
You will find a demo application in okvis_apps. It can process datasets in the ASL/ETH format.
In order to run a minimal working example, follow the steps below:
-
Download a dataset of your choice from http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets. Assuming you downloaded MH_01_easy/. You will find a corresponding calibration / estimator configuration in the okvis/config folder.
-
Run the app as
./okvis_apps path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
You can also run a dataset processing ros node that will publish topics that can be visualized with rviz
rosrun okvis_ros okvis_node_synchronous path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
Use the rviz.rviz configuration in the okvis_ros/config/ directory to get the pose / landmark display.
If you want to run the live application connecting to a sensor, use the okvis_node
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
pose_graph |
Launch files
- launch/flir_stereo.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/flir_stereo_config.yaml]
- launch/svin_flir_stereo_air.launch
-
- config_path [default: $(find pose_graph)/config/stereorig_flir/flir_air.yaml]
- launch/svin_gopro2_uw.launch
-
- config_path [default: $(find pose_graph)/config/gopro/gopro2_uw.yaml]
- launch/svin_speedo1_bbdo2019.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_config.yaml]
- launch/svin_speedo1_downsize_coral_square.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_downsize_coral_square.yaml]
- launch/svin_speedo1_water_downsize.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/config_speedo1_downsize.yaml]
- launch/svin_stereo_rig_cropped.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig2/stereo_rig_v4_config.yaml]
- launch/svin_stereorig_mexico.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/stereo_rig_v3config.yaml]
- launch/okvis_node.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_fpga_p2_euroc.yaml]
- launch/svin_gopro2_uw.xml
-
- posegraph_config [default: $(find-pkg-share pose_graph)/config/gopro/gopro2_uw.yaml]
- okvis_config [default: $(find-pkg-share okvis_ros)/okvis/config/config_gopro2_uw_radtan.yaml]
- launch/svin_gopro_uw.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_gopro_uw_radtan.yaml]
- launch/svin_stereorig_gv7.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_flir_stereo_gv7.yaml]
- launch/svin_stereorig_v1.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v1.yaml]
- launch/svin_stereorig_v2.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v2.yaml]
Messages
Services
Plugins
Recent questions tagged okvis_ros at Robotics Stack Exchange
![]() |
okvis_ros package from svin repookvis_ros pose_graph |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | Underwater Navigation with tightly coupled fusion of Visual Inertial Sonar and Depth Information |
Checkout URI | https://github.com/autonomousfieldroboticslab/svin.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-24 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Stefan Leutenegger
- Bharat Joshi
Authors
- Stefan Leutenegger
- Sharmin Rahman
- Bharat Joshi
README
Welcome to OKVIS: Open Keyframe-based Visual-Inertial SLAM.
This is the Author’s implementation of the [1] and [3] with more results in [2].
[1] Stefan Leutenegger, Simon Lynen, Michael Bosse, Roland Siegwart and Paul Timothy Furgale. Keyframe-based visual–inertial odometry using nonlinear optimization. The International Journal of Robotics Research, 2015.
[2] Stefan Leutenegger. Unmanned Solar Airplanes: Design and Algorithms for Efficient and Robust Autonomous Operation. Doctoral dissertation, 2014.
[3] Stefan Leutenegger, Paul Timothy Furgale, Vincent Rabaud, Margarita Chli, Kurt Konolige, Roland Siegwart. Keyframe-Based Visual-Inertial SLAM using Nonlinear Optimization. In Proceedings of Robotics: Science and Systems, 2013.
Note that the codebase that you are provided here is free of charge and without any warranty. This is bleeding edge research software.
Also note that the quaternion standard has been adapted to match Eigen/ROS, thus some related mathematical description in [1,2,3] will not match the implementation here.
If you publish work that relates to this software, please cite at least [1].
How do I get set up?
This is a catkin package that wraps the pure CMake project.
You will need to install the following dependencies,
-
ROS (currently supported: hydro, indigo and jade). Read the instructions in http://wiki.ros.org/indigo/Installation/Ubuntu. You will need the additional package pcl-ros as (assuming indigo)
sudo apt-get install ros-indigo-pcl-ros
-
google-glog + gflags,
sudo apt-get install libgoogle-glog-dev
-
The following should get installed through ROS anyway:
sudo apt-get install libatlas-base-dev libeigen3-dev libsuitesparse-dev sudo apt-get install libopencv-dev libboost-dev libboost-filesystem-dev
-
Optional: use the the package with the Skybotix VI sensor. Note that this requires a system install, not just as ROS package. Also note that Skybotix OSX support is experimental (checkout the feature/osx branch).
git clone https://github.com/ethz-asl/libvisensor.git cd libvisensor ./install_libvisensor.sh
then download and expand the archive into your catkin workspace:
wget https://www.doc.ic.ac.uk/~sleutene/software/okvis_ros-1.1.3.zip
unzip okvis_ros-1.1.3.zip && rm okvis_ros-1.1.3.zip
Or, clone the repository from github into your catkin workspace:
git clone --recursive git@github.com:ethz-asl/okvis_ros.git
or
git clone --recursive https://github.com/ethz-asl/okvis_ros.git
Building the project
From the catkin workspace root, type
catkin_make
You will find a demo application in okvis_apps. It can process datasets in the ASL/ETH format.
In order to run a minimal working example, follow the steps below:
-
Download a dataset of your choice from http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets. Assuming you downloaded MH_01_easy/. You will find a corresponding calibration / estimator configuration in the okvis/config folder.
-
Run the app as
./okvis_apps path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
You can also run a dataset processing ros node that will publish topics that can be visualized with rviz
rosrun okvis_ros okvis_node_synchronous path/to/okvis_ros/okvis/config/config_fpga_p2_euroc.yaml path/to/MH_01_easy/
Use the rviz.rviz configuration in the okvis_ros/config/ directory to get the pose / landmark display.
If you want to run the live application connecting to a sensor, use the okvis_node
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
pose_graph |
Launch files
- launch/flir_stereo.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/flir_stereo_config.yaml]
- launch/svin_flir_stereo_air.launch
-
- config_path [default: $(find pose_graph)/config/stereorig_flir/flir_air.yaml]
- launch/svin_gopro2_uw.launch
-
- config_path [default: $(find pose_graph)/config/gopro/gopro2_uw.yaml]
- launch/svin_speedo1_bbdo2019.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_config.yaml]
- launch/svin_speedo1_downsize_coral_square.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/speedo1_downsize_coral_square.yaml]
- launch/svin_speedo1_water_downsize.launch
-
- config_path [default: $(find pose_graph)/config/speedo1/config_speedo1_downsize.yaml]
- launch/svin_stereo_rig_cropped.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig2/stereo_rig_v4_config.yaml]
- launch/svin_stereorig_mexico.launch
-
- config_path [default: $(find pose_graph)/config/stereo_rig/stereo_rig_v3config.yaml]
- launch/okvis_node.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_fpga_p2_euroc.yaml]
- launch/svin_gopro2_uw.xml
-
- posegraph_config [default: $(find-pkg-share pose_graph)/config/gopro/gopro2_uw.yaml]
- okvis_config [default: $(find-pkg-share okvis_ros)/okvis/config/config_gopro2_uw_radtan.yaml]
- launch/svin_gopro_uw.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_gopro_uw_radtan.yaml]
- launch/svin_stereorig_gv7.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_flir_stereo_gv7.yaml]
- launch/svin_stereorig_v1.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v1.yaml]
- launch/svin_stereorig_v2.xml
-
- config [default: $(find-pkg-share okvis_ros)/config/config_stereorig_v2.yaml]