단청장인드론

cdc wiki
이동: 둘러보기, 검색

프로젝트 개요

기술개발 과제

국문 : 자율주행과 페인팅을 할 수 있는 드론을 만드는 프로젝트
영문 : Making Autonomous Painting Drone 

과제 팀명

단청장인드론

지도교수

김성환 교수님

개발기간

2018년 3월 ~ 2018년 6월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 2010920004 김명건(팀장)

서울시립대학교 컴퓨터과학부 2010920053 이현우

서울시립대학교 컴퓨터과학부 2011920026 서양훈

서울시립대학교 컴퓨터과학부 2013920028 박 솔

서론

개발 과제의 개요

개발 과제 요약

◇ 자율주행 페인팅드론을 이용하여 안전하고 효율적인 단청작업 수행을 목표로 하며, 폭넓게는 드론

   을 이용하여 기존 도색 작업의 인명사고 위협을 해소한다.

개발 과제의 배경

◇ 사람과 드론의 협업을 통해 인명사고를 방지하고, 도색작업의 효율을 높이고자 한다.

- 페인트작업의 추락사고 피해를 줄일 수 있다. - 페인트 유독물질 중독 위험을 줄일 수 있다. - 사람이 접근하기 어려운 위치에 드론을 투입하여 도색 작업을 보다 용이하게 수행할 수 있다. - 사람의 도색 작업 일부를 드론이 보조함으로써 공정 효율을 개선할 수 있다.

개발 과제의 목표 및 내용

◇ 다음과 같은 기능별 목표를 설정하고 이를 달성하는 것을 목표로 한다.

- 드론 자율주행 : 수동 조작 없이 드론이 스스로 자율 비행을 한다. - 목표위치 인식 : 카메라 장비를 이용하여 도색 작업을 수행할 목표 위치를 인식한다. - 호버링 : 목표위치에서 안정적인 정지비행을 수행한다. - 도색 실시 : 목표위치에 사용자가 입력한 데이터를 토대로 도색을 실시한다.


관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황

◇ 자율주행

   - 미국 기반의 스타트업 '스카이디오(Skydio)'가 출시한 'Skydio R1'로 선보인 기술
     → 내비게이션용 카메라가 실시간 촬영한 데이터로 드론 자신의 위치를 측정
     → 주변 지도를 작성하는 SLAM(Simultaneous Localization and Mapping)과 AI 플랫폼 NVIDIA Jetson 적용
     → 이 기술들 덕분에 드론은 딥러닝 기술로 끊임없이 정확한 비행을 스스로 예측
◇ 목표 인식 
   - SIFT (Scale-Invariant Feature Transform) 알고리즘 
     → 이미지의 크기와 회전에 불변하는 특징을 추출하는 알고리즘. 서로 다른 두   이미지에서 SIFT
        특징을 각각 추출한 다음에 서로 가장 비슷한 특징끼리 매칭해주면 두 이미지에서 대응되는
        부분을 찾을 수 있다는 것이 기본 원리다.
◇ 호버링
   - PID 제어
     → P(비례), I(적분), D(미분)의 3항 동작을 조합시켜서 사용하는 제어 방식
        초음파센서와 기압센서를 바탕으로 고도제어를 하고 자이로/가속도센서를 바탕으로 자세제어를 구현한다.
   - 비전센서
     → 최신 드론은 비전센서 포함(비디오카메라). 비디오를 찍고 이미지 분석하여 장애물 유무 판단.
  • 특허조사 및 특허 전략 분석
◇  Systems and methods for unmanned aerial painting applications
    - https://patents.google.com/patent/US20160082460 
◇  Mobile computing device-based guidance navigation and control for unmanned aerial vehicles and robotic systems
    - https://patents.google.com/patent/US9611038B2/en
  • 기술 로드맵

Roadmap.png

시장상황에 대한 분석

  • 경쟁제품 조사 비교
