'분류 전체보기'에 해당되는 글 10건

Dev/Drone

SITL(3) : 실행 및 파라미터


GUIDED 모드


이전 글에서 SITL 을 성공적으로 설치했다면 이번에는 시뮬레이터 속의 드론을 비행시켜 보자.

  • ardupilot/ArduCopter 으로 이동한 후에 아래 명령어를 입력한다. 
sim_vehicle.py -w --map --console

 




 위와 같은 화면 구성이 보일 것이다. 명령어를 실행시켰던 기존 콘솔에서 동작하는 프로세스가 MAVProxy 이다. MAVProxy 에 아래와 같이 명령어를 입력해 보자.

  • 모드를 GUIDED 로 설정한다.
mode GUIDED
  • 모터를 ARM 시킨다.
arm throttle

ARM 은 아두파일럿에서 '시동' 과 비슷한 의미라고 생각해 두면 좋다.

  • 이륙시켜 보자.
takeoff 100

console 에서 altitude 가 20 이 될 때까지 드론이 움직이는 모습을 볼 수 있다.

  • GUIDED 모드는 GCS 에서의 즉각적인 명령에 따르는 모드이다.  MAP 위에서 명령을 날려서 원하는 위치로 날려보자.




Auto 모드


ardupilot 의 mission 기반 자동 비행 기능으로, 'Autopilot'  이름값을 하는 모드이다. SITL 을 실행하고 MAVProxy 에 아래와 같은 명령어를 입력해 보자.

  • 미리 설정된 waypoint 들을 전송

    wp load ../Tools/autotest/copter_mission.txt
    




  • 위와 같이 map 에 waypoint 가 보일 것이다. 먼저 이륙을 시켜보자.

    mode guided 
    arm throttle 
    takeoff 20
    
  • 이륙 후에 모드를 Auto 로 변경하면, waypoint 를 따라서 비행이 시작된다.

    mode auto
    

sim_vehicle.py


sim_vehicle.py 는 아두파일럿의 빌드와 코드의 실행을 자동으로 Simulating & Testing 할 수 있는 스크립트이다.

아레는 sim_vehicle.py -h 을 실행했을 때 볼 수 있는 파라미터들에 대한 설명이다.

Options:
  -h, --help            show this help message and exit
  -v VEHICLE, --vehicle=VEHICLE
                        vehicle type (ArduPlane, ArduCopter or APMrover2)
  -f FRAME, --frame=FRAME
                        set aircraft frame type                      for
                        copters can choose +, X, quad or octa
                        for planes can choose elevon or vtail
  -C, --sim_vehicle_sh_compatible
                        be compatible with the way sim_vehicle.sh works; make
                        this the first option
  -H, --hil             start HIL

  Build options:
    -N, --no-rebuild    don't rebuild before starting ardupilot
    -D, --debug         build with debugging
    -c, --clean         do a make clean before building
    -j JOBS, --jobs=JOBS
                        number of processors to use during build (default for
                        waf : number of processor, for make : 1)
    -b BUILD_TARGET, --build-target=BUILD_TARGET
                        override SITL build target
    -s BUILD_SYSTEM, --build-system=BUILD_SYSTEM
                        build system to use
    --rebuild-on-failure
                        if build fails, do not clean and rebuild
    --waf-configure-arg=WAF_CONFIGURE_ARGS
                        extra arguments to pass to waf in its configure step
    --waf-build-arg=WAF_BUILD_ARGS
                        extra arguments to pass to waf in its build step

  Simulation options:
    -I INSTANCE, --instance=INSTANCE
                        instance of simulator
    -V, --valgrind      enable valgrind for memory access checking (very
                        slow!)
    -T, --tracker       start an antenna tracker instance
    -A SITL_INSTANCE_ARGS, --sitl-instance-args=SITL_INSTANCE_ARGS
                        pass arguments to SITL instance
    -G, --gdb           use gdb for debugging ardupilot
    -g, --gdb-stopped   use gdb for debugging ardupilot (no auto-start)
    -d DELAY_START, --delay-start=DELAY_START
                        delays the start of mavproxy by the number of seconds
    -B BREAKPOINT, --breakpoint=BREAKPOINT
                        add a breakpoint at given location in debugger
    -M, --mavlink-gimbal
                        enable MAVLink gimbal
    -L LOCATION, --location=LOCATION
                        select start location from
                        Tools/autotest/locations.txt
    -l CUSTOM_LOCATION, --custom-location=CUSTOM_LOCATION
                        set custom start location
    -S SPEEDUP, --speedup=SPEEDUP
                        set simulation speedup (1 for wall clock time)
    -t TRACKER_LOCATION, --tracker-location=TRACKER_LOCATION
                        set antenna tracker start location
    -w, --wipe-eeprom   wipe EEPROM and reload parameters
    -m MAVPROXY_ARGS, --mavproxy-args=MAVPROXY_ARGS
                        additional arguments to pass to mavproxy.py
    --strace            strace the ArduPilot binary
    --model=MODEL       Override simulation model to use

  Compatibility MAVProxy options (consider using --mavproxy-args instead):
    --out=OUT           create an additional mavlink output
    --map               load map module on startup
    --console           load console module on startup

