[Documentation] [TitleIndex] [WordIndex

ROS on Windows installation

  Show EOL distros: 

ROS CTurtle is EOL, and these instructions for getting it to work on Windows are severely outdated. They are only kept here for historical reasons.

Please do not expect these steps to work, or try to follow them.

For future Windows support, see the relevant ROS2 resources.

Running ROS Software on Windows

ROS is currently not supported on Windows, but it is possible to run parts of ROS on Windows. In particular, you can:

  • run some of the Python code, including the ROS client library for Python (rospy). This is useful, for example, if you need to interface a process on Windows with a ROS graph running elsewhere.

  • run C++ code under Cygwin

Each of these possibilities is discussed below.

Running Python code on Windows

If you have Python code on Windows you wish to interface with ROS, you can use the rospy client library. This will enable you to run Python-based ROS nodes. Higher-level tools, like roslaunch, are not expected to work on Windows, though they can be ported.

There are some extra things you will have to do that, while cumbersome, will get you off the ground.

What you need

Copying generated message and service files

You will need the auto-generated Python files for the messages and services you plan to use. The easiest way to do this is to compile your packages on a non-Windows setup, then copy these files over.

In order to figure out which packages have messages, you can run:

$ rosmsg packages

You can then copy the src/package_name/msg from these packages onto your Windows machine.

In order to figure out which packages have services, you can run:

$ rossrv packages

You can then copy the src/package_name/srv from these packages onto your Windows machine.

Disable calls to roslib.load_manifest

rospy uses the rospack library to dynamically generate the appropriate PYTHONPATH. rospack doesn't work on Windows (yet), so you will need to disable these calls and instead configure your Python path manually.

Here is an example of how to disable this call in roslib/src/roslib/launcher.py:

def load_manifest(package_name, bootstrap_version="0.7"):
    """
    Update the Python sys.path with package's dependencies
    @param package_name: name of the package that load_manifest() is being called from.
    @type  package_name: str
    @param bootstrap_version: (keyword argument) do not use. Soon to be deprecated
    @type  bootstrap_version: str
    """
    if 1 or package_name in _bootstrapped:
        return

Note the "1 or" on the second-to-last line.

Setup your environment

You will need to set your ROS_MASTER_URI and ROS_ROOT environment variables. Also set PYTHONPATH variable to the folder containing the copied packages

Quick Check

Ideally, you'll have a folder containing the following python packages

  • roslib - copied from $HOME/ros/ros/core/roslib/src/
  • rospy - copied from $HOME/ros/ros_comm/clients/rospy/src/
  • std_msgs - copied from $HOME/ros/ros_comm/messages/std_msgs/src/
  • rosgraph_msgs - copied from $HOME/Users/tingfan/ros/ros_comm/messages/rosgraph_msgs/src/
  • other packages - copied from rospack find $package_name/src

These packages list above should be enough for running at least the "talker_listener" tutorial.

ROS windows port by Robotics Equipment Corporation

A native windows port is available here. The port currently includes

  • roslib
  • roscpp
  • rosconsole
  • message_filters
  • tf
  • actionlib

Its main purpose is to enable developers to create shiny windows GUIs connected to the ROS system running on the Linux driven robot.

System requirements:

  • Windows 7 or Vista (32/64 bit)
  • Microsoft Visual Studio 2008 or Microsoft Visual Studio 2008 Express Edition
  • CMake (version 2.8 or later)

Running with Cygwin

Please see Tingfan Wu's tutorial.

ROS Diamondback is EOL, and these instructions for getting it to work on Windows are severely outdated. They are only kept here for historical reasons.

Please do not expect these steps to work, or try to follow them.

For future Windows support, see the relevant ROS2 resources.

Overview

We are go! Well, not fully yet, but there is partial functionality and enough to be useful in some situations. To be practical, we are not targeting the windows environment as a full blown replacement for linux-ros as windows doesn't have the mechanisms to handle the scaling of complexity (e.g. rosdeps), but it needs to be able to be useful in some simple use case scenarios. For example,

  • Monitoring/debugging the robot from a remote windows pc.
  • Users interfacing with a robot via simple controlling applications.
  • Scenario apps (e.g. smach) that are more conveniently run on the network.
  • Manager applications for controlling networked robots.
  • Computationally heavy algorithms running on an idle pc away from the robot.

Status

Current functionality has been enabled by compiling with the mingw cross-compiler in linux. The cross compiling is managed by eros and the windows specific utilities and tools are in win_ros. As ros moves to a purely cmake build environment, we hope to bring in the msvc compatibility.

{X} Under Construction...

ROS Electric is EOL, and these instructions for getting it to work on Windows are severely outdated. They are only kept here for historical reasons.

Please do not expect these steps to work, or try to follow them.

For future Windows support, see the relevant ROS2 resources.

Overview

We are go! Well, not fully yet, but there is partial functionality and enough to be useful in some situations. To be practical, we are not targeting the windows environment as a full blown replacement for linux-ros as windows doesn't have the mechanisms to handle the scaling of complexity (e.g. rosdeps), but it needs to be useful in some simple use case scenarios. For example,

  • Monitoring/debugging/interfacing with ros robots from a remote windows pc.
  • Integrating with programs that only utilise windows drivers/libraries.
  • Using ros comms to connect ros robots to a much larger networked environment.
  • Computationally heavy algorithms running on an idle pc away from the robot.

The current status is still experimental. Various components are working and we hope to start realising some real usefulness with electric. You can check the roadmap to see what's been done and what is on the immediate todo list (if you're interested in helping, contact one of the devs!).

