Settings

Theme

PeppyOS: A simpler alternative to ROS 2 (now with containers support)

peppy.bot

74 points by Ekami a month ago · 42 comments

Reader

kevin42 a month ago

I'd love to use something other than ROS2, if for no other reason than to get rid of the dependency hell and the convoluted build system.

But there are a lot of nodes and drivers out there for ROS already. It's a chicken and egg thing because people aren't going to write drivers unless there are enough users, and it's hard to get users without drivers.

It looks like their business model is to give away the OS and make money with FoxGlove-like tools. It's not a bad idea, but adoption will be an uphill battle. And since they aren't open source yet, I certainly wouldn't start using it on a project until it us.

  • dheera a month ago

    ROS is, in my opinion, dying on the industry front.

    * It is a dependency hell

    * It is resource-heavy on embedded systems

    * It is too slow for real-time, high speed control loops

    * Huge chunks of it are maintained by hobbyists and far behind the state of the art (e.g. the entire navigation stack)

    * As robotics moves toward end-to-end AI systems, stuff needs to stay on GPU memory, not shuttled back and forth across processes through a networking stack.

    * Decentralized messaging was the wrong call. A bunch of nodes running on a robot doesn't need a decentralized infrastructure. This isn't Bitcoin. Robots talking to each other, maybe, but not pieces of code on the same robot.

  • droelf a month ago

    We're working hard to get ROS out of dependency hell - https://prefix.dev/blog/reproducible-package-management-for-...

    Would love to hear your thoughts.

    • EkamiOP a month ago

      Fun fact, we've been using pixi to compile everything Python related internally. In fact PeppyOS was even started with pixi as a base layer (but we pivoted away from it since the project is in Rust and Cargo is the de-facto toolchain). We support uv by default for Python (since it's what's the most used these days) but pixi is already supported, see the note on this page: https://docs.peppy.bot/guides/first_node/

  • EkamiOP a month ago

    Hey, good points, we have plans to create a ROS2 bridge in the near future. We definitely won't be able to catch up with huge ecosystem that ROS2 has created over the years but we will rewrite the annoying parts, that's for sure.

cjwoodall a month ago

I will admit I have almost always made the choice to not use ros2. I am trying to use it now for some work, and I can see where/when it would be useful...

But I almost always feel like there is just so much STUFF involved in ros, that really is just better resolved by having really robust controllers, well defined protocols, and everything else.

