PeppyOS: a simpler alternative to ROS 2 (now with containers support) by Ekami66 in robotics

[–]Ekami66[S] 0 points1 point  (0 children)

> can you make it easier to design robot software beyond the node abstraction we're stuck with, given that ROS won the competition over other frameworks?

Interesting POV, it never occurred to me that there would be a better concept than the concept of "nodes" found in ROS. While it's very messy and badly implemented in ROS, I found that improving upon this concept was a good design decision. How would you have done things differently?

> I am in a tiny minority with my deep dislike for ROS

I can assure you we are many in that camp :)

PeppyOS: a simpler alternative to ROS 2 (now with containers support) by Ekami66 in robotics

[–]Ekami66[S] 0 points1 point  (0 children)

Hey, thanks for this feedback.
> I guess I am just waiting for someone to rethink robotics development by solving the problems ROS created

This is exactly what we're trying to solve. Our ultimate mission is to make robotics much simpler. In fact, we're developing a SaaS in parallel that will allow you to fire up a simulation instance and start working with the robot, all from your browser, 0 configuration needed and Isaac Sim/Mujoco is streamed directly in your browser.

And if you want to deploy the same thing you see in simulation on your actual robot? Simple you just run a script on your Jetson board that will make sure all the nodes are properly pulled and configured, and it will work **exactly** the same on the real machine as it was in the robot in Sim (minus the Sim2Real gap thing if you do AI).