대부분 default 로 놓아도 문제가 없지만, 중요한 파라미터는 다음과 같다.

  • --out : MAVProxy 에게 적용되는 파라미터로써, SITL 상에서 존재하는 드론과 연결할 GCS 혹은 다른 Application 의 Address 가 오면 된다.
  • --map : Vehicle 의 위치에 대한(GPS 좌표 기반) 지도를 표시한다. 이 화면을 이용하여 GUIDED 모드의 기능을 테스트하고 Vehicle 의 행동을 그래픽으로 대강이나마 관찰할 수 있다.
  • --console : Vehicle 에 대한 정보를 볼 수 있는 콘솔을 추가로 연다. 그렇지 않으면 기존 터미널에 출력된다.
  • -G --gdb : 디버깅 옵션을 추가한다.
  • -w --wipe-eeprom : eeprom (드론의 보조 기억장치) 를 지우고 시작한다. 사전에 설정된 Mission 등등이 삭제된다.

참고문헌



http://ardupilot.org/dev/docs/copter-sitl-mavproxy-tutorial.html

Dev/Hardware

IMU (Inertial Mesurment Unit, 관성측정유닛) 란?

IMU


IMU

IMU는 (Inertial Mesurment Unit, 관성측정유닛) 무인비행체(드론), 비행기, 인공위성 등의 기기의 내부에 들어가는 부품으로써 가속도계, 자이로스코프, 지자계를 이용하여 가속도와 회전율, 즉 관성을 측정, 3차원 공간에서의 움직임을 측정할 수 있게 해 주는 통합된 Unit 을 말한다. 방위각을 위해 자기장을 추가로 측정하기도 한다. 최근, 터널이나 실내 혹은 전자기 간섭이 있는 공간에서 GPS 신호의 수신에 문제가 있을 때 IMU 에서의 정보를 바탕으로 위치를 추측하는 기술이 네이비게이션과 같은 곳에서 유용하게 쓰이고 있다.

IMU 의 정보를 가지고 위치를 추측하는 기술을 Dead-Reckoning 이라고 부른다.

한글 위키 : 추측-항법

영문 위키 : Dead_reckoning

참고문헌 및 이미지 출처


https://en.wikipedia.org/wiki/Dead_reckoning

Dev/Drone

SITL(2) : 설치




환경


필자는 다음과 같은 환경에서 테스트 하였다.

  • Ubuntu 14.04 (Windows 10 에서 VM ware 를 이용)

설치

  • 아두파일럿 다운로드
sudo apt-get install git # git 이 설치되어 있지 않을 경우 
git clone git://github.com/ArduPilot/ardupilot.git
cd ardupilot
git submodule update --init --recursive
  • 필수 패키지 설치
sudo apt-get update 
sudo apt-get install python-matplotlib python-serial python-wxgtk2.8 python-wxtools python-lxml
sudo apt-get install python-scipy python-opencv ccache gawk git python-pip python-pexpect
sudo pip install future pymavlink MAVProxy
  • 환경변수 추가
export PATH=$PATH:$HOME/jsbsim/src
export PATH=$PATH:$HOME/ardupilot/Tools/autotest
export PATH=/usr/lib/ccache:$PATH

위의 코드를 ~/.bashrc 의 맨 밑줄에 추가해 준 후, 터미널을 껏다 켜거나 다음 명령어를 입력한다.

 . ~/.bashrc

실행


ardupilot 을 다운로드 받은 디렉터리로 이동한 후, 다음 디렉터리로 이동한다.

 cd ardupilot/ArduCopter 
 sim_vehicle.py -w --map --console

