Hands-on Activity: Thinking Robotics: Teaching Robots to Make Decisions

Contributed by: School for Scientific Thought, Center for Science and Engineering Partnerships, University of California Santa Barbara

A photograph shows a wheeled robot on the floor navigating a maze made of wooden plank walls.
A wheeled robot navigates a maze.
copyright
Copyright © 2013 Jeffrey R. Peters, University of California Santa Barbara

Summary

Students learn basic concepts of robotic logic and programming by working with Boe-Bot robots—a simple programmable robotic platform designed to illustrate basic robotic concepts. Under the guidance of the instructor and a provided lab manual, student groups build simple circuits and write codes to make their robots perform a variety of tasks, including obstacle and light detection, line following and other motion routines. Eight sub-activities focus on different sensors, including physical sensors, phototransistors and infrared headlights. Students test their newly acquired skills in the final activity, in which they program their robots to navigate an obstacle course.
This engineering curriculum meets Next Generation Science Standards (NGSS).

Engineering Connection

The world is becoming more and more automated, from cars that parallel park themselves to websites that suggest movies for specific viewers. Behind any automated system is a carefully thought-out control system that ensures system reliability and robustness. Control engineers use the tools at their disposal to make systems that not only perform the desired task, but do so in a way that is simple and easily implementable. By working with robots, students act as control engineers, exploring the use of simple sensors and logical tools to accomplish a series of engaging tasks.

Pre-Req Knowledge

Students should have an understanding of basic numerical computations and logic statements, for example: Does variable x satisfy either x < 2 or x > 4? Students should also have a very basic understanding of circuits; specifically, an awareness of circuit components (batteries, wires, electrical components) and a general idea of how circuits work (currents flow through wires, batteries generate energy, components dissipate energy, etc.). A general familiarity with computers is also helpful.

Learning Objectives

After this activity, students should be able to:

  • Explain why systems often do not behave in exactly the way that theory predicts.
  • Explain how carefully constructed codes can mitigate uncertainty in system behavior.
  • Write simple codes using basic programming tools.
  • Read simple circuit diagrams and construct circuits on a breadboard.

More Curriculum Like This

Exploring Nondestructive Evaluation Methods

Students learn about nondestructive testing, the use of the finite element method (systems of equations) and real-world impacts, and then conduct mini-activities to apply Maxwell’s equations, generate currents, create magnetic fields and solve a system of equations. They see the value of NDE and FEM...

Human and Robot Sensors

Students are provided with a rigorous background in human "sensors" (including information on the main five senses, sensor anatomies, and nervous system process) and their engineering equivalents, setting the stage for three associated activities involving sound sensors on LEGO® robots.

Middle School Lesson
Just Plane Simple

This lesson introduces students to three of the six simple machines used by many engineers. These machines include the inclined plane, the wedge and the screw.

Middle School Lesson
Do the Robot! Programming a RedBot to Dance

Students program the drive motors of a SparkFun RedBot with a multistep control sequence—a “dance.” Doing this is a great introduction to robotics and improves overall technical literacy by helping students understand that we use programs to control the motion and function of robots, and without the...

Middle School Maker Challenge

Educational Standards

Each TeachEngineering lesson or activity is correlated to one or more K-12 science, technology, engineering or math (STEM) educational standards.

All 100,000+ K-12 STEM standards covered in TeachEngineering are collected, maintained and packaged by the Achievement Standards Network (ASN), a project of D2L (www.achievementstandards.org).

