N8BWert / ncomm

Node-Based Robotics Framework Written in Rust
MIT License
65 stars 1 forks source link

Examples and discussion #30

Closed jeff-hykin closed 2 months ago

jeff-hykin commented 2 months ago

Hello!

Or as we say at my university, Howdy!

I do robotics work at Texas A&M. Ive been wanting a foundation of a ROS replacement for at least half a decade. I've even considered centering my PhD dissertation around replacing ROS. So I love to see the work being done here. I've taken a few shots at replacing ROS myself on the python side, but couldn't ever dedicate the time it needed.

If you can help me get this running (and so long as its a tiny bit practical) I'd love to eventually get it integrated into A&M's AI robotics course.

The current biggest gap is, well, I don't see a hello world example, and I'm not sure how to get one running! I know its early days, but an example project would be fantastic for estimating the viability.

N8BWert commented 2 months ago

Hi Jeff,

I'd definitely love to include a hello world example, I just wasn't entirely sure what to put in it. Right now I have a few examples in the examples folder. The examples/minimal-client-server duplicates the Writing a simple service and client (C++) and Writing a simple service and client (Python) tutorials that ROS 2 has in their tutorials. The examples/minimal-publisher-subscriber duplicates the Writing a simple publisher and subscriber (C++) and Writing a simple service and client (Python) ROS 2 tutorials. The examples/minimal-update-client-server duplicates the Writing an action server and client (C++) and Writing an action server and client (Python) ROS2 tutorials. I think the only example that is NComm specific is the examples/rerun-publisher example which demonstrates logging data to rerun (it logs points from a normal distribution over 1 second). All of these examples can be run by running cargo run in their respective project base directories.

That is a good point though, I'm definitely missing a section in the README on the examples and setup. I'll try and update that today. So far for everything except the rerun integration the setup is super simple and you can just run cargo add ncomm to add NComm to a rust project. Rerun just requires the user to download the rerun-cli which is cargo install rerun-cli --locked.

All of the examples I have here are a bit toy-like. So far, the only "production" NComm project is the RoboJackets Base Station, which currently uses ncomm 0.4.1, but I'm working to update it right now as part of our 2024-2025 season.

N8BWert commented 2 months ago

Sorry that took a little longer than I expected. I updated the documentation to include details on the examples as well as how to get started with NComm. I hope the added documentation helps.