이전 글...
드론 만들기
하드웨어
QGroundControl에서 변속기(ESC) 교정하기
Pixhawk 4의 Power Management Board
QGroundControl에서 Pixhawk 4 펌웨어 설치
QGroundControl에서 Pixhawk 4 설정하기 1/2
QGroundControl에서 Pixhawk 4 설정하기 2/2
파워 분배기(PDB, Power Distribution Board)
소프트웨어
MissionPlanner와 QGroundControl
QGroundControl에서 Pixhawk 4 펌웨어 설치
QGroundControl에서 Pixhawk 4 설정하기 1/2
QGroundControl에서 Pixhawk 4 설정하기 2/2
QGroundControl에서 Pixhawk 파라미터 변경하기
VMware Workstation Player에 Virtaul Machine 만들기
VMware Workstation Player에 Ubuntu 설치하기
조립
Power Management Board에 커넥터 연결하기
변속기(ESC)와 Power Management Board 연결하기
QGroundControl에서 변속기(ESC) 교정하기
GPS, Telemetry Pixhawk 4에 연결하기
통신
개발
비행
문제해결
Pixhawk와 Emax ESC(변속기) 호환문제 해결방법
기타
완전 초짜의 드론 만들기 도전! 도전! 도전~!입니다.
맨땅에 헤딩~
인터넷 검색, 관련 사이트를 참고하여 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를 직접 연결해서 시뮬레이션하는 것이기 때문에 먼저 USB로 Pixhawk를 컴퓨터에 연결한다.
그다음 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"를 입력한다.
마지막 줄의 장치가 픽스호크의 시리얼 포트이다.
[드론 만들기] Gazebo 사용하기 4/4 (0) | 2021.04.29 |
---|---|
[드론 만들기] Gazebo 사용하기 1/4 (2) | 2021.04.25 |
[드론 만들기] jMAVSim 사용하기 1/2 (0) | 2021.04.03 |
[드론 만들기] 툴 체인(Toolchain) 설치하기 (1) | 2021.03.24 |
[드론 만들기] 드론 비행 시뮬레이터(Simulator) (1) | 2021.03.23 |
댓글 영역