◇ Florida소재 Apellix사의 Worker Bee

- 집이나 선박에 도색 가능(추후)

- 화학약품 분사 기능(해충 구제 / 제빙용도)

- 3층까지의 낮은 건물들만 도색 가능.

- 유선 조종(컨트롤러 및 페인트도료 전달 호스)


◇ Florida소재 Apellix사의 Kitty Cat

- 레이져 포인터 추적 비행

- 수동 조종이 아닌 자동으로 포인터를 인식 및 추적


 * 마케팅 전략 제시
◇ 인명사고를 방지할 수 있다는 점을 강조하여 홍보한다.
◇ 단청장인이나 도색작업하는 사람들에게  시간을 효율적으로 쓸 수 있다는 점을 홍보하여 수익을 낼 수 있다.
◇ 로봇과 기존 인력간의 협업 사례 소개
  - “누구의 일자리도 빼앗지 않는 도장 로봇“  http://www.irobotnews.com/news/articleView.html?idxno=13105

개발과제의 기대효과

기술적 기대효과

◇ 자율주행기술을 다양한 분야에 적용하려는 시도가 여기저기서 발생하고 있다. 드론을 활용하여 페인팅 역할을 하는 드론은 아직 찾아보기 힘들지만 미래에는 자율주행과 영상인식을 통해서 다양한 분야에서 드론뿐만 아니라 로봇이 활용될 수 있을 것으로 기대한다.

경제적, 사회적 기대 및 파급효과

◇ 로봇과 사람의 협업을 통한 작업의 효율성 증대
◇ 인력사고 방지
◇ 로봇과 전통기술의 접합으로 문화재 보존 및 홍보효과, 
◇ 첨단기술과 전통의 상생 비전 제시

기술개발 일정 및 추진체계

개발 일정

내용

구성원 및 추진체계

김명건

Ÿ - 드론 장비 조사 / 선정

Ÿ - 회의 일정 알림

이현우

Ÿ - 드론 장비 수입 및 조립

Ÿ - 시험 비행(Calibration 등) 수행

서양훈

Ÿ - 자율주행, 페인팅 세부 알고리즘 설계 및 구현

Ÿ - 단청의 기본 문양 데이터화 및 입력

박  솔

Ÿ - 단위 및 통합 테스트 계획 수립

Ÿ - 페인팅 결과 수치화 및 분석, 피드백

설계

설계방향

- SITL : Software In The Loop 방식 이용

- Gazebo Simulation을 이용해서 단청장인드론의 자율주행기능 개발.
- http://www.modulabs.co.kr/index.php 참고하여 설계 
+ HITL : Hardware In The Loop 방식 이용
+ DJI F450 드론 제품 조립(자세한 제품 사항은 견적서참고)
+ Pixhawk2와 edison을  탑재하여 자율주행되는 SprayPainting / VideoStreaming 기능 개발 

개발환경

 # Simulation(-)                         
+ ubuntu 16.04 LTS    
+ ROS kinetic
+ Gazebo 7,9
 # Drone(+)  
- Windows10
- Intel Edison (ROS Kinetic)
- Flytos v1.41, v1.56
- Yocto Linux 3.10.98 Pocky version 
- Px4, AutoPilot
- QGroundControl

개념설계안

◇  구조도
   
 Simulation 구조도

