SFUISE
Official repository of SFUISE, a novel continuous-time UWB-inertial state estimation framework based on sliding-window spline fusion.
Install / Use
/learn @ASIG-X/SFUISEREADME
SFUISE (Spline Fusion-Based Ultra-Wideband-Inertial State Estimation)
-- Continuous-Time Ultra-Wideband-Inertial Fusion
News
-
2024-04: We have moved the official code repository of SFUISE to here under the newly established group ASIG. We will continue to maintain and release related code within this repository. Stay tuned with our progress!
Note the previous code repository is no longer being maintained since the maintainers has no accessibility to it any more.
Introduction
This is the code repository of SFUISE, the first online continuous-time UWB-inertial state estimation system in ROS. Quaternion-based cubic B-splines are exploited to represent states continuously over time with efficient solutions to time derivatives and spatial differentiations in closed form. The functional core of the system is a novel sliding-window spline fitting scheme that is equipped with a customized implementation of LM method.
The system supports UWB-inertial fusion for both ToA and TDoA principles of ultra-wideband ranging with minimized external dependencies. See below for usage of SFUISE using public and our own recorded data sets. Detailed information about the system can be found in our paper on arXiv or IEEE, and demonstrated on Youtube.
The work has been publlished on IEEE Robotics and Automation Letters (RA-L).

BibTex Citation
Thank you for citing our paper if you use any of this code:
@ARTICLE{RAL23_Li,
author={Li, Kailai and Cao, Ziyu and Hanebeck, Uwe D.},
journal={IEEE Robotics and Automation Letters},
title={Continuous-Time Ultra-Wideband-Inertial Fusion},
year={2023},
volume={8},
number={7},
pages={4338-4345},
doi={10.1109/LRA.2023.3281932}
}
Dependency
System dependencies (tested on Ubuntu 20.04)
- ROS (tested with Noetic)
- Eigen (tested with Eigen 3.3.7)
- SuiteSparse
Compilation
Compile with catkin_tools:
cd ~/catkin_ws/src
git clone https://github.com/KIT-ISAS/SFUISE
cd ..
catkin build sfuise
Usage
Run following commands in terminal
- Example for running sfuise on UTIL (TDoA-inertial):
# Change anchor_path in config_test_util.yaml
roslaunch sfuise sfuise_test_util.launch
rosbag play const1-trial1-tdoa2.bag
- Example for running sfuise on ISAS-Walk (ToA-inertial, own data set):
roslaunch sfuise sfuise_test_isas-walk1.launch
rosbag play ISAS-Walk1.bag
Contributors
Kailai Li (Email: kailai.li@rug.nl)
Ziyu Cao (Email: ziyu.cao@liu.se)
Credits
We hereby recommend reading lie-spline-experiments for reference. The IMU integration was derived from VINS-Fusion.
License
The source code is released under GPLv3 license.
We are constantly working on improving our code. For any technical issues, please contact Kailai Li (kailai.li@liu.se).
Related Skills
node-connect
353.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.6kCreate 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
353.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