In the ASN, standards are hierarchically structured: first by source; e.g., by state; within source by type; e.g., science or mathematics; within type by subtype, then by grade, etc.

  • Use a computer simulation to model the impact of proposed solutions to a complex real-world problem with numerous criteria and constraints on interactions within and between systems relevant to the problem. (Grades 9 - 12) Details... View more aligned curriculum... Do you agree with this alignment?
  • Use a model to predict the relationships between systems or between components of a system. (Grades 9 - 12) Details... View more aligned curriculum... Do you agree with this alignment?
  • Students will develop an understanding of the relationships among technologies and the connections between technology and other fields of study. (Grades K - 12) Details... View more aligned curriculum... Do you agree with this alignment?
  • The stability of a technological system is influenced by all of the components in the system, especially those in the feedback loop. (Grades 9 - 12) Details... View more aligned curriculum... Do you agree with this alignment?
  • Use a computer simulation to model the impact of proposed solutions to a complex real-world problem with numerous criteria and constraints on interactions within and between systems relevant to the problem. (Grades 9 - 12) Details... View more aligned curriculum... Do you agree with this alignment?
Suggest an alignment not listed above

Materials List

Each group needs:

To share with the entire class:

  • a computer and robot kit with software (like that listed above) plus a projector and Internet access, for the teacher's use to show the class his/her computer screen and perform steps together, and to show the class online YouTube videos
  • flashlight
  • roll of electrical tape
  • obstacle course for the final activity; requires approximately 8 x 4 ft floor area; see example maze in Figure 2; make it from any available materials, however we recommend using standard 2 x 4 wooden boards, small steel angle brackets with unthreaded screw holes and flat-head wood screws; this approach requires four 8 x 2 x 4 boards, 10 angle brackets (~2 inches wide x 1 inch for each flat surface) and 40 screws (0.75 inch-long wood screws); see the Procedure section for more details
  • (optional but strongly recommended) extra hardware and extra electrical components in case students lose or break the parts in their kits; see a complete list of components in the Boe-Bot kits at the Parallax, Inc. website; it is beneficial to have extras of all parts, however, we highly recommend having, at a minimum, extras of the following items: resistors (220 Ω, 470 Ω, 1 kΩ, 4.7 kΩ, 10 kΩ), capacitors (0.1 μF, 0.01 μF), infrared LEDs, phototransistors, 3-pin headers and whisker wires

Introduction/Motivation

Robotics is the use of electronic and computer-controlled devices to perceive and manipulate the world around us. Modern technology is abundant with robotic systems that help us increase the efficiency, accuracy and speed at which we are able to perform a variety of useful tasks. Whether you are benefiting from a car that can parallel park itself, a robotic welding arm or a video game controller, it is apparent that the use of robotics is pervasive and growing in our world. Thus, acquiring an understanding of the underlying principles of robotics is essential to success in many technology driven fields.

A robotic system consists of two types of components: hardware and software. Hardware refers to the physical (tangible) parts of the robot, such as the circuit boards, wires, electrical components, motors and various types of sensors. Software refers to the set of tools that enables us to analyze data, send commands to the hardware and define rules that govern how the hardware operates.

How do we use these tools to make robots perform tasks? This question defines an entire field of study called control engineering. Generally speaking, a control system is any type of system in which a parameter/value is modified (controlled), based on some type of input parameter/value. The most common way that this type of control is accomplished is by using hardware to gain information about the state of the system, and then using this information to determine how the system should react to reach the desired state. In other words, it is the job of control engineers to determine the best way to utilize the information available in order to make the robotic system perform the desired task.

To make this very general definition more concrete, let's take a look at an example control system—the cruise control in a car. (Show students Figure 1, or a similar drawing made on the classroom board.)

A diagram shows a drawing of a car with arrows indicating the input (throttle, friction, road conditions, weather) and output (speed) factors of the car's cruise control system. Below the car, a more general block diagram depicts the basic components of a control system: input > plant > output. Input are outside forces that affect the system behavior. The behavior of a "plant" (or the equations of the system) is determined by some governing laws. The resulting output is some quantity of interest.
Figure 1. An example control system and its basic components.
copyright
Copyright © (beetle car) 2007 clker.com free clipart; (composite image) 2014 Jeffrey R. Peters, University of California Santa Barbara http://www.clker.com/clipart-15138.html

