13 ms·
You can also check https://github.com/sequenceplanner/r2r https://github.com/sequenceplanner/r2r for another example of ROS2 bindings (using in production at wo
by fvncc 3y ago
You can also check https://github.com/sequenceplanner/r2r https://github.com/sequenceplanner/r2r for another example of ROS2 bindings (using in production at work for a couple of ROS nodes).
But TBH, in a Rust world, it’s worth revisiting the assumptions behind the ROS node architecture, since Rust is so strong at scaling to large monolithic applications (due to the strict hierarchical code patterns it encourages).
A transitional Rust approach, that doesn't try to reimplement everything from scratch, could do something like a strangler pattern: Take each ROS node, run them separately in “jails” with a Rust API around each one, then implement the plumbing/management logic in pure Rust.
- porphyra 3y agoYeah the ROS node architecture sucks. However, one reason for that design was so that you can run ROS on distributed systems where things communicate to each other over the network.
- fvncc 3y agoActually another reason people use the architecture is for process level isolation, i.e. limiting the blast radius of memory corruption. But in both cases, Im sure you could design an ergonomic RPC framework that takes care of offloading computation mostly transparently behind the scenes :)