imu

IMU与camera标定、Kalibr

匿名 (未验证) 提交于 2019-12-03 00:22:01
目前的研究方向可以总结为在滤波算法中实现高精度,在优化算法中追求实时性.当加入IMU后,研究方向分为松耦合和紧耦合,松耦合分别单独计算出IMU测量得到的状态和视觉里程计得到的状态然后融合,紧耦合则将IMU测量和视觉约束信息放在一个非线性优化函数中去优化.紧耦合的框架使得IMU数据可以对视觉里程计进行矫正,同时视觉里程计信息也可以矫正IMU的零偏,因此一般认为紧耦合的定位精度较高.个人认为松耦合和滤波融合的方法类似,紧耦合则主要基于非线性优化. IMU融合后可以处理视觉失效的情况,例如光照变化,遮挡,模糊,快速运动;同时视觉也可以对IMU的本质误差零偏(漂移)进行很好的估计. 视觉和IMU融合目前主要基于三类方法,在设计时,主要考虑精确度和计算量的平衡. 1. 滤波 状态向量只包含当前状态.由于线性化误差和计算能力的限制,通常只能构建很少的landmark/mappoint.或者创建structureless的状态向量(将landmark/mappoint边缘化),典型代表为MSCKF. 边缘化是将旧状态融合进当前状态的先验中,滤波方法主要的缺陷也就存在于边缘化过程中:首先当前测量的structure信息需要延迟处理,降低当前状态的更新精度,其次边缘化对线性化近似和外点(outlier)都比较敏感,容易造成滤波器状态失准.(这里有很多坑,还不太理解). 2. Fixed-Lag

深度解析卡尔曼滤波在IMU中的使用

泪湿孤枕 提交于 2019-12-01 21:52:13
卡尔曼滤波主要分两个步骤,预测加校正。预测是基于上一时刻的状态对当前状态进行估计,校正是根据当前状态的观测与上一时刻的估计进行综合分析,估计出系统的最优状态值,然后下一时刻接着重复这个过程;卡尔曼不断的进行迭代,它不需要大量的粒子状态输入,只需要过程量,因此它的速度很快,非常适合线性系统的状态估计。 众所周知卡尔曼滤波在处理 IMU 传感器数据融合中作用巨大,但在实际实现起来并非那么容易;本文从 MPU6050 入手,分析卡尔曼滤波的使用。 本篇文章需要你在夜深人静的时候、先去冲一杯咖啡、准备一张纸、一支笔…… 卡尔曼滤波 从来没有坐下来认真的计算卡尔曼滤波的公式由来以及它背后更深层次的原理,为什么在处理加速度以及陀螺仪的数据融合中卡尔曼滤波就那么的有效。但是对于大多数人来说,可能更感兴趣的是如何正确的去使用它,卡尔曼滤波的那五个公式到底怎么使用。 开始之前需要你具备一定的矩阵乘法、矩阵变换等知识,大家都知道矩阵乘法的重要性,不夸张的说,不懂矩阵乘法根本做不了复杂的模型。当然本篇涉及到的矩阵乘法没那么复杂,如果忘记了请翻大学时的课本脑补,或参考以下网站: http://en.wikipedia.org/wiki/Matrix_multiplication#Matrix_product_.28two_matrices.29 http://www.mathwarehouse.com

ICM-20602 IMU ACCEL/GYRO/TEMP I2C/SPI LGA

好久不见. 提交于 2019-12-01 13:47:58
ICM-20602,运动传感器,变送器 ICM-20602 描述:IMU ACCEL/GYRO/TEMP I2C/SPI LGA 对无铅要求的达标情况/对限制有害物质指令(RoHS)规范的达标情况:无铅/符合限制有害物质指令(RoHS)规范要求 湿气敏感性等级(MSL):3(168 小时) 详细描述:加速计-陀螺仪-温度-6-轴-Sensor-I2C-SPI-Output 零件状态:在售 类别:传感器,变送器 产品族:运动传感器 - IMU(惯性测量装置) 规格 传感器类型:【加速计,陀螺仪,温度,6 轴】 输出类型:【I2C,SPI】 工作温度:【-40°C ~ 85°C(TA)】 封装/外壳:【16-WFLGA 模块】 供应商器件封装:【16-LGA(3x3)】 安装类型:表面贴装 深圳市木瓜电子科技有限公司专注于音频领域芯片代理和音频技术积累,经过多方资源整合打造国内最专业的XMOS技术支持团队,英国XMOS原厂授权多个麦克风阵列产品线国内唯一的合作伙伴,拥有国内最专业的XMOS技术人才。木瓜电子结合XMOS和ESS产品线为音频HiFi领域提供的USB Audio完整解决方案是音频领域非常优秀的解码方案。 木瓜电子的AI-HUWEN,InvenSense和敏芯微MEMS麦克风产品线为人工智能领域产品提供优质的麦克风阵列和离线语音识别控制方案 应用方案 麦克风阵列:2~16

IMU入门与应用

微笑、不失礼 提交于 2019-12-01 10:04:15
视频 【泡泡机器人公开课】第八课:MEMS IMU的入门与应用-胡佳兴 标定论文 A robust and easy to implement method for IMU calibration without external equipments 标定demo https://bitbucket.org/alberto_pretto/imu_tk/src/master/ 来源: https://www.cnblogs.com/didada/p/11678303.html

[VINS]IMU与相机之间旋转量的标定

柔情痞子 提交于 2019-11-28 20:39:53
VINS-Mono [1] 中IMU-Camera外参旋转量 \(R_b^c\) 的计算方法在他们实验室发的之前的论文有详细讲解 [ 2 ] 。视觉利用匹配特征点中的基础矩阵求出相机坐标系下两帧的旋转量 \(R_{c_k}^{c_{k+1}}\) ,通过IMU预积分得到的两帧之间IMU坐标系下的旋转量$ R_{b_k}^{b_{k+1}}$,两个旋转量满足: \[R_b^c R_{b_k}^{b_{k+1}}=R_{c_k}^{c_{k+1}}R_b^c \tag{1}\] 四元数表示,则有 \[q_b^c \otimes q_{b_k}^{b_{k+1}}-q_{c_k}^{c_{k+1}} \otimes q_b^c = 0 \tag{2}\] 将四元数乘法运算化为一个 \(4 \times 4\) 的矩阵运算,YouTube上有个很好的视频讲解 [3] 。伯克利CS184也作出很好的讲解 [4] ,使用行向量表示四元数,推过程类似。这里做简单的归纳讲述。两个四元数分别为: \(q_a=\left[\begin{array} {c}{x_a}\\{y_a}\\{z_a}\\{w_a} \end{array}\right]\) , \(q_b=\left[\begin{array} {c}{x_b}\\{y_b}\\{z_b} \\{w_b}\end{array}\right]\

rtabmap with kinect 1(realsense d435i)

你说的曾经没有我的故事 提交于 2019-11-28 04:07:50
1、安装 Kinect 驱动: a. sudo apt-get install ros-kinetic-freenect-* b. rospack profile 2、安装rtabmap_ros sudo apt-get install ros-kinetic-rtabmap-ros 3、启动rtabmap for kinect 1: a. roslaunch freenect_launch freenect.launch depth_registration:=true b. roslaunch rtabmap_ros rtabmap.launch rtabmap_args:="--delete_db_on_start" for realsense d435i: a. roslaunch realsense2_camera rs_camera.launch align_depth:=true unite_imu_method:="linear_interpolation" b. rosrun imu_filter_madgwick imu_filter_node _use_mag:=false _publish_tf:=false _world_frame:="enu" /imu/data_raw:=/camera/imu /imu/data:=/rtabmap/imu c.

解放双手——相机与IMU外参的在线标定

♀尐吖头ヾ 提交于 2019-11-27 22:41:20
本文作者 沈玥伶,公众号:计算机视觉life,编辑部成员 一、相机与IMU的融合 在SLAM的众多传感器解决方案中,相机与IMU的融合被认为具有很大的潜力实现低成本且高精度的定位与建图。这是因为这两个传感器之间具有互补性:相机在快速运动、光照改变等情况下容易失效。而IMU能够高频地获得机器人内部的运动信息,并且不受周围环境的影响,从而弥补相机的不足;同时,相机能够获得丰富的环境信息,通过视觉匹配完成回环检测与回环校正,从而有效地修正IMU的累计漂移误差。 二、什么是相机与IMU外参? 足够准确的相机与IMU外参是实现相机与IMU融合的定位与建图的前提。相机与IMU之间的外参包括两部分: (1)相机与IMU之间的相对位姿 如下图所示,相机与IMU之间的相对位姿值的是相机坐标系和IMU坐标系之间的变换,包括相对旋转角和相对平移量。 相机坐标系坐标和IMU坐标系坐标之间满足如下变换关系: 将上式展开可以得到分别得到相机坐标系和IMU坐标系之间旋转角和平移量的变换关系: (2)相机与IMU之间的时间差 由于触发延时、传输延时的存在,传感器的采样时间和时间戳的时间不匹配,如下图所示,从而导致相机和IMU之间存在时间差td。 td用公式表示为: 将相机的时间戳平移td后,相机与IMU之间实现了同步。 三、为什么需要在线标定? 大部分同学都是从跑公开的数据集开始入门的

闫刚 linux平台实现IMU的DriverFramework

筅森魡賤 提交于 2019-11-27 16:32:23
文章目录 介绍 资源 用户态 spi包 1. spidev的设备节点spidev0.3表示spi0的chip_select3 内核态 设备树 注册spidev设备 介绍 讲解linux的spi驱动架构, 包括用户空间和内核空间如何配合使用spi驱动。通过px4的DriverFramwork架构 实现imu传感器驱动架构作为案例进行讲解. 资源 linux_spi.md 标题: 闫刚 linux平台实现IMU的DriverFramework 用户态 spi包 1. spidev的设备节点spidev0.3表示spi0的chip_select3 # include <linux/spi/spidev.h> # define IMU_DEVICE_ACC_GYRO "/dev/spidev0.3" # define IMU_DEVICE_MAG "/dev/spidev0.2" int do_test ( unsigned int num_read_attempts ) - > int ret = Framework :: initialize ( ) ; - > ImuTester pt ; //创建1个局部对象 - > DevMgr :: getHandle ( IMU_DEVICE_PATH , h ) ; - > int SPIDevObj :: start ( ) - > m

Rotation Kinematics

Deadly 提交于 2019-11-26 20:19:01
问题来源是 IMU 中 Gyroscope 测量的角速度实际含义,从而帮助理解 IMU 预积分过程中 Rotation Matrix 的积分过程(即文献 [1] 中公式 (30) 的第一个等式)。 解决这个问题,参考文献 [2] State Estimation for Robotics 的 6.2.4 Rotational Kinematics 与 6.4.4 Inertial Measurement Unit 。 1. 角速度测量值含义 在对 6.2.4 有基本印象之后,阅读 6.4.4 。 在 6.4.4 中如图 Figure 6.14 有三个坐标系——惯性(世界)坐标系 \(\underrightarrow{\mathcal{F}_i}\) 、载具坐标系 \(\underrightarrow{\mathcal{F}_v}\) 、IMU 坐标系 \(\underrightarrow{\mathcal{F}_s}\) 。 IMU 坐标系与载具坐标系不重合,所以 IMU 的测量值不能直接在载具坐标系在使用,需要进行转换。 公式 (6.149) 给出了 Gyroscope 测量值 \(\mathbf{\omega}\) 与所需要的载具角速度 \(\mathbf{\omega}^{vi}_v\) 的关系: \[\mathbf{\omega} = \mathbf{C}_{sv}

视觉−惯性导航融合SLAM方案

孤人 提交于 2019-11-26 17:06:38
VIO和之前的几种SLAM最大的不同在于两点: 首先,VIO在硬件上需要传感器的融合,包括相机和六轴陀螺仪, 相机产生图片, 六轴陀螺仪产生加速度和角速度。 相机相对准但相对慢,六轴陀螺仪的原始加速度如果拿来直接积分会在很短的时间飘走(zero-drift), 但六轴陀螺仪的频率很高,在手机上都有200Hz。 其次,VIO实现的是一种比较复杂而有效的卡尔曼滤波,比如MSCKF(Multi-State-Constraint-Kalman-Filter), 侧重的是快速的姿态跟踪,而不花精力来维护全局地图, 也不做keyframe based SLAM里面的针对地图的全局优化(bundle adjustment)。 最著名的商业化实现就是Google的Project Tango和已经被苹果收购的Flyby Media, 其中第二代Project Tango搭载了Nividia TK1并有主动光源的深度摄像头的平板电脑, 这款硬件可谓每个做算法的小伙伴的梦幻搭档,具体在这里不多阐述。 主要问题: 使用 IMU 对相机在快门动作期间内估计相机的运动 , 但是由于 CMOS 相机的快门时间戳和 IMU 的时间戳的同步比较困难 , 且相机的时间戳不太准确 , Guo 等 [52] 对时间戳不精确的卷帘快 门相机设计了一种 VIO (Visual inertial odometry)系统 ,