2018년 11월 22일 목요일

사용해본 드론용 FC

여태까지 써봤던 드론용 FC에 대해서 간략히 느낀 점을 정리합니다.

2012년
1.  MFC
네이버카페도 있고 외국제품에 대한 두려움이 앞서, 처음 사용해봤던 제품입니다.
결론만 말씀드리면  PID잡다가 1년 보냈습니다.
당시 출시되던 드론용 FC들은 자세제어에 필요한 PID값을 수동으로 설정해야했습니다.

2번의 원인모를 추락 이 후 바로 apm으로 넘어갔습니다.

장점 : 음..
단점 : 비행 신뢰성 부족. 비쌈.
활용범위 : 스파르타식 드론 맛보기
특이사항 : 업무에 끌고나갈 자신감이 결코 생길 수가 없었음.

2013년 ~
2. APM계열 Ardupilot
지금이야 dji가 압도적이지만 초기는 apm과 나자는 대결구도에 있었다고 봐야죠.
펌웨어는 중단되었지만 보드 자체는 지구촌공장이라 불리는 중국에서 싼값에 꾸준히 제작 판매되고 있습니다.

장점 : 안정적
단점 : 복불복 품질, 펌웨어 제공 중단(3.2.1에서 중단됨), 이동시 고도침하발생. 최신정보를 얻기위해서는 영어공부를 해야함.
활용범위 : 중급반 드론 활용을 위한 제품(미션 플라잉, gps, 소나센서, 짐벌사용 등등)
특이사항 : 업무비행 중 추락 없었음.

3. APM계열 miniApm
드론 초기 사이즈대결로 나가던 분위기가 레이싱드론이라는 250급의 소형드론으로 관심이 확장되면서 기능은 동일하되 크기가 작아진 FC들이 대거 출현하였습니다.
miniApm의 경우 소형드론용 FC가 아니라 그냥 소형FC여서 250급에 처음 적용했을 때 이해가 되지 않는 pid값을 설정해야했습니다.
지금은 제가 업무에 활용하는 250급 드론의 메인 FC로서 2년여 전에 맞춘 세팅값으로 지금도 훨훨 잘 날아댕기고 있습니다.

장점 : 안정적
단점 : 레이싱용 FC는 아님. 이동시 고도침하발생.
특이사항 : auto tune을 하기위해 일단 띄워야 되는 것이 제일 어려운 일이었음. 외국 커뮤니티 다니면서 간신히 비스무레한 값을 일단 세팅하고 나서야  auto tune비행이 가능했음.
업무비행 중 추락없었음.

4. APM계열 pixhawk
apm의 큰 계열안에서 하드웨어의 개선이 많이 이루어진 제품이었습니다.
ardupilot과 후반기를 공유하였던 제품으로 ardupilot의 중단이후 지금은 apm계열의 주 제품입니다.
기능개선이 상당히 빠르게 이루어지고, 가격이 여타 FC에 비해 고가입니다.
초기펌웨어의 경우 확장칼만필터 오류로 추락도 여러 번 했던 기체라서, 크게 기능을 확장하지 않는 비행이라면 ardupilot으로 충분하다고 여겨, 몇 번 만들어보고 창고에서 쉬고 있습니다.

장점 : apm계열의 주종목 제품으로 꾸준한 기능개선, 추가장비의 확장성
단점 : apm에 비해 고가. 베타펌웨어의 무시무시함. 이동시 고도침하발생.
활용범위 : 소스 커스터마이징을 통해 무언가 고급진 데이터를 얻어야 하는 드론 비행을 원하는 분들.

4. 레이싱드론용 CC3D
mini apm를 구입했을 때 함께 구입했던 FC입니다.
이건 말 그대로 레이싱드론용이어서 pid세팅없이도 250사이즈에 장착해서 띄우면 아주 안정적으로 떴습니다. 단 초기 버전은 gps 확장이 안되는 제품이어서 업무활용성이 없었으므로 재미삼아 만들어서 놀다가 창고로 보냈습니다. 이후 gps연동이 되는 버전이 있다는 것을 알았지만 이미 mini apm이 충분히 제역할을 하고 있는 상태라 다시 꺼내보지는 않았습니다.

장점 : 소형기체에 상당히 안정적.
단점 : 당시 gps나 짐벌 확장이 제대로 구현되지 않았음.
활용범위 : 레이싱용드론, 아크로바틱한 비행을 원하시는 분.

5. 기타
틸트드론을 만들어보기위해 레이싱용드론 FC중에 틸트를 지원하는 것들을 구입했는데 거기에 맞는 틸트 프레임의 품질이 개판이라 하다가 중단했습니다.

비록 만들지는 못했지만 틸트용 드론의 장점이라고 여겨지는 부분은
1. 기체의 기울어짐이 적은 상태로 비행한다는 점.
   - 일반 드론은 기체를 기울여서 전후진을 합니다. 그러면 아무래도 공기의 저항이 커지죠. 전면에는 바람의 저항이 커지고 후면에서는 와류로 인한 진동이 발생합니다. 진동은 FC의 자세제어와 짐벌에 꾸준한 보정을 요구합니다.
   - 그러나 틸트드론은 모터를 기울여서 비행을 하기에 기존 드론에 비해 기체가 기울어지는 범위가 상당히 줄어드므로, 비행 중 저항이 작아지면서 진동이 적어집니다. 비행성이 좋아지겠죠.

아직도 호시탐탐 틸트드론을 만들겠다는 생각은 있습니다. 언젠가는 만들어봐야죠.




2018년 11월 13일 화요일

photoscan으로 3d 지형 만들어본 것

주 업무가 측량이 아니다보니 이런 작업을 직접 할 일은 없지만, 시간이 남아서 한 번 해보았습니다.

2년여간 동고동락한 드론입니다.
드론 제작 초기에는 크면 좋을 줄 알고,
거기에 이것저것 기능을 추가하면 더 좋을 줄 알고!!!
800사이즈까지 만들어가지고 다녔는데,

뭐든 용도에 맞는게 좋다는 걸 깨닫고 한뼘정도 크기에 필요한 기능만 넣어서 가지고 다니게 되었습니다.

경관검토서 등을 작성할 때 걸어다니면서 촬영할 경우도 있지만, 20~50미터정도만 띄워놓고 대상지 한바퀴만 돌리면, 대상지 파악이 한결 수월해집니다. 사진촬영도 동시에 진행하니 사무실에서 다시 확인하기도 편합니다.

다시 본론으로 돌아와서.
foxeer legend2를 3초 간격으로 자동 촬영되도록 (auto mode) 설정하고
짐벌을 지면과 수직이 되도록 각도를 조절해준 뒤 일정 영역을 비행하고 착륙하였습니다.

촬영할 때는
1. 가급적 주변부 왜곡이 적은 카메라를 사용할 것
2. 대상지경계보다 더 넓은 면적을 비행할 것
3. 지형지물을 충분히 고려하여 낮게 비행할 것
4. 가급적 많이 촬영할 것
을 고려해야합니다.

실제 사진은 140여장 정도 되는데 일부만 보여드렸습니다.

액션캠의 경우 화각이 넓다보니 주변부 왜곡이 심합니다.

참고로, 실제 측량을 목적으로 장비들은 고해상도 디카에 고정밀 gps를 사용합니다.
(고해상도디카 - 짐벌 커짐 - 기체커짐 - 모터커짐 - 변속기커짐 - 배터리커짐 ->> 무겁고 비싸짐.)


이미지의 주변부 왜곡이 심할 수록 최종 결과물의 지형도 주변부로 갈 수록 왜곡이 심해집니다.

또한 부지경계를 많이 벗어나도록 비행을 해야 대상지에 대한 오차를 줄일 수 있습니다.

암튼 요렇게 촬영된 이미지를 앞서의 포스팅내용을 따라서 GEOTAGGING을 해주신 뒤에
PHOTOSCAN을 실행시키고 메뉴바의 work flow메뉴대로 하다보면 작업은 끝나게 됩니다.

