Introduction: Drone Braiding: a Lightweight Approach to Space Manufacturing
Hi! My name is Ryan Co and a part of the 49ers STEM Leadership Institute at Santa Clara High School. Recently I've been fascinated with all the possible ways that drones have been used including light shows, package delivery, seed planting, rescue surveillance, and more.
This is one of my science fair projects on drones, and I thought it would still be interesting to make it an Instructable!
Thank you to my teammate Jeremy Flint for developing the software and helping with the testing of the project.
Supplies
- Tello Quadcopter Drone (3x)
- Braid Collector (funnel)
- Sewing Thread
- Wifi Adapter (2x)
- 3D Printer
- Autodesk Fusion 360
- Python
Step 1: Inspiration
The success of Ingenuity, the Mars helicopter, opens up new possibilities for drones in space. Since drones are currently only used for surveillance on Mars, I wanted to find a way to repurpose them to reduce the weight of the spacecraft payload.
After seeing the Maypole dance, in which ribbons are braided in complex patterns around a pole, I thought that drones would be perfect for that application. Although braiding machines are used in many industries (industrial, construction, medical, etc.), they are large and heavy, making it difficult to bring them to space.
Therefore, the goal was to demonstrate "proof of concept" for drone braiding, expanding their function beyond aerial surveillance to include a scalable machine that can be used to braid different ropes and cables by varying the number and flightpath of the drones. This would eliminate the need to bring every size braid to Mars. Instead the spacecraft would carry spools with individual strands of material, which could be braided to the size, pattern, and length necessary for the application (similar to 3D printing).
Image credits: NASA, Ryan Pelham
Step 2: Goal
After doing some research on Instructables, we learned that the simplest braid is a 3-strand, which is made by moving in a figure-8 pattern. We decided to make that the goal for this project, which could then be scaled up by adding drones and varying the flightpath in the future.
Image credits: wikiHow
Step 3: Spool Attachment
To attach the spools of thread to the drones, I needed something that was both lightweight and easily detachable. 3D printing was the perfect option here!
After prototyping various designs using tape, straws, paper clips, and rubber bands, I eventually got an idea of what the design needed to look like. The spool must be mounted vertically so that the drone wouldn't have to turn when braiding, and the tension must be adjustable so that the string doesn't unwind too fast or slow.
Through several iterations in Fusion 360, my final design was a compliant mechanism that clipped onto the sides of the drone. The spool was mounted using a screw that could be adjusted to control the friction, making sure that string unwound at the desired speed.
Step 4: Programming
Synchronous Control
Each Tello Drone comes equipped with its own wifi network, and is packaged to interact with the official Tello SDK. Jeremy used multiple wifi communicators on a computer to connect to each drone.
Drone Localization
The Tello drone contains two infrared sensors as well as a built-in downward facing camera. Although the SDK provides localization using these sensors, he decided to attempt to find more consistency by using an existing VSLAM library (https://github.com/alishobeiri/Monocular-Video-Odometery) combined with OpenCV.
OpenCV provides a platform for processing the image stream given by the drone, while VSLAM (visual simultaneous localization and mapping) is used to localize the drone using landmarks mapped in previous frames as shown in the flowchart above.
Drone Pathing
The Tello SDK provides premade commands for moving to locations and holding position, these methods would not be effective usage of the new localization. So, he used motor output methods for finer control of the drone. These output methods are packaged using a custom controller, which converts a target motion vector into motor outputs. A PID loop takes current velocity (derived from localization) feedback and adjusts from error accordingly. The motion vector’s direction and magnitude is determined by a trapezoidal path algorithm, which is generated when the drone is given a target destination.
Each trajectory is a series of states, where each state represents the target position of each drone. Every drone is given its respective target position, which it attempts to move towards. Once each drone is within a certain tolerance level of its target position, the state progresses to the next. If the series of states complete, a new series is generated, at a higher target position, resulting in the simple pattern shown above.
Step 5: Testing (Indoors)
The drones were set up at different points along the figure-8. The spools were attached to the bottom of each one, and string was directed into the forward funnel, where the braid was collected. The test was determined to be successful if all the drones were able to complete a figure-8 movement to form a braid without colliding.
We first began testing indoors, intending to reduce the effects of external forces such as wind. However, the poor lighting conditions resulted in inconsistent localization. This was mitigated by adding additional spotlights and a series of recognizable patterns on the ground, improving visibility and tracking. However, the improvements did not provide sufficient consistency for the small scale of indoor paths (the video shows one of many failed attempts).
Step 6: Testing (Outdoors)
We decided to pivot to outdoor testing for improved localization under sunlight as well as larger space for bigger trajectories to account for inconsistencies, which significantly increased the success rate to around 70%. However, it also introduced wind, which caused some tests to fail because the drones were very light and could be easily affected. The image shows a braid sample from one of the tests.
Step 7: Conclusion
Overall, a lot more issues came up than we initially expected. Budget proved to be the main limitation, as the low-cost drones had limited control methods and sensors, preventing precise movements.
Nevertheless, it demonstrated that drones could be used to make custom ropes and cables, eliminating the need to bring every size or the need to transport braiding machines to Mars. In the future, we plan to modify the drones with more precise positioning before attempting a more complex flightpath with more strands.
Feel free to add any questions or ideas in the comments. Thanks!