GithubHelp home page GithubHelp logo

smileit2013 / imu_data_simulation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robosu12/imu_data_simulation

0.0 0.0 0.0 1.5 MB

generate imu data based on the imu error model and test the euler and mid integretion algorithm based on the imu motion model, and visualize the trajectory in rviz

C++ 92.97% MATLAB 5.88% CMake 1.15%

imu_data_simulation's Introduction

imu_data_simulation

This is a ros package that can generate imu data based on the imu error model and test the imu euler and mid integretion algorithm based on the imu motion model, and visualize the trajectory in rviz.

  1. 计算IMU方差 通过IMU误差模型,利用程序增加加速度计和陀螺仪的高斯白噪声和bias的噪声,生成静止状态下的IMU数据,然后通过程序计算方差。加速度计和陀螺仪Allan方差曲线如下图所示: acc_allan gyro_allan 程序中计算得到的是离散时间的噪声,连续时间到离散时间需要除以根号下采样频率。

总结:从标定结果可以看到,经过转换,加速度计和陀螺仪的高斯白噪声测量值和设定值基本接近,量级在百分之一左右;而加速度计和陀螺仪的bias噪声标定结果与设定结果相差较大,这是由于噪声的量级太小,在万分之一, 所以标定结果会有较大误差;所以这也说明在实际VIO应用中,需要将 IMU的bias加入到后端优化中进行实时估计。

  1. 进行IMU积分计算运动轨迹 程序为一个ROS的工作空间,本人在贺一加老师提供的代码基础上,将生成IMU数据的代码封装成一个类,可以实时生成运动的imu数据,并且将生成的IMU数据实时进行积分,并且添加了IMU,PATH,ODOMETRY等topic的发布代码,可以在rviz中实时可视化IMU姿态,真实轨迹,积分轨迹,并且提供了已经配置好的rviz文件。

程序运行流程:

a. cd vio-data-simulation-ws

b. catkin_make

c. source devel/setup.bash

d. roscore

e. rviz -d rviz/vio_simulation.rviz

f. rosrun vio_data_simulation vio_data_simulation_node

两次运行结果如下图所示,其中绿色线为真实轨迹,红色线为欧拉积分轨迹,白色线为中值积分轨迹: imu_integration_1 imu_integration_2

总结:可以看出,刚开始积分得到的轨迹和实际轨迹很接近,但是很快就飘走了。实际这是很正常的,而且这样的结果已经比较理想,因为仿真产生的IMU数据只考虑了噪声,并没有考虑到地球自转,加速度计与陀螺仪的耦合影响等其它因素的影响;在实际应用中,对于低端IMU进行纯积分,得到的轨迹几秒钟之后立刻就发散了,所以将视觉和IMU,甚至更多传感器融合到一起,取长补短,得到一个鲁棒的SLAM算法是目前研究的热点。

imu_data_simulation's People

Contributors

robosu12 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.