7.1.15. Visual Inertial Odometry with Quadruped
7.1.15.1. Learning Objectives
This tutorial demonstrates integrating Omniverse Isaac Sim with the VINS-Fusion, one of the most popular open source VIOs (Visual-Inertial-Odometry). We use the Unitree A1 Quadruped robot from the Quadruped Example extension to generate sensor data.
7.1.15.2. Getting Started
Prerequisite
This tutorial requires
isaac_vins
ROS package provided under the directorynoetic_ws/
. It contains the required launch and config files to run VINS-Fusion with correct sensor configuration.Install VINS-Fusion and its prerequisites in your ROS workspace and then build it.
Note
The official branch currently only supports up to Ubuntu 18.04, and this custom branch supports up to Ubuntu 20.04.
Complete ROS & ROS 2 Installation, make sure ROS environment is setup correctly and the aforementioned packages are inside your
ROS_PACKAGE_PATH
.Explore the ROS Bridge in Standalone Workflow to understand the ROS standalone workflow
ROS bridge is enabled and
roscore
is running before running Omniverse Isaac Sim.
7.1.15.3. Run Visual Inertial Odometry with Quadruped A1
In a new terminal, run isaac sim
./python.sh standalone_examples/api/omni.isaac.quadruped/a1_vision_ros1_standalone.py
Make sure Isaac Sim publishes sensor data by checking rostopc list.
Configure isaac_vins package settings by going to
<noetic_ws>/src/isaac_vins/config/isaac_a1/vins_fusion_isaac_a1.yaml
, and select the desired number of imu and cameras. For slower computers, it is recommended to only use stereo camera odometry by settingimu: 0
invins_fusion_isaac_a1.yaml
In a new terminal with your ROS environment sourced, run:
roslaunch isaac_vins isaac_a1_vins.launch
7.1.15.4. Summary
In this tutorial, we run VINS-Fusion with an A1 quadruped robot simulated in Omniverse Isaac Sim.
7.1.15.4.1. Further Reading
To learn more about VINS-Fusion, read paper VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator.