• Stars
    star
    419
  • Rank 103,397 (Top 3 %)
  • Language
    Python
  • Created almost 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Generate imu data and feature in camera frame. You can use this data to test your VINS.

imusim

imu和cam数据仿真,用于vio算法测试,代码有任何问题都欢迎交流 [email protected]

we also create a ros_version in ros_version branch.

demo pic

坐标系

  • Body frame: imu坐标系

  • Cam frame: 相机坐标系

  • World frame: imu坐标系的第一帧位置

  • Navigation frame: NED(北东地)or ENU(东北天),本代码采用的是ENU,重力向量在该坐标系下为$(0,0,-9.81)$

目前,imu的z轴向上,xy平面内做椭圆运动,z轴做正弦运动,x轴沿着圆周向外。外参数Tbc将相机坐标旋转,使得相机朝向特征点。

代码结构

main/gener_alldata.cpp : 用于生成imu数据,相机轨迹,特征点像素坐标,特征点的3d坐标

src/paramc.h:imu噪声参数,imu频率,相机内参数等等

src/camera_model.cpp:相机模型,调用的svo,目前代码里这个文件删掉了

python_tool/:文件夹里为可视化工具,draw_points.py就是动态绘制相机轨迹和观测到的特征点。如果是ubuntu不需额外安装,windows需要安装python matplot等依赖项

数据存储的格式

特征点

x,y,z,1,u,v

每个特征出现在文件里的顺序,就是他们独立的id,可用来检索特征匹配

imu data

timestamp (1),imu quaternion(4),imu position(3),imu gyro(3),imu acc(3)

cam data

timestamp (1),cam quaternion(4),cam position(3),imu gyro(3),imu acc(3)

注意,由于imu和cam的存储采用的是同一个函数,所以cam也会存储一些gyro,acc这些数据,但是没用,是多余存储的。