본문 바로가기

카테고리 없음

HDR: 자이로 센서의 드리프트 최소화 알고리즘

자이로 센서는 각속도를 출력합니다. 보통 이 각속도를 적분하여 회전각을 계산하는데, 이때 미소한 bias drift도 적분으로 누적되면 결국 큰 오차가 발생합니다. 다음 첨부 문서에서는 이러한 bias drift를 최소화 하기위한 HDR(Heuristic drift reduction) 알고리즘의 사용에 대하여 다루고 있습니다.

HDR.pdf
0.17MB

 

HDR 알고리즘을 C++코드로 다음과 같이 간단하게 구현할 수 있습니다.

void Filter::HDR (double v[3], double threshold, double ic)
{
    v[0] += _HDR_I[0];
    v[1] += _HDR_I[1];
    v[2] += _HDR_I[2];

    //const double ic = 0.001;
    //const double threshold = 15;

    if ((-threshold < v[0] && v[0] < threshold) &&
        (-threshold < v[1] && v[1] < threshold) &&
        (-threshold < v[2] && v[2] < threshold) ){
        _HDR_I[0] -= SIGN(v[0])*ic;
        _HDR_I[1] -= SIGN(v[1])*ic;
        _HDR_I[2] -= SIGN(v[2])*ic;
    }
}
 

Filter.cpp
0.00MB
Filter.h
0.00MB

 

* 상기 HDR 알고리즘은 다음의 두 논문을 참조하여 작성하였습니다:

 - J. Borenstein의 “’Heuristic reduction of gyro drift in gyro-based vehicle tracking”
 - 남동균의 “저가형 자이로 센서의 드리프트 감소 방안에 대한 고찰”