River2: A Tightly-coupled Multi-Radar Mulit-IMU Velocity Estimator Based on Continuous-time Optimization
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.
-
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
-
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
-
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.
-
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
If you use our paper for any academic work, please cite this paper.
river-todo
river2-todo
If you have any questions, please contact:
- Xiaoteng Yang (xtyang@whu.edu.cn)

