'센서융합기'에 해당되는 글 2건

  1. 2017.03.13 쿼드콥터용 비행제어기(FC)의 원리(2)
  2. 2017.03.13 쿼드콥터용 비행제어기(FC)의 원리(1)


각종 센서들이 측정한 상태측정치들은 각 센서들 고유의 오차 및 잡음이 포함되기 때문에 비행제어기에서 바로 사용할 수 없습니다. 센서융합기는 자이로 센서, 가속도 센서 및 지자기 센서가 측정한 드론의 회전운동 상태측정치와 GPS 수신기 및 기압 센서가 측정한 드론의 병진운동 상태측정치들을 적절히 융합하여 각종 오차 및 잡음이 최소화 된 상태추정치를 계산합니다.


자이로 센서(Gyroscope)

관성측정장치(IMU) 내부에 있는 3축 자이로 센서를 이용해 드론 기체좌표 x, y, z 세 축이 지구관성좌표에 대하여 회전하는 각속도를 측정한 후 고정좌표로 변환된 값(Wx.gyro, Wx.gyro, Wx.gyro)을 계산합니다. 자이로 센서 측정치는 선형 미분방정식을 이용해 오일러 각도 (Φgyro, ϴgyro, ψgyro)로 변환될 수 있다. 자이로 센서 측정치는 저주파수 대역에서 바이어스(bias) 오차를 포함하기 때문에(즉, 드론이 정지해 있을 때에도 자이로 센서의 측정치가 '0'이 되지 않음) x, y, z 세 축에 대한 자이로 센서의 바이어스 오차가 제거되어야 합니다.


가속도 센서(Accelerometer)

자이로 센서의 스코프의 오차를 제거하기 위해 가속도 센서가 이용됩니다. 관성측정장치(IMU) 내부에 있는 가속도 센서를 이용해 드론 기체좌표 x, y, z 세 축의 지구관성좌표에 대한 가속도를 측정한 후 고정좌표로 변환된 값 (fx,acc, fy,acc, fz,acc)을 계산합니다. 가속도센서 측정치 역시 오일러 각도의 '롤(Φacc)'과 '피치(ϴacc)'로 변환될 수 있으며, 이 값들은 자이로 센서의 측정치를 이용해 계산한 '롤(Φgyro)'과 '피치(ϴgyro)'에 포함된 바이어스 오차를 제거하는데 이용됩니다. 하지만, 가속도 센서는 '요(yaw)'를 측정할 수 없기 때문에 자이로 센서를 이용해 측정한 '요(ψgyro)'에 포함된 바이어스 오차를 제거할 수 없습니다.


지자기 센서(Magetometer or Compass)

지자기 센서를 이용해 드론 기체좌표 x, y, z 세 축의 자북점에 대한 방향을 측정합니다. 이 값을 이용해 기체좌표의 NED 좌표에 대한 '요' 값을 계산할 수 있으며, 센서융합기는 지자기 센서로 측정한 '요(ψmag)'를 이용해 자이로 센서 측정치 '요(ψgyro)'에 포함된 바이어스 오차를 제거합니다. 고정날개 드론의 경우 몸체 전면에 피토관(Pitot Tube)을 부착해 좀 더 정확한 '요' 값을 측정할 수 있으나, 드론의 경우 몸체가 회전하면서 날아가기 때문에 피토관을 이용하기가 어렵다는 것입니다.


GPS 수신기 

GPS 수신기는 GPS 위성들로부터 수신한 신호를 이용해 NED 좌표 상에서 드론의 병진운동상태, 즉 위도(Pn.GPS), 경도(Pe.GPS), 고도(hMSL.GPS), 위도상의 속도(Vn.GPS), 경도상의 속도(Ve.GPS) 및 고도상의 속도(Vd.GPS)를 계산합니다. 여기서 첨자 MSL은 해수면(MSL: Mean Sea Level)을 의미합니다.


기압 센서(Barometer)

