Introduction to Autonomous Lawnmower for Temple (ALT)
Post date: Sep 04, 2013 4:54:59 PM
Team logo (Picture taken of the project's "Lawnmower")
The Autonomous Lawnmower Project (ALP) is actually my second attempt of my Senior Design (SD) project I did as a undergraduate. The project, originally titled Autonomous Lawnmower for Temple (ALT), was a team-based project for which the end goal was to construct a vehicle that met "certain" constraints prescribed in Revision 2012.1.1 of the Institute of Navigation's (ION) Robotic Lawnmower Competition rule book. The ION Robotic Lawnmower Competition was a competition wherein teams from any university would construct their own autonomous lawnmower, constraining to the specifications prescribed in the rule book, and compete in one of two categories, Basic or Advance. The "certain" constraints my SD team attempted to follow were the Advance competition rules of the ION Robotic Lawnmower Competition rule book.
The original team: Autonomous Lawnmower for Temple (ALT)
The ION Robotic Lawnmower Competition came to an unexpected close before we could compete, but the team decided to continue because the Advance competition rules presented an interesting engineering problem. As prescribed in the Advance competition rules, the lawnmower's dimensions had to fall within size, the lawnmower couldn't be an aerial vehicle, a remote and onboard kill-switches were absolutely required, lawnmower needed to mow the grass within an "L"-shaped cutting-field (see picture below) without colliding into obstacles or moving out of the cutting-field, and a few other constraints found within the rules.
Please note, this picture was taken from Revision 2012.1.1 of the ION Robotic Lawnmower Competition rule book. The ION Robotic Competition was scored-based, wherein points were deducted if the lawnmower collided into obstacles or traveled into the safety buffer or added if the lawnmower mowed grass into any of the allowed zones. The most points were awarded for mowing in zone 3 areas.
Due to the extent of the project's difficulty at the time and the closing of the competition, the team and I decided to focus on the most important constraint: Autonomy. In other words, the lawnmower needed to complete the cutting-field without having another person manually control the lawnmower. Below, are two videos that summarize what the team managed to complete in regards to the lawnmower's autonomy and design. Please note, we chose to not add the actual cutting-blade and motor to the "Lawnmower" since we wanted to devote our efforts to autonomy.
The second of two videos is just me remotely controlling what will eventually be the "Lawnmower". The time my team and I spent was mostly devoted to the small-scaled model, the "Tumbler". The first of the two videos shows what the team and I managed to complete regarding the project's autonomy. Basically, the "Tumbler", which is supposed to represent a scaled-down model of the lawnmower, traces a white line outlining the cutting-field, as stated in the Advance competition rules, and determines the corners of the cutting-field. The coordinates of the corners are wirelessly transmitted to a nearby laptop which computes the path the "Tumbler" needs to take in order to complete the cutting-field as a series of ordered waypoints. Once the path has been computed, the laptop transmits each waypoint to the "Tumbler", and, once the "Tumbler" reaches the transmitted waypoint, the laptop transmits the next waypoint in the path. The process repeats until the "Tumbler" reaches all the waypoints.
Picture taken from the ALT's Final Design Review Paper. The colored text was added after the pictures were generated. The pictures themselves were actually generated as part of autonomous program the team developed in Mathwork's MATLAB. The first image was generated from an algorithm implemented by me in the C computer programming language. The algorithm takes corners of the field and generates the path. MATLAB is programmed to simply "connect the dots", so to speak. The second image is the path the "Tumbler" actually took.
What makes the project so interesting are the following questions: How should the cutting-field's boundary be determined? What can kind of "useful" information can we draw from the boundary? Once we have the boundary's "useful" information, how do we determine the "correct" path? How do we teach the moving-platform (i.e. the "Tumbler" or the "Lawnmower") to complete the "correct" path? And, what the team and I considered to be the most difficult and important question, how does the moving-platform know where it is at all times? We eventually came up with possible answers, but I will describe those answers in detail in future posts.