상세 컨텐츠

본문 제목

드론 만들기 - Pixhawk의 GPS

만들기/드론

by kwangpil 2020. 6. 17. 13:00

본문

 

이전 글...

 

드론 만들기

  

   하드웨어

      드론 만들기-기본부품

         드론 만들기 - 비행 제어기(FC)

            드론 만들기 - Pixhawk 시리즈

               드론 만들기 - Pixhawk의 GPS

               드론 만들기 - Pixhawk의 텔레메트리(Telemetry)

               드론 만들기 - Pixhawk 4

                  드론 만들기 - QGroundControl에서 Pixhawk 4 펌웨어 설치

                  드론 만들기 - QGroundControl에서 Pixhawk 4 설정하기 1/2

                  드론 만들기 - QGroundControl에서 Pixhawk 4 설정하기 2/2                   

         드론 만들기 - 모터

         드론 만들기 - 배터리

            드론 만들기 - 리튬 폴리머 배터리 팩

         드론 만들기 - 변속기 (ESC)

         드론 만들기 - 프로펠러 (Propeller)

         드론 만들기 - Power Management Board

         드론 만들기 - 조종기(Radio Control)    

 

   소프트웨어

      드론 만들기 - MissionPlanner와 QGroundControl

      드론 만들기 - QGroundControl 설치

         드론 만들기 - QGroundControl에서 Pixhawk 4 펌웨어 설치

         드론 만들기 - QGroundControl에서 Pixhawk 4 설정하기 1/2

         드론 만들기 - QGroundControl에서 Pixhawk 4 설정하기 2/2

         드론 만들기 - QGroundControl에서 Pixhawk 파라미터 변경하기  

 

   조립

      드론 만들기 - GPS, Telemetry Pixhawk 4에 연결하기

  

   비행

      드론 만들기 - 쿼드콥터(Quadcopter) 비행 원리

      

   기타

      드론 만들기 - 비행금지구역

      드론 만들기 - 비행 시 주의 사항

      드론 만들기 - VMware Workstation Pro 설치하기

         드론 만들기 - VMware Workstation Player에 Virtaul Machine 만들기

         드론 만들기 - VMware Workstation Player에 Ubuntu 설치하기

      드론 만들기 - 멀티콥터 종류

 


 

완전 초짜의 드론 만들기 도전! 도전! 도전~!입니다.
맨땅에 헤딩~

인터넷 검색, 관련 사이트를 참고하여 Pixhawk 4를 이용한 중/소형 드론을 만들려고 하고 있습니다.

참고만 하세요~!


실시간 현재 위치를 알 수 있어 GPS는 드론 비행에 매우 유용해 보이기는 하다.

 

그런데 드론에 꼭 GPS가 필요할까?
꼭 필요하다면 픽스호크에는 어떤 GPS 수신기를 사용해야 할까?

자동차 네비게이션을 사용해보면 위치 오차가 수 미터나 되는데 더 안전한 비행을 위해서 드론 GPS의 정확도를 더 높일 방법은 없을까?
....

 

이런 자문에 답을 찾기 전에 우선 너무나 익숙한 GPS가 무엇인지, 어떻게 동작하는지 아주 간단히 알아보자.

 

 

1. GPS는 뭔가?

 

인공위성에서 보내는 정보를 이용해서 현재 위치를 가르쳐주는 위성항법시스템을 쉽게 GPS라고 말한다.

 

정확하게 표현을 하자면 이런 위성항법시스템은 GPS가 아니라 GNSS라고 하는 게 맞다.

 

GNSSGlobal Navigation Satellite System 약자로 우리나라 말로 번역하면 범지구위성항법시스템이다. GPS(Global Positioning System)GNSS 중의 하나미국 국방부에서 처음 개발하고 운용하고 있는 범지구위성항법시스템이다.

 

아무래도 GPS가 세계에서 제일 먼저 민간에 개방되어 사용되다 보니 GNSS라는 말보다는  GPS가 더 익숙한 것 같다.

 

 

