Skip to content
How to build a one-armed, self-driving, University Rover Challenge robot with ROS
Branch: master
Clone or download
Latest commit 6bf6c98 Nov 2, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
diagrams Add files via upload Jun 3, 2018
Book Chapter - University Rover Challenge Tutorials and Control System Survey.pdf tmuxinator links Nov 2, 2018

This page lists open source contributions made by Team R3 of Ryerson University in Toronto, Canada and built for the University Rover Challenge (URC) 2017. We share our rover software architecture diagram and several ROS packages for the URC competition.

Demonstration of Autonomous Rover Navigation

Autonomous navigation video:

demo Drawing

More video of rover:

Published Book Chapter:

Robot Operating System (ROS): The Complete Reference (Volume 3), Studies in Computational Intelligence Released July 2, 2018.

Detailed instructions and tips are published in a book chapter.
Link to chapter: PDF, LATEX, or an older DOCX version.
Link to book on Amazon.

Drawing Drawing

Full documentation in a book chapter: Book Chapter - University Rover Challenge Tutorials and Team Survey.pdf

Full source code for our rover:

Rover Diagram:


Rover Diagram in Visio Format: Rover_Diagram.vsdx

ROS-Rover has five main systems: the drive system, the autonomous system, the global positioning system, the visual feedback system, and the odometry system.

Autonomous System (Diagram Reference)

1. zed-ros-wrapper
3. rgbd_odometry
4. rtabmap

Odometry System (Diagram Reference)

5. ekf_localization
6. rtimulib_ros
7. navsat_transform
8. nmea_navsat_driver

Drive System (Diagram Reference)

9. joy

Navigation Stack (Diagram Reference)

13. move_base
14. Cost Map costmap_2d
15. Cost Map Obstacle Layer
16. Cost Map Static Layer
17. Global Planner Navfn
18. Local Planner base_local_planner

Visual Feedback (Diagram Reference)

19. RViz
20. rqt_image_view
22. MapViz
23. usb_cam

simple_drive Build Status

A simple robot drive system for skid steering joystick teleoperation, control of a panning servo to look around the robot, and Arduino firmware.

Drawing Drawing Drawing

Project homepage:

simple_arm Build Status

Simple 6-axis robot arm teleoperation software and Arduino firmware.


Project homepage:

follow_waypoints Build Status

A package that will buffer move_base goals until instructed to navigate to all waypoints in sequence.


Project homepage:

image_overlay_scale_and_compass Build Status

Add an indication of scale and compass to live images.


Project homepage:

hugin_panorama Build Status

Create panoramas in ROS using image snapshots or multiple video streams.


Project homepage:

lost_comms_recovery Build Status

If robot loses its network connection it will stop motors or set a goal to navigate home autonomously.

Project homepage:

GPS_goal Build Status

Set navigation goals in ROS frame coordinates using latitude and longitude.

Project homepage:

Survey of eight rover teams that competed in URC 2017

Drawing Drawing

Advanced Terminal Organization

ROS robots are often controlled by many bash terminals and the startup sequence involves many roslaunch commands in different terminals. I demonstrate how you can use Tmux on your robot to codify your terminal layout into a powerful ROS administration system. The organized, repeatable tmux view can be shared in real-time by all of your teammembers for a consistent view of the robot's inner workings.

Drawing Drawing

MapProxy docker container for ROS MapViz

Proxy zoomable map tiles from Google Maps to ROS MapViz for use with outdoor robots. For easy setup of MapProxy in a docker container to proxy Google Maps satellite view into a WMTS tile service so that it can be viewed by ROS's MapViz Tile Map plugin. Support for offline maps after loading once, maps stay cached. For outdoor robotics and vehicles.

Drawing Drawing

Project homepage:

You can’t perform that action at this time.