처음부터 좋은 결과를 얻겠다는 욕심에 단계마다 고사양을 요구하는 옵션을 체크하게 되면 하세월입니다. 일단은 가장 낮은 옵션 'lowest'로 작업을 하면서 전체적인 형태부터 검토한 뒤, 퇴근할 때  highest로 설정하고 퇴근하세요. 출근하면 되어있을 겁니다.

최대한 빠른 결과를 얻기위해 모든 옵션을 low로 설정하고 작업을 완료한 결과입니다.

뭐 그럭저럭 지형이 나오기는 합니다. 주변부 왜곡이 심하다보니 대상지 경계부에 마커를 설정하였습니다. 그렇게해서 왜곡을 줄여도 이 정도밖에 안나옵니다.

결과물이 나오면 이를 dem이나 shp나 geotiff 등으로 익스포트하여 원하는 용도로 사용가능합니다.

BUT!!!

정말 위의 결과물이 실제 좌표와 맞는지 gis관련 프로그램에서 geotiff를 불러서 해당 등고와 비교해보았더니 오차가 납니다. 이미지 전체가 약간 뒤틀린 듯한 결과를 보입니다.

아래 이미지 보시죠.

가운데 선명한 이미지가 photoscan으로 만든 dem이고 주변 정사각형은 vworld의 위성사진입니다. 주변도로의 위치나 시설위치에서 확실히 오차가 발생합니다. (오차 수정은 gis프로그램이라면 기본적으로 가지고 있으니 조금의 수고를 들이면 오차는 줄일 수 있습니다.)

이미지뿐만 아니라 dem값도 차이가 납니다.
그래서 측량을 목적으로 할 경우 도근점이나 해발고도를 정확히 알 수 있는 곳을 촬영지 주변이나 내부에 표시해놓고 촬영을 하게됩니다. 그래야 전체적인 높이를 맞출 수 있죠.


결론.
전문장비를 보유한 업체에 맡기자.


다음엔 드론만들고 사용해보면서 느꼈던 점을 정리 좀 해봐야겠군요.

2018년 11월 7일 수요일

apm기반 드론촬영이미지로 3d 지형모델링 하기 1 (준비)

드론 만들어 사용한지 4년이 넘어가는 중입니다.

요즘이야 워낙 중국발 드론이 독점하다시피해서 만들어 쓰는 일이 의미가 없죠.

250사이즈 드론 만들어서 mini-apm 장착, 펌웨어는 픽스호크가 아니다보니 3.2.1에서 멈추었습니다. 요 근래 3.6까지 올라왔습니다.

최근 dji 드론은 카메라 일체형이라 촬영이미지에 geotagging이 기본적으로 마킹되어 3d 생성 프로그램에서 불러다 쓰기만 하면되지만, 자작 드론의 경우 카메라의 촬영사진에 드론좌표의 값이 입력되지 않습니다. 실시간 geotagging시켜주는 모듈이 있는데 20만원이 훌쩍 넘는 것이더군요.



요즘 날씨도 꾸물거리고 드론도 방치해둔 상태라 한 번 꺼내어 보았습니다.

드론 FC를 받쳐놓은 충격흡수용 젤이 굳어 부스러지기 시작했더군요.

손좀 보고 다시 들여놓을까하다가 생각난 김에 geotagging을 해보았습니다.

현장 조사용 foxeer legend2에 저장된 예전 사진을 하드에 저장하고

fc에 접속해 모든 로그파일을 다운받았습니다.


1. 미션플래너에서 ctrl+f로 숨겨진 메뉴창을 띄웁니다.

2. 왼쪽 맨 위에 있는 'Geo ref image'를 클릭합니다.

3. '가상 참고 이미지'라고 어색하게 한글화된 창이 뜹니다.

4. '로그검색'으로 사진촬영된 시간의 로그파일을 불러옵니다.

5. '사진검색'으로 해당 사진들을 불러옵니다.

6. '오프셋추산'를 클릭하여 첫번째 사진의 exif 촬영시간과 gps 처음기록 시간과의 오차를 추산합니다.
11:00에 드론에 전원을 넣으면 그때부터 gps는 작동을 시작하고 사진촬영을 11:03분에 시작할 경우 '오프셋추산'을 자동으로 하게되면 180이라는 오프셋값이 나옵니다. 이렇게 되면 촬영한 위치에서 180초 정도 오차가 나는 geotagging이 되버립니다. (자동으로 오프셋추산을 하는 경우는 드론에 전원을 넣는 순간 gps와 사진촬영이 자동으로 시작되는 경우에 사용되는 방법으로 생각됩니다. )

