UW Robotics Team

I've been involved in the UW Robotics Team in an increasing capacity since 1B. I've written a lot of code, made a lot of flowcharts, and done my fair share of electrical troubleshooting. I've run the team completely in the past, a job which has since grown beyond what one person can handle. Currenly, I'm working on preliminary system design for a soon to be announced 4th year design project within the team, doing controls development on our entry into the RoboGames, and serving as a member on what the team's executive.

Autonomous robotics are something that I've been exploring since I started at UW. Through the team, I've secured a few co-op placements with related companies, and I've also had the chance to work with some great people.


"Magellan" Project

I've spent the majority of my time with the team working on this project. I joined the team as we were just doing the initial design for our first entry into the competition, in which we placed third. Much of the credit for the software on that entry goes to Adin, another team member who's since gone on to bigger things. For our next entry, we've redesigned the entire mechanical chassis, and moved the high-level control software from C to Java. In fact, the new model is pretty much a brand new approach.

My main responsibility on this project is the control software, both the high-level mapping and path planning, and the low level motor control and sensor interfacing firmware. The system uses an extended Kalman Filter written in Java to merge GPS and odometry information, and a fixed-size occupancy grid to store a global map. At the moment, we're not attempting to do any sort of SLAM with the LIDAR, though the flexibility of the software platform definitely puts it within reach. The computer running the JVM communicates with an MCU board via a custom serial protocol. The MCU runs a low-level motor control loop, estimates track speeds and travel from encoder inputs, and allows the system to be remotely controlled from a standard transceiver. The firmware is written in C and runs on an Atmel AT91SAM7 microcontroller.

Below is a movie showing the path planning and mapping functionality being tested in the team's simulation software. The simulator generates sensor readings and can move the robot based on various outputs. (for the moment, track speeds) It has the ability to add noise and quantization to the sensor readings and motor outputs. The movie shows the control engine processing new sensor data into its internal map and modifying the intended route accordingly. The blue line is the current planned path and the small pylon image is the current goal locaiton.

Demonstration of Path Planner


Mini-Sumo Competition

During my time with the team, I've seen it grow to one of the larger student teams at the school. Since many current team members (myself included) came to UW and the team with no prior technical knowledge, we are familiar with the difficulty new members have with getting up-to-speed. In Fall 2007, we ran the first UW Mini-Sumo competition. For a minimal entry fee, we provide entrants with parts, a reference schematic, and a software API, as well as a large amount of technical support. In return, the entrants gain experience and confidence, as well as a shot at a prize. Though organizing this took much more effort than anticipated, it was a success, and the team intends to continue hosting them for the foreseeable future.