crazyflie2 code reading subak.io

Similar documents
SW

1 SW

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

¿ÀǼҽº°¡À̵å1 -new

실감미디어 제작 전문인 과정 1기 결과보고서

untitled

Smart Power Scope Release Informations.pages

Microsoft Word - DCMD-1000 사용자 메뉴얼.docx

알아 둘 사항 아이오드 제조사는 본 기기에 하드디스크를 포함하여 출고하지 않습니다. 따라서 하드디스크에 문제가 발생할 경우, 구매처 또는 해당 하드디스크 서비 스센터에 문의 하시기 바랍니다. 정해진 용도 외의 사용으로 발생한 문제에 대해서, 당사는 어떠한 책임도 지지

ori r24, 0x03 ; Modify 하고, out PORTD, r24 ; Write 한다. 위예는명령이하나실행된다음, 나머지명령이실행되기전에 Interrupt가발생할수있기때문에 non-atomic Operation 이다. 다음의시나리오는 2개의 Task가 PORT

근대문화재분과 제4차 회의록(공개)

DSP_MON 프로그램 메뉴얼

서보교육자료배포용.ppt

untitled

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

<4D F736F F D D53324C BBE7BFEBC0DA20BCB3B8EDBCAD5FBCB3C4A15F>

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

hd1300_k_v1r2_Final_.PDF

00Àâ¹°

00Àâ¹°

2 전개과정 지도계획 주기 주제 활동 방법 및 내용 성취수준 주제발현 브레인스토밍 유목화 1 한식 알아보기 요리법 연구하고, 학고역할분담 조리 계획하기 생명과 음식 영화감상하기 생명과 음식 토론하기 한식 식사예절 알아보기 6 음식 주제발현, 브레인스토밍, 유

untitled

2. Deferred Interrupt Processing A. Binary Semaphores를이용한동기 (Synchronization) i. Binary Semaphores는 Interrupt가발생하였을때특정한 를 Unblock 하는데사용할수있다. 이러한기능은 In

Microsoft Word - FS_ZigBee_Manual_V1.3.docx


untitled


EBhostW_SerialOutputProtocol_rev10b_ (2002).hwp

LCD Monitor

슬라이드 1

도큐멘트3

슬라이드 1

ƯÁý2-~27pš

YD-3533.xls

차례 사용하기 전에 준비 및 연결 간편 기능 채널 관련 영상 관련 음성 관련 시간 관련 화면잔상 방지를 위한 주의사항... 4 각 부분의 이름... 6 제품의 설치방법 TV를 켜려면 TV를 보려면 외부입력에 연결된 기기명을 설정하려면..

K&R2 Reference Manual 번역본

untitled

Microsoft Word - USB복사기.doc

lecture4(6.범용IO).hwp

Interstage5 SOAP서비스 설정 가이드

LCD Monitor

Microsoft Word be5c docx

칼 럼 1 하버드대에 부는 컴퓨팅 교육 열풍 김진형 소프트웨어정책연구소 소장 최근 하버드대학의 컴퓨터과학 입문 과목인 CS50강좌가 화제다. 이 번 학기에 820명의 수강생이 몰려 하버드 대학에서 가장 인기 있는 강 좌로 등극했다. 한 동안 인기를 누리던 마이클 셀던

歯기구학

歯동작원리.PDF

untitled

(SW3704) Gingerbread Source Build & Working Guide

KELP 스터디

DIB-100_K(90x120)

LCD Monitor

2016년도 본예산 일반회계 총무과 세 출 예 산 사 업 명 세 서 부서: 총무과 단위: 지방행정역량 강화 읍면 명칭변경에 따른 공인 제작 350,000원 * 25개 8, 공공운영비 47,477 29,477 18,000 문서자료관 유지보수비 2,000,000

0.1-6

Microsoft Word - Installation and User Manual_CMD V2.2_.doc

<C0E7B7AEB1B3C0E72DC5E5C5E5C6A2B4C2BFA1B3CAC1F6C0FDBEE02DBFCFBCBA2E687770>

부서: 감사담당관 정책: 행정의 투명성 제고 단위: 민원발생사전예방 1)민원심의위원 수당 70,000원*9명*3회 1, 업무추진비 5,800 5, 시책추진업무추진비 5,800 5, )민원심의 업무추진 250,000원*4회 1,000

슬라이드 제목 없음

전자교탁 사양서.hwp

삼성955_965_09

정답-1-판매용

Orcad Capture 9.x

PowerPoint 프레젠테이션

airDACManualOnline_Kor.key

제품 소개 및 특징 제품 사용 시 주의사항 본 제품은 차량 사고 발생시의 영상과 음성을 저장하여 사고 원인을 분석하는데 도 움을 주는 차량용 영상 기록 장치입니다.! 본 제품은 개인적인 용도로만 사용하여야 하며, 사용설명서에 명시된 사 항 외에 다른 목적으로 제품을 사

