York University Rover Team

Rover 2011

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.

2011-12 rover in the Equipment Servicing Task (Hanksville, Utah)

Approaching the Equipment Servicing Task in the URC

YURT 2012 @ Utah

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.

Automated performance tests using MATLAB

A plot of one of the automated performance tests on the drive controller using MATLAB (click for details)

posing with the NASA judges

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


August 2012 - Won FIRST place in Robotics & Innovation Competition held by the Centre for Surgical Invention and Innovation (CSII)

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)

June 2011 - YURT got SECOND place again; more photos here

April 2011 - Working on a pan-tilt servos controller and a PID controlled linear-motion rail for the 2011 competition in Utah.

June 2010 - YURT got SECOND place in Mars Society's University Rover Challenge (URC)

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:


Facebook page: