This summer, one of the interns at NavStik Labs, Saumya Saksena (an undergraduate student), built a low-cost obstacle detection kit using ultrasonic sensors. He also designed a custom web-app to configure his sensor-kit and visualise the obstacle data. This was an uphill task for a student with limited programming/development background. However, the generic data-sharing model, available within FlytOS, made it extremely simple for him to get it all done within a few days.
Saumya’s kit makes use of 4 ultrasonic sensors (later extended to 6), which are interfaced to an arduino board. This board, in turn, talks to FlytPOD (flight computer on the drone, running FlytOS) using rosserial. Since this architecture is built on top of ROS, getting the sensor data published into FlytOS was a piece of cake.
With data-acquisition done, the next step was to develop a web-app to help him visualize the data from his kit, and configure his sensor parameters, such as polling rate, ability to disable/enable a certain sensor, etc. He spent an evening writing FlytSONAR (webapp) using the WebSocket and RESTful FlytAPIs to share data between his web app and sensor kit. Further, he hosted this web-app on FlytPOD itself. Which means that he did not need to install any application on his local machine to configure the custom sensor or visualise data. He could just point the web-browser on his local machine to the IP address of the FlytPOD (FlytPOD has a powerful built-in wifi router, which can create a hotspot or connect to another router) and get access to his app on any laptop or mobile.
Drones are evolving fast. New sensors, payloads, and algorithms are being developed, and new application areas are being discovered, every day.
It is, therefore, critical to have a robust, scalable data-sharing model in FlytOS. This enables all these components seamlessly share data with each other, and with other devices.
FlytOS is built on top of ROS, making it a great platform to interact with various devices/payloads. It exposes high-level FlytAPIs in ROS, C++, Python, REST, and Websocket. The modular design of FlytOS allows for integration with external ROS/Linux libraries, and do custom data-plumbing between your onboard and offboard apps.