Fun Project from Australia, Anki Overdrive Plus Oracle Cloud Services

Editor’s Note: In February while we were in Australia, I had the pleasure to meet Stuart Coggins (@ozcoggs) and Scott Newman (@lamdadsn). They told me about a sweet Anki Overdrive cars plus Oracle Cloud Services hack Stuart and some colleagues did for Pausefest 2016 in Melbourne.

Last week, Stuart sent over a more detailed video of the specifics of the build and a brief writeup of what was involved. Here they are.

Oracle IoT and Anki Overdrive

By Stuart Coggins

Some time ago, our Middleware team stumbled upon the Anki Overdrive and its innovative use of technology, including APIs to augment a video game with physical racing cars.

We first presented an IoT focused demonstration earlier this year at an Innovation event in Melbourne. It was very well received, and considered very “un-Oracle.”

Over the past few months, the demo scope has broadened. And so has collaboration across Oracle’s Lines of Business. We saw an opportunity to make use of some of our Cloud Services with a “Data in Action” theme.

We’ve taken the track to several events, spanning various subject areas. Always sparking the question “what does this have to do with me?” And in some cases, “Why is Oracle playing with racing cars?”

As if the cars are not draw card enough at our events, the drone has been a winner. Again, an opportunity to showcase how using a range of services can make things happen.

As you’ll see in the video, the flow is fairly straightforward… the game, running on a tablet talks to the cars via Bluetooth. Using Bluetooth sniffers on a Raspberry Pi, we interrogate the communication between the devices. There are many game events as well as car activity events (speed of left/right wheels, change lane, turn left, turn right, off track, etc). We’re using Python scripts to forward the data to Oracle’s Internet of Things Cloud Service.

1604IMG_5225_Anki

This is where things get interesting. The speed and laptime data is being filtered out, and forwarded to Oracle’s Database Cloud Service. The “speedo” dials are rendered using Oracle Apex (Application Express), which does a great job. An “off track” event is singled out and instantiates a process defined in Oracle Process Cloud Service. At this point, we’ll integrate to Oracle Service Cloud to create an event for later auditing and logging. Whilst airborne, the drone captures photos of the incident (the crashed cars), and sends them back to the process. The business process has created an incident folder on Oracle Document Cloud Service to record any details regarding the event, including the photos.

Because data is not much use if you’re not going to do something with it, we then hook up Oracle Business Intelligence Cloud Service to the data stored in Database Cloud Service. Post race analysis is visualised to show the results, and with several sets of race data, gives us insight as to which car is consistently recording the fastest laptimes. i.e. the car that should be used when challenging colleagues to a race!

As we’ve been running this for a few months now, and the use cases and applications of this technology grow, we’re getting more and more data. The adage that data creates data is certainly true here.

Ultimately, we’ll dump this data into Hadoop and perform some discovery, perhaps to understand how the track changes during the day (dust/dirt/use) etc. We’d like to get some temperature data from the Pi to understand if that has any effect on the car performances, and perhaps we’ll have enough data for us to be able to analyse the perfect lap, and replay it using the Anki SDK.

1604DSCF8543_Anki

We’re planning a number of hackathons locally with this kit, and we’ll see what other innovations we can highlight.

A big shout out to the technical guy behind sniffing and “translating” the data. The data is not exposed by the SDK and was by no means trivial to maps but it has allowed us to get something meaningful and put it into action.

Enjoy!

AboutJake

a.k.a.:jkuramot

Leave a Reply

Your email address will not be published. Required fields are marked *