-
|
I’m exploring architectures for the ROSbag Reader project to bypass the Python GIL and the heavy CPU overhead of deserializing dense payloads like sensor_msgs/Image. To validate my approach, I built a Proof of Concept (https://github.com/kush124k/rosbag-reader--try1) that uses the rosbags library to extract raw binary payloads and maps them directly into PyArrow tensors via native NumPy buffer protocols. This zero-copy extraction completely avoids Python-level object allocation, hitting ~1-2ms translation times for 720p frames. I have a few questions for the community regarding this design: Are there any strict Arrow IPC memory-alignment constraints when passing these dense PyArrow tensors downstream via the dora-rs Python API? Are there specific shared-memory pitfalls within Dora's engine that I should account for in this architecture? Does this zero-copy implementation strategy align well with the expected 175-hour scope of the project? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
|
Thank you for your attention. Regarding the node communication issue you mentioned, the following answers are based solely on my own understanding:
|
Beta Was this translation helpful? Give feedback.
-
|
We just recommend using C/C++ for implementation, but this is not mandatory. If you use Python, you only need to ensure that the memory allocated to the variables is contiguous. For C++:You can refer to the laser point cloud publishing logic in rslidar_driver.cc, lines 148 to 175: For Python:You can refer to webcam.py, lines 41 to 47: |
Beta Was this translation helpful? Give feedback.


Thank you for your attention. Regarding the node communication issue you mentioned, the following answers are based solely on my own understanding: