This is a workshop to program NAO robot that last for two to three hours. It's for kids aged 12 and above.
To use it, you'll need a NAO robot running NAOqi 2.1, Choregraphe 2.1 and an additional library of packaged mouvements (see http://goo.gl/7qm5fv)
This workshop is based on the one created by Daniel De Luca for Devoxx4Kids (www.devoxx4kids.org)
2. Choregraphe (2.1.2)
It’s a graphical interface to program NAO
(downloadable after creating an account on Community)
Main Plane
Simulator
Boxes
3. Dedicated Library
For this workshop, you’ll need to add a library.
It’s called Library_Kids_NAOWorkshop.cbl
It contains 3 boxes: LookAround, RaiseArm, LowerHand
Click « open box library »
and select the .cbl file
4. What’s a box?
A box contains some code executing a specific action
It’s mainly Python code
Also, a box can be made of other boxes
A box can have different outputs
Input Output
Parameters
Edit the box: double click
Stop box
5. Goal of the workshop
• Setup NAO
• Locate someone and walk to that person
• Ask for an handkerchief
• Grab it
• Ask where to drop it
• Go to this specific place and drop the handkerchief
Sounds easy, right?
Now let’s launch Choregraphe and start a new project!
7. Wait for me before starting!
Tactile Head box
-> connect to previous box
-> select one zone (output) that you
will touch to launch the behavior
(let’s take the first one) and connect
the output so as to stop the box
when pressed
8. Let’s start!
Motor On/Off box
-> connect to previous box
-> set parameter to « on »
Stand Up box
-> connect to previous box
-> if box fails, connect the right
output to end of the behavior
9. Is someone here?
Two things at the same time once
NAO is standing:
LookAround box
-> connect to previous box
Face Detection box
-> connect to previous box
-> when it finds a face, it must stop
itself and the LookAround box
10. OK, let me get closer to you!
Face Tracker box
-> connect to previous box (Face
Detection)
-> edit parameters: mode must be
set to « move »
-> when target is reached, the box
stops itself
11. I have a question for you
Say box
-> connect to previous box
-> edit the box (double click)
1) make sure language is set to
english
2) add text « Hello! Can you please
give me a handkerchief? »
-> click on root to go back to main plane
12. Give it to me 1/2
RaiseArm box
-> connect to previous box
Hands box
-> connect to previous box
-> edit parameters:
1) select left hand
2) select « open »
Choice box
-> connect to previous box
-> edit the box
1) select « english »
2) add text « can I close my hand? Yes or
no? »
3) create a new output and connect it to
the « No » answer
13. Give it to me 2/2
If the answer is yes (mid output)
Hands box
-> edit parameters to close left
hand
If the answer is no (last output):
Wait box
-> connect to previous box
-> edit parameters and set timeout
to 1s
-> connect the output to choice box
to relaunch the process
14. What should I do with this?
Choice box
-> connect to previous box
-> edit the box
1) select « english »
2) add text « Thanks! Should I drop
it in the trash or put it on the
table? Tell me: trash or table? »
3) add choice « trash » & « table »
4) create an output for « table »
and connect it correctly
15. Where’s the right place? 1/3
Let’s do the first option:
->Connect the first output of
Choice box to the LookAround box
NAOMark box
-> connect to previous box
(Choice)
Switch Case box
-> connect to previous box
(NAOMark)
16. Where’s the right place? 2/3
Let’s do the first option:
Switch Case box:
-> enter value 85
-> connect the first output back to
NAOMark box to relaunch it
-> connect the second output to stop
the NAOMark box and to stop the
LookAround box
Landmark Tracker box:
-> connect to previous box
-> edit parameters and set mode to
« move »
-> connect last output (target reached)
to stop the box
17. Where’s the right place? 3/3
Let’s repeat this for the second
option:
-> Add all the boxes and connect
them correctly
-> This time, NAO will be looking
for NAOMark 63
18. Let me get rid of this
Let’s do the first option:
LowerHand box:
-> connect both landmark tracker
box « target reached » outputs to
launch the box
Hands box:
-> connect to previous box
-> edit parameters to open left
hand
-> connect output to the end of the
program
19. Bonus (after testing)
How can we enhanced the user experience?
- Get NAO to present what is going to happen at the
beginning of the app
- Get NAO to sit after he’s completely finished
- What else would you add?
Notas del editor
We start the workshop with the set language box
Nothing’s really challenging on this one
The goal with this action on the tactile head is to make sure the behavior is not going to start when you press « play » on Choregraphe. So you can upload the behavior, unplug the robot from the computer, and start the behavior once this is done, and not before.
We could let the box run instead of stopping it, but that would mean that if you press the head by accident during the demo, it will start again from the beginning
Once we start the behavior, we first need to make sure the motors are turned on, and then we’ll ask NAO to get up on his feet so as to start interacting
Now, we want NAO to find someone. We are going to ask him to turn his head until he finds someone.
First thing: looking around. NAO is going to look from left to right and back to the beginning with the LookAround box
Then, at the same time he’s doing this, we’ll ask him to look specifically for faces. And once he finds a face, we want him to stop looking around and stop looking for other faces.
The FaceTracker has different mode. « Move » will allow NAO to walk and get closer to the face he’s tracking. When he reaches his target, we want him to stop
Now that we’re close to someone, we’ll make NAO speak and ask for the handkerchief.
Here, so as to grab the handkerchief, we’re going make NAO:
Raise his arm
Open his hand
And since we don’t know how long it’s going to take to give the handkerchief to him, he’s going to ask when he can close his hand
If the answer is yes (you can close your hand), we’re going to close the hand.
If the answer is no (you can’t), we’re going to wait for a second and start asking again if it’s going.
Now that NAO is holding the handkerchief, we want him to know where he shoudl drop it. He is going to ask
First, we’re going to explore the « trash » option
A NAOMark will represent that place.
First, we launch the look around box so NAO start looking from left to right. We also launch at the same time the NAOMark box, so NAO can recognize NAOMark.
When he sees one, he will send through the output the corresponding number to the Switch Case box, to perform a test
By entering 85, we set the value we’re interested in. If the NAOMark number sent by NAO is not this, we want NAO to keep looking.
If the NAOMark is the one we were looking for, we’ll ask NAO to stop looking around for other NAOMark, reason why we stop two boxes
We will then use the landmark tracker box so NAO gets closer to the spot. Once he reaches it, we ask him to stop moving
Here, we ask to do exacty the same thing when the asnwer to the question is the chair and not the trash. All things are done for the same reason as they were on the previous slides
This is the end: NAO has the handkerchief, he is where he is supposed to drop it, so we just have to drop ti/
For that, we’ll use a first box to move the arm, and a second one to just open the hand. And since we’re done, we’ll connect this last box to the end of the program
This is the end: NAO has the handkerchief, he is where he is supposed to drop it, so we just have to drop ti/
For that, we’ll use a first box to move the arm, and a second one to just open the hand. And since we’re done, we’ll connect this last box to the end of the program