Recent Changes - Search:

Main

Robotics I Fall 2007

Robotics II Spring 2007

Robotics I Fall 2006

Vision Servoing Laboratories

FPGA-Based Vision

VDSP

LabVIEW Embedded

Code

Site Admin

edit SideBar

Lab 4: Behavior-Based Control

Assigned: Monday, October 1, 2007.
Due: Wednesday, October 10, 2007.

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

Readings

Please read:

  • Chapter 3 from the Arkin, Robot Behavior
  • Chapter 5 from Martin, “Control”

Project 4: Behavior-Based Control

Introduction: Content from Martin

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.

Introduction: Content from Arkin

Arkin introduces the state of the field of behavior-based robotics during the 1980s and 1990s. He describes design methodologies for developing behavior-based robots, including “ethologically guided” systems (i.e., those inspired by actual creatures).

Arkin presents the abstraction notion of a “stimulus-response” (SR) behavior, and describes ways that SR behaviors can be combined. He describes “finite state acceptors” (FSAs, or state machines), which allow for behaviors with internal state.

When discussing how behaviors may be combined or “assembled,” Arkin introduces a mathematical, vector-based notation, and then points out that there are two fundamental approaches to combining behaviors: competitive methods, where one behavior “wins” and takes over control of the robot, and cooperative methods, where the control outputs from multiple behaviors are combined in some fashion to produce the resultant robot actuator control commands.

In this lab, you are invited to bring together ideas from these two readings 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, and wall-following. You may add a new behavior, such as following a black line of electrical tape on the floor (this latter capability will be useful in the Egg Hunt contest).

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 the projects.cs.uml.edu 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 projects database. Include screensnaps of key VIs, discussion, robot photos, and a robot movie. Upload the source VIs.


Student Links to OPDB Writeups

Link to your OPDB cubes here.

Edit - History - Print - Recent Changes - Search
Page last modified on November 19, 2007, at 06:47 PM