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

Lab 5: Wall Following

Christopher Merrill (Red Cohort)

Summary

The purpose of this lab was to create a system that allowed the iRobot Create to follow a wall, remaining a set distance from it and handling turns using an IR-based distance sensor. The robot was also able to navigate cliffs and other obstacles that may interfere with its wall-following process.

Attach:CMerrillLab5Dist.jpg Δ

Procedure

A 3-40 mm range distance sensor was placed on the front-right of the Create for this lab. This was the only external sensor utilized by the command module. A hyperbolic linearization function was used in order to convert the nonlinear values that were output by the distance sensor into more easily usable values for the create. The bumpers in the front were used to find walls that were directly in front of the robot -- after impacting such a wall, the robot would back up and turn 90 degrees to the left. It would then resume its wall following procedure. All of these functions were encapsulated inside of a safety system that would pause the robot if wheeldrops or other problems were to occur during operation. At any time the play button can be pressed to stop the robot, and pressing it while the robot is in an error state will return it to its task. The cricket display was used to display the word "Err" when an error was encountered.

Attach:CMerrillLab5Path.jpg Δ

Results

To control the robots motion, the cr8_drive(speeed,radius) command was used. A set distance from the wall of 7 cm was set in the coding, and the robot utilized PID control to dynamically adapt the turning radius to the changing wall conditions. This method of control was much smoother than pure digital control (e.g. if closer turn away, if further turn towards). An example path that this robot might follow is seen to the left. As you can see, there were many places where the robot was closer or further away from the wall than programmed, but PID control allowed it to follow a smooth path over varying wall terrain. One result of using PID control is that the robot will oscillate a little bit while recovering from a rapid change, but varying the parameters of the control function can reduce this problem.

Problems Encountered

  • System relied on bumpers to detect forward walls - could use another distance sensor instead.
  • Distance sensor was initially placed exactly halfway down the side of the robot - encountered problems because turning towards the wall would move the sensor away from the wall, and turning away would move it closer in many cases. This was fixed in the final version by relocating the sensor.
  • In order to use PID control, it is necessary to determine the multiplication constants for the P, I and D portions of the function. This requires a series of trial-and-error tests to determine reasonable numbers. These coefficients are effectively weights for each of the PID components, determining how much they contribute to the actual change in radius.

Resources

Edit - History - Print - Recent Changes - Search
Page last modified on January 22, 2008, at 11:03 PM