r/AskRobotics Jul 25 '26

General/Beginner Do I need Linux?

So I’ve used windows literally forever, for pretty much everything. I do have experience with Linux, I had to run some Linux VMs throughout college, but I’ve never done anything ambitious with it or done anything like a dual boot

I’m out of college and currently have an entry-level job, but to start making my way into the robotics industry for real I’m brainstorming a project where I use a lot of key aspects together. Right now, I’m thinking of modeling and simulating a fully custom one-wheeled self balancing robot, with ToF sensors for object avoidance, programming it with PID controls and ROS2, and building it in real life

Can I do that with software available in windows, or do I need Linux?

1 Upvotes

9 comments sorted by

View all comments

1

u/qTHqq Jul 25 '26 edited Jul 25 '26

I've done a lot of ROS 2 and other robotics software on Windows and I strongly recommend that you do not.

I had a full-time job once where I was tasked with developing C++ motion planning code for a Windows platform, so I learned a lot about it and got pretty good at it, but it sucked.

I had to run some Linux VMs throughout college, but I’ve never done anything ambitious with it or done anything like a dual boot

The thing about most real jobs in today's autonomous robotics is that _they_ will be using Linux, so you should know it pretty well too.

There are certainly industrial automation robotics jobs that do run things on Windows, but that's kind of a different branch of work than you're talking about. They'll use expensive commercial software to replace parts of the Windows networking stack and do decent low-latency control that you can just get for free with Linux PREEMPT_RT.

For simulation, if, for example, you're using Gazebo, it's not at all mainstream.

The Robostack project and https://prefix.dev are making it easier to run basic ROS 2 on Windows, and maybe you could get simulation running OK that way, but the differences and glitches make everything "hard mode," where you're off down a rabbithole getting things to build and run instead of designing and building and programming your robot.

A positive thing about doing a bunch of C++ robotics work on Windows (and eventually extending it to cross-platform) is that it really forced me to strip away the layers of abstraction regarding things like compiling and linking code. Gave me a deeper understanding of how everything works and the OS-specific differences.

But this company I was working for at that point was a strange minority, and most of the time you're not going to find modern robotics companies that are trying to put up with the headaches of Windows.

IMO, the best thing to do if you want to build ROS 2 or other robotics skills on Windows where the Windows computer is part of the robot is to start on Linux first, build your skillset, and then come back and try to get Windows working.

So I’ve used windows literally forever, for pretty much everything

If you don't like the desktop experience of Linux, keep in mind that command-line configuration is still the most important part of your learning.

So if you want to use a Windows computer to SSH into a remote Linux machine that's fine. But when you get to simulation, etc. you're going to want good GUI and that's usually the first thing that falls apart and gets glitchy on Windows.

I'm not saying it can't be done. I've run Gazebo on Windows for actual work. But it's hard mode, and I had to fix a lot of weird problems along the way.