I was at the Cloud Robotics Hackathon this weekend in Montreal and it was a BLAST! There were tons of teams participating, learning about robotics, programming with Arduino, and there was a MakerBot, some Naos, and a Darwin-OP there! Holy macaroni!
My favourite part at the end was listening to the experiences that people had programming their robot. There were lots of new people to robotics, so it was great.
I worked with Marek over the weekend! He is a super web dev guru, and was also on the Edubotics team at Startup Weekend Montreal. We came up with a pretty crazy project, under the team name of TEAM LIGHTNINGBOTS, because lightning comes from the cloud!
As a quick summary, we made a network of cheerleading robots for an educational math game that can post the scores on MyRobots, then display them on a robotic scoreboard. Let’s take a look at this in more detail!
Here is the basic setup. There is the math game on the iPad. This app is actually a web app with a very thin native client layer to send data to the robot. It works by sending HTTP callbacks, which the app parses, then sends a packet through the Redpark Serial Cable, which Learning Pet (blue RoboBrrd) receives, parses, then does an action. You can input two digit numbers into the app because there is a specially-tuned delay to do so. You get an unlimited number of tries for answering, and no hints, since this is a basic version of it (proof of concept). The green dots below are showing the number of questions completed and needed to level up. The game repeats once you level up. The game is functional in any modern web browser, so you can check it out HERE! Marek was the one who coded this, and it was developed beforehand at Startup Weekend, so nothing new here.
Now for the new part: when Learning Pet (blue RoboBrrd) receives the data from the app, it also broadcasts the message out through its Xbee to the other two robots. We use the XBee Network Protocol for this, developed by Kris Kortright, but we use my uno-compatible fork of it.
Both Impy (orange RoboBrrd) and MANOI receive this data through their XBees, and are able to act out the actions as well. When you get the answer right, they do a little action of encouragement (MANOI swings its arms, RoboBrrds flap their wings, and Impy changes its eyes green too). When you get the answer wrong, they shake their heads- MANOI looks really scary doing this so you don’t want to get the answer wrong. When you level up, they all do a crazy dance celebration.
Now for the next new part: when Impy (orange RoboBrrd) receives the data from the mesh, it communicates with the computer which is running a Processing application. In the application, it creates a tally of the questions answered, and the number correct, the enthusiasm value (which is just how drastic changes in RoboBrrd’s sensors were), and the “brain power”.
The brain power is determined by the function:
This data is then uploaded to MyRobots every 15 seconds and then cleared out for the next upload batch.
One of the tricky parts was figuring out how to optimize the sending and receiving of packets on Impy (orange RoboBrrds) end. It turned out that we had to listen before we send, or something like that, just to make it work a bit more reliably.
Here’s the next new part: To have the results of the game displayed on a live scoreboard, we used the DFRobot RobotShop rover as a scoreboard. I attached it to the bottom of a soapdish, which gave the treads enough clearance, and some popsicle sticks for support. Marek added the numbers and faceplate to it, and coded it up in Python. The code pulled the live “correct” number score from MyRobots and then called the Arduino to update the motors accordingly. It was pretty sweet!
All in all, the whole system worked great. It’s truly the ultimate social robot network, because we were able to combine so many robots together!
There was a lot of stuff that we developed that we didn’t use or mention though. For instance, Marek created this web nodejs application that can show the same webpage to all clients, and also send tcp messages to everyone connected. CHECK IT OUT HERE! We were going to use this originally as a sort of orchestra or central command console for the robots. He also made a Twitter analyzing program that looks for happy faces or sad faces in the streaming Twitter firehose. The data is being plotted on his MyRobots page for it, which is really cool.
On the first day I worked on getting Learning Pet (blue RoboBrrd) going with the ADK. For some reason it would work fine, I would get up for a break, and then not work. So that night was the turning point in the hackathon when we went with the idea we have now.
The idea we implemented is pretty cool though, since it both sends data to MyRobots and it uses it. We also are using basically 3 clouds in the 1 project, being:
1. The math game web app
2. The local mesh network
All in all, it was a blast! Huge thanks to Marek for his web skills!
I’m definitely looking forward to volunteering at this hackathon next year. Thanks to the organizers for making such an awesome event. SEE YOU IN THE CLOUD!
Today is a SUPER day and here are some treats that you and RoboBrrd can enjoy! Or maybe just RoboBrrd will enjoy it, but anyway here they are!
Here is the video about the RoboBrrd Mesh Network: Pulse sensor! This was shown a while ago on the Adafruit Ask an Engineer Show n Tell Google+ Hangout (that’s AAAESNTGH for short)! It’s a little long, but if you can bear with my umm’s and uhh’s, it’s a pretty cool demo. Watch it on YouTube!
NEXT UP is this really cool new web badges portal by Adafruit. The aim is that their badges and online portal will become ‘Scouts 2.0’, giving out badges to kids for accomplishing electronic goals! They let me beta test it early, so RoboBrrd is up there with it’s Robot Badge!
It’s going to be really interesting to use the API for stuff. For example, one day in the future, when you first load your code onto your RoboBrrd and connect it to the ‘Hello Brrd World’ Processing sketch, then DING it will use the API and contact the adafruit badge servers, and you’ll instantly be awarded a Robot badge! Maybe there will even be a RoboBrrd badge! I dunno how they’re going to handle the authentication for the API keys, but that will be interesting to see.
Today is the kickoff day for the Cloud Robotics Hackathon! I’m really looking forward to working together with my team. There’s going to be a little bit of everything in our project, and you can listen for quick updates @RobotGrrl! The hashtags are going to be #roboticshackathon, #cloudrobot, #cloudrobotMTL. There will be a special Robot Party on Saturday at 8PM ET! See you then!
That just about wraps up the birthday post for RoboBrrd! It has been a BLAST! And the next 100 years are going to be even BETTER! Thanks to all the friends who enjoy keeping up with RoboBrrd’s progress! HIP HIP HOORAY!
RoboBrrd & I were at the Startup Weekend Montreal, it was an interesting experience! Considering the price of the ticket was free (won it from MGG->VCTV), I think it was quite a good value. I didn’t have any real goals in mind going in, I just wanted to see what it was all about and hopefully learn some stuff.
The first day (Friday) was when we all gave rapid pitches. The one I gave was about how cool robots are and what I want to make. It ended up making it through to the next round, and there were 3 other people who were interested in working together for the weekend!
Saturday was pretty cool. We figured out what we wanted to make and how it would work. What we wanted was a math game where depending on how the screen was oriented, then it would be a different operation. The answers would trigger a response from the RoboBrrd.
Marek suggested that the app on the iPad could just be a web app, and communication from the web to the robot could be done through callbacks.
This is *really* cool because that means that ALL devices can have the same app, and they will be able to communicate with the robot.
With robotics and software on devices, you will always need a native app in order for the communication to work. But, if you have the actual playable content as a web app, then that means you can easily roll out new updates and features.
I’ll make an indepth post about this coming up soon. In the meantime, here is the code! Marek made the math game, and Jon made the memory game!
– Math game
– Memory game
– iOS App
Alyeska worked really hard on the business side of things. I learnt a bit about this, which is kind of good! She created a survey to learn what the important parts to the robot would be. One of the running jokes was how important a biology game would be. The people responding to the survey didn’t think it was that important XD
The pricing of the robot was hard to figure out, but it came out to $96 in materials, and $179 after the fact. The apps would be free.
We demoed the robots on Sunday so that everyone could try them!
(i’m off to the side next to the robots there)
On Sunday it was the final pitch day, our pitch was pretty good. We had a real demo that was actually working! I had my pockets stuffed with tools that I might need just incase something bad happened, like a 11.1V and 9V battery… I guess you could say there was a lot of potential there!
The demo was of the math game and the blue RoboBrrd. It worked! A ROBOT DEMO WORKED IN FRONT OF A BUNCH OF HUMANS! YESSSSSSS! This was really spectacular in my books 😀
We didn’t end up winning anything, but we did get a lot of media throughout the weekend which was great. VCTV interviewed me a lot of times, that was pretty nice! Our website even got a hit from South Africa, how cool is that!
Afterwards one of the judges said to me that the robot would have to be less than $50. I said back to him that if it was that, it would be some cheap toy made by Hasbro. He said something like “yeah but it would make more money!”
I said back to him that I’m not here for the money, I’m here to make robots. A $50 toy would not do this robot justice. It’s designed to be a kit that you put together.
…Eventually it ended with me telling him that I’m the one with the robots, and he isn’t, and that this *will* work out in the end.
(I don’t really know if anything will work out in the end, but at least it is open source hardware & software)
So that little discussion was interesting. I actually don’t know the name of the person anyway. (By the way, if you’re reading this, it was nice to talk with you and I don’t mean any disrespect at all- it is just two different perspectives that don’t match up ^_^)
I plan to keep doing this thing that I have been doing which is actually called ‘bootstrapping‘. I don’t really wear boots though and don’t have straps on my shoes. That would be kind of strange. Although it’s not really ‘bootstrapping’ since I have had a lot of help from friends (thanks!) that is getting things rolling. So maybe something more like shoe-laces-auto-tied-now-go-run-‘ing.
All in all, it was a pretty good weekend! It was great to work with like-minded people on the team. Most of us will see each other again at the robotics hackathon!
Sometimes during the interviews I forget who/what/when to namedrop. So here is all the namedroppingness that needs to happen here all in one place! Sorry in advance if I didn’t namedrop in a video or interview. I am really thankful for ALL the help that peeps have given, sooooo if I didn’t namedrop you, next time we see each other: ICE CREAM IS ON ME (and the sprinkles)! 😀
– Adafruit Industries: for the servos and electronics!
– Redpark: for the redpark serial cable!
– WyoLum: for the WyoLum Open Hardware Innovation grant!
– Chris the Carpenter, Eaglesnest Robotics, Lenore/EMSL: for the most amazingest experience on the Robot Party that always makes a good story to capture the Robot Party hangout spirit, LOVE IT!
And special thanks to EVERYONE who has been supporting the robots. WOO!
Ok, and special shout out to the FIRST team that I mentor for not getting too angry at me for skipping an important robot weekend!