Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用于坠落检测的卡尔曼滤波传感器融合:加速计+;陀螺仪_Android_Filtering_Kalman Filter_Sensor Fusion_Pykalman - Fatal编程技术网

Android 用于坠落检测的卡尔曼滤波传感器融合:加速计+;陀螺仪

Android 用于坠落检测的卡尔曼滤波传感器融合:加速计+;陀螺仪,android,filtering,kalman-filter,sensor-fusion,pykalman,Android,Filtering,Kalman Filter,Sensor Fusion,Pykalman,我试图了解传感器融合的过程以及卡尔曼滤波 我的目标是使用加速计和陀螺仪检测设备的坠落 在大多数论文中,例如,都提到了如何克服陀螺仪引起的漂移和加速度计引起的噪声。最终,传感器融合为我们提供了更好的横摇、俯仰和偏航测量,而不是更好的加速度 是否有可能通过传感器融合获得更好的“加速结果”,并反过来将其用于“坠落检测”?因为只有更好的侧倾、偏航和俯仰不足以检测到坠落 然而,这建议单独使用卡尔曼滤波器平滑加速计(Ax、Ay、Az)和陀螺仪(Gx、Gy、Gz),并使用一些分类算法,如k-NN算法或聚类,以

我试图了解传感器融合的过程以及卡尔曼滤波

我的目标是使用加速计和陀螺仪检测设备的坠落

在大多数论文中,例如,都提到了如何克服陀螺仪引起的漂移和加速度计引起的噪声。最终,传感器融合为我们提供了更好的横摇、俯仰和偏航测量,而不是更好的加速度

是否有可能通过传感器融合获得更好的“加速结果”,并反过来将其用于“坠落检测”?因为只有更好的侧倾、偏航和俯仰不足以检测到坠落

然而,这建议单独使用卡尔曼滤波器平滑加速计(Ax、Ay、Az)和陀螺仪(Gx、Gy、Gz),并使用一些分类算法,如k-NN算法或聚类,以使用监督学习检测坠落


分类部分不是我的问题,而是我是否应该融合传感器(3D加速计和3D陀螺仪)或分别平滑传感器,以检测坠落。

我认为你不需要使用KF来检测坠落。使用简单的加速计将能够检测设备的坠落。若将低通滤波器应用于平滑加速计,并检查总加速度是否接近零(在自由落体装置中为-g(9.8 m/s2)acc)超过一定时间,则可检测为下降。
上述方法的问题是,如果设备旋转很快,那么加速度就不会接近于零。对于健壮的解决方案,您可以在此应用程序中实现简单的互补(搜索Mahony)过滤器,而不是KF。

我认为您不需要使用KF来检测坠落检测。使用简单的加速计将能够检测设备的坠落。若将低通滤波器应用于平滑加速计,并检查总加速度是否接近零(在自由落体装置中为-g(9.8 m/s2)acc)超过一定时间,则可检测为下降。 上述方法的问题是,如果设备旋转很快,那么加速度就不会接近于零。对于健壮的解决方案,您可以为该应用程序实现简单的互补(搜索Mahony)过滤器,而不是KF。

一些澄清

  • 卡尔曼滤波器通常用于执行位置和方向估计的传感器融合,通常将IMU(加速度和陀螺仪)与一些无漂移绝对测量(计算机视觉、GPS)相结合

  • 互补滤波器,通常通过结合加速度(噪声但不漂移)和陀螺仪(精确但漂移)来获得良好的方向估计。使用加速度计并结合陀螺仪,可以获得相当好的方位估计。您可以使用陀螺仪将方向估计视为主要的,但使用accel进行校正

  • 对于使用IMU进行坠落检测的应用,我认为加速度非常重要。目前还没有已知的方法“纠正”加速度读数,这种方法很可能是错误的。我的建议是使用加速度作为系统的输入之一,收集一组模拟坠落情况的数据,您可能会惊讶地发现那里有许多可行的信号。

    几点澄清

  • 卡尔曼滤波器通常用于执行位置和方向估计的传感器融合,通常将IMU(加速度和陀螺仪)与一些无漂移绝对测量(计算机视觉、GPS)相结合

  • 互补滤波器,通常通过结合加速度(噪声但不漂移)和陀螺仪(精确但漂移)来获得良好的方向估计。使用加速度计并结合陀螺仪,可以获得相当好的方位估计。您可以使用陀螺仪将方向估计视为主要的,但使用accel进行校正


  • 对于使用IMU进行坠落检测的应用,我认为加速度非常重要。目前还没有已知的方法“纠正”加速度读数,这种方法很可能是错误的。我的建议是使用加速度作为系统的输入之一,收集一组模拟坠落情况的数据,你可能会惊讶地发现那里有很多可行的信号。

    对于典型的IMU,静止的手机会有加速度读数(0,9.8,0),因为重力始终在工作:)重力在Z方向工作,不是在Y方向。读数为(0,0,9.8),重力的符号取决于你使用的是哪种约定:)谢谢,你完全正确。我的评论主要是为了澄清陀螺读数应该是静止时的(0,0,9.8)和自由落体时的(0,0,0),以防混淆OP。对于典型的IMU,静止时的手机会有加速度读数(0,9.8,0),因为重力总是在工作:)重力在Z方向工作,而不是在Y方向。读数为(0,0,9.8),重力的符号取决于你使用的是哪种约定:)谢谢,你完全正确。我的评论主要是为了澄清陀螺读数应该是静止时的(0,0,9.8)和自由落体时的(0,0,0),以防混淆OP。你能帮我这个代码吗?你能帮我这个代码吗-