SCRC:Indoor Robot-Magellan: Software

Jump to: navigation, search

Starting with the 2017 Robot, the software choice for the Sno_bot is the Robot Operating System's (ROS) Kinetic Kame release, running on Ubuntu Mate 16.04 on a Raspberry Pi 3B. Some key systems will be used from ROS 'off-the-shelf' while others will need to be developed.

Sno_bot code

Quick link to the Sno_bot ROS repo on Github.

Robot Operating System (ROS)

ROS provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under an open source, BSD license.

ROS Integration

A piece of code that operates a portion of the robotic system can be included/imported into a ROS node file. This 2-part setup allows for development and testing of the code implementation without the hassle of also working with ROS. Then a node can be written to take advantage of the finished implementation.


The ROS wiki is the primary source for information about specific software packages.

Packages planned for use

Sno_bot package development

A typical ROS workflow consists of creating a workspace and building a package that contains all the custom code and ROS package requirements for the robot. Custom launchfiles are then created to launch a robotic system in one command.

The code can be found here: Github

Custom Nodes

Obviously, not everything can be pulled from a repo (where's the fun in that!), so here are the custom node we'll have to build

Robot Base Controller

The MD25 motor controller does not ship with a library for easy implementation, instead relying on the user to write a custom implementation on their own. Ours was written by Rob Ressler in Python and can be seen on GitHub. This functionality was then imported into a robot base controller node.