15. Visual Inertial Odometry with Quadruped¶
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 extension to generate sensor data.
15.2. Getting Started¶
Prerequisite
This tutorial requires
isaac_vins
ROS package provided under the directoryros_workspace/
. 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
roscore
is running before running Omniverse Isaac Sim.
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
ros_workspace/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
15.4. Summary¶
In this tutorial, we run VINS-Fusion with an A1 quadruped robot simulated in Omniverse Isaac Sim.
15.4.1. Further Reading¶
To learn more about VINS-Fusion, read paper VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator.