Posts Tagged ‘FIRST’
Logomotionator

Logomotionator is an App for the FIRST Robotics Competition 2011 that I created during the build season while helping out Team 296: The Northern Knights! You can download it on iTunes for free.
Here is the description of Logomotionator:
Logomotionator provides a way for teams to organize and collect their ideas about strategy and scoring during the 2011 FIRST Robotics Competition season.
Features:
- Fabulous user interface design
- Track the scoring for the red and blue alliance
- Up to 5 tubes per peg will be counted (in case some are deflated)
- Record which teams were on the alliances, their minibot scores and penalties
- View your saved scores and email them
- Draw strategic plays on the game field in red and blue
- Easily access the usfirst.org websiteThe FIRST Robotics Competition is a fantastic way to get youth interested in Science, Technology, Engineering and Math. Check out one of the regional competitions in your area to see what the future holds.
Inspiration for the App came about by the temptation of an Apple eMate 300 (an iPad of 10 years ago, basically)! I took in some feature requests and just started to work away at it. Making the calculator algorithm was fun
All of the coding was straight forward. I must be getting really good at making Apps or something. Making the game field drawing stuff was probably the part I most enjoyed:

I also really enjoyed the email stuff too:

The only rough spot was on the saved scores view, because the “Remove button” is actually in a different section, I have to replace it with an invisible cell when removing everything because of the protective UITableView cell math.

Once all of the functionality was there I wanted to make something that would really capture the energy that the competitions have. I figured it would have to look snazzy, so I paid close attention to detail when styling the App. On the iPhone 4′s retina display, the graphics look beautiful.
This is what the background looks like, I had a lot of fun making it!

This is my most complete App ever (so far). I really like the finished product. I can’t wait until after the season is over to go through some of the code with the programming students. It would be a fun exercise to break down the calculator algorithm!
I hope you enjoy it. There’s some more screenshots on flickr. Go download Logomotionator now! It’s free!
FIRST®, FIRST® Robotics Competition, FRC®, FIRST® Tech Challenge, and FTC®, are registered trademarks of FIRST® (www.usfirst.org) which is not overseeing, involved with, or responsible for this activity, product, or service.
FRC – Week 2!
FRC stands for the FIRST Robotics Competition, and it is a robot competition for high school students to compete in. They have 6 weeks to model, design, build, program, wire, and media-ify and business-ify the robot! Afterwards, they go and compete in a regional competition! I am currently mentoring a Montreal high school team in programming- teaching them Java for the first time! Here were my thoughts about week 2!
During the week the students at the other school had their first experience with programming through Processing. Processing is a Java environment used to create interactive art projects. Since they all are “Photoshop gurus” already, this would be a fantastic way to introduce programming to them. We created a “sketch” where an ellipse was drawn. We then were able to move the ellipse around, and in the process learned about integers, operators, and the coordinate system.
This knowledge solidified some students to join the programming team for the big meeting on Saturday. We began by detailing the things we wanted to do today, and what goals we will need to achieve in the following weeks.
For this Saturday, we wanted to…
- Read from the encoders
- Analyze the default line sensing code, and try the line sensor
- Set up the wireless on the robot
We were able to achieve most of these, and learn even more about WPIlibJ in the process.
The lead veteran programmer of the team describes Java as a bittersweet change from LabView. Although Java is used more in real world computer science scenarios (client programs, university courses, Android apps), its vision processing is not as accessible as LabView. On top of that, there is the learning curve with learning a completely new way of writing, organizing, and displaying algorithms.
The three programmers got set up with the Netbeans distribution and the proper nbm files. We then dove head first into the code, and started with a simple program that would read an encoder, and display it on the screen. Once that worked, we added on to that and made the motor move.
Afterwards, we added a tick-tock algorithm that introduced the modulus operator to the programmers. This was designed to change the motor direction every five seconds. The three programmers grasped this algorithm and understood it fully after explanation.
A little bit of a design oversight, the cRio is such a fast processor, that it became stuck in the tick-tock quite often, as we were rounding the time from a double to an integer, and comparing it to a value of 5 seconds. Had this have been in milliseconds, there would not have been a problem. The veteran programmer suggested a “first pass” check, which fixed the problem.
After the lunch break, the veteran programmer was also able to make the camera display on the driver station, and control the servos with a joystick.
During that time, the other programmers took some time to play with Processing a bit more. They were able to setup the basic sketch template, and added text drawn to the screen with a customized font. We explored the nature of for loops by drawing the text multiple times inside of the loop. This was a great demonstration of iteration in action.
We almost had time to play with the light sensors, but the connections took quite a bit of time.
Nearing the end of the day, we were trying to get the wireless set up, the last item on our todo list. Although Chief Delphi was down for the entire time, we were somehow able to figure it out despite the number of road blocks. Hooray for wireless programming!
It was then time to head back home. We departed from week 2 feeling pretty confident about the capabilities that Java will provide us. Next week, our goals are to get some driving working (PID control, maybe), and also get the line sensors to work. Go programming team!

Are you mentoring any FIRST robotics teams? Are you a programming mentor too? What have you run into so far? Leave a comment below!
FIRST Robotics Competition 2011 – Kickoff at Bombardier!

The start of a new year marks the start of a new season for the FIRST Robotics Competition (FRC). FRC is a robot competition for High School students. Each year there is a new game, where the students try to create a robot that will hopefully win. They’re given SIX weeks to create a 120 pound robot. Teams then travel to regionals to compete with other teams. The idea of this program is to get students excited about robotics, science, technology, etc.
Kickoff can be celebrated in numerous ways. FIRST Quebec teamed up with Bombardier to make this kickoff AMAZING. We had an extensive tour of the Bombardier facility, where we were able to see the insides of the best Winter Olympic torch ever, as well as how planes were made. It was amazing to see how small planes are part by part, but when you put them all together they become massive! They also had these HUGE CNC machines. So huge, you could CNC a house and live in it!
The students were really interested in everything as well as the mentors. There was just so much to learn and take in!
Another awesome were the two industrial robots that were doing some work together. It doesn’t seem complex at first, right? You have to account for the tiny inconsistencies of each robot, how the material is moving, and how each robot is moving. I would love to see the code for the dynamic kinematic control. Accounting for every single degree of freedom is crazy!
Here is some video footage that I took, to share the awesomeness:
Here’s Bombardier’s official footage:
Here’s a fellow mentor’s iMovie ’11 trailer:
What do you think about it!? Pretty amazing, right! The whole experience for the students was so much more valuable than watching the webcast for 4 hours. They were asking questions, and seeing that there were actually “pit-like” stations at each of the departments. Lots of tools.
The FIRST Quebec program is run by another program called Youth Fusion. It’s really cool. Here’s a video of the FIRST Quebec teams in action:
All in all, it was an amazing day. I have been mentoring FIRST for 3 years now, and this year is going to be a blast. I’m mentoring a group of programmers to program the robot in Java. It is great to have a group of students that are eager to learn programming!
Good luck teams!
FNR – Robot Mesh Network: Communication Board
Trying to get two boards to talk to each other is tricky. For my robot mesh network project, I’m winging it with my own communication protocol through serial. There really isn’t any fancy protocol yet, just bare bone messages being sent.
The messages are sent from a UART, and received by a NewSoftSerial implementation. I had a hard time trying to get anything being sent from a NewSoftSerial to be received by NewSoftSerial. Once I finally realized this, it started to come together.
Here is a video explaining the success that I finally had, it was so amazing!
I will be blogging more about this later, with extended details of the problems that I ran into, and how I overcame them. Right now I am trying to make my Macbook triple boot. If you haven’t done it before, it’s a long trial and error process! I also started mentoring some FIRST teams in Montreal! The build season is quickly approaching! Woot!
MANOI-in-a-box

Team 229 is heading to a FIRST competition this week- and since I don’t have three tests on one day I can actually go to this one! WOOHOO!
The location of this competition is one of the most awesome ones… APPARENTLY iRobot scouts people there. Meaning, they’re hunting for smart brains to hire during the summer. :XD: Even though I don’t roll with military style robots (they aren’t supposed to be sociable), that’s pretty cool, to be honest.
I figured that it would be awesome to carry MANOI around and just having it wave its arms, with a Team 229 flag (see picture above).
I think some High Schoolers may enjoy that.
Transporting MANOI for the past few years has been a hassle… so we finally found a good box with styrofoam stuff in it! The styrofoam is actually really nicely engineered, because it comes cut into rectangles, which means that you can easily customize it. This is how MANOI fits in its new box:

There is room for MANOI’s basic needs in there- the batteries and charger, ping pong balls, USB cables… etc.

The outside needs more stickers, but I have the classic FRAGILE one, and a “Made with LabVIEW” sticker — even though it’s not even relatively made with LV. Hahahaha! I’m thinking of printing out a picture of an Arduino and taping it on there.

The other day, a member of CUARC with a dremel cut a hole in this metal box for me…
Can you guess what is on the inside?

