Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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
Math 如何使用磁强计为陀螺z轴添加互补滤波器?_Math_Arduino_Gyroscope_Magnetometer_Mpu - Fatal编程技术网

Math 如何使用磁强计为陀螺z轴添加互补滤波器?

Math 如何使用磁强计为陀螺z轴添加互补滤波器?,math,arduino,gyroscope,magnetometer,mpu,Math,Arduino,Gyroscope,Magnetometer,Mpu,我对陀螺X和陀螺Y值使用互补滤波器: float angle_x=alpha*陀螺角_x+(1.0-alpha)*加速度角_x 然而,由于陀螺Z漂移,我正在使用磁强计试图消除它 我有我的局部倾角和z轴磁强计读数,但我不确定如何将其应用到互补滤波器中 我尝试过猜测(我知道这没有帮助)来尝试以下方法: float angle_z = alpha*gyro_angle_z + ((1.0 -alpha)*accel_angle_y*InclinationAngle)/magZ; 然而,它只是在移动时

我对陀螺X和陀螺Y值使用互补滤波器:

float angle_x=alpha*陀螺角_x+(1.0-alpha)*加速度角_x

然而,由于陀螺Z漂移,我正在使用磁强计试图消除它

我有我的局部倾角和z轴磁强计读数,但我不确定如何将其应用到互补滤波器中

我尝试过猜测(我知道这没有帮助)来尝试以下方法:

float angle_z = alpha*gyro_angle_z + ((1.0 -alpha)*accel_angle_y*InclinationAngle)/magZ;

然而,它只是在移动时增加陀螺仪z值,然后在静止时将其恢复为0。

使用Madgwick滤波器效果最佳。可以找到链接。
它很容易实现(如果使用正确的库且读数非常准确。目前唯一的缺点是,每次您想在新的方向上使用该设备时,都必须校准磁强计)。

使用Madgwick过滤器效果最好。可以找到链接。
它很容易实现(如果使用正确的库且读数相当准确。目前唯一的缺点是,每次你想在新的方向上使用该设备时,都必须校准磁强计)。

如果没有上下文,你的方程式毫无意义。。。。您是否有坐标系、作用力和测量值的图像/草图?你的互补过滤对我来说是有意义的。如果你想补充,那么你应该结合x和y,而不是速度,加速度。。。漂移的原因是什么。它是常数吗?你有没有把测量值和实际值(图)进行比较,看看发生了什么,这样你就可以从中调整过滤,而不是盲目猜测…@Spektre im使用MPU9250,它测量加速度、磁强计、陀螺仪、,等等。这里有关于这个的Comp-filter教程:geekmomprojects.com/gylooss-and-accelerometers-on-a-chip但是这个教程没有磁强计,我有,因此我想我可以消除陀螺漂移。所以这不是一个互补的计算。。。。相反,它是一些派生的
t/(t+dt)
式的修正,对我来说毫无意义(但这并不意味着它是错误的)。加速计将给你向下的方向+噪音和运动加速度,这样就有可能把它投射到YZ平面上,并计算出用于修正陀螺角度的旋转。。。只需从陀螺仪获取起始角度,然后从加速度计计算角度,差值就是从加速度计角度移动到陀螺仪的修正值,,,从现在开始,你有2个值,所以如果陀螺仪移动的角度大于加速度计,则移动差值。。。如果它们移动相同,请记住实际偏移。然而,在传感器的某些方向上,这将无法正常工作……如果没有上下文,您的方程式将毫无意义。。。。您是否有坐标系、作用力和测量值的图像/草图?你的互补过滤对我来说是有意义的。如果你想补充,那么你应该结合x和y,而不是速度,加速度。。。漂移的原因是什么。它是常数吗?你有没有把测量值和实际值(图)进行比较,看看发生了什么,这样你就可以从中调整过滤,而不是盲目猜测…@Spektre im使用MPU9250,它测量加速度、磁强计、陀螺仪、,等等。这里有关于这个的Comp-filter教程:geekmomprojects.com/gylooss-and-accelerometers-on-a-chip但是这个教程没有磁强计,我有,因此我想我可以消除陀螺漂移。所以这不是一个互补的计算。。。。相反,它是一些派生的
t/(t+dt)
式的修正,对我来说毫无意义(但这并不意味着它是错误的)。加速计将给你向下的方向+噪音和运动加速度,这样就有可能把它投射到YZ平面上,并计算出用于修正陀螺角度的旋转。。。只需从陀螺仪获取起始角度,然后从加速度计计算角度,差值就是从加速度计角度移动到陀螺仪的修正值,,,从现在开始,你有2个值,所以如果陀螺仪移动的角度大于加速度计,则移动差值。。。如果它们移动相同,请记住实际偏移。但是,在传感器的某些方向上,这将无法正常工作。。。