Who can tell me—what is "cruise control"? (See if students know.) Cruise control is an automated system that enables drivers to input a specific speed, which the car then maintains without the driver needing to press the gas or brake pedal. For a cruise control system, the input parameter/value is the desired speed. In this case, the value that we are trying to control is the resulting speed of the car, which can be verified by reading the car's speedometer. In theory, we could use physics to figure out exactly how much gas to give the engine to make the car go the desired speed. However, a variety of factors can affect the output speed, such as road conditions, wind, friction, etc. How we deal with these factors is to constantly measure the actual speed of the car; if it is too fast, we give the engine less gas and if it is too slow, we give the engine more gas. This approach is an example of feedback, and is one tool that we can use to control robots, even in the presence of uncertainty.

The goal of this activity is to provide an introduction to robotics, and more specifically, control systems. Although we will discuss some of the hardware aspects of robotics, we will focus mainly on the software, control theory and implementation. In other words, we will use the measurements that we get from our robots to accomplish a desired task. To do this, some of the topics that we will cover include: programming languages, basic circuit theory, logic statements, breadboard use, hardware implementation and calibration, and feedback control.

Vocabulary/Definitions

block diagram: A visual map that displays the general framework for how a signal moves through a system.

breadboard: A tool for quickly assembling, modifying and testing electrical circuits.

capacitor: An electrical component that is able to store electrical energy (charge).

closed loop control: A control system that involves feedback.

command: A word in a programming language that instructs the hardware to perform a certain task.

comment: Elements in a computer code that are not considered by the hardware. Comments are strictly for the (human) software programmer's benefit and do not instruct the hardware to perform a task.

conditional statement: A piece of computer code that only executes if certain criteria are met, for example, an IF/THEN statement.

control engineering: The engineering discipline that designs systems that perform in a desired and predictable way, even in the presence of uncertainty.

control system: A type of engineering system in which a parameter/value is modified (controlled) based on some type input parameter/value.

diode: A resistor that only allows current to flow in one direction.

editor: A type of software that aids the people in writing codes that can be interpreted by a computer or a machine.

feedback: A scheme in which measurements of an output quantity are used to improve performance of the system in real-time

hardware: The physical (tangible) parts of an engineering system.

infrared light: A type of low-frequency light that is not visible to human eyes.

input: A quantity that affects the output variable of interest in an engineering system.

intensity: A measure of how much energy is contained in light waves.

open loop control: A control system that does not involve feedback.

output: A quantity of interest that is produced by an engineering system.

phototransistor: An electrical component that regulates current flow across its terminals based on the amount of light to which it is exposed.

plant: Another name for the equations that describe the properties of an engineering system.

programming language: An artificial language used to instruct a computer or machine to perform a task or set of tasks.

resistor: An electrical component that provides electrical resistance as a circuit element. Resistors serve to lower current flow and reduce voltage across the terminals.

robotics: The use of electronic and computer-controlled devices to perceive and manipulate the world around us.

servo: A device used to provide control of a desired operation through the use of feedback.

software: The set of tools in an engineering system that enables us to analyze data, send commands to the hardware and define rules that govern hardware operation.

subroutine: A piece of computer code that can be called as a command within another computer code.

subsystem testing: A practice in which the functionality of system components (subsystems) are tested individually, rather than testing the entire system at once. This aids in ensuring the entire system behaves correctly.

tactile switch: A sensor that uses physical touch to gain information about its surroundings.

transistor: An electrical component that regulates current flow across its terminals based on the state of its surroundings.

Procedure

Teacher Background Requirements

Teachers should have a basic understanding of the physics behind electricity and circuits, namely, the definitions and physical meanings of electrical potential, current, energy, and an understanding of fundamental equations such as Ohm's law. It is also best if instructors have had hands-on experience with building circuits and using breadboards. Since students will need help troubleshooting their circuits, teachers should be familiar enough with the hardware to help them. Similarly, it is helpful if teachers have had some basic programming experience, namely, knowledge of logic statements, IF/ELSE statements, FOR loops, WHILE loops and other elementary programming tools. Knowledge of advanced programming is not necessary, but since students will need help debugging their codes, teachers should be comfortable enough with the material to help. Finally, since the focus of the activity is on the control of robots, a knowledge of control systems concepts, such as feedback and simple controllers (proportional gain) is helpful. All of the topics covered are discussed in the Thinking Robots Lab Manual and the Robotics with the Boe-Bot Text, which is available at https://www.parallax.com/downloads/robotics-boe-bot-text.

