Robot Systems: Software Stack Overview

Groups of Software

  • Robotic Middleware: The core system that abstracts a robot and its operations
  • Motor Controllers: Software for steering the robot, based on the type of motors and the movement type
  • Navigation: Software for orientation as well as a active route searching to reach a designated target
  • Machine learning: A broad category, includes software the helps the robot in areas such as object detection and navigation
  • Sensors: Reading data from the various additional sensors of the robot
  • Remote Control: Allows the direct control of robots

Robotic Middleware

  • Open Source Robotic middleware
  • Large open source community
  • C++, Python, XML
  • Robotic Construction Kit, forms abstractions of a robot’s components
  • Github Repository
  • C++, Ruby
  • Powerful simulation with state-of-the-art graphics cards
  • Interoperates with ROS
  • JavaScript “runtime” for accessing microcontrollers, based on the Firmmata protocol
  • Firmata is a message protocol for Host-To-Board translation of microcontroller code (also used in the Rosserial package for communication between host node and serially attached microcontroller)
  • Works on several different microcontrollers By far, the most often named project is [ROS], all the other projects I found while searching on Wikipedia, but did not find any project using this software.

Motor Controllers

  • No special library needed
  • Apply Pulse Width Modification for speed control, and H-Bridge for controlling direction
  • Include the Library <Stepper.h>
  • Configure with the total number of steps per revolution and the connection pins
  • Include the Library <AFMotor.h>
  • Configure with the number of motors and their connecting pins


  • SLAM = Simultaneous Localization and Mapping, allows a robot to detect its environment and interaction
  • Gmapping is a particular algorithm that provides SLAM capabilities
  • A robot is abstractly represented by coordinate frames of its different links
  • The relationship between these links are described as offsets (translation, rotation)
  • The TF library is the ROS standard to represent these offsets, and all packages for navigation and sensor need to transform their data to confirm to TF
  • Odometry is the process of estimating an objects position based on a recording of its positions and velocity over a set of measurements in a given timeframe
  • This display type visualizes Odometry values recorded with ROS

Machine Learning

  • Self-Contained Deep Learning and Computer Vision Library
  • Python
  • Precompiled Voice Recognition
  • Python
  • Neural Network Library based
  • Python
  • High Performance API for Tensor Flow based
  • Python
  • Face Recognition Library
  • C/C++/Python


  • Video Streaming for web cameras and more specialized hardware
  • Library for recording & storing robot frames over time
  • Light Detection & Ranging, a method to illuminate surfaces and measure their reflection for obtaining a 3D representation of objects
  • Other LIDAR packages


  • Library for providing direct control commands to ROS robots using keyboard, mouse or joystick Keyboard
  • Idea: Dial Tones of Phone represent direction keys to which the robot listens
  • Add a Bluetooth Controller, intercept Bluetooth Messages as Control Inputs




Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


IT Project Manager & Developer