ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

Buildings as Robots

Hi folks - new to the community and wondered if some helpful person could point me in the right direction. I’ve used ROS before for mostly mapping and 3D modeling work. I’ve got new project where we’re using lidar sensors, cameras, and mics in a building, and I wondered if ROS could be leveraged to help interconnect these sensors and do some interesting stuff with them.

Essentially, I’m thinking of the building as a giant stationary robot (buildings as robots / robots as buildings). I see a few people have thought about it this way before. Has anyone used ROS for this? My searches turned up empty, but I could well be missing some critical key words.

If your sensors are not connected to the same computer, then I would recommend against using ROS. What you would need first and foremost would be a reliable and perhaps light-weight way to synchronize streams of data. If bandwidth is an issue then you might care about selectively syncing that data only in support of specific queries – things you want to do with (a subset of) the data. I don’t think ROS is the right tool for that. I would rather look in the IoT space, see what MQTT can do here or maybe RabbitMQ. But I think the real question is: what’s the application? What kind of interesting stuff do you want to do? I think that will drive the decision even more so than the type of data you will be handling.

Perhaps one interesting application I could think of for ROS in this space would be sensor fusion for object tracking. Here ROS’s TF would come in handy to merge the views of the various sensors. But the communication infrastructure would probably still need more than the native ROS pub/sub, which is really meant for “infinite” bandwidth networks, like the loopback device on the robot, where it doesn’t matter much if the same data is sent repeatedly at 100Hz or so.

Yep, that’s exactly it. We’re hoping to use some Velodyne lidar units and some other things (still not sure yet, but Kinects, OAKs, RealSenses) to do object tracking in the space. We’ve got good potential to section off part of the network to do this, so I think bandwidth is not an issue. The fusion potential and the network integration of ROS seem like a big plus.

Thanks for the IoT suggestions, I’ll look into that as well. That’s outside my wheelhouse at the moment, but I can dig in.

I’ve had a really great time of using Micro-ROS and ROS2 on multiple machines over WiFi.
I have a couple of applications where I’m using a multi-machine ROS network to separate capture from compute, I just wish ROS2 launch files had native multi-machine support.
I think ROS2 made multi-agent robotics so easy that people are forgetting to talk about how awesome it’s been.

Micro-ROS (udp on wifi) seems to get better latency than MQTT, and the peer-to-peer behaviour of DDS on my ROS2 nodes means that I’m not burning bandwidth getting ALL of my data out to a broker and back in to a client; only subscribed topics ever hit the network.
DDS topic discovery and synchronisation has been extremely robust for me, it’s been amazing not having to hard-code addresses for brokers, and being able to connect diagnostics to anything from anywhere. The overheads aren’t terrible either.

I’ve been wanting to try ROS2 on a proper mesh (batman-adv) network for a while, by skipping the access-points, you can double the available bandwidth.

SROS2 looks like it has potential to run properly encrypted and authenticated streams, and most of the DDS vendors for ROS have a NAT traversal plugin somewhere. SROS2 looks about as hardened as any other IoT protocol out there. I’d like to see more uptake.

@thomas.pingel I’m very interested in making audio a better-supported ros data type, I’d love to see what you build and what message formats you use.