Lesson Modules
Teaching Tips:
ROBOTMASTER PROTOCOL
As most classes are organized around a group of students and shared robots, getting participants used to sharing, and using a methodology for taking and giving over control of the robot is often useful for class management. Moreover, at any given point in time, only one computer can control to the robot. Failing to disconnect gracefully, will cause the robot to reject all other computer requests to
connect.
We suggest taking turns with an answer and response methodology like is used in extreme sports and the military, so robot handover is treated as a team activity.
The "Robot Master" Handover:
The person who holds the little robot is the Robot Master and the only one who is allowed to connect to the NAO robot.
- When you want to connect, you ask the Robot Master, “Can I connect to the robot?”
- The current Robot Master will disconnect from the NAO in Choregraphe
- The current Robot Master, will say, “I am disconnected!” and hand over the little robot.
- The receiver is the new Robot Master!
- Only after the little robot is received, can the Robot Master connect to the NAO robot with Choregraphe
While a student is connected to a NAO robot, no one else will be able to connect, as Choregraphe will return an error if a connection is attempted. You can use stuffed puppets like below.
The Evening Before the Class:
- Charge all the laptops
- Make a backup of the thumb-drive with the students' stories.
- Charge the robots.
Classroom Preparation:
- Set up three island tables in the classroom, around each table, place 5 chairs for the students.
- Place a NAO on each table. (From the second lesson, try to keep the same robot for the same
group of students. They become attached to their robot based on the name...) - Plug in the NAO chargers, and use duct tape to secure them to the floor/table/wall.
- Plug in the router to the power, there’s no need for an internet connection. Make sure it’s in the
same room with the robots and the laptops. - Place five computers on each table around the robot. There’s no need to plug in the laptops, the
battery life should be good enough for more than 4 hours. - Locate the Teacher’s computer, (a sticker on the lid says “teacher”) and keep it on your table, next
to the projector/TV/big screen. - Place a robot-master puppet on each table.
- Locate the thumb drive, and keep it next to your computer. At the beginning of the lesson, each
student will copy his story to his/her computer.
Resources:
- Book for students
- Book for teachers
- All the resourses for this course Module3_ChoregrapheFiles
- Download Lesson1_Choregraphe File
Overview
In this module, each lesson plan is the same, but the content changes. For this reason the only lesson plan you are provided is this one. There are reference sheets that are specific to each lesson that you should review, and work through, before each class.
There are five two-hour lessons in this module. These two-hour lessons are broken down into two one-hour sections. In each lesson, students will deconstruct an existing game on the robot (first hour) and use the new knowledge from deconstructing an existing game to create their own game (second hour). These stages are called Decontextualize and Recontextualize respectively.
Prior to running this course, you should make sure that the Module 3 vision recognition library is loaded on each robot. This library is what allows NAO to recognize the cards used in each lesson. To do this, follow the instructions here.
Aside: When referring to the robot this curriculum alternates between he and she. We encourage you to do the same in your classroom. This promotes gender equality in the classroom and helps encourage all students to participate.
Before Class
Read the reference page for the lesson and review this lesson plan. Put the example game program on each computer. The folders are titled Lesson_1_Example_Game for lesson 1, etc. Choose one student from each group to be the Investigation Robot Master. Each student should get a chance to play this role throughout the class. Connect this computer to the robot to run the example game. This way the students can explore what the game does.
Decontextualize
As students work in their student book, walk around the classroom and ask guiding questions to get students to engage more deeply with the content. Be sure to have students read instructions out loud.
- Demonstrates the example game for that lesson.
(5 minutes) - Have a student volunteer read through the questions on the Play The Game! page out loud to the class. Discuss the meaning of each question to ensure students understand what they are being asked. (5 minutes)
- Have students play the game and answer the questions. They should work as a group to do this investigation. Only the Investigation Robot Master should control the robot. (10 minutes)
- Discuss student answers as a class. (5 minutes)
- Have students then write the full user-side walk through of the game on the Explain The Game!
page. (5 minutes) - Have a few students volunteer to read their write-ups to the class. It might be wise to pre-select students as they are writing by reading a little over their shoulders and selecting write-ups that will spur discussion. (5 minutes)
- Students open the game file on their own computers and look through the code while answering questions on the Read The Code!
page. (10 minutes) - In each lesson, there is one Black Box, a Choregraphe box that has an unknown function. These boxes are indicated by a "?" icon. Students must identify these boxes and list the inputs, outputs and deduce the function of this box in the
What Do These Do? page. This is the central focus of learning in each lesson. Students must reason through the program to figure out what exactly these boxes do. They MUST understand the box before moving on to the next stage. (10 minutes) - Discuss functions as a class. (5 minutes)
Recontextualize
- Students brainstorm alternative uses of the new Black Box and write/draw their ideas on the
Brainstorm! page. Give students
2-3 minutes to brainstorm silently. The
have them discuss their ideas with a partner for
2-3 minutes and finally discuss ideas as a group
for 5 minutes. This discussion method is called Think-Pair-Share. - Have the students pick one of their ideas and construct a full plan on the Build It Out!
page. (10 minutes) - Have the students carry out the plan by programming it on their own computers. They should test whatever they can on the virtual robot before running it on the real robot. (20 minutes)
- When students finish making their program, have them complete the Reflect and Revise!
page. They should consistently reflect on their work and revise until they have a program that they are happy with (or they run out of time). (15 minutes) - Have the students complete the Today I Learned... page. (5 minutes)
After Class
Save the students' work on the flash drive.
Pack up everything (Check the Packing Instructions )
ROBOTMASTER PROTOCOL
As most of the time, you will be working in a group, sharing robots and using a methodology for taking and giving over control of the robot is often useful. Moreover, at any given point in time, only one computer can control the robot. Failing to disconnect gracefully, will cause the robot to reject all other computer requests to connect.
The "Robot Master" Handover:
The person who holds the little robot is the Robot Master and the only one who is allowed to connect to the NAO robot.
- When you want to connect, you ask the Robot Master, “Can I connect to the robot?”
- The current Robot Master will disconnect from the NAO in Choregraphe
- The current Robot Master, will say, “I am disconnected!” and hand over the little robot.
- The receiver is the new Robot Master!
- Only after the little robot is received, can the Robot Master connect to the NAO robot with Choregraphe
Teaching Tips:
VISION RECOGNITION
This curriculum relies heavily on NAO’s vision recognition engine. To use vision recognition you must first make a database of images to recognize (we have done this for you with the cards). When you use the Vision Reco. box in choregraphe it takes 30 seconds or so to load the database. The robot will not do anything else during this time.
Some modifications have been made to this process for this particular curriculum. First, a vision recognition database has already been created for the cards.
No additional databases are necessary to implement this curriculum, though you can learn how to create one. Additionally, the Vision Reco. box has been modified to wait 5 seconds between recognitions. This modification
was made to make the games run more smoothly. You can modify this wait time using the process shown below.
Loading the Database
To load the Module 3 Vision recognition database onto your robot, follow steps 1-3 on Room Setup page. Then,
navigate to module3.vrd file. Select, then load the database onto the robot. Repeat for all robots.
Modifying the Wait Time
This process refers to the modified box available in the new Module 3 box library. If this library is not already loaded on your Choregraphe, you can add it by going to Edit --> Preferences, pressing the plus sign next to the User’s Box Libraries drop down menu and navigating to the appropriate file module3-1.cbl. Press OK in the Preference pop-up box and a new Module 3 tab should appear in your box library.