IT’S A MINTYBOOST! YAY!

This will provide MANOI’s microcontroller with the power that it needs while cheering on Team 229
I haven’t programmed the motions yet for MANOI, but I can do that in the hotel tonight. I’m thinking that the legs will be stationary, and just have the arms move around. Also thinking of using the Wii nunchuck to control which sensors are being read or something. I will indeed post the code when I make it! =)
Friday Night Robotics – CMUcam2
The CMUcam2 is a really cool camera for robotics made by CMU. The version that we’re using for this Matlab project (that I mentioned before) was actually used in FIRST competitions a long time ago.

The first problem we faced with this was that it requires 7.2V, in a range of 5.2V – 8.6V. What gives 7.2V?! Crazy! If you take 6 AA rechargeable batteries together, they can add up to be 7.2V exactly. (1.2V * 6 = 7.2V). Battery packs naturally don’t come in sixes, so I ended up making one:

This was actually my first time making a series battery pack. It’s in series because we want to use Ohm’s law, where the voltage is added together. Thanks to the people in the Fat Man and Circuit Girl IRC chat room, they helped me figure it out. Here’s a drawing that I made incase others too need help with this someday. Basically, connect the positive to negative over and over again! ^_^

The next step is to get the camera working. This is by far the hardest part. There’s numerous methods of communicating to the CMUcam2, all of which use RS232. Arduinos also use RS232, so at least we’re in known territory.
The CMUcam2 has a serial port, a TX/RX/Gnd line, and a TTL port. On my Mac, I tried the serial port, it didn’t work. I tried the TX/RX/Gnd line into an Arduino, it also didn’t work. I also tried to use the TTL, but it also didn’t work. I’m not really sure why nothing works on my Mac, especially since the camera works with a PC just fine.
This is where I’m at right now. No idea what to do to make the CMUcam2 work on my Mac. Do any of my blog readers have any ideas?
WOOT~~~ TWIST ENDING!! READ ON!!!
I was thinking that it would be really lame to end the blog post without some sort of screenshot of Matlab or something. So I gave the CMUcam2 another shot… I made it work!!! IT WORKS!!! IT WORKS ON MY MAC!!!!!! =)
The code that I was using to test the camera is from Instructables.

So, now that it works we have things to do… like figuring out how we can get the RGB data for each pixel, and then saving that to an image. After its in an image, we can do some form of edge detection. Matlab probably has a toolbox for that.
More fun later!
Google thinks that you might like this:
January Happenings
What has happened in January? Tons of stuff!

For Matlab this semester, it’s an independent project. I’m working with a friend to implement an adaptive online SLAM algorithm for an iRobot with a CMU cam and ultrasonic sensor. We want it to be able to reach a goal location even if objects are placed in front of it. I’ll be blogging more about this later, though.

The Social Robotics software that I worked on over the summer is now released under the GPLv3 license. I encourage everyone to check out the Social Robotics page if you want to learn more about the project! I am still in the process of creating the documentation and commenting for the code. As soon as it is complete, I will make a blog post. =)
Luckily for me, I took time to make detailed daily and weekly summaries. This will help a lot, plus it’s always neat to look back and see what the difficult parts were.
Did you hear/watch this year’s FIRST game animation? The game is about soccer! Team 229 has many useful links on their webpage that can fill you in.
This year I’m helping out with the website, maybe I will get to help out with some AI coding for the autonomous mode later on. It all depends on what the high school students think up!
I ended up adding a class two hours before the first lecture- Applied Statistics I. I don’t enjoy statistics very much since I have horrible memories of it from Math 536. But, once I gained access to view the class on the gradebook software, I immediately noticed two words:
SecondLife ……………… Project
Is this for real!?!?! It turned out that it is, and it is awesome! A friend and I are working on trying to figure out if there is a correlation between the virtual economy and the real economy. We’re going to focus mainly on North & South America, Europe and Australia.
Here’s a screenshot of my professor in SecondLife!

I’m taking a class on Computer Graphics. It’s really neat– I’m learning OpenGL!
OpenGL is something that I’ve wanted to learn for a while now. It’s actually quite simple when you’re given a template to work with!

Above is the first homework assignment! We were given a lot of time with it, which allowed me to play around with the code. I have to make the colours more plain before I hand it in, though.
I have no idea what I want to make with OpenGL at the moment. Maybe a moving robot? I definitely want to make some sort of game, though. (That way I can sell it on the iPhone App Store!)
That’s all for now. I’ll be blogging more about the Matlab project, since I think it’s going to be a hit!