歯DCS.PDF


레이아웃 1

부서: 기획감사실 정책: 지방행정 역량 강화 단위: 군정운영 및 의회협력 행정협의회 분담금 20,000,000원*1식 20, 행사운영비 2,000 2,000 0 행정협의회 지원 2,000,000원*1식 2,000 의원상해 지원 36,000 36,

¸íÁö-³»-07.4¿ù-1

사용설명서를 읽기 전에 사용설명서를 읽기 전에 아래 사항들을 확인하세요. 안전을 위한 주의사항에 사용되는 아이콘 경고 아이콘 명칭 의 미 주의 경고 지시사항을 위반할 경우 사람이 사망하거나 중상을 입을 가능성이 있는 내용 경고 주의 주의 지시사항을 위반할 경우 사람이

< C6AFC1FD28B1C7C7F5C1DF292E687770>

<B1B3C8C620B1B3B0A12E687770>

EP-B-P407 [변환됨].eps

歯표지_통합_.PDF

<4D F736F F F696E74202D20C1A63134B0AD202D20BBE7BFF8BCF6BFCD20C8B8C0FC>

GLHPS-D

2 목차 3 안전을 위한 주의 사항 3 제품 설치 시 주의사항 4 전원 및 AC 어댑터 관련 주의사항 6 제품 이동 시 주의사항 6 제품 사용 시 주의사항 7 화면 잔상 시 주의사항 7 제품 청소 시 주의사항 9 라이선스 18 사용자 설정 18 메인 메뉴 활성 19 사

슬라이드 제목 없음

I What is Syrup Store? 1. Syrup Store 2. Syrup Store Component 3.

Application TI-89 / Voyage TM 200 PLT application. application, application. APPLICATIONS :, N. 1. O application. 2. application : D C application,. a

Flute-GR_BV199_DOS.indb

KR

untitled

차례 보기 기본 기능 4 사용하기 전에 6 제품 분실 시 피해 방지 설정 7 구성품 확인 8 각 부분의 이름 3 배터리 8 Nano-SIM 카드 0 전원 켜기/끄기 터치 화면 4 홈 화면 30 잠금 화면 3 알림창 34 문자 입력 37 화면 캡처 37 애플리케이션 실행

Avaya G700 Media Gateway 하드웨어 설치의 빠른 시작

3 Gas Champion : MBB : IBM BCS PO : 2 BBc : : /45

282서비스업관리-마트

<4D F736F F F696E74202D20C0BDBCBA484D4920C0FBBFEB20C5DAB7B9B8C5C6BDBDBA20B4DCB8BBB1E228B9DFC7A5C0DAB7E129>

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

컵드론 펌웨어 분석

사용 설명서 이용 안내 사용 설명서의 내용은 제품의 펌웨어 버전에 따라 사용자에게 통보 없이 일부 변경될 수 있습니다. 사용 설명서는 Windows XP 환경을 기준으로 설명하고 있으며 사용자의 OS 환경에 따라 다소 차이가 있을 수 있습니다. 제품에 사용된 음원, W

00829A_SHR-6164-KOR.indb

PowerPoint 프레젠테이션

< F FBEF0B7D020BAB8B5B520B9DFC3E92E687770>

Microsoft PowerPoint )사용설명서_U_A-목차.ppt

Product Brief Manual

슬라이드 1

Microsoft PowerPoint - es-arduino-lecture-03

°ø°³¼ÒÇÁÆ®-8È£

VZ94-한글매뉴얼

Transcription:

crazyflie2 code reading subak.io 2015-06-04

Drone Drone? : D.Camp 5F C : 2015. 6. 4 ( ) 7 ~ 8

Drone Drone SW Drone SW

5 OpenSource Drone 5 Drone Source Code Review 35 10 5

OpenSource Drone 5 ArduPilot // diy drones, 3DR PX4,APM HobbyKing KK CC3D (openpilot) Naze32(SW: MultiWii, Baseflight and Cleanflight) FPV crazyflie

crazyflie https://wiki.bitcraze.io/projects:crazyflie2:index crazyflie 2.0 MCU stm32f405, 4 dc, 4 led, mpu9250 9 (G+A+M), usb. nrf51822(bluetooth4.0) FreeRTOS :, CRTP (Crazyflie Radio Trasport Protocol)

Drone Source Code Review 35... :, -> <-. https://github.com/bitcraze/crazyflie-firmware

Drone Source Code Review.... 3. Boot (Drone ) Control (Loop) Comms ( )

Boot 10

