River2
River2: A Tightly-coupled Multi-Radar Multi-IMU Velocity Estimator Based on Continuous-time Optimization
Install / Use
/learn @xtyang16/River2README
River2: A Tightly-coupled Multi-Radar Mulit-IMU Velocity Estimator Based on Continuous-time Optimization

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.

2. Build River2
2.1 Preparation
-
install
ROS1(Ubuntu 20.04 is suggested):Requirements: ROS1 & C++17 Support
-
install
Ceres:see the
GitHubProfile of Ceres library, clone it, compile it, and install it. Make sure that the version ofCerescontains theManifoldmodule. (Ceresversion equal to 2.2.0 or higher than that) -
install
Sophus:see the
GitHubProfile of Sophus library, clone it, compile it, and install it. -
install
magic-enum:see the
GitHubProfile of magic-enum library, clone it, compile it, and install it. -
install
Pangolin:see the
GitHubProfile of Pangolin library, clone it, compile it, and install it. -
install
spdlog:see the
GitHubProfile 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
River2tosrcdirectory asriver2: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_drivertosrc/..(directory at the same level asriver2):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 -jNote 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 usingBlenderand export it as anobjfile, 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:
- Xiaoteng Yang (xtyang@whu.edu.cn)
5. Acknowledgement
Related Skills
node-connect
337.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
337.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.2kCommit, push, and open a PR
