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
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
Its main purpose is to enable developers to create shiny windows GUIs connected to the ROS system running on the Linux driven robot.
- 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.