Drone Source Code Review: Boot,, main() -> systemlaunch() ->!systemtask() systeminit() ->! configblockinit(); workerinit(); ledseqinit(); pminit(); comminit() ->! syslinktask usblinkinit(); radiolinkinit(); syslinkinit();! crtpinit(); commanderinit(); crtpregisterportcb(crtp_port_commander, commandercrtpcb); stabilizerinit(); ->!stabilizertask motorsinit(); imu6init(); sensfusion6init(); controllerinit(); workerloop(); // log, neopixel

Drone Source Code Review: FreeRTOS xtaskcreate() xqueuesend() xqueuerecieve() xsemaphoretake() xsemaphoregive() vtaskstartscheduler()

Drone Source Code Review: Boot 0 https://github.com/bitcraze/crazyflie-firmware :. ( init/main.c ) 3

Drone Source Code Review: Boot 1 :? canstartmutex? canstartmutex = xsemaphorecreatemutex(); xsemaphoretake(canstartmutex, portmax_delay); xsemaphoregive(canstartmutex);

Drone Source Code Review: Boot 2 : roll, pitch, yaw, thrust? struct CommanderCrtpValues { float roll; float pitch; float yaw; uint16_t thrust; } attribute ((packed));

Drone Source Code Review: Boot 3 stabilizerinit() imu6init (Inertial Measurement Unit:, mpu9250)+ ( ms5611) sensfusion6init controllerinit!

Control 15

Control: stabilizertask. stabilizertask() crazyflie. : stabilizertask(). (...) 3

Control Commander: (Roll Pitch Yaw, Thrust). SensorFusion:. Stabilizer:.

Drone Source Code Review: Commander Roll, Pitch, Yaw thrust. commandergetrpy(&eulerrolldesired, &eulerpitchdesired, &euleryawdesired); commandergetthrust(&actuatorthrust);

Drone Source Code Review: SensorFusion ( ) + ( ) ( (Quaternion)) sensfusion6updateq(gyro.x, gyro.y, gyro.z, acc.x, acc.y, acc.z,fusion_update_dt); (q0, q1, q2, q3) Quaternion (radian) sensfusion6geteulerrpy(&eulerrollactual, &eulerpitchactual, &euleryawactual);? x,y,z.

Drone Source Code Review: stabilizer // 250hz tick: RPY( ), RPY(Commander)-> RPY( RATE) controllercorrectattitudepid( eulerrollactual, eulerpitchactual, euleryawactual, eulerrolldesired, eulerpitchdesired, -euleryawdesired, &rollratedesired, &pitchratedesired, &yawratedesired ); // every tick: pid update controllercorrectratepid(gyro.x, -gyro.y, gyro.z, rollratedesired, pitchratedesired, yawratedesired); controllergetactuatoroutput(&actuatorroll, &actuatorpitch, &actuatoryaw); // update motor! distributepower(actuatorthrust, actuatorroll, actuatorpitch, -actuatoryaw);

PID: - - aka Proportional Integral Derivative controller?,,. ( ),,.

Crazyflie Stabilizer

Comms 10

Comms Commander UART (BLE) Link (Radio Link)

Drone Source Code Review: Commander commandercrtpcb(crtppacket* pk)! : commandercrtpcb?

Drone Source Code Review: UART(from BLE) crtprxtask(void *param) :!link->receivepacket(&p)?

Drone Source Code Review: Link (Receive) radiolinkreceivecrtppacket(crtppacket *p) : crtppacketdelivery?

Drone Source Code Review: Link radiolinksyslinkdispatch(syslinkpacket *slp) : radiolinksyslinkdispatch? static void syslinkrouteincommingpacket(syslinkpacket *slp) static void syslinktask(void *param)

Drone Source Code Review: Commander SmartPhone -> Drone NRF51822(BLE ) UART CRTPPacket STM32. syslinktask() -> syslinkrouteincommingpacket() -> radiolinksyslinkdispatch() -> radiolinkreceivecrtppacket(crtppacket *p) -> crtprxtask(void *param) -> commandercrtpcb(crtppacket* pk) commandergetrpy() Roll, Pitch, Yaw.!stabilizerTask()

CRTP 0xaa 0xaa 0x30 0x0e 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x3e 0xaa 0xaa: preamble 0x30: commander 0x0e: data size 0x00 0x00 0x00 0x00: roll 0x00 0x00 0x00 0x00: pitch 0x00 0x00 0x00 0x00: yaw 0x00 0x00 0x00 0x00: thrust 0x3e: checksum

Drone Source Code Review n Crazyflie Module :. 5. ls crazyflie-firmware/modules/src/ comm.c crtp.c info.c param.c sensfusion6.c commander.c crtpservice.c log.c pid.c stabilizer.c console.c expbrd.c mem.c pidctrl.c system.c controller.c exptest.c neopixelring.c platformservice.c worker.c

10