Robot’s hearts are beating with Inforce platforms as the main computing device with Robot Operating System (ROS) and the possibilities are now endless
The Robot Operating System (ROS) is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms. ROS encourages collaborative robotics software development. For example, one laboratory might have experts in mapping indoor environments, and could contribute a world-class system for producing maps. Another group might have experts using maps to navigate, and yet another group might have discovered a computer vision approach that works well for recognizing small objects in clutter. ROS was designed specifically for groups like these to collaborate and build upon each other's work. With this, the primary goal of ROS becomes to support code reuse in robotics research and development and it is all open source! The Open Source Robotics Foundation® (OSRF) made ROS available to a wider developer community by porting ROS libraries to the ARM® instruction set architecture owing to which Snapdragon™and other ARM-based chipsets have become a lot more interesting. By enabling ROS on platforms based on Snapdragon processors, it becomes possible to have Inforce platforms as the main computing device on a robot.A simple representation of a robot for computer vision purposes is shown below.
Central in this image is an Inforce platform which is a computer running Ubuntu Linux operating system. Below the computer, the input and output devices (I/O) are grouped. Some devices can connect as is, or may be part of another computer, while other devices might require some electronics to interface with. Since Inforce platforms support Ethernet and Wi-Fi capabilities, the single computer core could just as well be 10 computers, all running the ROS framework, communicating over a network. The ROS framework would tie it all together, and these ten computers would be supporting a single virtual entity, which is what you would call ‘the robot’. The possibilities are indeed endless!
Inforce makes fully featured Ubuntu/Debian releases for all its platforms and has qualified both ROS Indigo (Ubuntu 14.x) and ROS Jade (Ubuntu 15.x) releases. Since these platforms are not meant to cater only for robotics use-cases, the onboard eMMC would not be always sufficient to run the ginormous amount of code that accompanies ROS. But an external SD card can easily be partitioned and elaborate instructions to do this have been published at this link. The link is in fact a comprehensive tutorial on how to get going with ROS on an Inforce platform based on Snapdragon 600 processor but is also applicable to platforms from Inforce based on Snapdragon 410 or 805 processors.
TurtleBot™ is a low-cost, personal robot kit with open-source software. It is possible to install ROS with TurtleBot support on an Inforce platform and control the teleoperation. Instructions for installation on a Snapdragon 410 processor based Inforce platform are available at this link. A video of the Turtlebot operating with an Inforce platform based on Snapdragon 600is available at this link.