Recent Changes - Search:


Robotics I Fall 2007

Robotics II Spring 2007

Robotics I Fall 2006

Vision Servoing Laboratories

FPGA-Based Vision


LabVIEW Embedded


Site Admin

edit SideBar

Lab 4: Behavior-Based Control

Assigned: Thursday, September 28, 2006.
Due: Thursday, October 5, 2006.

In this lab, you will develop approaches to coordinating multiple robot control modes into a coherent overall robot behavior.


Please read:

  • Chapter 4 from the Arkin book, Behavior-Based Robotics
  • Chapter 5 from Martin, “Control”

Project 4: Behavior-Based Control


Chapter 5 of the Martin book discusses the following types of control:

  • Simple feedback control. This was discussed in class, and was the topic in Lab 2.
  • Proportional-derivative control. This was also briefly mentioned in class.

Together, these two topics form the beginnings of a field of study known as classical control. This field is concerned with systems such as factories, engines, plants, and other large systems to be controlled.

Then two sections discuss robot control:

  • Algorithmic control. This is presented as a method that works when robots need to move lock-step through a series of actions, but has problems when robots must flexibly select from various operating modes.
  • Reactive control. This is my own phrase for a limited version version of what is more broadly known in the literature as behavior-based control. In my design, multiple behaviors can run in parallel, with exactly one of them (the one with the highest priority) being allowed to actually control the robot's motors.

In this lab, you are invited to bring together ideas from these two sections, along with a thorough introduction to Behavior-Based Robotics in the Arkin book, into a practical implementation on your robot.

Frame the Problem

Your first task is to decide what behaviors you would like your robot to coordinate. To date, you have implemented light-seeking, open space-seeking, bouncing-off-of-obstacles, wall-following, and velocity control. You may add a new behavior, such as following a black line of electrical tape on the floor.

You should choose 3 behaviors and then determine how the robot will select among them. For example, the robot might seek out bright light, but if it runs over a line, it will follow it for 30 seconds, and then start light-seeking again. While both of these behaviors are possible, if the robot runs into something with its touch sensors, that will override either other behavior, and cause it to back up and turn away.

Now, draw a state transition diagram (or other diagram that you understand and can explain) to document your design. Post to invention database. (If it's a pencil drawing, use the flatbed scanner in the lab.)

Implement It

Build it in LabVIEW. One possibility is to use global variables to have each sub-behavior indicate how it would like to move the motors if it were in control, and then have a supervisory behavior that determines which sub-behavior is presently the “lucky winner” who gets their values actually copied to the motor. This supervisory loop would have to continuously select from the possible motor settings, copying the winner into the actual motor outputs.

That's just one way. Based on the readings and your interest exploring LabVIEW, you might have other ideas.

Document It

Explain your work on the inventionDB. Include screensnaps of key VIs, discussion, robot photos, and a robot movie. Upload the source VIs.

Student Links to InventionDB Writeups

Link to your InventionDB cubes here.

Edit - History - Print - Recent Changes - Search
Page last modified on November 06, 2006, at 02:33 PM