Memo to: Students in the Science 150: Chemical and Physical Systems Accelerated Course
Subject: The Last Mile
Your mission, should you choose to accept it, is to program and guide your team’s drone through an obstacle course. This mission comes with several distinct parameters and requires patience, teamwork, bravery, daring, and creativity. You will need to think in three dimensions. You will need to overcome a loop obstacle. And finally, you will definitely be required to have fun.
Students in Upper School Science Teachers Phil Rosen and Brian Rueckert’s classes tackled a new challenge over the past two weeks: how to solve the problem of “The Last Mile,” also known as “getting things to people is surprisingly expensive and difficult.”
In a traditional model of the delivery of goods, those goods went from the factory to the warehouse before ending up in a brick-and-mortar store for consumers to purchase. The transportation costs, both for the companies and the environment (energy used and fossil fuels burned) are stable. Today, though, many consumers choose to shop online rather than in stores and expect their purchases to be quickly delivered to their homes. We live all over the place, so delivery vehicles have to drive everywhere to get to us. In urban areas, this change is leading to more pollution and congestion as streets are backed up with Amazon delivery vans and GrubHub cars. “The Last Mile” refers to the last leg of delivery: how products get from distribution centers (warehouses) to our homes. Despite the shorter distances, the last mile now accounts for 53% of the cost of delivery, according to Business Insider. And what happens after an environmental disaster such as an earthquake, volcano, tornado, or hurricane? Roads and other infrastructure are often impossible to use, and therefore it’s impossible to deliver goods when and where they are most desperately needed.
Solutions include using lockers or delivery pick-up centers, bicycle couriers, route optimization, night deliveries, and technology options such as autonomous robots, electric vehicles, and drone delivery vehicles.
This last option is where our science students come in. Their challenge was to program a drone to fly through an obstacle course to make a “last mile” delivery and successfully land in a target area. The obstacle course was set up in the North Gym and included a decision point (where the drones were required to navigate an obstacle differently depending on an input not known at the start of the run) and a loop obstacle (where the drone had to loop around an obstacle a certain number of times).
“Outside of reinforcing the coding concepts we learned earlier in the semester, I wanted students to get some experience building solutions to a more open-ended problem,” said Rosen. “There is not one correct way to navigate a drone, so it was up to the students to pick a strategy and learn how (and if) it worked. I also wanted to emphasize that big problems can often be broken into small components that can be individually solved and tested.”
Each team of three students included a programming specialist responsible for the code that guides the drone through the course, a measurement specialist responsible for getting accurate distances between objects on the course and any necessary unit conversions, and a documentation specialist responsible for recording the group’s work (what does and doesn’t work, bug fixes, and approach changes). The teammates also supported each other throughout the project.
For coding, several approaches were possible:
- Write a program to input directions one at a time to the drone. This option is a bit like programming a text-based user interface. This approach allows for adjustments on the fly, but it would create problems for delivery since the drone would require a pilot.
- Program the whole obstacle course. This would require plotting distances between points and writing all commands into the program, including a decision point at the obstacle course fork. This approach removes the pilot but means writing a completely new program to tackle a different course.
- Write a program that tells the drone where to fly with a series of coordinates. This requires making a list or lists of coordinates and other incidental commands and writing a program that can read them and relay them as commands to the drone. Special consideration would be needed for how to fork and loop on the obstacle course. This approach is pilotless and would not require rewriting the program for each course, but it is probably the most difficult to code and use.
Each team submitted a complete Project Report at the end, which included the documentation specialist’s log, the measurement specialist’s record of measurement, and the code for flying the drone.
The students tackled the challenge with enthusiasm and soon drones were flying around the North Gym making “deliveries.” What a great experience in solving a real-world issue!