Robotics I Fall 2007
Robotics II Spring 2007 Robotics I Fall 2006
Code |
Lab4Lab 4: Behavior-Based ControlAssigned: Monday, October 1, 2007. In this lab, you will develop approaches to coordinating multiple robot control modes into a coherent overall robot behavior. ReadingsPlease read:
Project 4: Behavior-Based ControlIntroduction: Content from MartinChapter 5 of the Martin book discusses the following types of control:
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:
Introduction: Content from ArkinArkin 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 ProblemYour 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 ItBuild 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 ItExplain 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 WriteupsLink to your OPDB cubes here. |