Getting Started

Windows C++ Development

This is for native windows development with the microsoft visual studio compiler (currently supporting visual studio/express 10+).

For more advanced usage:

Linux C++ Development

This is for the control roboticists who love working in linux and get flustered when asked to build windows apps for the rest of the world (namely users/test engineers) there is the mingw cross-compiler. There is also qt support here - write the code once and compile your qt app for both windows and linux without any changes.

Where To Go From Here

All guides and documentation for installing and using ros on windows can be found in the win_ros wiki pages.

Overview

ROS Groovy is EOL, and these instructions for getting it to work on Windows are severely outdated. They are only kept here for historical reasons.

Please do not expect these steps to work, or try to follow them.

For future Windows support, see the relevant ROS2 resources.

Under development - ymmv.

Information

Getting Started

WinRos on Windows

This is for native windows development with the microsoft 2010 compiler. Currently supporting either windows sdk 7.1 (cl/nmake) or visual studio 10.0.

For more advanced users who are familiar with ros and catkin:

WinRos on Linux

{X} It is not likely we'll have mingw re-enabled for groovy.

This is for the control roboticists who love working in linux and get flustered when asked to build windows apps for the rest of the world (namely users/test engineers) there is the mingw cross-compiler. There is also qt support here - write the code once and compile your qt app for both windows and linux without any changes.

Support

  • Contact - where to go for help or to ask about contributing.

  • Troubleshooting - if you are having issues, consult this first.

  • Additional Help - general questions about working in win_ros.

Contributing

  • Roadmap/ChangeList - current status and plans.

  • Contributing - if you're interested in helping, either with the infrastructure or porting stacks, start here.

All guides and documentation for installing and using ros on windows can be found in the win_ros wiki pages.

Overview

ROS Hydro is EOL, and these instructions for getting it to work on Windows are outdated. They are only kept here for historical reasons.

Please do not expect these steps to work, or try to follow them.

For future Windows support, see the relevant ROS2 resources.

Information

Getting Started

WinRos on Windows

This is for native Windows development with the Microsoft Visual C++ Compilers 2010. Currently supporting either Windows SDK 7.1 (cl/nmake) or Visual Studio 10.0.

  • Msvc Status - what's working and what's not.

  • Msvc SDK - installing, configuring and verifying a pre-built sdk.

  • Msvc SDK Projects - developing projects with visual studio and the sdk.

  • Msvc SDK Messages - developing new ros msg types with the sdk.

  • Msvc Runtime Environment - rosmaster, roslaunch'ers, rosparam and ros logging with the sdk.

For more advanced users who are familiar with ros and catkin:

Support

  • Contact - where to go for help or to ask about contributing.

  • Troubleshooting - if you are having issues, consult this first.

  • Additional Help - general questions about working in win_ros.

Contributing

  • Roadmap/ChangeList - current status and plans.

  • Contributing - if you're interested in helping, either with the infrastructure or porting stacks, start here.

Refer to hydro version for old installation instructions.

Refer to lunar if you are able to use a newer ROS version.

If you are running Windows 10 (version 1703) or newer it is possible to install and use ROS through the Windows Subsystem for Linux (WSL).

Detailed instructions are available here:

Jan Bernlöhr: Running ROS on Windows 10

Note that this is not a native installation of ROS Lunar on Windows, but the Ubuntu version of ROS Lunar running on-top of the Windows Subsystem for Linux (WSL).

Support for GUI tools is limited (fi: all 3D rendering is software based) and needs additional software on the Windows side (X server), access to hardware is currently not or only minimally possible (a WSL limitation) and Windows file system performance is not on-par with a Linux system which has an impact on IO-bottlenecked tasks.


2018-06-23 12:16