Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

HorizonRobotics/GeoFlowSlam

Open more actions menu

Repository files navigation

[IROS2025] GeoFlow-SLAM: A Robust Tightly-Coupled RGBD-Inertial and Legged Odometry Fusion SLAM for Dynamic Legged Robotics

Our paper is recived by IROS2025.

Arxiv GitHub

Sample Image 3

Figure 1: System framework of GeoFlow-SLAM.

Sample Image 4

Figure 2: Illustration of dual-stream optical flow estimation.

Sample Image 4

Figure 3: Structure of the factor graph used in optimization.

1. Prerequisites

We have tested the library on Ubuntu 22.04 and 20.04, but it should be easy to compile on other platforms. A powerful computer (e.g., i7) will ensure real-time performance and provide more stable and accurate results.

C++17 or C++0x Compiler

We use the new thread and chrono functionalities of C++17.

Pangolin

We use Pangolin for visualization and user interface. Download and installation instructions can be found at: https://github.com/stevenlovegrove/Pangolin.

OpenCV

We use OpenCV to manipulate images and features. Download and installation instructions can be found at: http://opencv.org. Requires at least 3.0. Tested with OpenCV 3.2.0 and 4.4.0.

Eigen3

Required by g2o (see below). Download and installation instructions can be found at: http://eigen.tuxfamily.org. Requires at least 3.1.0.

DBoW2 and g2o (Included in Thirdparty folder)

We use modified versions of the DBoW2 library to perform place recognition and the g2o library to perform non-linear optimizations. Both modified libraries (which are BSD) are included in the Thirdparty folder.

small_gicp and GMS (Included in Thirdparty folder)

The modified GMS and small_gicp are used.

2. Building the ORB-SLAM3 Library and Examples

We provide a script build.sh to build the Thirdparty libraries and geoflow-slam. Please make sure you have installed all required dependencies (see section 2). Execute:

cd geoflow-slam
chmod +x build.sh
./build.sh

This will create libORB_SLAM3.so in the lib folder and the executables in the Examples folder.

3. Running ORB-SLAM3

3.1 Parse ROS2 bag to image, depth, imu.txt, and odom.txt

cd geoflow-slam/script/tools
bash parse_d435i.sh

3.2 Run GeoFlow-SLAM

cd geoflow-slam/script/run_orbslam
python run_rgbd_vi_g1.py

The ROS2 node is also provided in Examples/ROS2/RGB-D-Inertial. The robust Mono-Inertial version tested in gopro camera is also provided in Examples/Monocular-Inertial.

4. Real-world Experiment

Sample Image 1 Sample Image 2

Sample Image 1 Sample Image 2

Sample Image 1 Sample Image 2

5. The Go2 and G1 Dataset

The datasets are released to unitree_legged_robotic_datasets. Thank you for citing our paper.

@misc{xiao2025geoflowslamrobusttightlycoupledrgbdinertial,
      title={GeoFlow-SLAM: A Robust Tightly-Coupled RGBD-Inertial and Legged Odometry Fusion SLAM for Dynamic Legged Robotics}, 
      author={Tingyang Xiao and Xiaolin Zhou and Liu Liu and Wei Sui and Wei Feng and Jiaxiong Qiu and Xinjie Wang and Zhizhong Su},
      year={2025},
      eprint={2503.14247},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      url={https://arxiv.org/abs/2503.14247}, 
}

About

[IROS 2025] A Robust Tightly-Coupled RGBD-Inertial and Legged Odometry Fusion SLAM for Dynamic Legged Robotics

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.