3 ms·
Hmm, why not Cap'n'Proto? Also this seems to be multi-process like ROS. I wanna see something adopt the Isaac model of nodes and codelets.
by trashburger 2y ago
Hmm, why not Cap'n'Proto? Also this seems to be multi-process like ROS. I wanna see something adopt the Isaac model of nodes and codelets.
- a_t48 2y agoWe're single process! Multi-process is opt in (it's useful to toss your telemetry and other non-critical code in a separate process so a crash doesn't take down everything), our units are libraries by default. When you make a launch file you're actually composing together libraries at runtime. We also support passing CUDA handles (or any runtime only struct) within a process. See https://github.com/basis-robotics/basis_test_robot/blob/main/unit/yuyv_to_rgb/src/yuyv_to_rgb.cpp#L20 https://github.com/basis-robotics/basis_test_robot/blob/main... - this is a struct containing a CUDA handle, it isn't copied to CPU nor serialized unless you request it over network (ie with Foxglove) or serialize it to disk. As for why not capnproto - I'm more experienced with protobuf. No good reason, in this case, other than popularity.
- a_t48 2y agoSee https://docs.basisrobotics.tech/guide-tools/launch-files#process https://docs.basisrobotics.tech/guide-tools/launch-files#pro... - our launch file documentation needs some work, and I think it's probably good if I put the nodelet/codelet/process stuff in the main README, you aren't the first to make that assumption.
- kajecounterhack 2y agoThere's at least one other good reason to pick protobuf over capnproto: they don't have real polyglot support and most folks are using at least two languages in their stack these days (https://capnproto.org/otherlang.html https://capnproto.org/otherlang.html) Also, if you do embedded, there's a lack of something akin to nanopb for capnproto.