Snakes on a Car: Or, Over-engineering a Toy

A presentation at PyATL in July 2020 in by Kat Cosgrove

Slide 1

Slide 1

SNAKES ON A CAR OR: Overengineering a Toy

Slide 2

Slide 2

Kat Cosgrove Developer Advocate @ JFrog Twitter: Dixie3Flatline Shownotes: https://bit.ly/PyAtlJFrog

Slide 3

Slide 3

So, what’s this demo?

Slide 4

Slide 4

Slide 5

Slide 5

Building the Basic Car

Slide 6

Slide 6

Donkey Cars ● ● ● ● ● ● ● About $250 in Parts R/C Car Raspberry Pi 3B Pi Camera Battery Bank Train it Race it!

Slide 7

Slide 7

Slide 8

Slide 8

Swapping the Controls

Slide 9

Slide 9

Slide 10

Slide 10

Slide 11

Slide 11

The Driver’s Seat

Slide 12

Slide 12

● Managed by Intel NUC ● Sanic webserver ● VueJS frontend ● ZMQ Proxy ○ CI/CD ○ Racewheel data ○ Steering and Throttle ○ Image feed

Slide 13

Slide 13

Adding Virtual Scenery

Slide 14

Slide 14

Read frame Convert to HSV Define HSV range Create mask from range Crop background Merge them! But wait…

Slide 15

Slide 15

● Actually super disorienting with a static background ● Angle of steering used to calculate how far to move crop position vs previous frame ● scale variable to change perceived speed of panning

Slide 16

Slide 16

Automating Training

Slide 17

Slide 17

Slide 18

Slide 18

That’s it! Your Speaker Twitter Kat Cosgrove Dixie3Flatline Win a Switch Credits bit.ly/PyAtlJFrog Freepik and Flaticon