Time Required Note

This entire hands-on activity, composed of nine sub-activities, is designed to be conducted during five two-hour sessions, as described in the steps below. Alternatively, the nine activities can be split up differently if desired, and conducted over the course of more and shorter sessions. It works well to assign students to read in advance of class those sections in the lab manual for the sub-activities they will be doing that day. This facilitates accomplishing the activities in the time allotted.

Before the Activity

  • Obtain the Boe-Bot robot kits and verify that all components are present.
  • Download and install the BASIC Stamp Editor software on each computer, one per group. Make sure to also install any necessary drivers.
  • Make copies of the 72-page Thinking Robots Lab Manual, one per student. Alternatively, make the PDF version of the lab manual available for students to view on computers and tablets. In advance of each lab day, assign students to read the pertinent section in the lab manual for that day's activity.
  • Assemble the Boe-Bots. Alternatively, have students do the assembling as part of the activity. Either way, it is recommended that the teacher at least test the servos and main boards by running some simple codes on each.
  • Put four batteries into each kit.
  • Test communication between each robot and computer by running a few simple codes on each. Test the servos to make sure they run correctly. It is also recommended that the instructor perform all of the lab activities him/herself before the class to ensure that everything is in order.
  • Create or identify a computer directory where you want students to save their files. Alternatively, save and access the files from USB memory sticks or some other external storage device(s). At times, students need to alter/access previously saved codes, so provide a location(s) to save the files where they can be found easily.
  • For Days 1, 4 and 5, set up a projector to be able to show the class the teacher's computer screen, as part of introducing new material and activity steps, and to show the class online YouTube videos.
  • For Days 2 and 5 (the final activity), build an obstacle course for the robots. Set up a course that can be easily navigated by the Boe-Bot using simple motion maneuvers, that is, a series of turns and forward motions; A course with four or five turns/maneuvers and one dead end poses an adequate challenge. See an example obstacle course in Figure 2. It is best if the maze does not use elevated components, which increase the likelihood of damaging the robot if it falls.
    A photograph shows the legs of three teens watching and controlling a wheeled robot on a floor area of tiled linoleum to move through a maze made from long wooden boards positioned to stand on their thin edges to create low walls.
    Figure 2. An example obstacle course maze for the final activity.
    copyright
    Copyright © 2014 Jeffrey R. Peters, University of California Santa Barbara

With the Students: Day 1—Hardware Setup, First Program and Servo Motors

  1. Introduce students to the topics presented via the Introduction/Motivation section. Conduct the various pre-activity assessment activities described in the Assessment section.
  2. Divide the class into groups of three or four students each. These groups remain the same for the duration of the overall activity. Groups of three are best since larger groups make it difficult for all students to get involved in the activities and smaller groups run into problems if any students are absent. It is also recommended to organize the groups so they are as even as possible in terms of skill level. For example, if the class includes students from multiple grades, place equal numbers of upper- and lower-class students in each group.
  3. Assign each group to a lab station equipped with a computer and a robot kit. Have groups assemble at the stations and label their kits with their names or group identifier since they will use the same kit for the duration of the activity.
  4. Review basic lab safety rules (as determined by the instructor and school). At a minimum, review basic circuit safety, including the recommended rules provided in the Safety Issues section.
  5. Direct groups to open the BASIC Stamp Editor software. Introduce students to the concepts of hardware, software, programming languages and editors.
  6. As a class, complete activities 1 and 2 from the lab manual: Setting up the Hardware and Your First Program. These activities guide students through testing for communication with the hardware and writing their first simple codes. Use a projector to display for the entire class the instructor's computer screen and perform the steps one by one with the class.
  7. Once all groups have successfully completed all of the tasks in activities 1 and 2, introduce students to the concepts of FOR... NEXT loop, circuit, breadboard, resistor and diode. Show students how to construct a simple circuit on the breadboard. (optional) Although not required for this activity, introduce the concept of circuit diagrams.
  8. Direct the groups to work on activity 3 in the lab manual: Your Boe-Bot's Servo Motors. For this sub-activity, let each group work at its own pace. As they work, visit each group and ask about the codes they are writing; ask students to explain their functionalities.
  9. At session end, have students clean their lab stations, save their work and bring the kits to the instructor.

With the Students: Day 2—Navigation

  1. Direct students to meet up with their groups and sit at their lab stations. Before handing out the robot kits, review with the class the concept of FOR...NEXT loops and its basic functionality.
  2. Hand out the specific robot kit to each group.
  3. Direct students to work on activity 4 in the lab manual: Boe-Bot Navigation. Allot approximately one hour for this activity. As students work, visit each group to help with troubleshooting and discuss the activity concepts (ask students to explain how the codes work, etc.). Try to help all groups complete at least activities 4.1 to 4.3 by the end of the hour.
  4. For the next part of class (~30 minutes), introduce students to the obstacle course that you set up before class. Challenge groups to write code for their robots to navigate the maze. The objective of this sub-activity is for students to come to an understanding about how hard it is to program robots to work as desired without the use of sensors/feedback. Thus, it is okay if students struggle with this part of the activity.
  5. Once students have tried a few times, ask them to brainstorm the types of sensors and other strategies that might make navigating the obstacle course easier. After students have had a few minutes to brainstorm, preview the remainder of the activity by discussing how the use of sensors and feedback can help to make robot motion more predictable.
  6. For the rest of this class period, direct students to either complete activity 4.4 (if not yet done) or continue trying to navigate the maze (if they have already finished all of activity 4). As students work, check for understanding by discussing the concept of subroutines with individual groups. Simultaneously, help groups that may be struggling to complete activity 4.4.
  7. At session end, have students clean their lab stations, save their work and bring the kits to the instructor.

With the Students: Day 3—Tactile and Light-Sensor Navigation

  1. Direct students to meet up with their groups and sit at their lab stations. Before handing out the robot kits, introduce the class to the concepts of conditional statements (IF... THEN statements), DO...LOOPS and tactile switches.
  2. Review correct bread boarding technique in detail, if necessary. A primer on bread boarding can be found in Appendix B of the Robotics with the Boe-Bot Text. (optional) If desired, review circuit diagrams with the class, such as basic symbols and how to read them.
  3. Hand out the specific robot kit to each group.
  4. Direct students to work on activity 5 in the lab manual: Tactile Navigation with Whiskers. All necessary materials are provided in the robot kits. Allot about one hour for this activity. As students work, visit each group to help with troubleshooting and discuss the activity concepts (ask students to explain how the codes work, etc.).
  5. Once students have finished the activity, introduce the concepts of transistors, phototransistors and capacitors.
  6. Depending on how quickly activity 5 is completed, direct students to work on activity 6, Light-Sensitive Navigation with Phototransistors, in the lab manual for the rest of the class (approximately one hour). This activity is not critical to the remainder of the class, so have students complete it only if time permits. If less than 45 minutes remains, then skip activity 6 and proceed to present the content under Day 4, either through a discussion of infrared light or by starting activity 7 (students need not complete the entire activity; they can pick up where they leave off at the beginning of Day 4). As students work, visit each group to help with troubleshooting and discuss the activity concepts (ask students to explain how the codes work, etc.).
  7. At session end, have students clean their lab stations, save their work and bring the kits to the instructor.

