Software can take several forms on SCUTTLE so it breaks down into who the user is.

Basic Python

Our repository on github that was built for teaching mobile robotics in 8 weeks is made up of three elements: Python programs written for SCUTTLE (very short, modular, and serving to produce one outcome) and does not require pre-existing knowledge of Linux or Python. That is, pre-existing knowledge is included in the Beginner’s Guide. The whole set of programs runs on Debian, a Linux version for embedded processors. Debian is standard for Pi as well as Beaglebone Blue, and other comparable microcomputers.

Robot Operating System (ROS)

ROS is the most popular software framework for mobile robots as of 2022, but it requires a solid knowledge of Linux operating system, Linux command-line skills, and then a study of ROS or ROS2 after that. Tutorials are gradually coming online for ROS that can be digested by undergrads, but only those with some proficiency in software.

Editorial comment by David: As an educator in multidisciplinary engineering, I do not actually recommend ROS for undergrads until it matures for at least two more years (maybe 2025). Implementing ROS is a tradeoff of gaining research-grade functionalities but losing time to studying the “operating system.” For researchers, ROS is pretty much imperative because it supports the plugging-in of advanced models for kinematics & dynamics.

To implement ROS, some resources were created by our community, led by Patrick (thanks Patrick!).


Viam is a software architecture that also installs on Debian Linux & unlocks tools like SLAM and AI algorithms with a lower barrier-to-entry compared with ROS.