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.
Sonar jig with Arduino Sonar jig mounted under the drone
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 webapp 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.
All the design files and arduino code for building this DIY kit are available here as a download. Check out our extensive documentation on using FlytAPIs for designing web-apps here.
Drones are evolving fast. New sensors, payloads, and algorithms are being developed, and new application areas are being discovered, everyday. 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.
FlytPOD is now live on Indiegogo. Checkout the campaign and grab the early bird perks.
For more hacks to build powerful drone applications, check out following posts from past.
Flight computer with onboard wifi router
Visual object tracking and following for DIY drones
Drone color marker game using onboard computer vision in an hour
FlytAPIs for Computer vision on Drones (P1 Video Streaming)
FlytAPIs for Computer vision on Drones (P2 Object tracking and following)
FlytConsole: Web-based Customisable GCS Utility for FlytOS