라이프로그


연구과제 학습중 by 하하폴

우리의 비행체는 IMU로 센서값을 받고 FCB를 지나서 지상의 GCS로 전달되어 제어가 된다.
FCB에 삼중화된 S/W적인 Fault tolerant를 적용하고자 한다.

1. 우선적으로 IMU에서 넘어오는 값이 어떤 것인지를 확실히 분석해야할 필요가 있고,
   FCB에서는 삼중화 할만한 알고리즘이 필요하다. 

   (1) 우리가 쓰는IMU에 대해서 알아보자
         IMU(Inertial Measurement Unit) : 6DOF(Degrees of Freedom) v4 
           Sensor List
              - Accelometer : Freescale MMA7260Q
              - Gyro : 2 Invensense IDG300 
              - Magnetic : HMC1052L & HMC1051Z

            Count ( 2byte, 0 ~ 32767)
            Magnetic : X, Y, Z
            Accelometer : X, Y, Z
            Gyro : pitch, roll, yaw  로 output이 나온다.
          File 참고 : DataSheet-6DOF-v4-Rev1.pdf 의 4번째 페이지 좌측 중간쯤.

          * 데이터에서 파싱도 임의적으로 해야하는건가?  터미널로 봐도?
          ** 우선적으로 IMU와 같이 딸려있다는 데모 프로그램, 터미널 등으로 값 뽑아내서 확인해보자.

   (2) FCB에 알고리즘은 어떤 걸 적용할까?
         우선적으로 사용의 이유가 타당한 알고리즘을 적용해야 한다.
         알고리즘 적용을 위해 Forward recovery를 적용하기 위해 Check point를 두기 좋아야 하고,          
                                                        현재 시스템에 유익을 줄 수 있는 알고리즘이어야 한다.
         
         현재 학습 중 가장 적용하기 좋다라고 판단한 알고리즘은 Kalman filter Algorithm이다.

         이 알고리즘에 대해서 간단히 소개하겠다. 
         IMU에서 나오는 데이터는 위에서 이야기한 것처럼 count를 포함한 10개의 데이터가 나온다.
         하지만 현재 시뮬레이션 구축에서는 피치와 롤 각속도를 보정작업을 통해 더욱 효과적으로 얻는 작업을 
       알고리즘으로 적용하고자 한다. 

         이미 IMU에서 자이로 센서를 통해 피치, 롤 각속도를 얻어내고, 이를 적분하여 각을 얻어낼 수 있지만
       적분 과정에서 적분오차를 계속 누적해서 가기 때문에 시간의 흐름에 따라 오차가 커진다. 이를 보정하기 위해 
       가속도 센서에서 구하는 각을 병합하여 노이즈를 예측하고 보정하는 것이다.
  
        (Yaw 값을 구하려면 자이로와 마그네틱 센서를 병합해서 구하면 된다고 한다.)
 
         Kalman filter Algorithm은 이러한 용도로 사용된다. 

         위 알고리즘을 통해 아래 영상을 보듯이 안정화가 생긴 것을 확인할 수 있다. (roll 값을 보여주는 예인 듯)



   
         실제적으로 한 데이터를 받아서 각 다른 알고리즘을 적용하는 방식이 100% S/W 적인 Fault tolerant
        방법이지만, 위와 같은 알고리즘이 상당히 어려운 수학적 요소를 동반하기 때문에 시뮬레이션 제작과정에서는
        H/W Fault tolerant 기법을 조금 응용하여 3개의 각기 다른 IMU(노이즈가 조금씩 다르게 들어감)를
        Kalman filter 알고리즘에 적용하여 오차범위를 줄인 값을 최종 output으로 얻어내는 것이다.

         실제 IMU가 3개가 없고, 동일한 각도를 유지한다는 보장이 없기 때문에 이 부분은 한 개의 실제 IMU로
        값을 얻어낸 이후 노이즈 발생 알고리즘을 적용하여 유사한 값의 데이터를 3개로 만들어낼 예정이다. 
         이런 방식으로 할 경우 삼중화된 부분이 동일한 알고리즘을 적용하였기 때문에 check point 설정이 쉽고 
        recovery가 쉬울 것이라 생각한다.

참고하기에 좋은 사이트 : http://pinkwink.kr/75


덧글

댓글 입력 영역