몇 분간의 빌드를 마치면 아래와 같이 아두파일럿 SITL 이 실행된다.



참고문헌



http://ardupilot.org/dev/docs/setting-up-sitl-on-linux.html

Dev/Drone

아두콥터의 모드(아두콥터의 기능)


아두파일럿을 이해하기 위해서는 비행 모드들에 대해서 이해해야 한다. 아두콥터에는 다양한 모드들이 있는데, 아두콥터는 이 모드에 따라 stablization, 자동 비행 등의 행동을 결정한다. 아두콥터의 비행 모드는 Radio(조종기), Ground Station 의 Command 등에 의해 컨트롤된다.

아두콥터에는 십여개의 모드가 있는데, 일반적인 상황에서 쓰이는 모드는 9개 남짓이다. 이 포스팅에서는 일반적으로 다루게 될 모드들에 대해서만 소개하였다.

아두콥터의 모드들


모드 이름 GPS Dependency
Loiter O
RTL(Return To Launch) O
Auto O
Guided O
Drift O
Pos Hold O
Circle O
Throw O
Stablize X
Alt Hold X
Acro X
Sport X
Land X

Stablize


Stablize 모드는 아두콥터의 기본 모드인데, 드론을 직접 조종할 때 쓰게 된다. Stablize 모드는 드론의 수평을 맟춰 주고 이동 중 현재 방향을 유지시켜 주며, 파일럿(조종하는 사람) 이 Throttle 을 완전히 제어할 수 있게 해준다.

Alt Hold




Alt Hold (Altitude Hold Mode) 는 yaw, pitch, roll 동작을 허용하면서 드론 고도를 일정하게 유지시키는 것이 목적이다.

RTL


RTL (Return To Launch) 모드에 진입하면, 드론은 HOME 으로 귀환한다. 15미터 미만이라면, 안전을 위해 15미터까지 상승 후 이동한다. 특별한 설정이 없는 이상 일반적으로 이륙 전 모터가 ARM 된 위치가 HOME 이 된다.

보통 조종기 혹은 GCS 와 연결이 끊겼을 때 자동으로 Failsafe (안전장치) 에 의해 이 모드가 자동으로 실행된다.

Auto


Auto 모드에서는 드론은 Mission Planner, APM Planner 2 등의 프로그램을 이용하여 사전에 전달받은 Mission Script 대로 행동한다. 드론에게 설정해 줄 수 있는 명령은 대표적으로 Takeoff, Waypoint, spin 등이다.

Guided


Guided 모드는 Ground Station (Mission Planner) 혹은 Dronekit 등을 이용한 어플리케이션의 명령을 받아 행동하는 모드이다. 드론 관련 어플리케이션을 제작하는 사람들에겐 이 모드가 가장 유용하게 쓰일 것이다.

외부로부터 이동 명령을 전달 받으면, 해당 위치로 이동한 후 다음 명령을 받을 때 까지 Hover 하며 기다린다.

참고문헌


http://www.arducopter.co.uk/all-arducopter-guides/arducopter-flight-modes

이미지 출처

http://ardupilot.org/copter/docs/flight-modes.html

다른 모드들에 대해서도 궁금하다면 위 문서를 보길 바란다.

Dev/etc.

Visual studio code 를 markdown 에디터로 사용해 보자


  

visual studio code

비주얼 스튜디오 코드는 마이크로소프트에서 개발한 chrome 기반의 코드 에디터이다. 

가볍고, 플러그인 개발이 쉬운 장점이 있으며 마이크로소프트의 지원을 받고 있다는 장점이 있다.

링크

Markdown 이란? : 문서작업의 생산성을 향상시키자!


Visual Studio Code




마크다운 문서를 편집할 때 결과물이 어떻게 보일 것인지 확인하면서 작성하면 편한데, 비주얼 스튜디오 코드 1.9 버전에서 Sync Markdown Preview 기능을 지원하게 됨으로써 특별히 플러그인을 깔지 않아도 마크다운 문서가 변경될 때 마다 Preview 를 동기화하여 실시간으로 보여주는 기능이 추가되었다. 한번 사용해 보자.






화면 오른쪽 상단에 Open Preview 버튼을 누른다. 





그러면 Preview 가 열린다. 




이제 Preview 가 열린 탭을 VS code 창의 오른쪽 끝 쪽까지 드래그 하면 화면을 분할하여 사용할 수 있게 된다. 






