Enabling ROS on our Qualcomm Snapdragon based Products
The Robot Operating System (ROS) is an open source collection of software frameworks and provides capabilities that you would expect from an operating system, like hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management. 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 by encouraging 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 at 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. It thus becomes possible to have Penguin Edge platforms as the main computing device on a robot. A simple representation of a robot for computer vision purposes is shown below.
At the core is our Snapdragon 820 based platform for which we provide a complete Debian Linux software package with support for all on-board peripherals. The input and output devices (I/O) are grouped below this core. OpenGL is an open source API used for rendering 2D and 3D vector graphics. The Point Cloud Library (PCL) is a stand-alone C++ library for 3D point cloud processing and is very useful in the ROS ecosystem.
A few of the IO devices can connect as is, or may be part of another computer, while other devices might require some electronics or software to interface with. The platform support Ethernet and WiFi capabilities out of the box, and thus this core could expand into multiple cores just as well, all running the ROS framework and communicating over a network! The ROS framework would tie it all together, and these tens of computers would be supporting a single virtual entity, which is what you would call ‘the robot’. The possibilities are indeed endless!
Penguin Edge provides fully featured Ubuntu/Debian BSP releases for its platforms and has qualified ROS Noetic on their Snapdragon 820 based SBC running the Debian release. The hardware comes with an ample internal memory of 64GB. If that doesn’t suffice a particular use-case, an external SD card can easily be partitioned for additional memory. ROS has extensive documentation at http://wiki.ros.org and we at Penguin Edge would be glad to support you create and build your next robot with our hardware at the core.