Recent Changes - Search:

TEAMS Academy Wiki

Explore TEAMS!
for visiting sophomores & juniors

Robotics

EnvBioTech

Bat Design

Assistive Tech


Students


Instructors

TEAMS Forum

TEAMS Calendar

TEAMS Web Site

Wiki Info

edit Student.SideBar

MananLineFollow

Lab Report
Lessons Learned:

  1. I learned, time and time again, that perfecting the code was not all I had to worry about. As machines are not perfect, this lab certainly taught me that many of the creates had flaws as well. Specifically, I learned that the debugging process involves testing the code on multiple robots and making sure that the robot I used had working sensors and such. Consequently, were I to use only one faulty robot, I could waste time trying to solve a nonexistent problem in the code.
  2. Secondly, I learned that code, especially for a complex problem, should not all be written at once, and then tested afterwards. When one does this, they are essentially basing the code entirely on theory, rather than actually experimenting with the robot, which doesn't always follow the ideal circumstances. Furthermore, if you write all your code at once, it is more difficult to isolate the problem if one arises. For instance, if you test different parts of the line follow program separately (ie detecting the line, driving forward, turning), then you can figure out exactly which portion is problematic and easily fix it.
  3. Finally, I learned that, when dealing with a robot with limited capabilities, speed and power must often be sacrificed for the sake of accuracy and precision. In the case of this lab, the robot could not accurately detect the line at high speeds.

Problems:

  1. At sharp turns, the robot had difficulty detecting the turn unless it was going incredibly slow. This seems less of a coding problem, and more of a limitation of the robot. Due to the amount of time (however small) it takes to execute commands, as well as how frequently the sensors are updated, the robot could very well miss a sharp turn at high speeds. This could be addressed in the code by significantly slowing down the robot, but then it would fail to be optimal because of how long it would take to travel the course.
  2. Another problem that the robot had was trying to deal with what to do when one path diverged into two, causing both the sensors to detect black at the same time. This caused the robot to experience a seizure, as it kept rotating left, then right, then left, and so on. This could be solved by changes in the code, essentially by telling the robot to turn one way when it detects both sensors. The robot could also be told to make a random decision to select one of the paths.

Possible Additions:
To make the difficult parts of the line follow course easier, there are numerous attachments we could add, especially additional sensors.

  1. Firstly, I would add another cliff sensor directly in the front-center of the create. This way, we wouldn't to assume that the line is always in between the right and left front sensors. Instead, we can simply modify our code to check that the front-center sensor is detecting the black line underneath it. Furthermore, if there is a missed turn, the create would know immediately because the front center cliff sensor would no longer detect the line.
  2. Secondly, I would add at least two sensors (possibly more) in the front, that I refer to as headlights, mainly because have a similar function as the car headlights. These sensors would be pointing towards the front, but angled down so they are looking at the road. These headlights allow the create to look at the path ahead of it, so that it knows of any turns and curves beforehand, ensuring that it won't miss the curve. More headlights pointed in different directions up front will also tell the create exactly which way the path will turn.

FlowChart
Attach:MananLineFollow.jpg Δ

Edit - History - Print - Recent Changes - Search
Page last modified on December 21, 2007, at 04:45 AM