Creating Your Own Vision Database
Let me reiterate, you DO NOT need to create your own vision recognition database to run this curriculum. This section is here merely to provide guidance for those curious about how it is done, or if you want to add cards and objects of your own.
First we will show how to “learn” an object, then how to load a database onto the robot, then how to save that database and finally we will discuss which objects and images are good candidates for the robot to learn.
1. Connect to a real robot.






To load a previously saved database, press the

What is Project Content?
Another new attribute to this curriculum is using the project content view. This allows your students to have only one Choregraphe folder for the entire course, rather than a new folder for each lesson.
How to Use the Project Content Palette
- From the menu bar go to View --> Project Content. The following palette should appear:
- By default there is one behavior in your project. You can add a new one by pressing the plus button in the project content palette and entering a name. We recommend using a name without spaces.
- Once you have more than one behavior, you can switch between the two by double clicking the
behavior.xar file within each behavior folder (highlighted below).
TOOLTIPS
| ![]() |
VISION RECOGNITION
A Word About NSO's Vision Recognition
This curriculum relies heavily on NAO’s vision recognition engine. To use vision recognition your teacher first made a database of images to recognize. When you use the Vision Reco. box in choregraphe it takes 30 seconds or so to load the database. The robot will not do anything else during this time.
Modifying the Wait Time
This process refers to the modified box available in the new Module 3 box library. If this library is not already loaded on your Choregraphe, you can add it by going to Edit --> Preferences, pressing the plus sign next to the User’s Box Libraries drop down menu and navigating to the appropriate file module3-1.cbl. Press OK in the Preference pop-up box and a new Module 3 tab should appear in your box librar.
What is Project Content?
Another new attribute to this curriculum is using the project content view. This allows you to have only one Choregraphe folder for the entire course, rather than a new folder for each lesson.
How to Use the Project Content Palette
- From the menu bar go to View --> Project Content. The following palette should appear:
- By default there is one behavior in your project. You can add a new one by pressing the plus button in the project content palette and entering a name. We recommend using a name without spaces.
- Once you have more than one behavior, you can switch between the two by double clicking the
behavior.xar file within each behavior folder (highlighted below).
You should make a new behavior for each lesson rather than creating a new choregraphe file/folder for each lesson. This will help you keep track of your work. Additionally the final lesson will not work unless your have done this.
TOOLTIPS
One useful feature of Choregraphe are the tooltips. If you hover over a box, input or output port a box will pop up to show you
| ![]() |
Tooltips are useful for figuring out the black boxes and reminding yourself of what a box does.
Teaching Tips:
Introducing the Lesson (2 minutes)
This is the first lesson in the module! So when you introduce the lesson, remember to introduce the course. This course is all about programming human-robot interaction through games. The interaction will primarily be through vision recognition. This first lesson focuses on programming association between the cards the robot recognizes and information about those cards.
Introducing the Game (3 minutes)
This game is a study helper! The robot defines the different quadrilaterals that you show her. Watch and see how it works.
Demonstrates the example game for that lesson.
Play the Game! (20 minutes)
Have a student volunteer read through the questions on the Play The Game! page out loud to the class. Discuss the meaning of each question to ensure students understand what they are being asked.
Have students play the game and answer the questions. They should work as a group to do this investigation. Only the Investigation Robot Master should control the robot.
Discuss student answers as a class.
Explain the Game! (10 minutes)
Have students write a full user-side walk through of the game on the Explain The Game! page.
Have a few students volunteer to read their write-ups to the class. It might be wise to pre-select students as they are writing by reading a little over their shoulders and selecting write-ups that will spur discussion.
There are some concepts in this lesson, however, that students will struggle with and may need extra guidance to understand fully. In particular, we anticipate students having difficulty understanding what the Load Vision Database box does. Without this box, the vision database would be loaded when the black box is signaled. This would stall the game and make it less fun to play. It may be worth while showing the students what happens if you remove this box from the program.
Additionally, students may not have seen the Multi Edit box before. This box is useful because it acts as a lot of text edit boxes, just all put into one. If the fifth input port is signaled, the fifth line of text in the box is sent through the box output port.
Questions to Prompt Student Learning - Day 1
- Break it down! What happens if the Tactile Head box is signaled?
- What does the blue color mean?
- What information is passed through the blue thread?
- Which cards work with this program?
- Could we show the robot a dinosaur card? What would happen if we did?
- How do you stop the program once it is running?
- Where in the program does it tell the robot to do that?
- Is there any other way to stop the program?
- What happens if you double click the Black Box?
- Have you tried hovering over the boxes, input ports or output ports to read the tooltips?
- Why is the Black Box signaled at the same time as the wait and introduction thread?
Introduction
PLAY THE GAME!
Read the questions on this page.
Play with the robot while it is running the example program (Flash Cards). As you interact with the robot, answer the questions below. Use complete sentences.
{{questio:2
Write a description of the game in the space below. Describe everything you saw Nao do.
Use complete sentences.
Teaching Tips:
READ THE CODE!
Open the file FlashCards.pml. Read through the program and detail the function of each branch after the Wake Up box.
{{question:1}}
{{question:2}}
{{question:3}}
{{question:4}}
Open the file FlashCards.pml. Read through the program. Look at the program and identify the ? box. For each input/output port write its
- Name
- Function (Read tooltips by hovering mouse over port)
{{question:5}}
READ THE CODE!
Open the file FlashCards.pml. Read through the program and detail the function of each branch after the Wake Up box.
Question 1: Box 1 does...
Question 2: Box 2 does...
Question 3: Box 3 does...
Question 4: Box 4 does...
-- next pane--
Open the file FlashCards.pml. Read through the program. Look at the program and identify the ? box. For each input/output port write its
- Name
- Function (Read tooltips by hovering mouse over port)
Question 9: Describe what the box does.
Teaching Tips:
Brainstorm (10 minutes)
Students brainstorm alternative uses of the new Black Box and write/draw their ideas on the Brainstorm! page. Give students 2-3 minutes to brainstorm silently. The have them discuss their ideas with a partner for 2-3 minutes and finally discuss ideas as a group for 5 minutes. This discussion method is called Think-Pair-Share.
Build it out (30 minutes)
Have the students pick one of their ideas and construct a full plan on the Build It Out! page.
Have the students carry out the plan by programming it on their own computers. They should test whatever they can on the virtual robot before running it on the real robot.
Leading the Discussion
In general, students should be the main contributors to discussion. As the teacher, you should ask questions to facilitate discussion and guide the discussion in the correct direction. Sample questions are provided below.
There are some concepts in this lesson, however, that students will struggle with and may need extra guidance to understand fully. In particular, we anticipate students having difficulty understanding what the Load Vision Database box does. Without this box, the vision database would be loaded when the black box is signaled. This would stall the game and make it less fun to play. It may be worth while showing the students what happens if you remove this box from the program.
Additionally, students may not have seen the Multi Edit box before. This box is useful because it acts as a lot of text edit boxes, just all put into one. If the fifth input port is signaled, the fifth line of text in the box is sent through the box output port.
Additionally, during the brainstorm session, students will come up with ideas that they cannot yet implement. Their ideas may even be beyond the scope of this course. We recommend letting students’ imaginations run wild during brainstorming, then, before they start fleshing out their ideas, have them choose a portion of their idea that they can implement. In future lessons, they can build on these projects if they so choose. Help them understand what is feasible and what is not. The memory game included as a demo is not feasible at this point.
Questions to Prompt Student Learning (Day 2)
- What do you want to happen first in your game? Then what?
- What cards are you going to use in your game?
- What do you want the robot to say when she recognizes this card?
- Are you planning any custom movements, sounds or LEDs?
The Black Box in this program is a vision recognition box. In the example program, when NAO saw a quadrilateral card, she listed some facts of that shape.
In what other programs could a vision recognition box be used? List as many ideas as you can think of! Write your ideas in the idea clouds below. Your ideas can be words, sentences or drawings. Just make sure you can explain them!
Choose one of your ideas from brainstorm and plan your program here.
The main outline of my program:
Use a piece of paper to write the cards that you will use and the reaction of the robot, like the image below.

Teaching Tips:
Reflect and Revise (15 minutes)When students finish making their program, have them complete the Reflect and Revise! page. They should consistently reflect on their work and revise until they have a program that they are happy with (or they run out of time).
Today I learned... (5 minutes)
Have the students complete the Today I Learned... page.
Leading the Discussion
In general, students should be the main contributors to the discussion. As the teacher, you should ask questions to facilitate discussion and guide the discussion in the correct direction. Sample questions are provided below.
There are some concepts in this lesson, however, that students will struggle with and may need extra guidance to understand fully. In particular, we anticipate students having difficulty understanding what the Load Vision Database box does. Without this box, the vision database would be loaded when the black box is signaled. This would stall the game and make it less fun to play. It may be worth while showing the students what happens if you remove this box from the program.
Additionally, students may not have seen the Multi Edit box before. This box is useful because it acts as a lot of text edit boxes, just all put into one. If the fifth input port is signaled, the fifth line of text in the box is sent through the box output port.
Questions to Prompt Student Learning - Day 1
- Break it down! What happens if the Tactile Head box is signaled?
- What does the blue color mean?
- What information is passed through the blue thread?
- Which cards work with this program?
- Could we show the robot a dinosaur card? What would happen if we did?
- How do you stop the program once it is running?
- Where in the program does it tell the robot to do that?
- Is there any other way to stop the program?
- What happens if you double click the Black Box?
- Have you tried hovering over the boxes, input ports or output ports to read the tooltips?
- Why is the Black Box signaled at the same time as the wait and introduction thread?
AFTER CLASS
- Save the students’ work on the flash drive.
- Pack up everything (Check the packing instruction).
DO, REFLECT & REVISE!
Build your program in Choregraphe. When you test it, record what happens here.
Answer the questions below.
- Save your work on the flash drive from your teacher.
- Help your teacher pack up everything with an extreme care when handling robots, computers, and routers.