HORUS/blog

Sep 5, 2026 · robotics-frameworks · windows · macos · beginners

Best Robotics Frameworks That Don't Require Linux

If Linux is off the table, build on a microcontroller toolchain, a cross-platform simulator, or the software your kit came with; ROS 2 will still want Ubuntu.

If Linux is off the table, the best frameworks are microcontroller toolchains like Arduino and Zephyr, cross-platform simulators like Webots, and vendor kit software. Those run on Windows and macOS because they target a chip with no operating system, or they ship their own. That flips the moment your robot needs a real computer running ROS 2 or a middleware such as HORUS, because that computer runs Linux. This post is for a beginner whose only machine is a Windows laptop or a Mac, who wants a robot moving without reinstalling an operating system first.

You bought the kit, or you signed up for the course, and step one is a black terminal window and a command starting with sudo. Your laptop is a MacBook. Or it is a Windows machine your school or your employer manages, where installing anything larger than a browser extension needs approval from a person you have never met. Every tutorial you find assumes otherwise. They open by telling you to install Ubuntu, as if a spare computer were something everyone keeps in a drawer, and the ones that acknowledge Windows do it in a single line that turns out to be wrong two versions later. So you try. You spend an evening on a virtual machine that boots to a black rectangle. By the third evening the robot has not moved, and you have started to suspect the problem is you. It is not. You have picked a road that almost nobody documents, and you can pick a different one tonight.

Which robotics framework should you pick if you cannot install Linux?

Pick by what the robot's brain is, not by what your laptop runs. If the robot is a small board with a chip on it, the answer is a microcontroller toolchain: Arduino, PlatformIO, MicroPython, or a real-time kernel such as Zephyr or FreeRTOS. All of those install on Windows and macOS as ordinary applications, because the code they build does not run on your laptop at all. It runs on the chip, which has no operating system to disagree about. If there is no robot yet, the answer is a simulator that ships builds for your machine, so you can learn the shape of the work while you decide what to buy. If you already own a kit from a manufacturer, the answer is whatever came in the box, because that software was tested on the machine you have. The one case with no comfortable answer is a robot with its own full computer, and that case is worth understanding before you commit money to it.

What does it mean for a robotics framework to require an operating system?

It means the framework was built and tested against one specific system, and everything it depends on was too. Robot software is never one program. It is your code, plus a driver for the camera, plus a library for the motor controller, plus a tool for watching messages go by, plus the build system that stitches them together. Each was packaged for one system, and in robotics that system is almost always Ubuntu Linux. When documentation says a framework supports Windows, that usually describes the core, not the pile. So the install works, the first demo runs, and the third thing you reach for was never built for you. There is a second, quieter reason. An operating system decides when your program gets the machine, which matters when something has to happen on a beat, and it decides how directly your code can talk to a plugged-in device. Linux gives more control over both, which explains why the well-worn path runs through it, and why stepping off costs you other people's work.

What actually goes wrong when you ignore the Linux requirement?

The install succeeds and the fourth step fails, which is why people lose weeks rather than an evening. Hour one goes well: two example programs talk to each other, a window opens, and the platform looks fine. Then you reach for the thing you actually wanted — a driver for the camera on your desk, a package someone wrote for your motor board, a viewer for what your program is publishing — and find it was built once, for Ubuntu, for a release that is now two behind. You start compiling from source. The error you get returns nothing in a search, because everyone who hit something similar was on Ubuntu and their fix does not apply to your paths. Then come the small things: file paths with the wrong slashes, permissions that behave differently, scripts written by someone who assumed a shell you do not have. Each break reads like your own mistake, so beginners conclude they are bad at robotics. The correct conclusion is that they are alone on the road, and being alone is the cost.

What are the frameworks that really run without Linux?

There are roughly eight real options, and they fall into three families plus one honest exception. The first family is microcontroller toolchains — Arduino and PlatformIO, MicroPython and CircuitPython, and the real-time kernels Zephyr and FreeRTOS — all of which install as normal applications on Windows and macOS and build code for a chip that never had an operating system. The second family is simulators with proper builds for both, Webots being the usual starting point. The third is the manufacturer software that came with a kit. The exception is the middleware layer, and being straight about it saves you time: ROS 2 publishes a native Windows build that covers the core and leaves you assembling everything else yourself, and HORUS, an open-source real-time middleware where Rust, Python and C++ share the same shared-memory ring buffers on one machine, is aimed at the robot's own computer rather than at your laptop. Neither is a way to avoid Linux. Both answer a question you reach later, once a robot has a computer inside it.

How do the frameworks that run without Linux compare?

Choose by which failure you can live with, because each row trades away something different and none of them gives you everything.

OptionWho it is forWhat it assumes you knowWhen to pick itWhen not to
Arduino or PlatformIOFirst-time builders with a small boardA little C, and how to plug in a cableThe robot is one board and a few motorsCameras and mapping are the point
MicroPython or CircuitPythonPython people who want hardware tonightPython, and patience with small memoryYou want to poke at hardware from a promptThe loop has to keep a strict beat
Zephyr or FreeRTOSBuilders whose loop must keep a beatThreads, priorities, reading a datasheetMotors must be updated on scheduleYou are still learning to blink an LED
WebotsAnyone without a robot yetBasic programming, nothing about hardwareYou are learning while you save upThe hardware is already on your desk
Vendor kit softwareKit owners and classroomsWhatever the manual teachesThe kit is the projectYou want to outgrow the kit
Plain Python over a serial cableTinkerers with one sensor and one motorPython, and where a USB device appearsThe whole robot fits in one scriptSeveral programs must run at once
The native ROS 2 Windows buildWindows-only shops with a rule about itWindows build tooling and its failuresPolicy rules out every other routeYou expect community packages to work
HORUSOne-machine robots mixing Rust, Python and C++One of those languages, and life outside ROSSensing, control and motion share a computerYour target is a chip with no operating system

Two rows at once is normal rather than a compromise: a simulator on the laptop for learning, and a microcontroller toolchain for the thing on the bench. The bottom two rows answer a question about a robot that already has a computer inside it, and what it costs to move data around such a machine is a different conversation from the one you are having tonight.

What should you pick if you are a student on a laptop you cannot change?

Take a microcontroller toolchain and a simulator, both of which install like ordinary applications and need no administrator to bless them. A managed laptop is the most common version of this problem and the easiest to solve, because the two things you actually need at the start — somewhere to write code, and something that moves — do not require touching the operating system. Arduino's editor and Webots both install for a normal user. Between them you can spend a whole term learning what a control loop is, why a sensor reading is never the number you expected, and how to structure a program that has to do several things at once. If your course has standardised on something else, use that instead of anything recommended here, because being unstuck quickly beats every property of the alternative. And if the course itself demands Ubuntu, the honest move is to ask for a lab machine or buy a cheap single-board computer rather than to fight the laptop, which is the route most people end up taking anyway.

What should you pick if your robot is a microcontroller board rather than a computer?

Then you never needed Linux in the first place, and the whole question dissolves. A microcontroller has no operating system to install, so the software that runs on it is built on your laptop and copied across a cable, and the toolchains that do that copying are ordinary Windows and macOS applications. Start with Arduino or PlatformIO if you can tolerate a little C, or MicroPython if you would rather type one line and watch a motor twitch immediately. Move to Zephyr or FreeRTOS when you find yourself needing several things to happen on their own schedules without tripping over each other. What you give up on a board like this is everything that needs a lot of memory: no camera pipeline, no map of a room, no model deciding what to do next. Those want a real computer. Plenty of genuinely useful robots never need one, and whether a board like that needs middleware at all is worth settling before you add anything to it.

What should you pick if you need something moving this month?

Take whichever route reaches a first success fastest, and then change nothing until the deadline passes. That is almost always a kit with its own software, or a single board driven by Arduino or MicroPython. A month is not enough time to learn a build system, a package manager, a message model and a robot at once, so remove whatever you can, and the platform is always the cheapest thing to remove. Do not repartition a working laptop under a deadline. Do not build anything from source. Do not accept an update, however politely it asks. The day the first demo works, write down every version you have and treat that list as part of the deliverable alongside the robot. If a piece of hardware only has software for a system you are not running, decide in an afternoon whether to change the hardware or change your plan, because that decision costs a day now and a fortnight if you discover it in the final week.

What should you pick if you have never opened a terminal?

Start with a simulator or a kit, because both let you write real robot logic before you ever meet a command line. The terminal is not hard, but it is a second thing to learn at the same time as the first thing, and beginners who take on both usually conclude that robotics is the difficult part when actually the shell was. A simulator gives you a robot that cannot be broken by a mistake, and a kit gives you one that cannot be broken by much. Either way you will write a loop that reads something and decides something, which is the actual skill. The terminal arrives on its own later, in small pieces, each attached to something you already wanted to do. That is a far better way to meet it than through an install guide written for someone who already knew. If you want a shortlist rather than a survey, the simulators worth a beginner's first evening is a shorter read than this one.

