상세 컨텐츠

본문 제목

[드론 만들기] jMAVSim 사용하기 2/2

만들기/드론

by kwangpil 2021. 4. 5. 22:47

본문

 

이전 글...

 

드론 만들기

  

   하드웨어

      기본부품

        비행 제어기(FC)

            Pixhawk 시리즈

               Pixhawk의 GPS

               Pixhawk의 텔레메트리(Telemetry)              

               Pixhawk의 변속기(ESC)

                  QGroundControl에서 변속기(ESC) 교정하기     

               Pixhawk 4의 Power Management Board              

               Pixhawk 4

                  QGroundControl에서 Pixhawk 4 펌웨어 설치

                  QGroundControl에서 Pixhawk 4 설정하기 1/2

                  QGroundControl에서 Pixhawk 4 설정하기 2/2       

         모터

         배터리

            리튬 폴리머 배터리 팩

         변속기 (ESC)

         프로펠러 (Propeller)

         파워 분배기(PDB, Power Distribution Board)

         조종기(Radio Control)          

 

   소프트웨어

      MissionPlanner와 QGroundControl

      QGroundControl 설치

         QGroundControl 사용방법 1/4

         QGroundControl 사용방법 2/4

         QGroundControl에서 Pixhawk 4 펌웨어 설치

         QGroundControl에서 Pixhawk 4 설정하기 1/2

         QGroundControl에서 Pixhawk 4 설정하기 2/2

         QGroundControl에서 Pixhawk 파라미터 변경하기  

      VMware Workstation Pro 설치하기

         VMware Workstation Player에 Virtaul Machine 만들기

         VMware Workstation Player에 Ubuntu 설치하기

            Ubuntu(우분투) 터미널 명령어

            Ubuntu(우분투) 주요 디렉터리

            Ubuntu(우분투) 기초용어

 

   조립

      모터, 변속기에 커넥터 연결하기

      Power Management Board에 커넥터 연결하기

      변속기(ESC)와 Power Management Board 연결하기

      모터와 변속기(ESC) 연결하기

      QGroundControl에서 변속기(ESC) 교정하기

      GPS, Telemetry Pixhawk 4에 연결하기

  

   통신

      MAVLink

         MAVLink 설치하기

         MAVLink 라이브러리 생성하기

 

   개발

      드론 비행 시뮬레이터(Simulator)         

         툴체인(toolchain) 설치하기

            jMAVSim 사용하기 1/2

            jMAVSim 사용하기 2/2

            Gazebo 사용하기

 

   비행

      쿼드콥터(Quadcopter) 비행 원리     

 

   문제해결

      Pixhawk와 Emax ESC(변속기) 호환문제 해결방법

 

   기타

      비행금지구역

      비행 시 주의 사항   

      멀티콥터 종류

      커넥터(connector)

      용어


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

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

참고만 하세요~!

 

※ 아래 내용은 픽스호크 홈페이지 내용을 기반으로 작성한 것으로 틀린 내용을 포함하고 있을 수도 있습니다.

※ 정확한/상세한 내용은 Pixhawk 홈페이지 참조하세요.

 

※ 사용하는 운영체제는 우분투(Ubuntu) 18.04 또는 20.04이며 특별한 언급이 없을 경우 우분투(Ubuntu) 18.04입니다.


 

[드론 만들기] jMAVSim 사용하기 1/2 이어서...

 

 

3. 다중 비행 시뮬레이션

 

말 그대로 여러 개의 드론을 동시에 시뮬레이션하는 것이다.

 

jMAVSim도 다중 비행 시뮬레이션(SITL)을 지원하는데 최대 9 대까지 가능하며 설정 개수만큼 시뮬레이터 창을 띄운다. 이때 모든 드론은 시뮬레이션 상 동일한 위치에서 비행을 시작한다.

 

jMAVSim에서 다중 비행 시뮬레이션을 하는 방법은 아래와 같다.

 

먼저 PX4 소스코드가 다운로드되어있는 디렉터리로 이동한 후 아래의 명령어로 PX4빌드한다.

 

make px4_sitl_default

 

 

이어서 아래의 명령어로 다중 비행실행하며 다중 비행 기체의 개수도 함께 설정한다.

./Tools/sitl_multiple_run.sh 기체 개수

만약 2 개의 드론으로 다중 비행 시뮬레이션할 경우에는 드론 개수에 숫자 2를 입력하면 된다.

 

 

이제는 아래의 명령어로 첫 번째 드론의 시뮬레이터를 실행한다.

./Tools/jmavsim_run.sh -l

 

 

새 터미널을 실행시켜서 두 번째 드론의 시뮬레이터를 실행한다.

 

여기서 주의해야 할 점은 통신포트이다!

드론통신을 위해서 각각의 UPD 포트를 사용한다.

첫 번째 드론의 경우 통신포트 번호 4560자동으로 할당되지만 추가하는 드론의 경우 직접 통신 포트를 할당해 주어야 한다.

 

두 번째 드론 시뮬레이터 실행 명령어는 아래와 같다.

./Tools/jmavsim_run.sh -p UDP 포트번호 -ㅣ

사용 가능한 UDP 포트번호4560+i이다.

