이제 거의 비행준비가 완료되었습니다. Pixhawk를 DJI F450 프레임위에 올려서 날려봤고, Canon 카메라를 Pixhawk와 연결해서 송신기로 촬영도 가능합니다.
제가 드론을 날리는 기본적인 목적은 항공사진측량입니다. 자동으로 사진을 촬영한 후, 이를 모아서 정사사진이나 지형도를 만드는 게 목적입니다.
이를 위해서는 드론을 매뉴얼로 조종하는 게 아니라, 먼저 비행계획을 세운후 완전 자동모드로 날려야 합니다. 이 글은 이를 위한 기본적인 내용을 담고 있습니다.
이 글의 원본은 여기 입니다.
===
시작지점 설정(Setting the Home Position)
콥터의 경우 Home Position은 시동을 건 지점으로 설정된다. 즉, 콥터에서 RTL을 실행시키면 콥터가 처음 시동을 건 지점으로 돌아오게 된다. 따라서 이를 고려하여 시동을 걸어야 한다.
비행기의 경우 Home Postion은 GPS가 고정된 지점이다. 따라서 비행기에서 RTL을 시행하면 GPS가 최초로 고정된 지점으로 돌아오게 된다. 따라서 RTL을 실행시켰을 때 돌아오도록 할 지점에서 비행기의 전원을 넣어야 한다.
Video : 다중 지점 미션 생성 및 저장
- Mission Planner -> Config/Tunning 에서 단위를 meter 로 설정
- Flight Plan 화면에 들어감
- 원하는 위치를 클릭하면 Waypoint가 생성됨. (비디오에서는 home Position이 나오지만 ...)
- 원하는 대로 추가한 뒤, 우측에서 Save WP File을 누르면 저장할 수 있음
Video : 이미 저장된 다중 지점 미션 파일 불러들이기
- Load WP File을 누르면 저장된 파일을 읽어들일 수 있음
- Connect 한 상태에서 Write WPs 를 누르면 곱터에 탑재됨
- Connect 한 상태에서 Read WPs 를 누르면 곱터에 현재 탑재되어 있는 Waypoint를 다운로드 받음
명령(Instructions)
아래 스크린샷에 있는 콥터 미션은 맨처음 자동 이륙하여 고도 20미터로 상승한다. 그다음 고도를 100으로 높이면서 WP 2로 향한다. 그다음 10초를 대기한다. 다음 WP 3으로 이동하고(고도를 50으로 낮추면서) 그다음 RTL을 수행한다. Default Height가 100이므로 RTL은 고도 100미터로 돌아간다. 이 지점에 돌아온 후 착륙하게 된다. 이 미션에서는 이륙지점이 Home Position 에 설정되었다고 가정한다.
여기에 추가로 Waypoint를 삽입하거나 다른 명령을 넣을 수도 있다. (자세한 내용은 아래에 있는 Mission Commands 항목 참조) 각각의 행에 있는 드롭다운 메뉴를 선택하면 원하는 명령을 선택할 수 있다. 설정한 명령에 따라 열의 제목이 변경된다. 경위도는 지도에서 클릭하면 변경된다. 고도는 상대적이다. 따라서 100을 설정하면 출발 지점을 기준으로 100미터 위로 상승한다.
Default Alt는 새로운 waypoint를 입력할 때 기본값으로 들어가는 값이다. 아울러 Hold Default ALT를 체크했을 경우, RTL(Return to Launch)를 실행했을 때 돌아오는 고도이다. Hold Default ALT를 체크하지 않았다면 RTL 명령이 내려지는 시점의 고도를 유지한다.
Verify Heights란 Google Earth 지형을 이용하여 실재 지형의 높이에 따라 각 지점의 높이를 조정하라는 의미이다. 따라서 Waypoint가 산위에 있을 경우 산의 높이만큼 기체의 높이가 더 높이 설정된다. 이를 이용하면 산과 충돌을 피할 수 있다.
미션 지정을 완료하면, "Write"를 누르면 APM으로 전송되어 EEPROM에 저장된다. "Read"로 불러들여보면 원하는 대로 저장되었는지 확인할 수 있다.
하드디스크에 미션 파일을 여러개 저장해 둘 수도 있다. "Save WP File"을 선택하면 된다. 이 파일은 "Load WP File"로 불러들일 수 있다.
유용한 팁
- Prefetch : 인터넷이 연결되지 않는 현장을 위해 미리 지도를 캐시로 담을 수 있다. Prefetch 버튼을 누르고 Alt 를 누른 상태로 원하는 사각형 범위를 지정하면 해당 지역의 위성영상이 저장된다.
- Grid : 원하는 사각형을 그리면 선택된 지역에 대해 자동적으로 waypoint를 생성하는 기능이다. 참고로 이 도구는 'island detection'을 수행하지 않는다. 즉, 큰 사각형 내에 작은 사각형을 그려도 작은 사각형 범위가 제외되지 않는다. (자세한 내용은 여기) 아울러 U 형태로 오목한 지역이 있어도 비행지역 내에 포함된다.
- 현재 위치를 home position으로 설정하는 것은 아주 쉽다. 위의 "HOME LOCATION"을 클릭만 하면 현재 위치로 설정된다. ???
- waypoint간의 거리를 측정하려면 한쪽에서 오른쪽 버튼을 클릭하고 "Measure Distance"를 선택한다. 그다음 다른 점에서 마우스 오른쪽 버튼을 클릭하고 "Measure Distance"를 다시 선택하면 다이얼로그에 거리 정보가 나타난다.
자동 그리드(Auto Grid)
Mission Planner로 하여금 자동적으로 임무를 생성하도록 지정할 수도 있다. 기체가 잔디깍이와 같이 촬영 대상지역을 전후좌우로 이동하는 지도제작과 같은 경우 유용하다.
이를 위해서는 먼저 Poligon을 선택하고 원하는 지역에 대해 박스를 그린다. 그다음 Auto WP -> Grid를 선택한다. 그다음 다이얼로그 박스에 고도와 간격을 입력한다. 완료하면 아래와 같은 임무를 생성한다.
Mission 명령
Mission Planner는 현재의 기종에 따라 적절한 Mission Commands를 제공하며, 사용자가 입력해야 할 파라미터에 따라 열의 제목을 바꾼다. 이러한 명령에는 waypoint 간을 이동하거나 인근에서 체류하는 네비게이션 명령, 특정한 행동(예 : 사진촬영)을 수행하는 DO 명령, DO 명령을 수행할 때 지정해야 하는 조건 명령 등이 있다.
ArduPilot 플랫폼에서 지원 하는 모든 mission commands 명령은 MAVLink Mission Commnand Messages (MAV_CMD)에 들어 있다. 여기에는 각각의 명령에 대한 전체 이름, 어떤 파라미터가 지원되는지에 대한 정보, 및 해당되는 Mission Planner 열 이름 등이 포함되어 있다.
참고 : Mission Planner에스는 전체 이름중 일부를 잘라만든 버전을 사용하고 있다. 예를 들어 MAV_CMD_NAV_WAYPOINT, MAV_CMD_CONDITION_DISTANCE, MAV_CMD_DO_SET_SERVO 등은 MIssion Planner에서 WAYPOINT/CONDITION_DISTANCE/DO_SET_SERVO 등으로 사용된다.
COPTER용 Mission Command 리스트도 있다.
미리 지도를 저장하는 방법
- 사각형을 그리고 마우스 우클릭 Prefetch를 누름.
- rip... 어쩌고 저쩌고가 나올때 No를 선택한 후 , ALT 사각형 그려줌. 그다음 perfetch.