가끔 수많은 내비게이션과 핸드폰, 거기다가 드론 같은 용품에까지 GPS를 사용하는 것을 보며 GPS 인공위성은 어떻게 이 많은 데이터를 처리하나라는 의문을 품은 적이 있었는데 이번 기회에 그 의문이 완전히 풀렸다.

 

GPS 인공위성과 GPS 수신기는 쌍방향 통신을 하는 것이 아니라 GPS 인공위성에서 GPS 수신기에서만 일방적으로 정보를 송신하는 단방향 통신이었다.

 

모든 GPS 인공위성자신의 고유한 번호의사잡음부호위성정보가 담긴 신호를 지구에 전송하면 GPS 수신기는 수신한 의사잡음부호로 인공위성구분하고 위성위치정보수신된 신호와 GPS 수신기에서 수신된 신호의 시간차 측정하여 위성과 수신기 사이의 거리를 구하여 GPS 수신기 현재 위치 계산한다.

 

정확한 위치를 계산하기 위해서는 최소 네 개의 위성필요하다.

 

 

GPS 수신기에 수신되는 GPS 인공위성 갯수 (출처: www.wikipedia.org)

 

GPS24개인공위성 여섯 개 궤도면 상에 분포하도록 설계되었는데 GPS 수신기의 성능은 이 24 개의 인공위성 중 얼마나 많은 수의 GPS 위성의 신호를 동시에 수신하는가에 따라 결정된다.

 

초기 GPS 수신기는 기껏해야 4~5개의 위성을 동시에 수신했다고 하는데 현재는 10개가 넘는 인공위성이 동시에 수신된다.

 

픽스호크에 GPS 수신기를 연결한 후 QGroundControl에서 확인을 해보면 처음에는 5-6개의 인공위성이 수신되지만 잠시 기다리면 10개 이상의 인공위성이 동시에 수신되는 걸 확인할 수 있다(픽스호크는 GPS 뿐만 아니라 다른 나라에서 운용하고 있는 위성항법시스템도 지원한다).

 

 

재 GPS는 30개가 넘는 위성이 지구 주위를 돌고 있는데 그중 실제 GPS에 사용되는 인공위성은 24개이다. 나머지 위성은 24개 위성 중 하나가 고장이 나면 고장 난 인공위성을 대신하거나 위치 정밀도를 더 높이는 데 사용된다.

 

상업용으로 사용되는 GPS 오차수 미터이며 전 세계에서 무료로 사용 가능하다.

 

 

미국의 독점적인 범지구위성항법시스템에 대항하기 위해서 다른 나라에서도 GNNS 시스템을 운용 중이거나 운용하려고 하고 있다.

 

러시아의 경우에는 2011년도에 자체 범지구위성항법시스템인 GLONASS  전 세계 서비스를 시작했고 유럽연합의 경우 Galileo의 서비스를 2016년에 시작했지만 아직 시스템 구성이 완료되지는 않았다.

 

수신기에 수신되는 갈릴레요(Galileo) 인공위성 갯수 (출처: www.wikipedia.org)

 

중국의 경우 범지구위성항법시스템은 BeiDou인데 2018년 전 세계 서비스를 시작했고 2019년에 시스템 구성을 완료했다. 일본의 경우 QZSS는 동아시아와 남 태평양 지역으로 한정하는 위성항법시스템으로 시스템 구축 중이다.

 

IRNSS은 인도 전체, 인도 외곽 지역을 한정하는 인도위성항법시스템이다.

 

 

2. GPS는 꼭 필요한가?

 

드론을 만들어볼까 하고 자료를 찾다 보면 드론에서 GPS는 필수품처럼 여겨진다. 초짜인 나도 꼭 필요한 것인지 알고 정말 아무 생각 없이 GPS를 구매했다.

 

그런데 드론을 만들기 위해서 GPS 수신기는 꼭 필요할까?

 