What do you give up by avoiding Linux?

You give up other people's work, and that is the whole cost. The robotics world's shared library of drivers, navigation code, arm planners, calibration tools and viewers was written by people running Ubuntu, published as packages built for Ubuntu, and debugged in forum threads by more people running Ubuntu. Staying off that platform means writing more yourself, or living without the parts you cannot write. For a robot that drives a few motors and reads a few sensors, that is a small loss. For a robot that has to build a map of a room, find a path through it and put an arm somewhere precise, it is enormous. The second thing you give up is timing control. When a loop must run on a steady beat, the operating system underneath is what decides whether your code gets the machine when the beat arrives, and a laptop system tuned for browsers gives you fewer levers than Linux does. That matters less than it sounds while you are learning, and more than anything else once the robot carries weight.

When is ROS 2 the better choice?

ROS 2 is the better choice the moment your robot needs to know where it is, and it is worth installing Linux to get it. Mapping a space, planning a route through it, tracking where an arm's fingertips are in the room, fusing several sensors into one picture of the world — those are solved problems inside the ROS ecosystem and unsolved ones outside it, and rebuilding any of them yourself is a year you will not get back. ROS 2 is also right when you want a job in this field, when you are joining a lab or a company that already runs it, and when the hardware you bought ships a ROS driver and nothing else. In all of those cases the correct move is to get Linux — on a spare machine, a small board, or a virtual one. HORUS is not the answer to any of them, because a single-machine middleware brings no navigation stack with it, and pretending otherwise would cost you months. Take the ecosystem when you need the ecosystem.

Is avoiding Linux going to limit what your robot can eventually do?

No, and here is why. The limit is set by the computer inside the robot, not by the one on your desk, and those are two different machines with two different jobs. Plenty of finished products are built by people whose development laptop runs Windows, because the software gets written on the laptop and runs somewhere else entirely. A robot vacuum, a camera gimbal, a machine on a production line — the thing making decisions inside is either a chip with no operating system or a small Linux computer you never see, and either way your daily typing environment did not set the ceiling. What genuinely does limit you is the ecosystem rather than the platform, and the two get confused constantly. If you avoid Linux and therefore avoid the shared library of robotics code, you have chosen a smaller toolbox. If you avoid Linux on the laptop while the robot's own board runs it, you have chosen nothing at all, and everything remains available to you. Work out which of those you are actually doing before concluding that a choice has cost you something.

Is a Mac a fine machine for robotics now?

Partly, but not the way you think. A Mac is an excellent machine for robotics work and a poor host for robot software, and those two statements are not in tension. Writing code, reading papers, running a simulator, building firmware for a microcontroller, connecting over the network to the robot's own computer — all of that is comfortable, and the hardware suits it well. What is not comfortable is being the machine where the robot's own software runs. Support for macOS in the large robotics stacks is a spectrum rather than a switch, and macOS sits at the end where you build from source, resolve dependency arguments yourself, and read release notes hoping for a mention. The packages you eventually want were written by people who never ran them there. The arrangement that works is the boring one: keep the Mac as the place you type, and give the robot software a Linux of its own, virtual or physical, ideally the board that will sit inside the robot anyway.

How do you decide which of these to start with this week?

Answer three questions and the answer falls out of them. First: does the robot have a chip or a computer? A chip means a microcontroller toolchain and no operating system argument at all. A computer means the argument is real, and worth settling now. Second: do you own hardware yet? If not, a simulator is the whole answer for the next few weeks, and buying later with an opinion beats buying now without one. Third: has anything already been chosen for you — a course, a lab, a teammate, a kit in a box? Then match it, because being able to ask a real person a question outweighs every technical property on this page. If your three answers disagree, follow the first, because what the robot is made of outranks what you would prefer to type on. And if you find yourself planning a build with a full computer inside it, stop treating this as an operating system question. It has quietly become a middleware question, which is a different decision.

A short version, by situation:

When you are comparing stacks rather than routes, the HORUS Fit Framework lines them up on five things that are not numbers: ecosystem size, setup effort, team size fit, deployment target, and licence. Here, setup effort and deployment target carry the weight, because the laptop is only where you learn.

HORUS is open source under Apache-2.0 and the repository is linked below. Star it so it is in your list when you start building.

Found this useful? Share it:Discuss on HNShare on X