Our first post in our short Kinecting to Hardware theme week revisits Microsoft's participation in the FIRST Robotics Competition (FRC), first mentioned on the Gallery here, A FIRST for Kinect. Kinect added to FIRST Robotics Competition Tool Kit.
In this post we're going to round-up just some of the links, resources and information for the Kinect and FIRST/FRC.
Getting technology to do what you want can be challenging. Imagine building a remote-controlled robot in 6 weeks, from pre-defined parts, which can perform various tasks in a competitive environment. That’s the challenge presented to 2,500 teams of students who will be participating in the FIRST (For Inspiration and Recognition of Science and Technology) Robotics Competition.
The worldwide competition, open to students in grades 9-12, kicks off this morning with a NASA-televised event, including pre-recorded opening remarks from Presidents Clinton and G.W. Bush, Dean Kamen, founder of FIRST and inventor of the Segway, and Alex Kipman, General Manager, Hardware Incubation, Xbox.
Last year, several FIRST teams experimented with the Kinect natural user interface capabilities to control their robots. The difference this year is the Kinect hardware and software will be included in the parts kits teams receive to build their robots. Teams will be able to control their robots not only with joy sticks, but gestures and possibly spoken commands.
The first part of the competition is the autonomous period, in which robot can only be controlled by sensor input and commands. This is when the depth and speech capabilities of Kinect will prove extremely useful.
To help teams understand how to incorporate Kinect technologies into the design of their robot controls for the 2012 competition, workshops are being held around the country. Students will be using C# or C++ to program the drive stations of their robots to recognize and respond to gestures and poses.
This morning’s kick-off of the 2012 FIRST Robotics Competition was a highly anticipated day. Approximately 2,500 teams worldwide were given a kit of 600-700 discrete parts including a Kinect sensor and the Kinect for Windows software development kit (SDK), along with the details and rules for this year’s game, Rebound Rumble. Learn how Kinect for Windows will play a role in this year’s game by watching the game animation
Tomorrow [Saturday, January 7th, 2012] is the official kickoff for the FIRST Robotics Competition. One of the things that means is that today is a day of workshops at FIRST Place in Manchester NH. I started my day here by presenting a 45 minute workshop on how the Kinect is used with FRC robots this year. There were some things I could not cover because the full game details will not be released until tomorrow of course. But I was able to provide some context and some architectural information that I hope was helpful to the 60 or so attendees who were present and how ever any people were watching the web cast. I am told that the talk was recorded and I will link to that once I know where it is. But I did want to share a few pieces of what I talked about via my blog post. Sort of speaker’s notes as well as hyper links to the resources I talked about. You’ll find those links at the bottom of this post.
A Kinect sensor is supported by a great software development kit (Kinect for Windows SDK) which is a great place to start. Programing expertise among FIRST teams is sort of all over the map. much of this is a consequence of there not being enough computer science in the curriculum but let’s not get into that now. For now, know that there are some additional resources that are being supplied for FIRST teams this year. Specifically the wonderful people at the WPI robotics program have created some libraries that have been tuned a bit by some of the FIRST staff. The diagram below (created by Kevin O'Connor of FIRST shows the general architecture.
The Kinect device is connected though the Kinect SDK to an FRC Kinect Server program. This program, written in C#, may be modified by teams in any number of ways including adding their own custom gestures. The server passes on a lot of information to the Driver Station diagnostic and dashboard software. This includes:
- Raw skeletal Data
- Diagnostic data
- Default Gesture data
The server defines 9 different gestures by default. These gestures can be passed to the robot as if they were joystick or other controller data. This allows teams to use the Kinect out of the box without having to write Kinect specific code. Teams can also pass the skeletal and diagnostic data to the cRIO (an control device made and donated by National Instruments for the robots) and write code on the cRIO using Java, C/C++ or Java. This gives the teams an enormous amount of flexibility.
I am really REALLY quite excited to see what FIRST Robotics teams do with the Kinect this year.
FRC Kinect Resources
- FRC Beta Kinect Forum – the place to go for FRC help related to the Kinect
- Official Kinect for Windows Website – get the Kinect SDK for everyone
- Kinect SDK Quickstart Video Tutorials
- Coding4Fun Kinect Toolkit
- Coding4Fun Kinect Projects
- Visual C# Express – teams who want to modify the WPI server will want to grab this free download
- Kinect for Windows SDK Beta Forums – the general public forums for Kinect support. Not for FRC related questions but often a good place for technical Kinect questions
- Getting Started with Microsoft Kinect for FRC document – released at Kickoff & I’ll update as soon as I can
- Kinect Server Code Walkthough – released at Kickoff & I’ll update as soon as I can
Welcome to the FIRST Robotics Competition
"The varsity Sport for the Mind," FRC combines the excitement of sport with the rigors of science and technology. Under strict rules, limited resources, and time limits, teams of 25 students or more are challenged to raise funds, design a team "brand," hone teamwork skills, and build and program robots to perform prescribed tasks against a field of competitors. It’s as close to "real-world engineering" as a student can get. Volunteer professional mentors lend their time and talents to guide each team.
Students get to:
Learn from professional engineers
Build and compete with a robot of their own design
Learn and use sophisticated software and hardware
Compete and cooperate in alliances and tournaments
Earn a place in the World Championship
Qualify for nearly $14.8 million in college scholarships
The 2012 FIRST Robotics Competition Kickoff Workshops will be held at FIRST Headquarters in Manchester, NH on Friday, January 6th. The purpose of these workshops is to provide teams the opportunity to learn from other teams, mentors, supporters, and suppliers.
The goal of this year's workshops is to share the knowledge and experience of FIRST teams, participants, and coaches to help you prepare for the upcoming season. Everyone is welcome to attend any session, although this year will focus more on technical and advanced topics. Keep an eye on this link, as it will change with each update to the schedule.
C++ & JAVA: New Features for 2012 - National Instruments, WPI, Texas Instruments
Engineer & Student Dynamics - FIRST Senior Mentors
Fast Track Your Robot Design - Autodesk
FRC Drive Systems - FRC 190
Kinect for FIRST Robotics - Microsoft
LabVIEW 2011 & NI cRIO-FRC II: New vs. Old - National Instruments, WPI, Texas Instruments
Using Belts & Belt Drives - Gates Corp.
Presented by Alfred Thompson, Microsoft, at the 2012 FRC Kickoff Workshops. Video and/or slides from the presentation will be available on or after 6-Jan-2012.
Presented by Joe Booth, Microsoft, at the 2012 FRC Kickoff Workshops. Video and/or slides from the presentation will be available on or after 6-Jan-2012.
Microsoft Studios, the studio behind Halo, Forza, & Kinect Sports, will give a hands-on workshop that will introduce participants to the design of agent-based games using Kodu Gamelab, Microsoft’s low threshold game creation environment.
In Kodu, participants learn how to create interactive systems by designing and programming 3D worlds that they can populate with software robots. The robots’ behaviors can be programmed using abstractions of sensor inputs and actuator outputs that parallel in software those of real robotics systems. However, the focus of the systems created in Kodu, instead of being the interactions between components of a single robot, is to create game-based interactions (e.g. goals, rules, and game mechanics) that play out across multiple robots and the environment that surrounds them.
In the workshop, participants will be introduced to some of the fundamental ways to create functional game systems using Kodu, including its level design and terraforming tools, it’s asset and prop libraries, and the fundamentals of the Kodu programming language. They will also learn how Kodu can be used to create games that can help learners understand key concepts in Science, Technology, Engineering, and Mathematics, by collaboratively working in teams to create their own version of these systems with the guidance of workshop instructors.