MMS • RSS
Robot Operating System (ROS), a meta-operating system for robot development, is now available on Windows 10. Microsoft’s initial, experimental build, dubbed ROS1, is integrated within Visual Studio and includes a full port of Core ROS and several other modules. According to Microsoft, ROS on Windows will evolve to include full integration with GPU-based machine learning and Azure IoT Hub.
Despite its name, ROS is not an actual operating system. Rather, it is a collection of frameworks and services that provide operating system-like functionality running on top of a heterogeneous computer cluster powered by the robot hardware. ROS services include hardware abstraction, low-level device control, message-passing between processes, and package management.
ROS is not the only ‘robot framework’ currently available. Alternative includes Player, YARP, Orocos, CARMEN, and others. What sets ROS apart is its design centered around rich robotic platforms using actuated sensing (tilting lasers, pan/tilt sensor heads, sensors attached to arms) and its aim to leverage a naturally distributed computing environment. Additionally, ROS aims to be a thin, almost language-independent layer making it easy to run ROS-based code on other robotics platforms. ROS implementations exist in Python, C++, and Lisp, while support for Java an Lua is experimental.
The primary goal of ROS is to support code reuse in robotics research and development. ROS is a distributed framework of processes (aka Nodes) that enables executables to be individually designed and loosely coupled at runtime. These processes can be grouped into Packages and Stacks, which can be easily shared and distributed.
At ROSCon 2018 in Madrid, Spain, Microsoft demonstrated a ROBOTIS Turtlebot 3 robot running ROS Melodic Morenia on Windows 10 IoT Enterprise. Furthermore, Microsoft showed an Azure-based ROS simulation environment demonstrating a swarm of virtual robots connected to an orchestration system and controlled via Azure IoT Hub.
ROS1 requires a 64-bit Windows 10 Desktop or Windows 10 IoT Enterprise edition and is not yet enabled on Windows 10 IoT Core. At the time being, ROS1 can be installed using a binary package. The build process is not as easy as it could be desired, requiring a number of steps, but Microsoft is describing it in full detail. Integration with Visual Studio Code is also possible through a plugin.
ROS for Windows is not Microsoft’s first foray into robotics. In fact, Bill Gates developed his a robot in every home vision in 2007, following Microsoft’s introduction of Microsoft Robotics Developer Studio in 2006. Unfortunately, the project never gained traction, writes Steven Crowe for The Robot Report, and was abandoned in 2012.
Microsoft has already announced it is working on the next version of its ROS Windows port, ROS2, but did not disclose what it will bring. As usual, InfoQ will keep reporting about this project as it progresses.