At ROSCon 2018 in Madrid this weekend, Microsoft showed up with a small booth and a TurtleBot 3. The TurtleBot wasn’t doing much, just sitting on a table, but it was sitting on the table while running ROS Melodic Morenia on Windows 10. Were it released onto the floor, it would have used its lidar to locate people and drive toward them, as a proof of concept that Microsoft has successfully gotten ROS to work in Windows.
This isn’t just an isolated demo, either. In a blog post, Lou Amadio (Windows IoT principal software engineer at Microsoft), says, “Microsoft is working with Open Robotics and the ROS Industrial Consortium to bring the Robot Operating System to Windows.” Hooray!
One of the biggest obstacles to getting started with ROS is that it also involves getting started with Linux. For many people, this means taking your happy and familiar Windows computer, partitioning a hard drive, figuring out how to install Linux from scratch, and then learning how to use it well enough to install ROS and start doing ROS things. I’ve been through this process, and it’s not particularly pleasant. For individual users, it may not be that big of a deal, but it can be a more significant obstacle in educational environments.
Potentially, ROS on Windows 10 would make it easier for people to get going with ROS in a familiar environment. It’s not like this is a new idea, and we’ve seen a few different community-driven projects that have attempted to make ROS work on Windows before, but in this case direct involvement and integration from Microsoft seems to be making all the difference: “Microsoft will host the Windows builds for ROS1 and shortly ROS2, as well as provide documentation, development, and deployment solutions for Windows. With ROS for Windows, developers will be able to use the familiar Visual Studio toolset along with rich AI and cloud features.”
To get ROS working on Windows 10 right now, you’ll need a 64-bit version of Windows 10 Desktop (or Windows 10 IoT Enterprise), at least 10 GB of space, and Microsoft Visual Studio 2017 (the community edition is free). Then you’ll need to install a package manager, install Git, set up an administrator command line shortcut, and finally install ROS itself. It still seems a lot, but Microsoft has helpful step-by-step instructions here. And from that point, you’re free to begin the basic ROS tutorials, although it’s important to note that there are some fundamental operating system differences between Windows and Linux that you’ll need to be aware of—for example, Linux is case sensitive while Windows is not, and Windows uses “\” where Linux uses “/”, that sort of thing.
It’s too early to tell just how much Microsoft is committing to this, and we’re keeping in mind that Microsoft’s recent history with robotics has been scattered at best. A decade ago, Microsoft seemed to be very optimistic about robotics, with Bill Gates looking forward to “a robot in every home” in 2007. However, changing priorities resulted in the dissolution of Microsoft’s robotics group in 2014. Microsoft still does some robotics research, but its robotics projects are sprinkled across other research areas like artificial intelligence, computer vision, and human computer interaction.
So why does Microsoft want to support ROS with Windows, and why the particular interest right now? We can only speculate, but Lou Amadio’s blog post offers some hints:
Manufacturers want to make robots more aware of their surroundings, easier to program and safer to be around. Governments, manufacturers, and academics around the world are investing in the next generation of manufacturing, sometimes referred to as “Industry 4.0”.
Microsoft has joined the ROS Industrial Consortium whose mission is to extend the advanced capabilities of ROS to manufacturing and improve the productivity and return on investment of industrial robots.
We’re looking forward to bringing the intelligent edge to robotics by bringing advanced features like hardware-accelerated Windows Machine Learning, computer vision, Azure Cognitive Services, Azure IoT cloud services, and other Microsoft technologies to home, education, commercial, and industrial robots.
Reading between the lines here, it could be that Microsoft sees ROS as an opportunity to make its cloud platform, Azure, more appealing to roboticists, robotics companies, and industrial or commercial robotics deployments. Enthusiastic ROS support might differentiate Microsoft from Amazon’s AWS and Google Cloud Platform, although Google has also made it clear (here at ROSCon) that it’s actively interested in ROS users as well.
Whatever Microsoft’s motives are, it’s exciting that they’ve taken steps toward making ROS (and soon ROS2) both more accessible and easier to use. There’s plenty of room for streamlining this process even further, although some of the fundamental differences between Windows and Linux may be hard to reconcile. We’ll be watching closely to see how things progress over the next several months, and we’ll be following up with both Microsoft and Open Robotics for (on-record) comments as soon as we can.