GPS 수신기를 통해 수신한 위치 좌표에는 항상 5~10m의 오차가 존재합니다. 민수용 GPS 수신기는 L1 주파수밴드(1.5GHz)의 C/A(Coarse-Acquisition) 코드 혹은 L2 주파수밴드(1.2GHz)의 C/A 코드 둘 중의 하나만을 수신할 수 있습니다. 하지만 군사용 GPS 수신기는 L1 C/A와 L2 C/A를 동시에 수신할 수 있어 Diversity로 인한 이득을 얻을 수 있으며, 추가로 암호화 신호(Encrypted Signal) P(Y)를 수신할 수 있어 GPS 신호가 지구의 이온층을 통과할 때 교란되는 것을 보정할 수 있습니다. 이를 이온층 보정(Ionospheric Correction라 일컫습니다. 5~10m의 GPS 고도 오차는 주로 저공비행을 하는 드론의 지상시설물들과의 충돌 위험을 야기시킵니다. 따라서 별도의 기압 센서를 이용하여 고도(hALP.baro)를 측정하기도 한다는 것입니다. 여기서, 첨자 ALP는 기압(Air-Level Pressor)를 의미하며 드론의 이륙시 기압과 현재 비행고도에서의 기압을 비교해 이륙 지점으로부터의 현재 고도를 계산합니다.


센서융합기는 회전운동상태(ΦE, ϴE, ψE)만을 추정하거나, 회전운동 상태와 병진운동상태(Plon.E, Plat.E, hE)를 동시에 추정할 수 있습니다. 회전운동상태 만을 추정하는 센서융합기를 AHRS(Attitude & Heading Reference System)라고 부르고, 회전운동상태와 병진운동상태를 동시에 추정하는 센서융합기를 관성항법기(INS; Inertial Navigation System)라고 부릅니다.


AHRS를 이용한 센서융합기

AHRS 센서융합기는 보상필터(Complimentary Filter; 상보필터)를 이용하거나 확장 칼만 필터(EKF: Extended Kalman Filter)를 이용합니다. AHRS 보상필터는 고주파 대역 특성이 좋은 자이로 센서의 상태측정치(Φgyro, ϴgyro)를 고주파 대역 필터로 추출하고, 저주파 대역 특성이 좋은 가속도 센서의 상태측정치(Φacc, ϴacc)를 저주파 대역 필터로 추출한 후 합쳐서 자이로 센서의 바이어스 오차가 최소화된 상태추정치(ΦE, ϴE)를 비행제어기(FC)로 전달해 줍니다.


AHRS 확장칼만필더(AHRS-EKF)는 드론의 비행역학(Flight Dynamics)을 이용해 각종 오차를 제거하는 방법입니다. 자이로 센서를 이용한 측정치(Φgyro, ϴgyro, ψgyro), 가속도 센서를 이용한 측정치(Φacc, ϴacc), 지자기 센서를 이용한 측정치(ψmag) 및 GPS 수신기를 이용한 측정치(Vn.GPS, Ve.GPS, Vd.GPS)를 이용해 실시간으로 드론의 회전운동역학(Rotational Dynamics)을 확장 칼만 필터를 이용해 모델링하면서 자이로 센서 및 가속도 센서의 바이어스 오차가 최소화된 상태추정치(ΦE, ϴE, ψE)를 계산해 비행제어기로 전달해 줍니다. GPS 수신기로 측정한 병진운동상태 측정치(Pn.GPS, Pe.GPS) 및 기압 센서로 측정한 고도측정치(hALP.baro)는 융합과정을 거치지 않고 그대로 비행제어기로 전달된다.




Posted by Nature & Life


쿼드콥터(Quadcopter)는 다음 그림에서와 같이 모터 4개의 상대적인 회전속도에 의해 비행이 제어됩니다. 시계방향(CW)으로 회전하는 모터들에 장착되는 프로펠러를 '푸셔(Pusher) 프로펠러'라 부르고 반시계방향(CCW)으로 회전하는 모터들에 장착되는 프로펠러를 '트랙터(Tractor) 프로펠러'라 부릅니다.



  • Yaw Left - 시계방향으로 회전하는 모터 ①, ③의 회전속도의 합 > 반시계방향으로 회전하는 모터 ②, ④의 회전속도의 합

  • Yaw Right - 시계방향으로 회전하는 모터 ①, ③의 회전속도의 합 < 반시계방향으로 회전하는 모터 ②, ④의 회전속도의 합

  • Hovering - 시계방향으로 회전하는 모터 ①, ③의 회전속도의 합 = 반시계방향으로 회전하는 모터 ②, ④의 회전속도의 합


소위 Hovering(정지 비행)은 전체 토크(Torque)가 상쇄되어 드론이 공중에서 정지하는 것이며, 이러한 상황에서 모든 프로펠러들이 발생시키는 추력의 합이 드론의 무게보다 크거나 작을 경우, 드론은 수직으로 상승(Throttle Up) 혹은 하강(Throttle Down)을 합니다.


  • Pitch Up(후진) - 전면에 위치한 모터 ①, ②의 회전속도의 합 > 후면에 위치한 모터 ③, ④의 회전속도의 합

  • Pitch Down(전진) - 전면에 위치한 모터 ①, ②의 회전속도의 합 < 후면에 위치한 모터 ③, ④의 회전속도의 합


  • Roll Left - 우측에 위치한 모터 ①, ④의 회전속도의 합 > 좌측에 위치한 모터 ②, ③의 회전속도의 합

  • Roll Right - 우측에 위치한 모터 ①, ④의 회전속도의 합 < 좌측에 위치한 모터 ②, ③의 회전속도의 합


전체 프로펠러들의 중력방향 추력의 합이 드론의 무게와 동일 할 경우, 드론은 좌측 혹은 우측으로 수평비행을 하게 됩니다.



모터 ①, ②, ③, ④의 회전속도를 각각 라 하고 모터들에 장착된 프로펠러들이 발생시키는 전체 추력을 라 할 때, 각 모터들의 회전속도와 오일러 각도의 변화량  및 추력의 변화량 과의 관계는 다음 수식으로 표현할 수 있습니다.



위 식을 행렬식으로 나타내면 다음과 같습니다.



그러므로 각 모터의 회전속도 관점에서 다음과 같이 나타낼 수 있다.



위 식을 시간 에서 오일러 각도 및 추력의 변화량을 시간 증분을 이용해 표시하면 다음과 같습니다.



위 식에서 는 시간 에서 Tx(송신기)로부터 수신한 비행명령어이고, 는 시간 에서 각종 센서들을 이용하여 추정한 드론의 상태추정치이며, 는 드론의 비행제어기가 수행하는 함수로 볼 수 있습니다. 이 경우, 첨자 ''는 desired(Tx가 원하는)의 ''로 대체할 수 있고, 첨자 ''은 Estimated(센서융합기가 추정한)의 ''로 대체할 수 있습니다.



Tx에 조정키들을 움직여 오일러 각도 및 추력으로 구성된 비행명령어 를 드론에 송신하고, 드론의 Rx(수신기)는 이 비행명령어를 받아서 비행제어기(FC)에 전달합니다. 센서융합기는 자이로 센서, 가속도 센서 및 지자기 센서를 이용해 측정한 회전운동 상태측정치 와 기압 센서를 이용해 측정한 고도측정치 을 적절히 융합해 각 센서들의 오차가 최대한 제거된 상태추정치 를 계산해 비행제어기에 전달합니다. 비행제어기는 Rx로부터 받은 비행명령어를 센서융합기가 보내온 상태추정치와 비교해 그 차이 값을 이용해 각 모터들의 회전속도를 계산합니다. 여기서 첨자 'M'은 Measured(각종 센서들이 측정한)을 의미합니다.


드론은 Tx를 이용하지 않고 GPS 경로비행을 할 수도 있습니다. 한편으로, 센서융합기는 드론의 회전운동 상태측정치 와 GPS 수신기와 기압 센서를 이용해 측정한 병진운동 상태측정치 를 함께 융합하여 센서 오차들을 좀 더 줄일 수 있습니다. 여기서 는 위치벡터, 는 속도 벡터, 는 고도를 의미한다. 아래 그림에서 센서융합기는 드론의 회전운동 및 병진운동 상태측정치를 융합하여 자이로 센서와 가속도 센서의 오차가 최대한 제거된 상태추정치 를 비행제어기에 전달하고, 비행제어기는 Rx로부터 전달 받은 비행명령어 혹은 GPS 비행경로 좌표와 상태추정치를 비교해 그 차이 값을 이용하여 각 모터들의 회전속도를 계산합니다. 여기서 'lon'은 longitude(경도), 'lat'는 latitude(위도)의 약자입니다.




Posted by Nature & Life