Block Diagram:
To connect all necessary data lines and signals to MCU from the multiple sensors as well as power the device, a PCB was designed specifically for our needs. From here, the data from these sensors is transferred via USB-A to a ROS-capable device, in our case, a Jetson Nano.
Software Flow:
The sensors generate data ready interrupts triggering a read from the MCU. This data is timestamped, turned into a packet, and transmitted over USB. The packet contains all fields simultaneously and indicates validity using stale bits.
ROS Implementation:
The Jetson Nano implements ROS via ROS Melodic. A packet of data reaches the Jetson Nano and from here publisher nodes publish a topic for each sensor's data. Subscriber nodes subscribe to a topic and this data is then used for a virtual demo visualization as well as state estimation via ROS packages and plugins.Â