25
Innovative Drone Research: Bridging the Gap between Hardware and Simulation Simon D. Levy Washington & Lee University Israel Robotics Conference 9 August 2019

Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

Innovative Drone Research:

Bridging the Gap between

Hardware and Simulation

Simon D. Levy

Washington & Lee University

Israel Robotics Conference

9 August 2019

Page 2: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

Part I: Hardware

Page 3: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

Part I: Hardware

Firmware

Page 4: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

Principle #1:

What I Cannot Build, I Do Not

Understand

R. Feynman (1918-1988)

Page 5: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

ArduPilot: ~2,000,000 lines of code*

Cleanflight: ~850,000

Keep It Simple, Stupid!

**

view-source:https://dojofordrones.com/

Page 6: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

Principle #2:

Cost Control

$200 $15

Page 7: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

Principle #3:

Bottom-Up / OOP Design

https://github.com/simondlevy/Hackflight/blob/master/examples/Ladybug/DSMX/DSMX.ino

Page 8: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

https://github.com/cleanflight/cleanflight/blob/master/src/main/flight/mixer.

c

Page 9: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

Principle #4:

Cross-Platform Component

Reusability

Page 10: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

Github or GTFO!

Page 11: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

Principle #5:Separate the Drivers from the Algorithms

https://github.com/simondlevy/Hackflight/blob/master/src/board.hpp

Page 12: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

https://github.com/bitcraze/crazyflie-firmware/blob/master/src/modules/src/kalman_core.c

Page 13: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

https://online.husson.edu/software-development-cycle/

Principle #6:

It Always Has to Fly

Page 14: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

https://online.husson.edu/software-development-cycle/

Principle #6:

It Always Has to Fly

Page 15: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

STEAL TEST COMMIT

SIMPLIFY

Page 16: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

Part II: Simulation

Page 17: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

2016

STM32 drivers

Page 18: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE
Page 19: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

2018

UnrealEngine4Arduino drivers Firmware

Page 20: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

Part III: Current Work

Page 21: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE
Page 23: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE
Page 24: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE
Page 25: Innovative Drone Research: Bridging the Gap between ...K[KC STATE DIM]; arm matrix instance f 32 *Hm, float error, float stdMeasN0ïse) 1, (float KC STATE DIM, KC STATE DIM, KC STATE

The only thing more dangerous than

a computer scientist with a soldering

iron is an electrical engineer with a

compiler.

─ Anonymous

Final Thoughts