When I first started interning at ZeroUI, CEO Raja Jasti informed me of the areas of development that they would are interested in. He started to talk about allowing for better user interactivity using augmented reality. That instantly piqued my interest. I knew before that there were many development tools online to for AR, so I went to work.
What it does
The app itself works like a maze game for the robot. The user will use the camera on their phone recognize an image target. Once a "trackable" is found, a virtual maze will materialize on screen. There are certain nodes of the maze that the user can pick, and ones that are blocked off. Once the user picks a path, the robot will follow on the mat.
How I built it
The application itself ran on the Unity Engine and used the Vuforia API for enabling augmented reality. To interface with the actual robot, I used BLE and configured the RFduino kit previously installed in the robot to receive information via Bluetooth.
Challenges I ran into
I had many issues with determining the timing of the information sent. If each byte of information is sent at an uneven interval, the entire path following scheme would be completely thrown off. I solved this by taking a "dumb" approach: I sent the information in a predefined array, and set predefined timings and speed of the robot.
Accomplishments that I'm proud of
I'm grateful that I had the opportunity to demo the AR feature at a Google Robotics event that was held on the weekend of July 22-23.
What I learned
I had the opportunity to expand my creative and critical thinking a little, and I was able to hone some of the key skills that a developer should have.
What's next for ZiroAR
Currently, I'm researching a way for path-following to be more accurate using multiple markers and virtual collisions. ZeroUI also hopes to implement something like this in the future.
I want to thank Tanuj Siddharth for mentoring me and helping me out throughout this entire process, and I want to thank Raja Jasti for the opportunity to work on great platforms such as this.