가만히 생각해보면 드론을 비행하는데 드론 현재 위치에 대한 정보 필요하지 않은 경우에는 꼭 GPS가 필요하지 않다.

 

예를 들면 경주 용 소형 드론의 경우 GPS 수신기를 장착하지 않는 경우도 있고, 인공위성 신호가 닿지 않는 지하 같은 곳에서 드론을 사용해야 할 경우라면 GPS 수신기 자체가 의미가 없다. 

 

또 드론을 넓은 공간에서 시야 안에서만 조종기로 비행할 예정이면 특별히 GPS가 필요하지도 않다. 물론 안전한 비행을 하려면 조종기를 능숙하게 다룰 수 있는 전문적인 수준이어야 할 것이다.

 

물론 GPS가 드론의 현재 위치만을 알려주는 것이 아니다.

 

GPS 근사적으로 드론 높이도 알 수 있고 어떤 GPS의 경우에는 드론헤딩(heading) 방향까지 파악할 수도 있다.

 

따라서 드론에 GPS 수신기를 장착할 것인지, 하지 않을 것인지는 만들려고 하는 드론의  목적에 맞게 선택하면 된다. 필요도 없고 드론의 위치 기능을 잘 사용하지 않을 것이라면 비용뿐만 아니라 드론의 무게만 증가시킬 수도 있다.

 

 

3. 픽스호크에는 어떤 GPS 수신기를 사용해야 하나?

 

픽스호크를 구매할 때 풀 세트(full set)를 선택하면 GPS 모듈이 포함이 되어있다.

 

 

픽스호크 4GPS 모듈에는 GPS 수신기뿐만 아니라 지자계 센서부저(buzzer)가 함께 장착되어있기 때문에 GPS 수신기가 필요한 경우, 따로 GPS 수신기를 구매하는 것보다 픽스호크 4의 전체 세트를 구매하는 것이 낫다.

 

하지만 다른 이유로 GPS 모듈을 개별적으로 구매할 경우에는 픽스호크가 지원하는 수신기를 선택해야 한다.

 

픽스호크는 Ublox, MTK Ashtech, Emlid 프로토콜, UAVCAN을 지원하기 때문에 GPS 수신기를 구매할 때 GPS 수신기의 칩이 어떤 프로토콜을 사용하는지 확인해야 한다.

(여기서 Ublox, MTK, Ashtech, Emlid는 회사 이름이기도 하며, UAVCAN은 Uncomplicated Application-level Vehicular Communication and Networking의 약자로 다양한 통신 전송을 사용하여 안정적인 차량 내부 통신을 위해 설계된 경량 프로토콜이다)

 

픽스호크는 위의 수신기를 통해 GPS뿐만 아니라 GLONASS, Galileo, BeiDou, QZSS, SBAS를 포함하는 범지구항법시스템(GNSS, global navigation satellite systems)을 지원한다.

 

 

GPS 모듈을 구매할 때 고려해야 하는 다른 요소는 자자계 센서다. 

 

왜냐하면 픽스호크는 지자계 센서가 포함된 GPS 모듈 사용을 권고하고 있기 때문인데 그 이유는 GPS 수신기와 지자계 센서가 모두 다 모터/ESC의 전원선에서 발생하는 전파에 방해를 받기 때문에 GPS 수신기와 지자계 센서를 전원선과 가능한 멀리 떨어지게 장착을 하는 것이 성능에 좋기 때문이다.

 

특히 드론이 소형일수록 부품들이 좁은 공간에 장착되기 때문에 이런 외부 지자계 센서를 사용하는 것을 권장한다.

 

픽스호크가 지원하는 자지계 센서는 Bosch BMM 150 MEMS (I2C bus), HMC5883 / HMC5983 (I2C 또는 SPI), IST8310 (I2C), LIS3MDL (I2C 또는 SPI)이다.

(지원하는 정확한 자자계 센서는 여기 참조)

 

