Skip to content

River2: A Tightly-coupled Multi-Radar Multi-IMU Velocity Estimator Based on Continuous-time Optimization

License

Notifications You must be signed in to change notification settings

xtyang16/River2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

River2: A Tightly-coupled Multi-Radar Mulit-IMU Velocity Estimator Based on Continuous-time Optimization

River2

1. Overview

By utilizing a robust map-free estimation approach, River2 extends both the initialization state and batch estimation procedures to a multi-sensor framework. This allows for the continuous estimation of body-frame velocity by optimizing velocity and rotation B-splines, even in the event of a single sensor fault, significantly enhancing system robustness and resilience to interference.

System

2. Build River2

2.1 Preparation

  • install ROS1 (Ubuntu 20.04 is suggested):

    Requirements: ROS1 & C++17 Support

  • install Ceres:

    see the GitHub Profile of Ceres library, clone it, compile it, and install it. Make sure that the version of Ceres contains the Manifold module. (Ceres version equal to 2.2.0 or higher than that)

  • install Sophus:

    see the GitHub Profile of Sophus library, clone it, compile it, and install it.

  • install magic-enum:

    see the GitHub Profile of magic-enum library, clone it, compile it, and install it.

  • install Pangolin:

    see the GitHub Profile of Pangolin library, clone it, compile it, and install it.

  • install spdlog:

    see the GitHub Profile of spdlog library, clone it, compile it, and install it.

  • install fmt, Cereal, spdlog, yaml-cpp:

    sudo apt-get install libfmt-dev
    sudo apt-get install libcereal-dev
    sudo apt-get install libyaml-cpp-dev

2.2 Clone River2

  • create a ros workspace if needed and clone River2 to src directory as river2:

    mkdir -p ~/River2/src
    cd ~/River2/src
    
    git clone https://github.com/xtyang16/River2.git
  • Prepare for thirdparty ros packages:

    clone ros packages ainstein_radar, ti_mmwave_rospkg, serial, sbg_ros_driver to src/.. (directory at the same level as river2):

    cd ~/River2/src
    git clone https://github.com/AinsteinAI/ainstein_radar.git
    git clone https://github.com/Unsigned-Long/ti_mmwave_rospkg.git
    git clone https://github.com/wjwwood/serial.git
    git clone https://github.com/SBG-Systems/sbg_ros_driver.git

2.3 Compile River2

  • Change directory to the ros workspace to build these packages:

    cd ~/River2
    catkin_make -j

    Note that these packages will depend on many other ros packages, you need to install them patiently.

2.4 Launch River2

  • Attention: to create a virtual reality (VR) perspective of the IMU (left window view in runtime), you have to change the model file path in configure field (Preference::ObjFileForDisplay) to {root path}/river2/model/river2.obj. For a better VR perspective, you can design your own simulation scenario using Blender and export it as an obj file, then pass it to the configure file.

  • run the roslaunch command:

    roslaunch river2 river2-simu-multi.launch

3. Citation

If you use our paper for any academic work, please cite this paper.

river-todo
river2-todo

4. Contact

If you have any questions, please contact:

5. Acknowledgement

Thanks for authors of River, REVE and rio.

About

River2: A Tightly-coupled Multi-Radar Multi-IMU Velocity Estimator Based on Continuous-time Optimization

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published