York University Rover Team
The Rover Team Experience
I joined the York University Rover Team (YURT) in 2009. It is a team of undergraduate students with a goal to build mobile robots that compete in the annual University Rover Challenge (URC) in Utah and the NASA Lunabotics Mining Competition in Florida.
I was responsible for the electronics and embedded software for three custom robotic platforms: PCB design and fabrication, design and implementation of communication protocols for control, integration tests, etc. I also did most of the chassis wiring and a bit of human-computer interface design on the user end.
The 2011 rover in the Utah desert (robotics arm removed)
Besides the awesome road trips to the Utah desert and the Kennedy Space Center in Florida (yes we drove there from Toronto, Canada), I also get funding to play with lots of cool toys, such as servo pan-tilt-roll units, mesh-capable RF modules (900MHz WiFi and the XBee series), all kinds of sensors (Hall-effect, reed, temperature...), optical rotary encoders, and single-board computers.
My primary work for the 2012 rover was the communication framework. The work is detailed here.
Approaching the Equipment Servicing Task in the URC
Team photo in the Utah desert
Software Architecture and Others
The rover control system consists of multiple PC, single-board computers and microcontrollers over regular TCP/IP and XBee network. Various programming languages were used to implement the software: the user interface was written in Python and C#; the communication framework in C++; simulation and automated testing in MATLAB; microcontrollers programming in C.
Our team at the NASA Lunabotics Mining Competition 2012 in Florida
(men in blue are the NASA judges; I am third from the right)
I have also worked on the human interface. Designing software that presents a consistent and intuitive mental model to the human while conveying the intention of the human to the hardware proves to be a great but interesting challenge.
Other noteworthy sub-projects include:
- Project Turbocharge: building a high-power motor controller (see it in action)
- Real-time telemetry: data acquisition, processing, logging and plotting
- Long-range real-time control link over unreliable wireless channel
- Motion control - automated absolute turn using compass, tilt control, inverse-kinematics
on our way to the Utah desert
June 2012 - Won FIRST place in Mars Society's University Rover Challenge (URC)
April 2012 - Python-C integration; real-time plotting with Python GUI (matplotlib)
April 2011 - Working on a pan-tilt servos controller and a PID controlled linear-motion rail for the 2011 competition in Utah.
March 2010 - Controller for main drive motors completed
Team photo before the road trip (I am fifth from the left)
I was also the photographer for all key events of the teams. My pictures from the competitions appeared in CBC news, York University's main page and student press, the Computer Science and Engineering department page, on the cover of our Engineering handbooks, and on my team’s publications and website.
The official York University Rover Team website: