Update (2017-10-28): @k-okada
I have successfully running ros, rviz + stage or rviz + gazebo (though the gazebo screen is black), on Windows Fall Creators Updates
Update (2017-05-09):
There is now a PR against ros_comm
(ros/ros_comm#1050) which appears to address one of the main remaining issues with ROS on WSL.
A regular ROS install with ros_comm
(really only roscpp
) with the patch built from sources in an overlay workspace now results in an (almost) working ROS install running on WSL on build 16188.
Update (2017-04-05) by @RodBelaFarin:
Status quo in build 15063: roscore
, turtlesim
, rviz
, rqt_graph
starting up, rostopic list
works, even rostopic echo
works sometimes, but no communication between nodes. Using WSL 14.04 and Indigo binary install, just added localhost
to .bashrc
as ROS_MASTER_URI
and ROS_HOSTNAME
. Using Xming and DISPLAY=:0
.
Update (2017-02-02): Build 15019 hasn't improved things significantly, but at least most of the tricks for getting networking to work (Teredo issue etc) have been addressed.
See Microsoft/BashOnWindows/#issues/1450 and Microsoft/BashOnWindows#1391 for issues tracking current state / progress.
Update (2016-11-11): the Anniversary Update didn't improve things, but as of Build 14965, the below mentioned getifaddrs
preload library is no longer needed. Network interface enumeration now works correctly. If you are having problems (permission denied
errors from Python netifaces.interfaces()
, see this comment about the Teredo interface.
RQT runs (after export DISPLAY=:0
and installing an X server on Windows). RViz could work, if you have an X server supporting OpenGL.
One remaining issue is that there is still a problem with publishing and subscribing from WSL.
Note that new installations of WSL will install Ubuntu Xenial (16.04), requiring you to install ROS Kinetic. Just follow the Ubuntu ROS Kinetic installation documentation.
tl;dr: you can install ROS Indigo for amd64
from binaries on WSL, but the current state of the network stack is such that it makes any kind of serious use of ROSonWSL impossible (at least as of build 14376 14905).
edit: it could be that things will improve after the Anniversary Update (from Microsoft/BashOnWindows#567):
We are working to enhance the networking/socket level support post Anniversary update release. Stay tuned!
(note: the following text is left here for reference only. Most of the comments about the networking stack don't apply to recent builds any more)
It's perfectly possible to install ROS on WSL as you found out: just follow the Ubuntu Trusty installation tutorial. No need to build from source actually, WSL supports the amd64
architecture, which is well supported by the ROS buildfarm.
The problem is that for ROS to be really useful (other than just using it as a build infrastructure on a Windows10 machine) the networking support in WSL needs to be extended significantly ... (more)