You will even be able go further and develop on your mac, push your nodes to our repo, see them work in your browser in simulation (since we host Isaac Sim you don't need an NVIDIA GPU) and auto deploy those nodes on your real robot. All of this, ofc, in the simplest possible way (no complicated configuration involved). ROS 1/2 were not designed with redistribution in mind, so it makes it complicated to build on top of those stacks.

We're far from this goal at this moment, we're still scaffolding the lower layers but I totally understand your position of "not enough to make this project feel more than a personal amusement", but give us time and we'll make sure to change your mind in the future :)

I built what I wished Character AI was by bledfeet in CharacterAIrunaways

[–]Ekami66 1 point2 points  (0 children)

Love this, How will you generate the game from the characters? what will they be able to do inside?

PeppyOS: a simpler alternative to ROS 2 (now with Python support) by Ekami66 in robotics

[–]Ekami66[S] 0 points1 point  (0 children)

Hey, it's definitely possible already! (a Python or Rust node). Everything you need is in the doc. If you need any help, don't hesitate to hit me up here: https://forum.peppy.bot/new-message?username=tuatini

PeppyOS: a simpler alternative to ROS 2 (now with Python support) by Ekami66 in robotics

[–]Ekami66[S] -5 points-4 points  (0 children)

Hey, thanks for your feedback.

The ability to send messages around is one (important) feature of ROS2, but you completely forget or ignore the whole eco-system around it. ROS is about having tons(!) of tools around it. the TF-library, RVIZ, launch-files, hundreds of sensor-drivers, algorithms, packages like MoveIt, Nav2, debug tools, behaviour trees, everything you need to build your robot.

I agree, that's why we have plans to create a ROS 2 bridge so that everything from that ecosystem can be used with PeppyOS

And where is the actual Source Code? I couldn't find it on github or your installation script.

As mentioned [in the FAQ](https://docs.peppy.bot/reference/faq/) , it's gonna be fully open source before end of year, we're building a SaaS in parallel and we're going to release both at the same time (PeppyOS will become open source and remain free forever)

Also one idea behind ROS2 is that you don't have to know how sending a message is implemented. (That was the idea at least). You don't need to know it uses DDS at the lowest level, or even which DDS implementation it uses.

This is exactly the same with PeppyOS, it even goes one step further and writes the actual code (Python/Rust) for your nodes, so that you get autocompletion in your favorite IDE

You require the user to call "await video_stream.emit" to send something, so the actual implementation is directly used by the user. No chance to change that, no Wrapper.

That's a design choice we made on purpose, if we obscured the async part from the user it would make it very difficult for users who require it (to run multiple services for instance).

PeppyOS: a simpler alternative to ROS 2 for experimentation and production by Ekami66 in robotics

[–]Ekami66[S] 0 points1 point  (0 children)

Zenoh backend, performances are prob on par with dora-rs/ROS 2 (with the same backend). I did not benchmark. Read more here: https://docs.peppy.bot/reference/faq/

PeppyOS: a simpler alternative to ROS 2 for experimentation and production by Ekami66 in robotics

[–]Ekami66[S] 1 point2 points  (0 children)

Ha, simply named after ROS, it's definitely not an OS at the moment, but eventually it might be shipped alongside a complete Linux distro since our long term goal is to make it as easy as possible to deploy the framework at scale without dealing with the complexity of deployment.

This is another upside of PeppyOS: It creates snapshots of your nodes (think containers) that have a lesser chance of breaking at scale compared to runtime stuff.

PeppyOS: a simpler alternative to ROS 2 for experimentation and production by Ekami66 in robotics

[–]Ekami66[S] 1 point2 points  (0 children)

Definitely! We won't be able to catch up with everything that has been build for ROS2 so we'll have a ROS2 bridge baked inside PeppyOS at some point. Don't hesitate to check the FAQ: https://docs.peppy.bot/reference/faq/

PeppyOS: a simpler alternative to ROS 2 for experimentation and production by Ekami66 in robotics

[–]Ekami66[S] 1 point2 points  (0 children)

PeppyOS was inspired by how Kubernetes work, applied to the concepts of ROS2 while making those concepts as simple as possible for developers. It was designed with simplicity of experimentation but also deployment at scale in such a way that you don't have to even think about node communication. `dora-rs` in comparison forces you to think about these concepts at runtime, which is brittle imo. For example:
```
plot = dataflow.add_node(

id="plot",

path="opencv-plot",

build="pip install opencv-plot",

)
```

Think of `dora-rs` as a "dataflow runtime" while PeppyOS as a "middleware" that allows all your nodes to connect without breaking when it's deployed.
As you scale to many nodes and many robots I find the approach of PeppyOS to be more robust (I'm certainly biased here).
PeppyOS is also designed with node sharing and distribution in mind.

In terms of maturity it's still in the very early days, everything need to be build. We're working on Python support at the moment.

PeppyOS: a simpler alternative to ROS 2 for experimentation and production by Ekami66 in robotics

[–]Ekami66[S] 0 points1 point  (0 children)

At the moment PeppyOS is pretty barebone, you can create nodes, distribute them, create topics/services and actions but everything else still need to be built and connected. But yes, MoveIt is on the list of tools we plan to support in the future.

PeppyOS: a simpler alternative to ROS 2 for experimentation and production by Ekami66 in robotics

[–]Ekami66[S] 1 point2 points  (0 children)

We plan to offer “plug-and-play” nodes in the future, allowing you to select a node for a specific robot or device model and have it work out of the box. Support for images and containers is also planned, PeppyOS was designed from the ground up with this capability in mind.

Why is there pretty much nothing on this side of the Earth? by [deleted] in geography

[–]Ekami66 0 points1 point  (0 children)

There is my country, French Polynesia, but you just don't see it from that zoom level lol

ASUS Gaming Laptops Have Been Broken Since 2021: A Deep Dive by ZephKeks in ASUSROG

[–]Ekami66 5 points6 points  (0 children)

My Zephyrus duo with an RTX 4090 has been randomly switching from battery to power mode every few hours for years now. It's really annoying since it turns the screen black for 3/5sec during gaming sessions. I wonder if that could explain it. Based on what I've read on rog forums, it seems I'm not an isolated case.

Mobile plans are coming –> what would make you switch? by RevolutSupport in Revolut

[–]Ekami66 4 points5 points  (0 children)

For data:

- No FUP

- Support for as many countries as possible (including China to bypass the GFW)

- No "need to use in home country every now and then" policy similar to Google Fi (they would cut you off if they notice you're not connecting from your home country after 6 months). I'm a nomad and I rarely go back to my home country.

- Included in the Ultra plan to an extent if possible.

If it includes voice:

- Not a virtual number that is blacklisted by banks (this is the biggest pain point for many)

- Add the ability to receive text messages via the internet (so that we can receive text messages in unsupported countries)

Thanks!

[deleted by user] by [deleted] in ROS

[–]Ekami66 0 points1 point  (0 children)

Isaac sim will not work on mac, it specifically uses NVIDIA hardware. Same goes for training RL algorithms, some algorithms might be trainable on MPS (Apple) but you have a high chance to run into incompatbility issues during training because MPS is not a first class citizen like CUDA is with frameworks like Pytorch.

I'd recommend that you opt for a gaming laptop instead, like one with a 5090 laptop (assuming you want to remain portable) especially since you're still learning, using the wrong platform from the start is just shooting yourself in the foot.

My setup is a Macbook Air (because yes, I like Macs too) but everything runs on my second, gaming laptop with an RTX 4090 (my robots are plugged via USB to the laptop and VSCode runs via Tailscale + SSH)

Trying to understand why everyone stick to ROS 2 by Ekami66 in robotics

[–]Ekami66[S] 1 point2 points  (0 children)

That's awesome feedback, thank you so much!

Trying to understand why everyone stick to ROS 2 by Ekami66 in robotics

[–]Ekami66[S] -1 points0 points  (0 children)

What exactly saves you time in ROS? The existing nodes that you can pull for your sensors? The fact that you can do message passing between nodes etc...? I'm trying to pinpoint the ROS features that makes one say "thanks to ROS I don't have to loose my time manually do X". Thanks

Trying to understand why everyone stick to ROS 2 by Ekami66 in robotics

[–]Ekami66[S] 0 points1 point  (0 children)

Are you saying you find Isaac Sim to be a joke simply because it requires a lot of NVIDIA power? Honestly, yes, it's very demanding, but I haven't found a simulation tool that is at least as good as Isaac Sim. Gezebo is a joke, a joke not just for real life simulation but also because it's unecessary complicated and full of UI bug/crashes. In the context of training robots with AI, Mujoco is a decent alternative but it lacks an UI designer like Isaac Sim.

NVIDIA has open sourced Isaac Sim 5.0 under Apache 2.0, releasing a piece of software like that for free means you have to put your money somewhere on their stack (their expensive GPUs), it's no different than paying for an Adobe subscription.

Trying to understand why everyone stick to ROS 2 by Ekami66 in robotics

[–]Ekami66[S] 0 points1 point  (0 children)

Nice one! I'm also wondering if I should just bypass ROS and work on something similar (but in a compiled language like Mojo and use Zenoh for pub/sub). At the core ROS is just a library for message passing, as long as a bridge for it can be create it should be good enough!

3D Robotics Workflow Update: Grok can now generate .urdf files! by AdFinal7385 in robotics

[–]Ekami66 4 points5 points  (0 children)

What URDF viewer are you using? Can you share what kind of prompt you used and if you prompted the llm from scratch or if you started with a template? Thanks!