2013-10-17 8 views
1

GY-521 (MPU 6050)의 Z 각 회전을 얻으려고하지만 센서를 움직이지 않는 경우 앵글 상승도 정적입니다. 내 사건에 대해 올바른 각도로 "필터링"할 수있는 방법이 있습니까?필터 Z 각 회전 MPU 6050 + Arduino

번호 : 센서가 움직이지

float accel_z = accel_t_gyro.value.z_accel; 
float accel_angle_z = 0; 
float gyro_angle_z = gyro_z*dt + get_last_z_angle(); 
float unfiltered_gyro_angle_z = gyro_z*dt + get_last_gyro_z_angle(); 
float alpha = 0.96; 
float angle_z = alpha*gyro_angle_z + (1.0 - alpha)*accel_angle_z; 

출력 :

X = X-roatation 각도 천사

 x z 
    8.37 4.24 
    8.35 4.22 
    8.33 4.21 
    8.32 4.19 
    8.31 4.18 
    8.29 4.17 
    8.28 4.15 
    8.26 4.14 
    8.25 4.12 
    8.23 4.12 
    8.22 4.10 
    8.21 4.09 
    8.19 4.07 
    8.18 4.05 
+0

가능한 중복 [iPhone OS에서 가속도계 값을 필터링하는 데 이동 평균을 사용하는 방법] (http://stackoverflow.com/questions/2272527/how-do-you-use-a-moving-average- to-filter-out-accelerometer-in-iphone-os) –

+0

이미 저역 통과 필터가있는 것처럼 보입니다. 좀 더 부드럽게하기 위해 '알파'의 값을 늘려야 할 필요가있을 것 같습니다. –

+0

내 문제에 대한 해결책을 가지고. 올바른 위치에 자이로 스코프를 고정시키는 중력이 없으므로 z 축의 회전을 읽을 수 없습니다. –

답변

0

티모 Z = Z-roatation-, I는 것을 알았다 문제에 대한 부분적인 해결책을 찾았습니다 ("올바른 위치에 자이로 스코프를 고정시키는 중력이 없다"). 나는 자이로 스코프에서만 합리적으로 좋은 결과를 얻을 수있는 방법이 있기 때문에 자세히 설명하고자한다. 나는 그것이 당신의 적용을 위해 충분할 지 모른다. 다음은 동일한 하드웨어를 사용하여 얻은 결과입니다. http://robokitchen.tumblr.com/post/68625623585/imu-with-gyroscope-only-i-tested-the-three-axes. 이 비디오에서는 가속도계를 전혀 사용하지 않습니다.

float gyro_angle_z = gyro_z*dt + get_last_z_angle(); 

이유를 설명 : 당신의 센서가이 공식을 사용하여 z 축 회전을 얻을 수없는 완전히 수평 유지하지 않는 한

1) :

당신이 더 나은 결과를 얻을 도움이 될 두 지점이 있습니다 자이로 스코프가 x 축을 중심으로 90도 회전 한 후 z 축을 중심으로 90도 회전하면 z 축을 중심으로 90도 회전 한 것과 같은 결과를 얻을 수 없습니다. 즉, 은 모든 축을 중심으로 회전을 계산 한 다음 Z 축 회전을 추출해야합니다. x 축과 y 축을 사용하지 않으면 센서가 완전히 수평을 유지하지 않는 한 결과가 정확하지 않습니다.

모든 축을 중심으로 회전을 계산하는 효율적인 방법 중 하나는 쿼터니언을 사용하는 것입니다. 쿼터니언에 관해서는 많은 이야기가 있기 때문에 필자는 독자적인 조사를하고 필요할 경우 더 많은 질문을 할 수 있도록했다.

2) 3 축 모두를 사용한 후에도 여전히 정적 드리프트가 발생합니다. 이것은 자이로 스코프가 움직이지 않을 때에도 완벽하게 0을 읽지 않기 때문입니다. 상황을 개선하기 위해 자이로 스코프를 보정 할 수 있습니다. 쉬운 교정 방법은 자이로 스코프가 움직이지 않을 때 큰 수 (100+)의 값을 읽고, 평균 드리프트를 계산하고, 자이로 스코프가 움직일 때 측정 값에서 빼는 것입니다. 이 후에도 약간의 표류가 있지만, 지금 경험할 수있는 것만 큼 나쁜 것은 아닙니다.

다음은 MPU-6050 자이로 스코프 및 가속도계를 사용하여 얻은 최상의 결과입니다. http://robokitchen.tumblr.com/post/68626551378/imu-with-gyroscope-and-accelerometer-i-ran-the. 이미 알고 있듯이 가속도계는 x 축과 y 축을 안정화시키는 데 도움이되지만 z 축은 안정화시키지 않습니다. 그러나 z 축 드리프트는 낮으며 많은 어플리케이션에서 유용합니다. 예를 들어, 자력계를 사용하지 않고 z 축 드리프트로 인해서도 여전히 사용할 수있는 여러 개의 쿼드 코터가 있습니다.