I wanted to reach out to this community and connect with folks who use, plan to use or are interested/intrigued to use ROS (and specifically ROS2) with Windows.
I am the Group Product Manager for ROS on Windows at Microsoft (I work alongside @ooeygui whom you may know), and an enthusiast and user of ROS.
Please reach out and I will setup some time to chat.
We want a free ROS wrapper around ChatGPT!
Just kidding… mostly.
Thank you @AndyZe for responding. I am interested in what you would want a ROS wrapper for ChatGPT (I saw the point on it being free, but I am sidelining that for now). I’d like to keep this thread focused on ROS(2) on Windows usage. If you’d like to start a thread specifically on ChatGPT and ROS, i’d love to participate in that thread.
Hi Dan, I have used ROS 1 in Windows previously for a cross platform compatible project. I’d be happy to talk more about it. Let me know.
I’m Mohamed Ghanem, an automation and control system engineer, my experince in the field embedded systems and very interested in ROS which I’m going to work on it in the near future. it’s grewt opportunity to contact you.
I am a Windows/Linux user. For ROS2 I am used to a command line control on the embedded controller which is most of time connected via IP.
For graphical view of ROS, I prefer being on windows but I really prefer working on WSL since it is easier to install. But connecting WSL to hardware and additional drives is not fluent.
I am Mario Corsanici, control engineer working on robotics industrial applications and teleoperation for different companies in Italy. I am pretty interested in testing ROS 2 on Windows.
I am Adnan, a Mechatronics engineer and currently working with medical robotics. I have an upcoming project that would benefit from ROS2 on windows.
I am interested in joining this conversation!
I am Jishnu
Currently learning ros2, on ubuntu, but I am very much interested in joining the conversation and testing out ros2 functionalities on windows machine.
Hi Dan - I am interested for sure. I develop for ROS2 in Linux right now, and recently bought a PC hoping to move at least some of the dev work over to Windows where there’s better access to GPU, etc. but it was quite challenging. The security model around command-line Development in Windows using PowerShell or the legacy prompt was super stifling and I kept having to look up the work around and how to open permissions and whatnot to the point where I just retreated to WSL to move forward. Then, the networking model of WSL bit me as the virtualized network interfaces created problems when trying to get nodes to find each other.
Overall, I think ROS on Windows is a strong idea, but would benefit very much from some tips on how to configure the environment to make it possible to run the tools and navigate the firewall and networking model properly. In Ubuntu it “just works” and where it doesn’t, there are pretty explicit guides for what is required. Hopefully Windows can get to that same level of documentation.
Hey there @IOTDan, I have used ROS2 on Windows (tried out a couple of demos), albeit not natively. I find it very comfortable to use a custom Docker image with all I need for my work, and use it through WSL2. I find that ROS2 has really matured on a Ubuntu/Debian based OS, and there are certainly improvements to be made on the Windows side of things viz a viz ROS2 support, but I am thrilled to see that the development is active, and people are adhering more and more towards using ROS2 on a Windows-based system.
You can reach out to me if you would like to chat.
I am working at Bosch and have ~7YOE with ROS (1 & 2).
Windows has always been an interesting target, to deploy part of the front-end applications for Management demos, providing better interfaces to the test team or for industrial clients that like to have an installable application.
Development has always been pushed to Linux as the developer experience for ROS on Windows is subpar. (Convoluted installation, having to explicitly use a VS Studio console and new consoles not being in the same path as the one we left doesn’t make any sense when coming from Linux)
Due to this complexity to get it started for all collaborators, we just end up making a web-server on the robot to make it accessible from any platform.
I use Adobe / CAD and require good access to my nvidia card quite a lot, so in windows 11 currently I’m combining that with ROS2 work in WSL. It’s not ideal but beats dual booting to my ubuntu side of the computer constantly, and USBipd is working out to connect hardware to ROS2 in WSL so far.
That said, I would love it for ROS2 to work better in Windows directly.
We have some done some very limited experiments with ROS 2 in Windows. We have a Unity-based simulation/visualisation environment for our software stack, which makes calls to our C++ libraries (shared between the multi-platform visualisation and the actual algorithms running on a Linux server).
As we have started to experiment with integrating ROS into our platform, this has meant compiling our libraries against ROS on Windows and having it run as part of the Unity executable.
I believe there were a few small hurdles for the engineer that first attempted to do it, but nothing too major and it worked ok after that. That project has been on the backburner for the better part of the last year but we expect to get back to it at some point.
Totally agree with this point. I am not the biggest fan of having to download Visual Studio and the amount of libraries installed quickly bloats up, thus hindering deployment on some sort of edge device.
Also, more of a personal preference than anything else - but I cannot get used to the terminal experience on Windows. If anyone has any experience on how to get a better (more Linux-ish) windows terminal experience, that would be appreciated.
You could try this : PowerShell if you do not know.
And there is also this which is much more global : MobaXTerm
I have used ROS1 in Win10 with WSL. The robot was connected via Ethernet, so the complications of USB devices didn’t matter at the time. I’ve been using ROS1/2 on Linux for some time now. I did some test builds with ROS2 on Windows at one point, but I can’t deal with a command line without robust tab completion.
I’ve used both ROS 1 and ROS 2 on Windows, via the MS IoT native and Robostack installation methods. I guess I’ve also had some nodes running on WSL from time to time.
In ROS 1 I was mostly doing simulation work in Gazebo and aiming toward interoperation with a Windows-native robotics application we were developing.
In ROS 2 I largely used it for visualization on the desktop. I’m a long-time Windows user from an office-work standpoint and so I’d frequently have a headless or remote PREEMPT_RT Linux machine running the robot but RViz and other graphical interfaces running on Windows.
I’d definitely be interested to chat, to discuss what I was working on, and curious to understand what Microsoft is aiming at/hoping for with ROS on Windows!
I’ve found myself dropping into WSL and browsing via
/mnt/c when I needed Linux shell functionality on Windows. I was doing enough Windows development when I started using ROS on Windows that I’d gotten pretty good with the DOS command line, though, so I didn’t have to do it all the time.
This seems to be a known bug and not a missing feature, at least in the ROS 2 context: Tab completion doesn't work with cmd.exe or PowerShell · Issue #712 · ros2/ros2cli · GitHub
Yep, I do something similar. My workaround is to append the line
cd /mnt/c/projects/wsl/ into my
.bashrc so that I start from the wsl directory when I get inside ubuntu on wsl2. Putting it on here if anyone else finds this useful.
I guess it’s just a personal preference here, but I absolutely adore working on a linux-based system, and I never had the chance to develop software for a windows target, so I might have missed out on some of the features provided by Powershell.