물론 지자계 센서가 없는 GPS 모듈을 구매한다면  지자계 센서는 고려하지 않아도 된다.

 

 

픽스호크 사이트에서 권장하는 GPS 모듈은 다음과 같다.

 

Ublox Neo-M8N GPS with Compass (Hobbyking)
mRo GPS u-Blox Neo-M8N Dual Compass LIS3MDL+ IST8310 (mRo store)
Drotek uBlox GPS/Compasses (drotek)
Holybro Micro M8N GPS Module (getfpv)
Holybro Ublox NEO-M8N GPS Module (getfpv)
Holybro Pixhawk 4 GPS Module (UBLOX 8MN GPS + IST8310 compass + LED + Safety switch).
Here GNSS GPS (M8N) (getfpv)
Zubax GNSS 2 (zubax.com)

 

물론 위의 GPS 수신기 모듈만을 사용해야 하는 것은 아니며 픽스호크와 호환되는 GPS 수신기 프로토콜을 사용한 GPS 수신기라면 픽스호크에 사용하는데 문제가 없다.

 

 

 

4. RTK GPS는 뭔가?

 

픽스호크는 일반 GPS 수신기뿐만 아니라  RTK(Real Time Kinematik) GPS 수신기도 지원한다.

 

일반 GPS 수신기정확도수 미터 내외이지만 RTK GPS의 경우는 센티미터이다.

 

따라서 RTK GPS를 사용할 경우에 낮은 위치오차로 비행이 가능하기 때문에 높은 정확성과 안전성을 요구하는 분야에서는 유용하게 사용될 수 있다.

 

픽스호크지원하는 RTK GPS 수신기u-blox M8P Trimble MB-Two로 아래의 제품은 픽스호크와의 호환성이 검증된 것들이다.

 

CUAV C-RTK GPS
Drotek XL RTK GPS
Here+ RTK GPS
Trimble MB-Two

 

픽스호크가 지원하는 RTK GPS는 지상제어센터 용 수신기와 드론 용 수신기, 이렇게 한 쌍으로 이루어져 있디.

 

아직까지 안드로이드나 iOS에는 지원이 되지 않기 때문에 노트북이나 컴퓨터만 사용 가능하며 QGC가 설치된 노트북/컴퓨터과 드론 와이파이나 텔레메트리 연결이 되어있어야 한다.

 

 

5. 픽스호크에 듀얼 GPS 연결하기

 

픽스호크에서는 일반 GPS 수신기와 RTK GPS 수신기, 또는 일반 GPS 수신기 두 개를  함께 사용할 수 있다.

 

우선 첫 번째 GPS 모듈은 픽스호크에 GPS 모듈이라고 이름이 적혀 있는 포트연결한다.

 

 

대부분의 GPS는 기본 설정인 Auto로도 잘 동작하지만 만약 GPS가 Trimble MB-Two일 경우에는 보 레이트를 115200으로 변경해야 한다.

(보 레이트(baudrate)란 데이터 통신에서 시리얼 포트가 1초 동안에 전송할 수 있는 최대 비트 크기를 말한다.)

 

보 레이트를 바꾸려면 QGroundControl에서 파라미터 > Serial >Ser_GPS1_BAUD 클릭한다.

 

 

Auto 클릭 > 115200 8N1 선택 > 저장

 

도구 > 기체 리부팅

 

 

변경이 완료되었으며 픽스호크가 자동으로 RTK GPS 자동으로 인식한다.

 

만약 첫 번째 GPS 수신기가 일반 GPS 수신기의 경우 특별히 변경할 사항은 없으며 RTK GPS와 마찬가지로 픽스호크에서 자동으로 인식해서 GPS 인공위성과 수신한다.

 

두 번째 GPS 모듈비어 있는 직렬포트연결한 후 선택한 직렬포트를 두 번째 GPS로 할당하면 된다.

 

예를 들어서 픽스호크 4에서 TELEM 2에 두 번째 GPS 모듈을 연결할 경우 설정은 아래와 같다.

 