Copy Markdown as HTML : HTML 로 변환하기


작성한 마크다운 문서를 HTML 로 변환해야 할 필요가 있을 때가 있다. 가령, 티스토리 블로그에 마크다운으로 문서를 작성하고 싶을 때, 티스토리는 마크다운 문법으로 게시글을 쓰는것은 지원하지 않지만 HTML 편집을 지원 하므로 그러한 기능은 매우 유용할 것이다.

다음과 같이 플러그인을 설치한다.



위 플러그인을 설치하고 VS code 를 껏다 켠다. 



그리고 F1 을 눌러 바로가기 검색창을 열고 mark 나 copy 를 치게 되면 위와 같이 Markdown : Copy as HTML 항목이 보일 것이다. 

이것을 선택하게 되면 클립보드에 html 코드가 저장되게 되는데, 붙여넣고 싶은 곳에 가서 Ctrl + V 를 눌러주게 되면 ... 




위와 같이 Markdown 이 HTML 로 변환된 코드가 붙여넣어짐을 확인할 수 있다. 



'Dev > etc.' 카테고리의 다른 글

Markdown 이란? : 문서작업의 생산성을 향상시키자!  (2) 2017.02.03
Dev/etc.

Markdown 이란? (.md 확장자)






markdown 이란?

마크다운은 html 의 사촌 뻘 되는 언어로써, 일종의 문서 편집 도구라 할 수 있다. 마크다운 문법으로 작성된 파일은 md 확장자를 가진다. (.md) 


마크다운의 간단한 문법을 이용하면 Plain text 를 보기 좋게 꾸며줄 수 있다. 일반적으로 위키 편집, README 파일 등에서 사용된다.  백문이 불여일견이니, 예시를 보자.


 # markdown
 ---