위 그림과 같이 SITL은 MAVLINK라는 통신 프로토콜을 통해서 simulator에 연결한다. 이것이 기본적인 세팅이고 SITL은 PX4에 들어있는 기능 중에 하나이기 때문에 위 그림에서 SITL을 PX4로 생각하고 simulator를 gazebo라고 생각하면 된다.

 - Pixhawk : 라즈베리파이로부터 데이터를 전달받고 드론을 조종한다.
   Pixhawk는 독립적이고, 오픈된 하드웨어 프로젝트이며, 취미나 상업에 모두 이용될 수 있는 저가-고효율 오토파일럿 하드웨어(Flight Controller)를 제공한다.
 - 라즈베리파이3 B+ : 자율주행 소프트웨어를 탑재할 PC역할을 한다. 
 - Px4 : PX4는 두 개의 층으로 이루어져 있는데, PX4 flight stack과 PX4 middleware로 이루어져 있다. PX4 flight stack은 오토파일럿 소프트웨어이며 PX4 middleware는 일반적인 robotics에 사용되는 middleware입니다.
 - Mavlink : ROS와 PX4 사이에서 mavros로 통신할 때의 통신규격이다.
 - Mavros : ROS와 PX4 사이에서 다리 역할을 한다.
 - ROS : node간의 메시지 통신 ( 참고 : http://cafe.naver.com/openrt/2468 )
  * 마스터 : 노드들 사이의 메시지통신에서 연결 정보를 관리하고, ROS를 사용하기 위해서 제일 먼저 구동해야하는 필수 요소이다. 다음과 같이 "roscore"라는 실행 명령어로 ROS 마스터는 구동된다. 마스터는 노드간의 접속을 위하여 노드들의 이름, 토픽 및 서비스의 이름, 메시지 형태, URI 주소 및 포트를  등록받고, 요청이 있을 경우 이 정보를 다른 노드에게 알려주는 역할을 한다.
 * 구독자 노드 :  "rosrun" 및 "roslaunch" 라는 실행 명령어로 구동된다. 구독자 노드는 구동과 함께 마스터에 자신의 구독자노드이름, 토픽이름, 메시지형태, URI 주소 및 포트를 등록한다. 마스터와 노드는 XMLRPC 를 이용하여 통신하게 된다.
 * 발행자 노드 : rosrun 및 roslaunch라는 명령어로 구동된다. 


Drone 시뮬레이션


드론 시뮬레이션.png



위 그림을 설명하자면, 일단 왼쪽에 있는 ROS가 Control Center라고 생각하면 된다. 

attitude, local_position, acceleration, actuator_controls 등의 명령을 입력하면 mavlink형태의 메시지로 명령이 px4로 전달되 px4가 motor를 control하고 센서데이터들은 반대로 mavros를 통해서 ros로 전달이 된다.


 - Mission Planner
   * Google 지도/Bing/Open street 지도/사설 WMS를 사용하여 웨이포인트를 지정
   * 드롭 다운 메뉴에서 임무를 선택
   * 임무 로그 파일 다운로드 및 분석
   * 기체 APM의 환경 설정
   * 완전한 UAV 시뮬레이션 시험을 위한 PC 비행 시뮬레이션 인터페이스
   * APM 직렬 터미널에서 출력 확인
 - Python 
   * OS independent
   * 인터프리터식
   * 객체지향적
   * 동적 타이핑 대화형 언어
- Pixhawk2
   * Pixhawk1의 기본 기능 계승
   * 모듈식 설계로 carrier board 선택이 유연
   * 100% RTK GPS 사용가능, 표준 다중 GPS
   * 3중 중복 IMU System
   * 절연, 완충 및 온도 제어 IMU

Dronepythonmp.jpg

드론 유저는 Ardupilot의 MP(Mission Planner) 프로그램을 이용하여 지도상에 웨이포인트를 
설정, 드론의 비행 경로를 정할 수 있다. 또한 이와는 별도로 python 스크립트를 보드에
탑재하여 스크립트 상의 명령을 수행하게 할 수 있다.

평가 및 분석

◇ 평가기준
 * 시뮬레이션 평가
  1.  안정적 이륙 
  2.  목표 위치 이동
  3.  호버링 안정성
  4.  안정적 복귀 여부
  5.  안정적 착륙
  6.  입력좌표와 실제좌표간의 오차
 * 활용도 평가 – 실제 현장 업무에서 활용될 수 있는가?
* 실제 드론 평가 (O/X)
  1.  실패 - 자율주행 기능 없음      
  2.  실패 – 명령스크립트 실행 실패     
  3.  성공 – Pixhawk2 Cube기본제공
  4.  성공 – Pixhawk2 Cube기본제공
  5.  성공 – Pixhawk2 Cube기본제공
  6.  Pixhawk2 Cube - GPS 제공하는 유효범위 내에서의 측정 불가
 * 활용도 평가 – 실제 현장 업무에서 활용될 수 있는가?

상세설계 내용

부품도

1. 드론 기체

품명 이미지 내용
1pairs 12*4.5 1245 Self-locking Propeller Prop CW/CCW for RC F450/550 X525 Multicopters (white) Propeller.jpg 프로펠러
DYS-D3536-910KV-1000KV-1250KV-1450KV-2-4S-Brushless-Motor Motor.jpg 모터
Brushless Motor
[ESC] Lumenier 30 amp ESC w/ SimonK AutoShot Firmware ESC.jpg 변속기
배터리에서 받은 전기에너지를 조절하여 모터 속도 제어
F450 frame Frame.jpg 프레임
[TR] F450/550 Landing Skid Set (White) Skid.jpg 지지대


2. FC(Flight Controller)

FC.jpg

Pixhawk PX4 2.4.8 Flight Controller 32 Bit ARM PX$FMU PX4IO Combo for Multicopters(32비트 ARM Px4DMU 멀티 채널용) : 안정적인 비행을 위해 신호를 조종해 주는 컴퓨터, 감지된 신호를 분석하여 기체가 안정적인 자세를 유지 혹은 원하는 비행이 가능하도록 변속기에 신호를 보내는 역할


3. 배터리

Battery.jpg

[F450/550겸용]4500mAh 11.1V 30C : FC와 모터 전력 공급


4. GPS 모듈

Gps.jpg

Global Positioning System 으로 해당 모듈을 이용하여 드론 자신의 위치를 알 수 있고,  비행좌표를 설정하거나 안전하게 Return to Base 기능 수행


5. 수신기

Receiving.jpg

조종기와 통신을 위한 장치


6. 파워 모듈

Power.jpg

FC 등 낮은 전압 요구, 적은 전력을 소모하는 장치들에 적합한 전력을 공급하기 위한 강압기능 장치


7. 라즈베리파이

Ras.jpg

ROS의 자율주행 소프트웨어(Mavros)를 탑재할 PC역할


시뮬레이션 드론 스펙
- 3DR IRIS+ Drone
PX4에서 제공하는 시뮬레이션상의 드론
Autopilot

hardware

Pixhawk
Firmware APM:Copter 3.1
GPS 3DR uBlox GPS with Compass (LEA-6H module, 5 Hz update)
Telemetry radio 3DR Radio Telemetry V2 (915 mHz or 433 mHz)
Motors 850 kV
Propellers 10x4.7 SF puller type, counterclockwise rotation (2)

10x4.7 SFP pusher type, clockwise rotation (2)

Battery 3 cell 11.1 V 3.5 Ah lithium polymer
Low battery voltage 10.5 V
Minimum voltage 9.9 V 3 cell (13.2 V 4 cell)
Maximum voltage 12.6 V 3 cell (16.8 V 4 cell)
Payload capacity 425 g
Radio range 1 km
Flight time 10-13 minutes


실제 드론 스펙
Autopilot

hardware

Pixhawk2 Cube
Firmware Px4
Battery 3S~4S LiPo
Motors 2312E Motor 2200mAh
Power Module APM 2.6 2.5 2.52 Power Module With 5.3V DC BEC
Flight Time 9분
Payload Capacity 1422g
Propeller 10 X 3.8inch; 8 X 4.5inch
Frame Weight 282g (비행최대중량 : 1500g)
Diagonal WheelBase 450mm


실제 드론 부품
* Pixhawk2 the Cube
* Intel Edison
* 2312E Motor
* E SERIES 430 LITE ESC 
* 프레임 적색,흰색
* 9450 CW/CCW 프로펠러
* 기본 Landing SKid
* ZOP Power 11.1V 4500mAh 3S 45C Lipo Battery XT60 Plug(배터리)
* Upgraded RadioLink AT9-R9DS R9DS 2.4GHz 9CH DSSS Receiver For AT9 AT10 Transmitter(리모콘 신호 전달)
* HP WebCam3110
* OTG Cable(used for connecting between pixhawk and camera)


소프트웨어 설계

A.usecase

Usecase.jpg


B.Activity Diagram

Activity.jpg


C.Putty

가상단말기 프로그램으로서 Telnet, SSH, Rlogin 등 다양한 방법을 제공하고 edison과 Console PC간의 원격통신을 제어할 수 있는 프로그램

Putty1.jpg Putty2.jpg

1. 푸티를 사용하는데 필요한 설정 및 기능 목록
2. 원격 서버 ip 기재란
3. 원격 서버의 접속 포트 기재란
4. 원격 서버로 접속할 방식을 지정하는 곳으로 방식에 따라 3번의 접속 포트가 달라진다.
5. 원격 서버 목록으로 자주 사용하는 서버 설정들을 이곳에 저장하고 불러올 수 있다.


D.FlytOS

FlytOS는 Flytbase의 소프트웨어 프레임워크이다.  Linux와 ROS기반으로 만들어졌으며 상업적인 드론 Application 개발 및 연구를 위한 이상적인 플랫폼이다. Flytos는 adapter layer를 이용해 호환되는 드론과 상호작용이 가능하며, ROS, CPP, Python, Rest, 그리고 WebSocket에서 FlytAPI로 상호작용할 수 있다.

Flytos.jpg

  • FlytConsole
FlytConsole은 WebApplication으로써 드론을 조종하기 위해 calibrate, monitor, command, control할 수 있도록 인터페이스를 제공한다. 또한 사용자가 미션을 계획하는 GCS를 제공하고 비행중에 미션을 감시하는 Flight Inspector도 제공한다. 드론에 Edison Wifi를 잡아서 Putty로 Edison Wifi로 접속하여 드론을 제어할 수 있다.

Flytconsole.jpg

  • FollowMe
Visual Follow Me 는 onboard web app으로서 FlytOS와 함께 제공된다.

Flyt API를 이용하여 Video Streaming을 통해 받은 영상을 분석하여 물체를 추적하면서 비행할 수 있도록 하는 기능을 제공한다.

Followme1.jpg Followme2.jpg

  • DemoApp
Flytos는 개발자들에게 Custom drone 앱을 만들 수 있도록 여러 가지 언어를 제공하는데, 우리 1조는 제공하는 기본 python앱 demoApp.py로 시도하였다.

Demoapp.jpg


자재소요서

자재소요계획

Material.jpg

* OTG cable
* Servo Motor
* HP3110 WebCam 3110
* Remote Controller(AT9S)

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

프로토.jpg
프로토타입 사진

포스터

없음

관련사업비 내역서

멀티미디어 연구실에서 지원 받은 주요 드론 부품에 관한 내역
드론내역.jpg
팀 자체적으로 충당한 관련 부품에 관한 내역
자비충당.jpg

완료작품의 평가

내용

향후계획

1. Intel Edison에 연동, Video Streaming 을 위한 Cam 장비를 'HP HD-3110' 에서 'Microsoft Lifecam Studio' 로 변경하여 장착할 것.

2. Intel Edison에 ROS setup

3. Servo Motor를 드론에 연결하고, RC 리모컨에 채널을 설정, 동작 여부 확인.

4. (추가) 3D 프린터를 이용, 스프레이건 맞춤 지지대(arm) 설계 및 제작.

특허 출원 내용

특허 출원 내역/예정 없음