먼저 GPS 모듈을 TELEM 2에 연결한다.

 

 

QGroundControl에서 파라미터 > GPS >  GPS_2_CONFIG 클릭

 

 

Disable 클릭 > TELEM 2 클릭 > 저장

 

 

도구 > 기체 리부팅

 

 

리부팅이 완료된 후 다시 파라미터 > Serial > SER_TEL2_BAUD 선택

 

 

아래 그림에서 붉은 네모 부분을 선택, 기본으로 설정되어 있는 값은 펌웨어에 따라 다를 수 있다.

 

 

Auto 선택 후 저장 선택한다(만약 GPS가 Trimble MB-Two일 경우에는 baudrate를 115200으로 설정).

 

 

듀얼 GPS의 하드웨어 설정은 끝이 났다.

 

픽스호크에서 GPS의 기본 설정은 첫 번째 GPS만 사용하는 것이다.

 

설치한 두 개의 GPS의 데이터를 혼합해서 사용하려면 ECL/EKF에서 GSP 부분을 설정해주어야 하는데 ECL/EKF에서 설정은 다음에 확장된 칼만 필터(extended kalman filter)에서 다른 부품 설정과 함께 설명하기로 하고 여기서는 생략한다.

 

 

6. 결론

 

- GPS는 범지구위성항법시스템 중의 한 종류이다.

- 드론에 GPS 수신기는 꼭 필요한 것은 아니며 드론의 목적에 맞게 사용 여부를 결정하면 된다.

- GPS 수신기를 선택할 때는 픽스호크와 호환되는 프로토콜을 사용하는 수신기를 구매해야 한다.

- 픽스호크에서는 드론 위치 오차 향상 위해서 RTK GPS를 사용할 수 있다.

- 픽스호크는 듀얼 GPS 수신기를 지원한다.


 

이전 글...

 

드론 만들기

  

   하드웨어

      드론 만들기-기본부품

         드론 만들기 - 비행 제어기(FC)

            드론 만들기 - Pixhawk 시리즈

               드론 만들기 - Pixhawk의 GPS

               드론 만들기 - Pixhawk의 텔레메트리(Telemetry)

               드론 만들기 - Pixhawk 4

                  드론 만들기 - QGroundControl에서 Pixhawk 4 펌웨어 설치

                  드론 만들기 - QGroundControl에서 Pixhawk 4 설정하기 1/2

                  드론 만들기 - QGroundControl에서 Pixhawk 4 설정하기 2/2                   

         드론 만들기 - 모터

         드론 만들기 - 배터리

            드론 만들기 - 리튬 폴리머 배터리 팩

         드론 만들기 - 변속기 (ESC)

         드론 만들기 - 프로펠러 (Propeller)

         드론 만들기 - Power Management Board

         드론 만들기 - 조종기(Radio Control)    

 

   소프트웨어

      드론 만들기 - MissionPlanner와 QGroundControl

      드론 만들기 - QGroundControl 설치

         드론 만들기 - QGroundControl에서 Pixhawk 4 펌웨어 설치

         드론 만들기 - QGroundControl에서 Pixhawk 4 설정하기 1/2

         드론 만들기 - QGroundControl에서 Pixhawk 4 설정하기 2/2

         드론 만들기 - QGroundControl에서 Pixhawk 파라미터 변경하기  

 

   조립

      드론 만들기 - GPS, Telemetry Pixhawk 4에 연결하기

  

   비행

      드론 만들기 - 쿼드콥터(Quadcopter) 비행 원리

      

   기타

      드론 만들기 - 비행금지구역

      드론 만들기 - 비행 시 주의 사항

      드론 만들기 - VMware Workstation Pro 설치하기

         드론 만들기 - VMware Workstation Player에 Virtaul Machine 만들기

         드론 만들기 - VMware Workstation Player에 Ubuntu 설치하기

      드론 만들기 - 멀티콥터 종류

 


 

관련글 더보기

댓글 영역