How to implement multi device data recording setup?
I am interested in implementing a set up consisting of several Raspberry Pis to record data on each from a same sensor connected to it. I would like to have then a master computer (laptop) that can supervise the data recording, i.e. start and stop the recording, and if possible even visualize data from them and download the recorded bag files after record stop. The Pi’s will be rigidly attached to moving objects so I need to achieve a wireless communication over max. 150 m approx.
Is it possible to achieve this recording setup with rosbridge over WLAN? Is it possible to record the data from all client Pi’s on the master computer in real time so that it becomes time synchronized? Any other recommendations to achieve this?
Thank you in advance.
Asked by Test01 on 2019-09-21 05:26:39 UTC
Answers
If all the Raspberry Pi are on the same network and the same ROS master, you will be able to see all the topics from the master. So there will be no issue to use rosbag record
on the master to record all the needed topics.
But the WiFi bandwidth may be the bottleneck.
Their was a presentation about managing several robots and each one recording bags this year at the ROSCONfr. But it is in french: https://vimeo.com/343808336
Asked by rreignier on 2019-09-23 02:28:02 UTC
Comments
Thank you very much.
I assume it is worth to test it with WiFi and see how well it works. One Pi would collect LiDAR data (2D) at 20 Hz and the other Pi's would collect IMU data at 120 Hz. Do you think this could already be too much for the bandwidth?
Thanks for the link, I will try to understand as much as I can. Do you know which hardware solution they used for the wireless connection?
I would also need to ensure that data is recorded in bag files preferably on both the master and the client, so that in case connection interrupts, the recording is not interrupted.
Asked by Test01 on 2019-09-25 07:36:15 UTC
I have no idea for the bandwidth. But generally, ROS 1 over Wifi is not the best idea. I am not sure how well the disconnections are handled by the master. Another solution would be to run one master per Pi (like in the video), and communication between the Pis managed differently. We have used rosserial over TCP to do such use case.
Asked by rreignier on 2019-09-25 10:23:20 UTC
Thanks for the quick reply. Maybe then it is better to record on the clients directly instead of streaming everything to the master, for safety reasons. Sending commands to start/stop recording from the master should be no issue via rosbridge I suppose. You mention ROS 1, would you say I should look into ROS 2 for this setup? I have no experience yet with ROS 2.
Asked by Test01 on 2019-09-27 07:24:11 UTC
Another follow up question on your initial answer: If I can see the topics sent by the clients, will I also see which client is publishing them? And can I send messages via service to certain clients?
Asked by Test01 on 2019-10-02 15:56:35 UTC
In theory, ROS 2 handle Quality of Service to deal with bad connections. But I have not personally tried it. Yes, you can communicate in both directions with the clients.
Asked by rreignier on 2019-10-09 07:31:29 UTC
Comments