The Aerial Botball Challenge program is a curriculum based program that consists of a KIPR led professional development workshop, ongoing technical support, online curriculum and resources, and access to Challenge Days. This program is built to teach students autonomous drone control via the Python programming language. Challenge days are an opportunity for students to gather family and friends to showcase the knowledge and skills they’ve acquired by demonstrating completion of various challenges. This program was developed to help educators feel empowered to facilitate this Python learning experience with their students throughout the school year. Every year the Aerial Botball Challenge program culminates in a 4-day Challenge event at the Global Conference on Educational Robotics. Students and teachers who attend this event get to work alongside attendees from all over the world!
What is Python?
Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Its high-level built in data structures, combined with dynamic typing and dynamic binding, make it very attractive for Rapid Application Development, as well as for use as a scripting or glue language to connect existing components together. Python's simple, easy to learn syntax emphasizes readability and therefore reduces the cost of program maintenance. Python supports modules and packages, which encourages program modularity and code reuse. The Python interpreter and the extensive standard library are available in source or binary form without charge for all major platforms, and can be freely distributed.
Note: Capitals are important, so the first word should always be uncapitalized.
Stay in Your Lane- Take off from horizontal hula hoop, fly forward past elevated vertical hula hoop, use left/right to make a 90 degree turn, forward through second vertical hula hoop and land in 2nd horizontal hula hoop.
This is the finished result. In order to complete this challenge I had the drone go down using drone.down, then forward with drone.forward. In order to turn around I used drone.cw, with means it turns clockwise, had it go up(drone.up), forward, and finally land perfectly(drone.land).
Limbo, Limbo- Take off from hula hoop, drop down, forward under rod, lift up, forward over barrier, land in hula hoop.
I made it so that the drone went undernead the pole, do a 180 and go over the pole as the barrier.
I made the barrier the limbo bar due to limited space. This also added the extra but enjoyable challenge of turning the drone around.
Octagon Show- (find a partner)- Take off two drones from different hula hoops, make an octagon in the air using cw or ccw and Loop. Finally return to take off hula hoop.
cw turns the drone left, and ccw turns it right.
My Partner was my classmate Cruz Watson. Together we created an octagon by each completing half an octagon. In order to do this we placed our drones opposite of each other. Each drone moved 45 degrees to the right 4 times using a for loop, and stopped halfway.
(As a side note, I also paired with Aiden due to the lack of available drones.)
Directions: Create your initials using coordinates for all or at least one letter. In between initials and at the end, include flips.
My initials are M.L.M, and had chosen to do the letters vertical. In order to make the M's I had the drone go up and used the x-coordinate go down 50 cm and to the right 20 cm. I did the reverse to finish the uppercase M. L was simple, I went back up 100, then down and to the right. Then copy and pasted M, finishing each letter with a flip.
Directions: User Input number of sides, take off from hula hoop, make polygon in air, land in hula hoop.
For the regular polygon, the number of sides input needed to be calculated by the python program. The integer(int), takes the number input by the user. Which is what the sting is calculating, this string also stops a user from breaking the program by inputting too many side for a polygon; instead cutting large numbers in half.
Directions: Take off from hula hoop, use curve to make horizontal circle, use curve to make vertical circle, use circle to make diagonal circle, land in hula hoop.
Using the Curve Simulation on the JFCTC Engineering Drone site, I managed to simulate what my Tello Drone would do when creating these circles. Using this tool, I used the command curve("x1", "y1", "z1", "x2", "y2", "z2", "speed"). I input the coordinates from the simulation with this code and managed the horizontal, vertical, and diagonal circle.
Directions: take off from hula hoop, use go to diagonally pass through hoop, land on raised platform, take off from platform, use go to diagonally pass through second hoop, land in hula hoop.
Obstacle touch and go was the most difficult challenge for me. Mainly because the Tello drone was unpredictable due to its difficulty moving slanted. However after tweaking take-off positions and the x-coordinates, I managed in the end to complete the challenge.
go("x", "y", "z", "speed")
This challenge was created by me. It was originally the drone walk, but I was inspired to create my own. The requirements are: You must use a for loop within the code, there must be at least two flips used for the zig-zag, but 3 actions within the for loop to make the zig zag walk, it must flip at least 6 times and it must return to start.
As you can see, my drone flips 6 times, and I chose to have it flip the whole way until the drone turns around.
(side note, card for video has the wrong title, it is meant to say Zig Zag Walk, however both were completed the same day.)