from wikipidea, the free encyclopedia


 Markdown is a 
 [lightweight markup language](https://en.wikipedia.org/wiki/Lightweight_markup_language) with 
plain text formatting syntax  designed so that it can be converted to 
[HTML](https://en.wikipedia.org/wiki/HTML) and many other formats using a tool 
 by the same name. Markdown is often used to 
format [readme files](https://en.wikipedia.org/wiki/README), for writing 
 messages in online discussion forums, and to 
create [rich text](https://en.wikipedia.org/wiki/Formatted_text) using a 
 [plain text](https://en.wikipedia.org/wiki/Plain_text) 
[editor](https://en.wikipedia.org/wiki/Text_editor).

[markdown 으로 작성된 문서]




markdown



from wikipidea, the free encyclopedia

Markdown is a lightweight markup language with plain text formatting syntax designed so that it can be converted to HTML and many other formats using a tool by the same name. Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor.



[markdownd 에 의해 생성된 문서]





위의 첫 번째 코드가 아래의 문서로 변환된 것을 볼 수 있다. 보기에는 복잡해 보이나, 알고 보면 매우 간단한 문법이다.  

   이러한 마크다운 언어 등을 이용한 편집 환경과 반대되는 개념으로는 마이크로소프트의 Word, 아래아 한글로 대표되는 위지윅 이 있으니 참고하시길.



왜 마크다운을 사용하는가?


마크다운 언어를 이용하여 얻을 수 있는 가장 큰 장점은 바로 문서를 작성할 때 마우스에 손이 가지 않아 작업 능률이 현저히 빨라진다는 것이다.


 시간 내어 익혀 놓으면 문서 작업 효율을 매우 향상 시킬 수 있다. 아래에서 공부하기에 좋은 자료를 소개하겠다.



사실 마크다운 문법에도 자잘한 차이가 있는 여러 파생종이 있지만 하나를 골라 배워 놓으면 나머지도 적응하기 쉽다. 배워서 남 주나?


참고하면 좋은 문서




Github 마크다운 Syntax


티스토리에 마크다운 적용하기


Visual studio code 를 markdown 에디터로 사용해 보자!





참고문헌 영문 위키

'Dev > etc.' 카테고리의 다른 글

Visual studio code 를 markdown 에디터로 사용해 보자!  (0) 2017.02.05
Dev/Drone

아두파일럿 소스 분석(2) : 개요 


개요


아두파일럿에는 다음과 같은 하위 프로젝트들이 있다.

  • ArduPlane
  • ArduCopter
  • ArduRover
  • ArduSub(잠수함)


이 중에 드론(쿼드콥터)을 위한 프로젝트는 ArduCopter 인데, 가장 활발하게 참여가 이루어지는 프로젝트이기도 하다.  


먼저, 아두파일럿의 기본 구조를 살펴 보자.


[ardupilot 의 Layer 구조]





위 그림은 아두파일럿이 동작하는 드론의 구조를 고수준에서 간단하게 나타낸 다이어그램이다. 아두파일럿은 드론에서 OS 와 같은 역할을 한다. (어쩌면 드론의 OS 라고 생각해도 좋을지 모른다) 혹시 아래의 설명이 낮설고 이해가 가지 않는다면 OS 이론의 개요 부분을 읽고 오면 도움이 될 것이다.


그림 중간에 위치한 아두파일럿은 크게 Vehicle Specific Code, Shared Libraries, Hardware Abstraction Layer(HAL) 로 이루어져 있다.


그 중 가장 아래의 HAL 은 하드웨어를 추상화 하여 아두파일럿이 하드웨어에 독립적으로 동작하게 해 준다.(같은 아두파일럿 코드를 다양한 하드웨어 위에서 돌릴 수 있게 한다) 또한, 코드 내에서 HAL 객체를 통하여 하드웨어로의 접근을 제공해 준다.


Shared Libraries 는 아두파일럿 하위 프로젝트인 콥터, 플레인, 로버 등등이 공유하는 기능 혹은 Basic 한 기능들을 모아놓은 라이브러리를 제공해 준다. 예를 들면 GPS, Compass , accelometer, Math Library 등이다.


Vehicle specific code 가 바로 이 포스팅에서 분석할 부분으로, Vehicle 에 특화된 부분을 다룬다. 예를 들어 쿼드콥터의 비행 제어와 관련된 코드는 이 Layer 에 있다. 


MAVLink 는 일종의 통신 프로토콜로, 아두파일럿을 비롯한 Autopilot 시스템에서 정보, 커맨드를 주고 받는데 사용된다. Serial 통신, UDP, TCP, Telemetry 위에서 동작하는 Application Layer 의 프로토콜이다.  



가장 상위에는 Ground Station, DroneKit 등이 있는데 이 중 Ground Station 은 드론에게 미션 설정, 파라미터 설정, 드론 비행 로그 관리 외에도 잡다한 기능을 제공하는 프로그램이다.  대표적으로 APM Planner 2 가 있다. 


Dronekit 은 아두파일럿과 상호 협동할 컴퓨터 위에서 API를 제공하는 플랫폼인데, Android, Python, Cloud (Restful api), IOS(Comming soon) 가 있는데 현재 프로젝트가 잘 활성화 되어 있는 것 같지 않아 보이고 (Github 을 봤을 때) 이 중 필자의 경험으로는 Android 와 Python 은 쓸만 한 것 같다.



참고 : 

https://en.wikipedia.org/wiki/MAVLink


http://qgroundcontrol.org/mavlink/start


http://dronekit.io/



Dev/Drone

Ardupilot 코드 분석(1) : 사전 준비



이 포스팅을 수월하게 이해하기 위해서는 독자에게 요구되는 수준은 다음 질문에 대답할 수 있어야 한다

  • git 이 무엇인지 아는가?
  • Linux 환경의 경험이 있는가? 
  • C++ 코드를 읽을 수 있다.(이것만 가능해도 된다.)

사전 준비




가장 중요한 아두파일럿의 코드는 아래의 Github repo에서 구할 수 있다.


https://github.com/ArduPilot/ardupilot/



각자 익숙한 C++ 환경 (Eclipse, Vim & Ctags, Clion ... ) 에서 코드를 분석하기를 바란다.


장인은 도구를 탓하지 않지만, 굳이 Nodepad 로 소스를 분석하는 장인은 없을 것이다.


가능하면 Navigation 기능이 있는 환경에서 코드를 분석하도록 하자. 

. 코드 분석에는 Navigation 기능이 크게 도움이 되기 때문이다. (Find Usage, Go to Declaraton 등등) 학생 혜택 등으로 라이센스가 있다면 CLion 을 추천하지만, 상황의 여의치 않다면 Eclipse 등을 사용해도 무방하다.



CLion 


공식 Wiki Eclipse 환경세팅법



필자는 Ubuntu 14.04 환경에서 Clion 으로 에서 작업하였다. 아래는 Clion 에서의 간단한 코드 분석 환경(빌드는 X) 설정법이다.




Clion 에서 코드 네비게이션 기능 적용시키기





import Project from Source 를 클릭한다. 




본인의 아두파일럿 프로젝트가 있는 디렉터리를 선택하고 OK 를 누른다. 



ArduCopter 디렉터리와 Libraries 디렉터리를 위와 같이 Project Sources and Headers 로 지정해 주면 아래와 같이 Code Navigation 기능을 이용할 수 있게 된다. 







[ardupilot] 아두파일럿 소스 분석(2) : 개요


Dev/Drone

SITL 개요

SITL 이란?

SITL 이란 Software-In-The-Loop 의 줄임말으로써, Ardupilot 코드를 PC 와 같은 Linux 머신 위에서 빌드 및 테스트 해 볼수 있는 시뮬레이션 프로그램이다.

SITL 을 이용하면 다음과 같은 점을 기대해 볼 수 있겠다.

  • Hardware 에 종속적이지 않게 Vehicle specific code 를 Testing 할 수 있다
  • Physical 하지 않은 function 들을 안전하게 test, Debugging 할 수 있다.(즉, 드론이 덜 추락할 것이므로 돈을 아낄 수 있다.)
  • 실제 드론, 즉 하드웨어가 없어도 아두파일럿을 빌드하고 실행되는 모습을 가볍게 볼 수 있으므로 편리하다 그러나 다음과 같은 한계도 지닌다. *실제 비행 제어 (Physical) 의 동작은 신뢰할 수 없는 시뮬레이터의 한계를 가진다.


[SITL 의 Architecture]

아두파일럿 코드를 SITL 을 target 으로 빌드하게 되면, 리눅스 실행 바이너리인 .elf 형태로 빌드된다. 이것을 실제로 실행해 보면 아래와 같이 실행된다. 코드를 빌드하고 매개변수를 전달하여 실행하는 과정은 스크립트로 자동화 되어 제공되는데, 뒤에서 자세히 다루겠다.

아래 스크린샷은 SITL 을 실행한 모습이다.

[SITL 이 실행되는 모습]



[ardupilot][SITL] SITL(2) : 시뮬레이터 설치


Dev/Drone

아두파일럿 이란?

아두파일럿은 아두이노 + Autopilot 의 줄임말으로, 다양한 하드웨어 환경의 Vehicle 에 탑재될 수 있는 오픈소스 autopilot system 이다.(대표적으로 Quad Copter 에는 ArduCopter 가 들어간다.) 일반적으로 드론에게 기대할 수 있는 기능들을 제공하며, 눈여겨 볼 만한 특징으로는 GPS 기반으로 미션을 설정하여 자동 비행을 할 수 있다는 점이다. 이를 응용하면 다양한 활용 방안을 생각해 볼 수 있다. 대표적으로 공식 홈페이지의 Use Case & Application 을 살펴보면 아래와 같은 mission 을 수행하며 촬영한 카메라로 3D Mapping 을 하는데에 활용되는 모습을 볼 수 있다.

{: .center-image} [드론에게 위와 같이 waypoint 를 가지는 mission 을 설정할 수 있다.]

[드론을 이용하여 제작된 3D 이미지]


아두파일럿 공식 홈페이지

공식 홈페이지에서는 아두파일럿에 대해 친절하게 설명되어 있다.

최근 들어 드론의 활용에 관한 연구와 개발이 많이 이루어 지는데 오픈소스인 Ardupilot 을 이용하는 경우가 많다. (어른의 사정) 나는 아두파일럿을 공부하는데에 자료가 풍족하지 않아 공부하는데에 고생을 했다. 그렇다. 그래서 이 포스팅에 공부한 내용을 정리하기로 했다. 


 이 포스팅에서는 아두파일럿의 대표적인 하위 프로젝트인 아두 콥터에 대해서 살펴본다. 

아두파일럿을 공부하기에 앞서, 아두파일럿이 탑재된 드론이 있다면 가지고 충분히 조작해 보고 관찰하기를 바란다. 어느 분야나 그렇듯이, 코드를 분석하기 위해서는 코드의 동작을 먼저 관찰하는 것이 이해에 수월하다.

이 포스팅은 공식 사이트의 wiki 를 참고하였다.



1
블로그 이미지

IT & Computer Science

빨간호랑이