이 방법은 gps초기 구동시간부터 첫 촬영이미지의 exif값을 비교하여 오차를 추산하는 방법이므로 추천하지 않고, 카메라를 컴퓨터 초단위의 시간을 촬영한 이미지를 확인하여 정확한 시간과의 오차를 계산하여 그 값을 오프셋란에 입력합니다. 제 경우 컴퓨터의 초시계를 촬영했을 경우 컴퓨터 시간은 11:59:57초인데 legend2가 12:00분00초에 exif값이 저장되면 오프셋값을 3을 넣어줍니다.)


7. 결과값이 나오면 그 값을 '오프셋 추산'란에 입력하고 '전처리'버튼을 클릭합니다.

8. 전처리가 끝나면 'Geo Tag 이미지'버튼을 눌러 촬영좌표와 고도값을 exif사진에 입력시킵니다.

======================= 요기까지가 mission planner에서 수행할 것들입니다.

위와 같은 geotagging 이미지를 얻기위해 사전에 준비해야할 것이 있습니다.

1. mission planner에서 비행 중 fc에 고도값과 좌표값을 기록하도록 설정해야합니다. 그래야 로그파일에 해당 값들이 저장이 되겠죠.

2. 드론에 매달려 있는 카메라의 시간을 핸드폰 시간과 일치시킵니다.

=============================

나머지 작업은 해당 이미지를 포토스캔(메타쉐이프)이나 글로벌매퍼에서 불러들여 올리는 작업을 하면 끝입니다. (정히 할 일 없으면 동영상이나 만들어봐야겠네요.)

2018년 10월 23일 화요일

global mapper에서 vworld 주제도 사용하기

글로벌매퍼는 wms등을 정확히 지원하지 못하는 관계로

qgis에서 vworld주제도를 불러와서 이를 이미지로 저장한 뒤 글로벌매퍼로 가져와야함

qgis에서  pdf로 주제도를 변환할 경우  글로벌매퍼에서는 상하반전이 되는 문제가 있음.


1. qgis에서 주제도 불러오기

2. 프린트레이아웃으로 새로운 레이아웃을 만들고

3. generate world file를 체크하고 이미지파일로 만들어서 불러오면 됨.

2018년 5월 12일 토요일

Q-Gis 3.0이상에서 Vworld 위성맵, 기본맵 등등 불러오기

안녕하세요.

이번엔 Vworld 주제도가 아닌 위성맵, 기본맵, 하이브리드맵 등을 불러오는 것을 알려드립니다.

Vworld의 주제도와 위성맵 정도만 있으면 웬만한 보고서 작성에 많은 도움이 되겠네요.


준비물은 Vworld 사용코드만 있으면 됩니다.

주의사항 : 좌표계를 EPSG:3857로 설정하고 불러내야 합니다. 실시간 좌표계도 수시로 확인해야합니다.

1. Qgis 실행합니다.
------화면생략---------

2. 레이어 - 레이어추가 - wms/wmts레이어추가
-------화면생략----------

3. '새로 생성' 클릭하면 아래와 같은 창이 뜹니다.

"명칭"란에는 '브이월드 위성맵' 이라고 적으시면 되겠네요. 원하시는 명칭으로 적으시고

"URL"란에는
http://api.vworld.kr/req/wmts/1.0.0/키값/WMTSCapabilities.xml
해주시고 키값에 사용코드를 입력하고 "확인"버튼을 누르면 끝입니다.

아주 간단하죠.





4. 자 그럼 테스트를 해보겠습니다. 분석에 필요한 shp파일을 불러옵니다.




5. 이제 Vworld 위성맵을 불러옵니다.
레이어 - 레이어추가 - wms/wmts레이어추가를 하시면 아래와 같은 창이 뜨는데,
레이어탭 바로 밑을 보시면 지난 번에 추가했던 주제도와 지금 추가한 위성맵을 선택할 수 있도록 되어있습니다.