I wait to pass judgement until I have more information though

  • mikepurvis a month ago

    I've been a ROS 1 (and now 2) user since 2010. I like the game engine analogy given elsewhere in the thread, in that ROS gives you some important things "for free" if you cooperate with its ecosystem conventions. Data bagging, visualization, teleop, and sim are the some obvious ones that I think a lot of teams don't think about if they're just focused on getting cartographer or whatever going, and not considering the larger development and debugging questions.

    For some, packaging/deployment would also fall under the umbrella of a solved-by-ROS problem, however I don't think the Open Robotics supplied debs are suitable for most product deployments, for a variety of reasons that I've discussed in two separate ROSCon talks.

  • dimatura a month ago

    I usually feel the same when starting something new. The "STUFF" is annoying and often feels like overkill when a project is new and minimal. Installing/building ROS, the package boilerplate, etc. And often I can get away with more minimal alternatives like just a single (possibly multithreaded) process, or multiple processes with a simple IPC. But then again I often end up wanting a lot of the extra stuff you get with ROS like the bags, the viewers, the cli tools, etc. LLMs help on both fronts though - they're decent at making DIY versions of ROS-like functionality, but they're also pretty good at handling the ROS boilerplate. (Which is one area where I'd see peppyOS being a severe disadvantage).

  • jeff-hykin a month ago

    As someone who has used ros2, I feel fine passing judgment; it is terrible. If its easier to write your own stack, do it. Your own stack will be easier to add to and maintain long term. The conceptual design (nodes) is great, its just the execution that is awful.

    • rcxdude a month ago

      This is my experience as well. The average quality in ROS is rock-bottom and so while it contains all of the things you might want from a robotics framework, you pay dearly for it. I would also say that whole the concept of distributed network modes is a convenient one for robotics development, stringing your control loops through such a structure is a recipe for disaster and should be avoided in your system design as much as possible (and one of the problems with ROS as a framework is that it heavily encourages this)

  • EkamiOP a month ago

    Our goal is to make all of this super easy with the installation of a single script. We're also working on a SaaS in parallel which will allow you to fire up the whole stack in your browser, 0 setup required (you pick the robot you want and it runs in a sim in your browser). Then, when you're satisfied with the result you just run a bash script on your Jetson board and everything will work the same on your real robot.

colinator a month ago

I've got one of these! Mine is called 'roboflex' (github.com/flexrobotics). It's c++/python, not rust. But similarly born out of frustration with ros. Writing your own robotics middleware seems to be a rite of passage. Just like 'writing your own game engine'. Nothing wrong with that - ros is powerful but has legit problems, and we need alternatives.

Although tbh, these days I'm questioning the utility. If I'm the one writing the robot code, then I care a lot about the ergonomics of the libraries or frameworks. But if LLMs are writing it, do I really care? That's a genuine, not rhetorical question. I suppose ergonomics still matter (and maybe matter even more) if I'm the one that has to check all the LLM code....

  • jeff-hykin a month ago

    Take a look at github.com/dimensionalos/dimos. We are a team making - not only a replacement for ROS - but one that can be easily vibe coded, and one with compatibility with ros and containers.

    Always looking for testers and feedback if you want to influence the design/API.

irishcoffee a month ago

One of the only ways I can imagine that would _somehow add even more complexity_ to the disaster that is ROS/ROS2, is to try and make rust a first-class citizen.

You're using ROS2, so you have a problem. You want to add rust to fix it? Now you have 47 problems.

steve_adams_86 a month ago

It looks like this is cleaner and simpler than ROS 2, and the API seems nice, but it would be really difficult to diverge from the standard and use an ecosystem with a very small community and no momentum behind it. Does this have any compelling selling points to convince someone to switch other than 'less overhead than ROS 2'?

I'm not trying to downplay that selling point at all. My experience with ROS 2 is limited but that aspect of it was miserable.

This is such a small nit, but landing at the docs page (https://docs.peppy.bot/) and seeing this splash is annoying to me. Just show the docs.

Also it would be nice if I could switch between Rust and Python examples and have all code panes respect that choice, rather than have to switch every pane to Rust.

  • EkamiOP a month ago

    Feedback noted, thanks! > Does this have any compelling selling points to convince someone to switch other than 'less overhead than ROS 2'?

    At the moment it's pretty raw, but we'll eventually turn it into a "no fuss entry into robotics".

094459 a month ago

This doesnt look open source, so maybe not a good comparison with ROS

  • antoineleclair a month ago

    I see in their FAQ:

    > Will PeppyOS be open source?

    > Yes! PeppyOS will be fully open source under a BSL license before the end of this year. Once the software is mature, everyone will be able to contribute and participate in its development.

    • pavon a month ago

      BSL is not an open source license. It is a proprietary source-available license that prohibits any "production" use.

      • EkamiOP a month ago

        BSL will just prevent people from creating a competing SaaS product on top of PeppyOS, nothing will prevent anyone from using it for free commercially

LatticeAnimal a month ago

IIRC, the ROS UR controller runs at 200Hz and we’ve had arms crash when they run much slower than that.

The website claims “30hz polling rate”, “2ms latency”. Not sure if that is a best case or just for that demo.

  • digikata a month ago

    Crash? The software, or physically? A 200Hz as a min control loop rate seems on the fast side as a general default, but it all depends on the control environment - and I may be biased as I've done a lot more bare silicon controls than ROS.

    • Symmetry a month ago

      I'm guessing running a 200 Hz command rate on an e-series UR which uses 1 kHz internally will give you a protective stop?

    • LatticeAnimal a month ago

      Physically crash. When we would block the control loop at all (even down to 100hz), we would get errors and then occasionally the arm would erratically experience massive acceleration spikes and crash into its nearby surroundings before e-stopping.

      Re: Other comment. Yes, this was with ur3e s which by default have update rates at around 500hz.

  • EkamiOP a month ago

    > The website claims “30hz polling rate”, “2ms latency”. Not sure if that is a best case or just for that demo.

    This is just example cases but in fact it can go as high as you want as long as your hardware allows it

Jenzaah a month ago

What makes this better than HORUS? Also Rust based, and opensource already.

  • ijustlovemath a month ago

    There's no actual source for this, just some examples

    • blensor a month ago

      Looking through the website and github, it looks a bit premature to post at all. I don't have too much love for ROS personally but that claim the title is making is quite bold

a_t48 a month ago

Hey uh - good luck. I spent a while smashing my head against this.

You should read https://basisrobotics.tech/2025/01/08/postmortem/ and consider: - How you will get users - How you will fund development - What the "good parts" from ROS and other frameworks you want to take

I notice you don't have shared memory transport, nor do you support runtime composability (I think?). This might make perception heavy stacks run poorly. I'm also a little confused on what serialization format you support - is it an entirely custom one? It looks like two publishers with the same topic type will duplicate the schema, which is a bit odd. Worth also considering how you will do recording/replay.

Additionally - BSL feels great, but I found it scared off some people. IMO just do Apache 2.0 if you're going to have some other revenue stream anyhow.

I spent like...a year thinking about this stuff, happy to chat at kyle@basisrobotics.tech if you need a friendly ear.

  • sebastos a month ago

    I was sad to see you guys shut down - I think you were on to something with deterministic faster-than-realtime replay. Not surprised it was hard to find paying customers, but for what it's worth, my engineering self thought that you guys were solving the right problem. As far as I can tell, it's still not solved, and the shocking truth is that everyone is just Living That Way.

    The other thing that is important is how to provide a more query-like interface to tease out the data you actually want your node to react to, yet in a way that will be deterministic. You need to guide users away from introducing non-determinism, which can be tricky because innocent things like a message buffer with a max size can lead to such situations.

    I have talked with one of the key people at Xronos (https://www.xronos.com/), who are trying to attack related problems. Still, even they aren't quite as pre-occupied with _replay_, which is crucial.

    I think the sad truth is that the second evolution of all this frameworking simply hasn't come together convincingly enough, and in one place, for it to gather momentum. It turned out to be hard. And now that it has taken too long, it's my bet that ROS2 and all of its imitators will get lapped by holistic deep approaches. Not the stupid stuff happening with these fake humanoid robot companies mind you, but still - something holistic and deep. Something coming out of the predictive coding research e.g., or world models, etc. Training in simulated environments with generative systems is going to lead to behavior so much more sophisticated than gluing together all of our little services. Roboticists have their own version of the bitter lesson coming soon.

    • a_t48 a month ago

      I was sad, too. If there was a way I thought to continue doing it, I would. But as it is I'm actually considering getting out of robotics at this point, I've had enough of everyone "Living That Way".

  • EkamiOP a month ago

    Hey, too bad you've shut down, looked like a great project.

    > I notice you don't have shared memory transport, nor do you support runtime composability (I think?)

    We're using Zenoh in the backend, we didn't try to reinvent the wheel on that front.

    > I'm also a little confused on what serialization format you support - is it an entirely custom one?

    It's cap'n proto, but abstracted away for the user so he doesn't have to think about it.

    > BSL feels great, but I found it scared off some people

    Agreed, but we're building a SaaS in parallel, PeppyOS will be 100% free and open source but we don't want another company to build a SaaS on top of it, that will be the only restriction of the BSL license, otherwise it's the same as Apache 2.0.

synergy20 a month ago

when will this be ready and is this as open as ros2?

AlfredBarnes a month ago

https://xkcd.com/927/

luc_ a month ago

yet another roll your own ROS...

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection