Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint -...

34
Accessible Aer Lilian de Greef, Brad Nick Berezny, Cal Malen Sok, Cal P special guest star! Stev rial Autonomy? d Jensen, Kim Sheely l Poly Pomona '12 Poly Pomona '13 ve Matsumoto, HMC '12

Transcript of Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint -...

Page 1: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Accessible Aerial Autonomy?

Lilian de Greef, Brad Jensen, Kim Sheely

Nick Berezny, Cal Poly Pomona '12

Malen Sok, Cal Poly Pomona '13

special guest star! Steve Matsumoto, HMC '12

Accessible Aerial Autonomy?

Lilian de Greef, Brad Jensen, Kim Sheely

Nick Berezny, Cal Poly Pomona '12

Malen Sok, Cal Poly Pomona '13

special guest star! Steve Matsumoto, HMC '12

Page 2: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Motivation

Key lesson: Neither all drones programmers – are created equal

Neither all drones – nor all are created equal

Page 3: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Question

Does the ARDrone

effective

ARDrone make an

effective robot?

Page 4: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Question

Does the ARDrone

effective

Raw material:Raw material:

Goal: accomplish tasks with the drone, the

create, and computer vision

• closed hardware

• but an open, ASCII API

• two cameras

• internal sensing (gyro/accel.)

ARDrone make an

effective robot?

accomplish tasks with the drone, the

create, and computer vision

Page 5: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

blind-enord.py

pydrone

ROS ~ Robot Operating System

libardroneARDronemsg

srv

arnetwork

too low level for our needs

enord.py

OpenCV

FLANN for nearest neighbors

Other ROS facilities

Robot Operating System

libardrone

arnetworkgeneric API/framework

too low level for our needs

Page 6: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Several tasks tried...

(0) Room/hallway flying

(1) Cooperating with the Create

(2) Navigating among landmarks

(3) Localization without landmarks

(4) Room/hallway flying(4) Room/hallway flying

(1) Cooperating with the Create

(2) Navigating among landmarks

(3) Localization without landmarks

i

Page 7: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Task 1: Follow that !

Image processing approach:(1) threshold image to find dark regions and contours

(2) circle? compare region with min. enclosing circle

(3) rectangle? compare region with min. enclosing rect.

(4) filter noise, find centers, and construct heading line

We put a ! on the Create to • help discern location

• help discern orientation

(1) threshold image to find dark regions and contours

compare region with min. enclosing circle

compare region with min. enclosing rect.

(4) filter noise, find centers, and construct heading line

Page 8: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

! finding

Page 9: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

GCER!

Page 10: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

GCER cooperation demoGCER cooperation demo

Page 11: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Lessons learned

• The ! was far from a perfect landmark

• We wanted to use something more robust that

could give us more accurate pose estimation

• We decided to explore April Tags...• We decided to explore April Tags...

The ! was far from a perfect landmark

We wanted to use something more robust that

could give us more accurate pose estimation

April Tags...April Tags...

Page 12: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

APRIL tags

Autonomy, Perception, Robotics,

Java-based landmark library from U.

We integrated it into ROS using Python's

an example tag in the center...

obotics, Interfaces, and Learning

landmark library from U. Michigan

using Python's os.system call...

provides full 6 DOF pose and scale

Page 13: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

APRIL tags' scale range

an example tag in the center...

APRIL tags' scale range

provides full 6 DOF pose and scale

Page 14: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Task 2: The Hula-hoop hop

Getting from

A to B A B

hoop hop

Page 15: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Task 2: The Hula-hoop hop

getting from point A to point B

hoop hop

getting from point A to point B

Page 16: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Hula-hop's state machine

all transitions can also be made by the keyboard

hop's state machine

all transitions can also be made by the keyboard

Page 17: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Hula-hop demo

sliding-scale autonomy scale autonomy is crucial

Page 18: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Hula-hop challenges

Drone challenges:

• drift ~ not easily positionable

• connection ~ video freezes

• artifacts ~ image stream noise

APRIL tag challenges:

• too narrow a field of view: height/scale tradeoffs

• call to APRIL library is slow (.5 second/image)

• unmodifiable environments?

Could we do without

~ image stream noise

too narrow a field of view: height/scale tradeoffs

call to APRIL library is slow (.5 second/image)

without tags?

example encoding (?) artifact

Page 19: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Localization without tags?

SURF features

• locally unique image patches

• fast libraries for extraction

• each SURF feature is described

by a 64- or 128-dimensional by a 64- or 128-dimensional

vector that encodes size and

local edge orientations

• in general, similar descriptor

vectors are likely to be similar

(or identical) image features

Localization without tags?

locally unique image patches

each SURF feature is described

in general, similar descriptor

SURF features are great for

place-recognition training!

Page 20: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Localization plan?

new image map images + matches

Mapping (by hand)

• collect images and positions

• extract & store SURF features

Localization

• take a new image• take a new image

• extract SURF features

• match them against the map

• estimate a pose distribution

map images + matches

Page 21: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Image-based map...

four locations in the NW corner of Sprague

Locations with

stored images == stored images ==

nodes in a graph

four locations in the NW corner of Sprague

Page 22: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Image-based map...

beside the kitchen, facing roughly Wbeside the kitchen, facing roughly W

Page 23: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Image-based map...

beside the boardgames, facing roughly N, facing roughly N

Page 24: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Live localization

top three matches and their likelihood distribution plotted on the maptop three matches and their likelihood distribution plotted on the map

Page 25: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Demo...

Page 26: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Results

Simply counting the # of matches did not

yield good localization results:

< 25% of correct locations

< 10% of correct orientations< 10% of correct orientations

simple image

Simply counting the # of matches did not

yield good localization results:

< 25% of correct locations

< 10% of correct orientations< 10% of correct orientations

matches m

Σ

simple image-match score

1

Page 27: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Other scoring systems...

... and filters

weights features inversely

proportional to their SURF

distance

... and filters

bidirectional matches only

strong ratio-matches only

Other scoring systems...

matches m

Σ

distance-scaled score

1

ε + dist(m)

omits features whose nearest

neighbor is about as good a

match as its 2nd nearest neighbor

omits features whose best match

is not unique in both directions

Page 28: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Without bidirectional filtering

many different features can have the

Without bidirectional filtering

many different features can have the same best match

Page 29: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

With bidirectional filtering

only mutually unique best matches are considered

With bidirectional filtering

only mutually unique best matches are considered

Page 30: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Comparative results

Page 31: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

The AR Drone is a capable platform-- as long as precise positioning is not required

Options includeo research to improve localizationo tasks that do not require precision

Comparative results

o tasks that do not require precision

The ROS software scaffolding is excellent-- (though not always thoroughly documented)

The project's AR Drone drivers and supporting software generated interest at AAAI and will be released into the

community's (Willow Garage's) repository.

is a capable platformas long as precise positioning is not required

research to improve localizationtasks that do not require precisiontasks that do not require precision

software scaffolding is excellent(though not always thoroughly documented)

The project's AR Drone drivers and supporting software generated interest at AAAI and will be released into the

community's (Willow Garage's) repository.

Page 32: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created
Page 33: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

Thoughts or comments?Thoughts or comments?

i

Page 34: Accessible Aerial Autonomy? - Harvey Mudd Collegedodds/Aerial_Autonomy... · Microsoft PowerPoint - Aerial_Autonomy_Final_Presentation.ppt [Compatibility Mode] Author: dodds Created

AR Drone Mechanics

• Drone itself has only 4 degreethrust)

• Commands give us control of 4 different degrees of freedom. (x, y, z and yaw)

Roll

Key lesson learned: The drone is

AR Drone Mechanics

rees of freedom. (roll, pitch, yaw,

Commands give us control of 4 different degrees of

Yaw

The drone is NOT precisely positionable.