지금 추가한 위성맵을 선택한 뒤 "연결"을 누르면.....




6. "타일셋"탭으로 변경되면서 선택할 수 있는 지도 리스트가 나옵니다.
총 5개의 지도를 선택할 수 있습니다. 아무것이나 불러보면서 테스트해보세요.
저는 base맵레이어를 선택하고 '추가'버튼을 클릭하겠습니다.

'추가'버튼을 누르고난 뒤 닫기를 해야 창이 닫힙니다. 멍하니 창닫히기를 기다리지마세요.




7. 베이스맵이 불러졌습니다.
확대해서 경계가 잘 맞는지 봐야겠죠?
네..한치의 오차도 없이 잘 맞습니다.

이만 줄입니다.

Q-Gis 3.0이상에서 Vworld 주제도 불러오기

안녕하세요.

매일 작업결과물만 올리다가 팁도 올리게 되었네요.

사실 Q-gis는 별로 쓸 일이 없어서 그냥 설치만 해놓고 이런거 저런거 성능확인 정도만 해보다가  TMS korea가 갑자기 안되니까 왠지 다른 방법이 없나 테스트 좀 해보다가 알게 되었습니다.


Qgis가 3.0대로 업데이트되면서 우리나라 온라인맵 불러오기가 힘들어졌죠.

새로운 플러그인이 나오기 전까지는 이렇게 사용하는 것도 나쁘지 않으리라 생각합니다.

우선 Vworld API를 사용하기 위한 사용코드는 각자 준비하셔야합니다.

공간정보 오픈플랫폼 개발자센터 - 브이월드  <--- 참고하세요.



사용코드와 도메인을 받으셨으면..시작합니다.

주의사항 : 좌표계를 EPSG:3857로 설정하고 불러내야 합니다. 실시간 좌표계도 수시로 확인해야합니다.(버전이 업데이트되면서 변화됩니다. 다양하게 시도해보세요)


1. Q-gis 를 실행한 모습입니다.





2. '레이어' - '레이어추가' - 'WMS/WMTS 레이어추가' 를 실행합니다.




3. 아래와 같이 '데이터소스관리자 WMS'라는 창이 뜨면, '새로 생성'을 클립합니다.




4. '새로 생성'버튼을 클릭하면 아래와 같은 창이 뜹니다.




5. 이제 명칭에 Vworld라고 적어주세요. 원하시는 이름으로 적으시면 됩니다.
URL은
http://api.vworld.kr/req/wms?key=키값&domain=도메인
위와 같이 입력하시면 되는데,
Vworld API를 사용하기 위해 받은 키값도메인값을 입력하시고 '확인'버튼을 클릭하세요.
(키값과 도메인값에 " '를 사용하실 필요없습니다. 값 그대로 적으시면 됩니다.)




6. 자, 이제 Vworld의 주제도를 다운받을 준비는 끝났습니다. 이제 분석에 필요한 shp파일을 불러들입니다.




7. 다음으로 Vworld에서 지적도를 불러오도록 합니다.
"레이어 - 레이어추가 - WMS/WMTS 레이어추가"를 하시고 , 창이 뜨면 "연결"버튼을 클릭합니다. 그러면 아래와 같이 주제도 리스트가 생성이 됩니다. 해당 주제도 중 지적을 찾아서 아래의 추가버튼을 클릭합니다.





8. 지적은 확대해서 보셔야 확인할 수 있습니다.  Zoom-In하여 확대해보시면 아래와 같이 지적을 확인할 수 있습니다.
(주제도에 따라 확대, 축소시에 보이는 것들이 있으니 화면에 아무것도 나타나지 않으면 확대 축소를 해보세요.)


다른 것들도 불러봤는데 잘 불러와집니다.

분석하시는데 조금이나마 도움되시길 바랍니다.

편집이나 디자인과는 감수성이 멀어 그림과 기본텍스트로만 제공해드렸습니다. 양해바랍니다.

다음은 Vworld의 위성맵, 기본맵 등을 불러오는 것을 정리해서 알려드리도록 하겠습니다.