With the Students: Day 4—Infrared and Distance Detection Navigation

  1. Direct students to meet up with their groups and sit at their lab stations. Before handing out the robot kits, introduce the class to the concept of infrared light. Show the class a four-minute YouTube video to illustrate how infrared light is used in robotics: Automated Manufacturing System with Robotic Deburring and Vision System at https://www.youtube.com/watch?v=VysJsVj6dfg. (optional) If desired, review conditional statements and circuit diagrams.
  2. Hand out the specific robot kits to each group.
  3. Direct the groups to work on activity 7 in the lab manual: Navigating with Infrared Headlights. All necessary materials are included in the robot kits. Allot about one hour for this activity. As students work, visit each group to help with troubleshooting and discuss the activity concepts (ask students to explain how the codes work, etc.).
  4. Once students have finished, introduce the class to the concepts of intensity, feedback, open loop control and closed loop control.
  5. Direct groups to work on activity 8 in the lab manual: Robot Control with Distance Detection. As students work, visit each group to help with troubleshooting and discuss the activity concepts (ask students to explain how the codes work, etc.). Note: If necessary, permit students to use the first part of Day 5 to finish this activity. Activity 8 challenges students to combine many of the concepts learned thus far. It also guides them through using mathematics to model the relationship between distance and the intensity of light sensed by the infrared sensors. Then they use this model to construct a feedback loop that they can use to perform a variety of tasks such as detecting objects, following a stripe and following a piece of paper.
  6. At session end, have students clean their lab stations, save their work and bring the kits to the instructor.

With the Students: Day 5—Navigating an Obstacle Course

  1. Direct students to meet up with their groups and sit at their lab stations. Remind them of the main concepts of the overall activity, including the use of sensors to gain information about the world, the use of logic to construct control systems and the use of control to make robots behave in a predictable way.
  2. Hand out the specific robot kit to each group.
  3. Direct the groups to use the entire class time to write codes to guides their robots through the obstacle course—the same obstacle course used in Day 2. To complete activity 9, Navigating an Obstacle Course, permit students to utilize any of the sensors and codes that they have previously learned about and written.
  4. The purpose of this final activity is for students to come to an understanding of how the use of sensors and control systems makes it easier to program robots to behave in predictable ways. As they work, students incorporate and combine concepts from math, mechanical engineering, electrical engineering and computer science. You may want to show the class a YouTube video (3:23 minutes) of high school students guiding a robot through a maze to complete this final activity at https://www.youtube.com/watch?v=80Vs-zohfl8.
  5. At session end, have students clean their lab stations, save their work and bring the kits to the instructor.
  6. Conclude by leading a class discussion asking groups to share and compare results and conclusions. Also use the post-activity assessment questions/answers provided in the Assessment section.

Attachments

Safety Issues

  • Have students with long hair tie it back.
  • Do not permit food or drink at lab stations.
  • Use caution when working with small components.
  • Make sure the power is off anytime you touch or manipulate electrical circuits.
  • While safety goggles are not required, consider wearing them for extra safety.

Troubleshooting Tips

A variety of troubleshooting tips for issues specific to the Boe-Bot robot and its associated software can be found in the Robotics with the Boe-Bot Text at https://www.parallax.com/downloads/robotics-boe-bot-text. If this link does not work, find the text through a search on the Parallax.com website.

General troubleshooting tips: For troubleshooting circuits, many issues can be prevented by having an organized breadboard (see Appendix B of Robotics with the Boe-Bot Text for more details). Thus, encourage students to wire breadboards in an organized way. Common problems include incorrect components, incorrect diode orientations, unengaged servos (the power switch should be in position "2") and misplaced wires. For troubleshooting codes, encourage students to test their codes as they go along or create breaks in the code to test functionality. Common problems with codes include incorrect syntax, missing/incorrect preamble, misspelled words, capitalization issues and incorrect variable usage.