i의 범위는 0 ~ N-1이며 N은 다중 비행 시뮬레이션을 할 드론의 총개수이다.

 

따라서 두 번째  UDP 포트번호에는 4561가 할당된다.

 

 

실행이 완료되면 두 개의 jMAVSim 그래픽 화면이 나타난다.

 

 

QGC를 함께 실행하면 자동으로 두 개의 드론과 연결되며 아래와 같이 화면에 2개의 드론이 표기가 된다.

 

 

아래의 동영상은 2개의 드론을 실행한 후 QGC에서 간단히 이륙, 착륙하는 동영상이다.

 

 

 

4. HITL Simulation

 

Pixhawk를 직접 연결해서 시뮬레이션하는 것이기 때문에 먼저 USBPixhawk 컴퓨터 연결한다.

 

 

그다음 QGC에서 HITL 시뮬레이션 설정을 해 주어야 한다.

 

QGC를 실행하고 기어 모양의 아이콘을 클릭해서 안전을 선택한다. 스크롤을 내려가다 보면 HITL 활성화 항목이 나온다. 

 

 

위의 그림과 같이 HITL enabled선택해서 HITL을 활성화시킨다.

 

 

노란 메시지 창을 종료하고 기체를 클릭한 후 쿼드콥터 기체를 선택한다.

(앞서 언급했듯 jMAVSim 시뮬레이터는 쿼드(Quad)형태만 지원한다 )

 

 

HITL 시뮬레이션에서도 조종기를 사용하지 않을 계획이므로 조정기 해제 설정을 한다.

 

QGC에서 기어 모양 아이콘-> 파라미터를 클릭한 후 검색란에서 com_rc를 입력하면 com_rc와 관련 있는 명령어가 아래에 나타나는데 조종기를 사용하지 않을 계획이었기 때문에 조종기 설정 파라미터 COM_RC_IN_MODE는 NO RC Checks가 선택되어있다.

(정확하게 파라미터를 알면 그냥 입력해주면 된다.)

 

 

만약 위와 다르게 설정되어있는 경우 해당 파라미터 위를 클릭한 후 아래와 같이 joystick/No RC Checks선택하고 저장을 클릭한다.

 

 

이어서 조종기의 신호가 인식되지 않을 때 드론이 어떤 행동을 취해야 하는가에 대한 RC 자동안전장치 설정을 한다.

 

검색란에서 com_rc를 입력한 후 가장 아래에 있는 NAV_RCL_ACT가 RC 자동안정장치를 설정하는 파라미터이다.

(해당 파라미터 전체 이름을 알면 검색란에 바로 입력하면 된다)

 

 

명령어를 클릭한 후 disable선택하고 저장한다.

 

 

필요한 설정을 모두 완료했으면 픽스호크를 재부팅한다.

(기어 아이콘(기체 설정) -> 파라미터 -> 도구 -> 재부팅)

 

이어서 UDP(User Datagram Protocol)를 설정한다.

(UDP에 대한 간략한 정의는 [드론 만들기] 용어 참조)

 

UDP 설정은 QGC 설정 > 일반을 선택한 후 "다음 장치에 자동으로 연결" 항목에서 UDP만 체크한 후 다른 모든 항목은 해제하면 된다.

(이제 픽스호크와 QGC는 UDP로만 연결)

 

 

설정완료했으면 QGC종료하고 컴퓨터에서 픽스호크제거한다.

 

다시 컴퓨터에 픽스호크를 연결하고 부팅이 될 동안 잠깐 기다린 후 터미널 창을 실행시킨다.

(QGroundControl이 실행되어 있어서는 안 됨!!)

터미널 창이 실행되면 PX 소스코드 다운로드 디렉터리이동한 후 아래의 jMAVSim HITL 실행 명령어를 터미널 창에 입력한다.

./Tools/jmavsim_run.sh -q -s -d /dev/ttyACM0 -b 921600 -r 250

여기서 q는 QGC, s는 SDK, d는 장치(device), /dev/ttyACM0는 시리얼 포트, b는 보레이트(baudrate), r은 time out(초)을 의미한다.

(시리얼 포트 확인 방법은 아래 참조.)

 

 

엔터를 입력하면 잠시 후 jMAVSim이 실행된다.

 

 

jMAVSim 실행이 완료되면 QGC 실행한다.

 

QGC가 실행되면 자동으로 PX4와 jMAVSim에 연결한다.

(혹시 QGC의 기체 설정의 '안전'에서 데이터링크 안전장치 트리거를 해제해 놓은 경우 데이터 링크 제한 시간을 초과할 경우 시뮬레이터가 제대로 작동하지 않을 수 있기 때문에 hold mode설정해준다.)

 

아래는 jMAVSim HITL와 QGC를 실행한 후 드론이 이륙, 임의의 위치로 이동, RTL, 착륙하는 영상이다.

 

 


 

< 시리얼 포트 확인방법 >

 

시리얼 포트를 확인하려면 픽스호크를 연결한 후 터미널 창에서 dmesg | grep "tty"를 입력한다.

 

마지막 줄의 장치가 픽스호크의 시리얼 포트이다.

 


 

관련글 더보기

댓글 영역