← Back to Home
advertisement
Robot Systems: Software Stack Overview

Robot Systems: Software Stack Overview

When you build your own robot, you need to make two essential decisions: its hardware and software. My background is software development, so I'll start looking into my robot design questions from that direction as well. This article summarizes the results of my research on robotic software. It is by no means complete and nor does it qualify software projects. Consider it a complete and reasoned list of options you can consider when starting your own project. This article originally appeared on my blog. Software groups Before detailing specific software packages, let's consider what categories software can be grouped into: - Robotic middleware: the central system that abstracts a robot and its operations. - Motor Controllers: Software to direct the robot, depending on the type of motors and the type of movement. - Navigation: guidance software and active route finding to reach a designated objective. - Machine learning: a broad category that includes software that helps the robot in areas such as object detection and navigation. - Sensors: reading data from the different additional sensors of the robot - Remote Control: Allows direct control of the robots Robotic Middleware Middleware abstracts a robot as an operational, moving entity. It also helps establish common protocols for exchanging messages between different computers, e.g. a workstation and coordination, e.g. of multiple robots working towards a shared goal. Middleware is like the operating system of your robot: it allows the entire system to function and connect to other systems. - Open source robotic middleware - Large open source community -C++, Python, XML - Robotic construction kit, form abstractions of the components of a robot. - Github repository - C++, Ruby - Connection of sensors, processors, actuators. - Github repository -C++ - Powerful simulation with latest generation graphics cards. - Interoperates with ROS - JavaScript "runtime" to access microcontrollers, based on the Firmmata protocol - Firmata is a messaging protocol for host-to-board translation of microcontroller code (also used in the Rosserial package for communication between the host node and the serially connected microcontroller) - Works on several different microcontrollers. By far the most frequently named project is [ROS]; all the other projects I found while searching Wikipedia, but I didn't find any projects that used this software. motor controllers In a robot, electric motors are the most used. Motors serve to move the robot itself and can be used to move an arm or other means of interacting with the environment. The following software examples list very specific motor control software for the Arduino microcontroller. - No special library needed - Apply pulse width modification to control speed and H-bridge to control direction. - Include the Library - Configure with the total number of steps per revolution and the connection pins. - Include the Library - Configure with the number of motors and their connection pins. Navigation Navigation software includes libraries that help create an abstract model of the surrounding environments. And with this model, the algorithms will dynamically detect and apply pathfinding algorithms to reach a designated goal. The following software again contains very specific libraries for ROS middleware. Take these libraries as examples of the kind of abstractions a robot needs to make. - 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 represented abstractly by the coordinate frames of its different links. - The relationship between these links is described
advertisement

Related Articles

advertisement