Activities and codes are designed in such a way that even students who do not fully understand the concepts should still be able to make the codes run. However, encourage students to not just blindly follow the example codes in the lab manual, but rather to think through what each line of code means. This is especially important for parts of the code that are placeholders. For example, the servos parameters necessary to make robots move straight vary from robot to robot; the parameters in the lab manual's example code are simply guidelines.

Assessment

Pre-Activity Assessment

Brainstorming: In small groups, have students brainstorm answers to the following questions. Then review and discuss their answers as a class.

  1. How do we define engineering? What types of engineering exist? (Answer: The application of scientific, economic, social and practical knowledge in order to invent, design, build, maintain, research and improve structures, machines, devices, systems, materials and processes. [source: Wikipedia] In short, engineers are problem solvers! Some of the wide variety of types of engineering include: biomedical, chemical, electrical, mechanical, civil and control systems engineering.)
  2. How do we define robotics? What are some examples of robots that we use in everyday life? (Answer: Engineering that deals with the design, construction, operation and application of robots and computer systems for their control, sensory feedback and information processing. [source: Wikipedia] You might also say that it is the use of electronic and computer-controlled devices to perceive and manipulate the world around us. Some robots in common, everyday use include cars, cell phones and printers.)
  3. How do robots affect humans? What are some negative effects of using robots? Will humans become lazy if we rely too heavily on robotics? (Use this open-ended question to encourage students to think about practical and ethical issues that arise in technology-driven fields. Some potential responses include: Robots affect our lives by making tedious, dangerous and difficult tasks easier. It is possible for robots to introduce negative consequences. For example, if people become too dependent on their phone GPS tools, then they may get lost if the apps malfunction. However, it is important to realize that the role of robots is generally to aid humans and not to entirely replace them.

Discussion Questions: Pose the following questions to the class and discuss the answers together:

  • What type of engineering is the field of robotics? (Answer: Robotics, like many fields, does not fall under only one category. As you will see from this activity, robotics uses tools from a variety of engineering disciplines such as mechanical engineering, electrical engineering, computer science and more!)
  • Once we have built a robot, how do we get it to behave how we want it to behave? Why is it that machines and robots often do not behave how we think they are going to when we initially design them? For example, if I built a machine to throw a basketball into a hoop by simply programming it to fling the ball at a set angle and speed, would it always make a basket? (Answer: Machines sometimes do not behave how we expect them to because the world is full of uncertainties and changing conditions. For example, in the basketball example, variable factors such as wind, friction effects, imperfections in the mechanics, etc., may prevent the ball from hitting the target every time. For this reason, robots and machines are carefully programmed to use sensors and adapt to these uncertainties. It is not magic, just a series of simple logic commands that enable us to effectively control machines, even in the presence of uncertainty.)

Illustrative Exercise: Call on a student, and ask him/her to give you directions on how to get to the door. When students provide directions, take them extremely literally (like a robot would do). For example, if a student says, "Go forward," walk forward until you hit an obstacle and then keep trying to move forward (the directions did not tell you how far to go forward). Then explain to students that when programming robots, this type of exact instruction is necessary since robots do not have brains and cannot think for themselves or "read between the lines," as human brains can do.

Activity Embedded Assessment

Check for Understanding: For most of the exercises in this activity, students work independently within their groups. As they attempt to build the various circuits and write the various codes, expect them to run into problems. When they ask you for help, ask them to try and explain what is wrong, and give them hints as to how to fix it, rather than just giving them the answer. Also, while the class is working, gauge student comprehension by periodically asking individual students to explain to you the logic of a code they are working on by explaining the commands line by line.

Daily Journal Reflections: At the end of each class period (or as homework assignments), ask students to each write a short (one-page) journal entry that reflects upon the activities of the day. Guide them to focus on how the concepts learned apply to robotics in everyday life and the challenges to practical implementation of the methods learned.

Post-Activity Assessment

Discussion Questions: As a class, discuss the following questions and answers:

  • What were some of the main problems that you ran into when trying to program your robots and how did we fix them? (Listen to student experiences. Possible answers: Codes not working, hardware not working correctly, etc. We fixed them by carefully testing each system component [subsystem testing)] and thinking logically to figure out what was wrong.)
  • Why was it more difficult to navigate the obstacle course the first time you tried (on Day 2) than the second time (on Day 5)? (Answer: The first time we were not using sensors or feedback [open loop control], while the second time, we were using sensors [closed loop].)

Activity Extensions

Students will most likely solve the final activity by programming their robots to go through the maze with standard logic statements that they are able to figure out on the spot. To extend the activity, have them research and implement various maze-solving algorithms that already exist. One easy-to-use example is the random mouse algorithm. Many other algorithms can be found at http://en.wikipedia.org/wiki/Maze_solving_algorithm.

Activity Scaling

The nine activities presented in the Procedure section (and lab manual) provide a foundation that addresses the core concepts of the overall activity. However, any of the instructions can be augmented to include additional exploration and more advanced concepts. Alternatively, the activities can also be modified to accommodate less-advanced students.

  • For more advanced students, make the activities more challenging. For example, have students try to re-write some of the programs using more advanced programming tools (such as subroutines, etc.) or have students figure out the codes on their own instead of providing them with written working codes (as spelled out in the lab manual).
  • For less-advanced students, make the activities easier by pre-assembling the circuits for them. Many students spend a significant amount of time making the circuits; thus, pre-assembling can save a great amount of class time.

Additional Multimedia Support

As necessary, refer to the Robotics with the Boe-Bot Text, a 300-page PDF document available for free downloading at https://www.parallax.com/downloads/robotics-boe-bot-text. This text is the complete tutorial for the BASIC Stamp-based Boe-Bot Robot. It supports both serial and USB versions of the Board of Education and also the BASIC Stamp HomeWork Board.

Watch students guide a robot through a maze and see an example maze layout suitable for this activity in the 3:23-minute YouTube video at https://www.youtube.com/watch?v=80Vs-zohfl8.

Show the class a four-minute YouTube video as an example robotic manufacturing application that illustrates how infrared light is used in robotics: Automated Manufacturing System with Robotic Deburring and Vision System at https://www.youtube.com/watch?v=VysJsVj6dfg.

References

Bullo, Francesco, Jorge Cortés, and Sonia Martínez. Distributed Control of Robotic Networks: A Mathematical Approach to Motion Coordination Algorithms. Princeton, NJ: Princeton University Press, 2009.

"Engineering." Last updated May 23, 2015. In Wikipedia, The Free Encyclopedia. Accessed May 27, 2015. http://en.wikipedia.org/wiki/Engineering

Lindsay, Andrew. Robotics with the Boe-Bot. Parallax, Inc., 2010.

Ogata, Katsuhiko. Modern Control Engineering. Upper Saddle River, NJ: Prentice Hall, 2010.

"Robotics." Last updated May 23, 2015. In Wikipedia, The Free Encyclopedia. Accessed May 27, 2015. http://en.wikipedia.org/wiki/Robotics

Thrun, Sebastian, Wolfram Burgard and Dieter Fox. Probabilistic Robotics. Cambridge, MA: The MIT Press, 2005.

Contributors

Jeffrey R. Peters, Rushabh Patel, Mechanical Engineering Department

Copyright

© 2015 by Regents of the University of Colorado; original © 2014 University of California

Supporting Program

School for Scientific Thought, Center for Science and Engineering Partnerships, University of California Santa Barbara

Acknowledgements

We thank the School for Scientific Thought for providing the opportunity to teach this course. We also thank Francesco Bullo, Wendy Ibsen, Heather Vermilyea Stephanie Lindsay and Parallax, Inc. for their support in this endeavor.

Development of this curriculum was funded in part by National Science Foundation grant no. CNS 1035917 and Army Research Office grant no. W911NF-11-1-0092. Any opinions, findings, conclusions or recommendations expressed in this publication are those of the authors and do not necessarily reflect the views of the supporting organizations.

Last modified: June 14, 2018

Comments