The 'Timeline' box within Chorégraphe provides an easy and intuitive way to create custom animations on your NAO robot. The video below was created for participants of our 'Everybody Dance NAO' programming competition and outlines how to program basic animations. For further information on 'Everybody Dance NAO' click here.
Situated 910 kilometres South West of Brisbane (three-hours by plane) is the remote town of Cunnamulla. With a population of only 1,865, Cunnamulla is considered a low socio-economic area. However, the town boasts a diverse and passionate community, eager to develop skills relevant for the 21st century.
Two years ago, this was made possible when the town's public library became the proud owner of a NAO Humanoid Robot after successfully applying for a Coding and Robotics Grant through State Library of Queensland. And they haven’t looked back!
Cunnamulla Librarian, Tammy, explains: ‘During the two plus years we have had our Humanoid Robot and it has proved invaluable to our community.’
The Library uses NAO regularly for:
- Storytelling time
- Aiding students with learning difficulties
- Helping those in the community with dementia
- Improving students’ overall linguistic skills
NAO's ability to listen to and act on voice commands is central to its ability to function as a social robot. This tutorial shows how to package and install Chorégraphe applications with trigger sentences onto your NAO robot. Trigger sentences enable you to launch your application through a voice command in Autonomous mode
Part 1 - Adding trigger sentences.
To add trigger sentences click the 'properties' button within the 'project content' window (see below). If you cannot find the project content window, select 'View' in the top menu bar and make sure the 'project content' is checked.
Next you need to select 'Behavior_1' (this is the default name for applications unless changed) in the top left hand corner of the pop-up window.
Now you will be able to add trigger sentence by clicking in the 'trigger sentences' box and adding each sentence in the top right hand bar (for example Macarena Dance).
Now that you have assigned trigger sentences to your application, the application is ready to be installed on your robot. To do this, click the 'package & install' icon contained in the 'robot applications' window (see below). Now your application is ready to be launched via voice command.
A. Package & Install - adds current application to your robot.
B. Application list - Know which Applications are currently installed on the robot.
C. Default flag - Indicates which behaviours are set as Default Behaviours.
D. Execution status - Play/Stop installed Behaviour or Application.
Bonus tip: Add a kill/exit switch to your application so that the application can be exited from the robot.
A kill/exit switch is highly recommended for all applications loaded onto NAO and can be achieved using a variety of different sensors - some being more practical than others. In the image below the tactile head sensor is used for this function by connecting the box's input to the beginning of the application and its output to the end of the application. In this case, if the head sensor is triggered a signal is sent to end the application overriding all other boxes.
As an integral part of the National and State agenda, coding and robotics are quickly becoming mandatory within the Australian Digital Technologies Curriculum. Teaching technologies with NAO not only prepares students for future employment in the digital age but also provides an appreciation of how robotics can help in the community today.
NAO is a unique platform both in functionality and design that inspires learners of all ages and abilities; from competent coders to those who have previously shown little or no interest in STE(A)M related areas.
How Coding and Robotics fit into STE(A)M:
NAO is the perfect platform to create differentiated classes that combine hard-skills in technology with equally important soft-skills learned in the humanities. In fact, a recent report by Deloitte Access Economics emphasises the importance of soft-skills in the workplace, predicting that soft-skills will account for two thirds of jobs by 2030. Example lessons could include:
Mathematics – Use NAO to program coordinates or to walk along an X and Y axis to finish at a certain angle, or use NAO’s 25 degrees of freedom to animate the robot by placing its body parts at different angles. Nao can also process complex data and equations.
Drama – Combine Drama, English Classics, and ICT to program NAO robots to perform Shakespeare’s plays as a school in the UK has done.
LOTE – Several Australian schools have used NAO in interactive language classes where students program conversations in LOTE, including an indigenous language. NAO currently speaks 19 different languages.
Create Capable Coders:
Three features that set NAO apart from other robotics programs:
Drag and Drop Programming and Python - The NAO Chorégraphe Software comes with an icon-based environment that eases students into algorithmic logic and programming principles. The interface also provides easy access to Python code and exercises in the accompanying STEM textbook offer multiple levels: beginner through to advanced.
A Focus on Coding with a Humanoid Robot – NAO’s humanoid features allow students to create real life human-robot interactions. Rather than simply focusing on programming and coding, students program social interactions and learn about communication in an entirely new way.
Virtual Robot – Chorégraphe provides a 3D virtual robot, enabling students to test their programs, troubleshoot, and refine their programs without needing access to the actual NAO robot hardware. This makes NAO a scalable and cost effective solution for multiple classes.
Inspiring Reluctant Coders:
Engagement - NAO is both an educational and motivational resource. NAO’s human characteristics of sight, speech, touch, hearing and movement connect to various student interests and captivate them on both intellectual and emotional levels. Students who see themselves as typically “person-oriented, non-STEM types” can become engaged initially through NAO’s likeable persona. Students can then start envisaging ways that NAO can be programmed to fill various roles in society and create their own projects that will ultimately require more complex coding. As such, NAO is a powerful tool to attract otherwise reluctant students into STE(A)M subjects and future careers.
Competitions - Using NAO, STE(A)M education can come alive with the ability to run coding competitions that culminate in public events where NAO performs student programs. Digital Learning and Teaching Victoria host an annual dance contest called ‘Everybody Dance NAO!’ in conjunction with The Brainary.
Community Engagement - NAO is a “professional level robot” used in numerous Australian Universities, commercial settings, and the health sector for rehabilitation. Programming with NAO demonstrates the impact of robotics in the wider community and allows students to create projects which directly influence their communities. By working with NAO students can critically engage with community issues and gain a richer understanding of diversity, such as how NAO assists people with autism, dementia and younger children.
NAO Education Package:
The Brainary’s package includes everything a school needs to engage students and teachers alike in STE(A)M, including expert teacher professional development, ongoing support, and a textbook with ten modules on how to program the NAO robot using Python Coding and Drag and Drop Programming. The textbook also comes with a DigiTech Curriculum Companion that matches exercises to the Australian Curriculum.
Tip 3: What is Python code?
When working with Nao in Chorégraphe it is great to remember that every base Box is made of Python Code that you can read and edit. You can also create your own Python box using the Python template in the standard box library. Python is a specially designed programming language for teaching and learning. If you have learnt another programming language the hard way it is abundantly clear that Python is a wonderful language. Conventional programming languages tend to yell at you for the simplest of mistakes and the error messages are painfully hard to translate. Python on the other hand, is kind. If you have an error Python will tell you exactly what you did wrong and often how to fix it. As the boxes in Chorégraphe are made of python code it supports an incremental approach to learning programming. You can create your own code that to do something simple, then connect that to other boxes in Choregraphe to make some very interesting things happen. For example, the code to tell if a number is odd or even is shown below. This code allows an exercise app in Chorégraphe to alternate arms as it counts the reps.
If you would like to know more about programming in Python a good place to start is the Python documentation: https://docs.python.org/2/library/index.html. Here you will find every command available in Python. In the next issue we will be doing a deep dive into writing your own python module to get Nao to say the day of the week.
Tip 1. Teaching: Benefits of programming human movements.
Nao’s humanoid form lends it well to programming human movements. This is ideal for students because human movements are their own native movements and therefore somewhat intuitive. This has 2 major advantages when students are learning the broad strokes of being a programmer. The first is they already know the action: this means students put their energy into the programming, not comprehension of the task. The second is that although the students know the actions, these actions are generally intuitive in the sense that students don’t often consciously breakdown the individual steps of physical tasks in their day to day lives - they just do them. So by programming a robot students are required to breakdown and consider the steps that make up human movements.
As an example: try getting your students to program NAO to thrown a small ball. Students are generally very good at programming the broad actions of throwing a ball, however there are to two mistakes in particular that students often make. First, some forget that you need to open the robots hand at the end of the throw for the ball to go somewhere. Second, students often forget that the robot needs to be holding the ball first before it can be thrown. With this task, students often try to put a ball into an already closed fist. The breaking-down of intended movements in programmable stages gives students a unique understanding of programming that is distinct to humanoid platforms such as Nao.
Tip 2. Functional decomposition: converting Chorégraphe sections to Boxes.
As a program get bigger it gets hard to analyse the program and troubleshoot, as there can be too many boxes to look at in one screen. A good habit to get into is to group sections of your program into their own boxes so that it is easier to manage. In programming it is common practise to write separate sections of code which have unique roles; this is called functional decomposition. In Chorégraphe this can be done in two ways. You can create your own box called a ‘Diagram’, in which you create a functional section of your program, or you can convert a group of existing boxes into one box using the ‘Convert to Box’ command.
‘Convert to Box’ is best used when you have already written a program and want to sort sections into their own boxes. All you need to do is select the boxes you wish to convert, right click and select 'Convert to Box' or press Ctrl & k. ‘Convert to box’ works best if you already have the input and output wires in place, as it will create the inputs and outputs of the new Box for you.
This post has been created to show you a series of examples of how a NAO humanoid robot and its programming software, ‘Choréographe’, can be used to teach elements of the new Digital Technologies curriculum at each level.
Foundation to Year 2
Follow, describe and represent a sequence of steps and decisions (algorithms) needed to solve simple problems (ACTDIP004).
Example with NAO:
Students could program a NAO robot to introduce itself to their class. Students could program the following sequence using the drag-and-drop interface in ‘Choréographe’ and then have the robot perform the sequence.
First NAO is programmed to stand up, then NAO waves to the class, and finally NAO will say: “hello my name is NAO and I am a humanoid robot”
Years 3 - 4
Define simple problems, and describe and follow a sequence of steps and decisions (algorithms) needed to solve them [ACTDIP010].
Example with NAO:
Jane needs to find out the favourite colours of her fellow students. Jane can program NAO in the following way to survey her class.
NAO will first ask: “what is your favorite colour”? Then a speech recognition box is activated. If the robot hears “Red” it will respond, “Me too”! If the robot hears "Blue", it will reply, “I don’t mind Blue” and if the robot hears "Yellow", it will respond “Eww I don’t like Yellow very much”.
Jane can create a table to record the results of her survey.
Years 5 - 6
Design, modify and follow simple algorithms represented diagrammatically and in English involving sequences of steps, branching, and iteration (repetition) [ACTDIP019].
Example with NAO:
Susan has designed a math quiz game using a NAO robot.
Susan has programmed the robot to ask a series of Math questions and then listen for answers. When the robot hears a correct answer it will take a step forward and when it hears an incorrect answer it will take a step backwards. Correct answers will prompt the robot to move onto a new question whereas incorrect answers will prompt the robot to repeat a question. This exercise covers sequencing, branching, and iteration (repetition).
Years 7 - 8
Design algorithms represented diagrammatically and in English; and trace algorithms to predict output for a given input and to identify errors [ACTDIP029].
Example with NAO:
Students can design an algorithm to solve a maze using a NAO robot.
Provided that the maze is ‘simply connected’ – meaning that all of the walls are connected together or to the boundary of the maze - the ‘right-hand-rule’ can be used to solve the maze.
Accordingly, the following three 'right-hand-rules' can be used:
1. If a wall is NOT detected to the right, turn 90 degrees right and then walk forward
2. If a wall is detected to the right, but no wall is detected in front, walk forward
3. If a wall is detected to the right and a wall is detected in front, then turn 90 degree to the left
Students can use python code within Choréographe to express this algorithm:
Once the student has designed their algorithm they can upload it to a NAO robot and place the robot within a maze for testing.
Years 9 - 10
Design algorithms represented diagrammatically and in structured English and validate algorithms and programs through tracing and test cases [ACTDIP040].
Example with NAO:
Students can design an algorithm to take coffee orders.
Firstly the robot is programmed to ask, ‘would you like a coffee?’ If the respondent answers ‘no’, the robot replies, ‘no worries’. If the respondent answers ‘yes’, the robot will then ask, ‘would you like sugar?’
If the respondent answers ‘no’, the robot will respond, ‘okay thank you for your order’.
If the respondent answers ‘yes’, the robot then asks, ‘how many sugars would you like?’ then the robot will say, ‘okay thank you for your order’.
A partnership between The Brainary, Royal Children’s Hospital (RCH), the Transport Accident Commission (TAC), and Swinburne University of Technology has seen the introduction of a NAO humanoid robot to assist in paediatric rehabilitation.
NAO is currently being used to assist children recovering from major illnesses or injuries whereby the robot completes physical exercises alongside the children, demonstrating and explaining correct technique.
Head of Rehabilitation at RCH and Statewide Medical Director of Victorian Paediatric Rehabilitation Service (VPRS), Dr Adam Scheinberg, advised that children with major illnesses or injuries often require long periods of intensive rehabilitation.
“One, if not the, major challenge is maintaining each child’s engagement with the rehabilitation,” he said.
“NAO helps us motivate children and increase the number of repetitions of their exercises on a daily basis which leads to a faster recovery and less time in hospital".
Swinburne University of Technology has lead the research and development required to program applications based on the requirements of Occupational Therapists working with the children.
The partnership was initiated by Emeritus Professor Leon Sterling from Swinburne and Director of The Brainary, Hugh Kingsley, and was funded by TAC to help improve the lives of patients with Acquired Brain Injury and/or Spinal Cord Injury.
Noosa Library Service has become the first Australian public library to recruit a ‘NAO’ (pronounced ‘now') humanoid robot, which they have named ‘Dewey’. The fully-programmable robot’s mission is to provide fun and practical robotics and computer programming training for adults and young people. ‘Dewey’ assists the Noosa Library Service by presenting robotic demonstrations, programming workshops, cyber safety eSmart messages, storytelling and special appearances at all 3 branches of the Library Service.
The library’s program, 'Robots for Everyone’, introduces the community to robots in a fun-filled, non-threatening environment; hopefully enticing people into further STEM (Science, Technology, Engineering & Mathematics) related learning. “Coding has been described as a necessary language for the 21st century and a key skill for future economic success in digitally driven communities,” says Library Collections and Services Coordinator Tracey King. “Robots for Everyone participants will learn these new skills, and then use them to bring the robot to life.” ‘Dewey’ also travels into the community, making guest appearances at schools, organisations and events ensuring that everyone has an opportunity to see 21st century robotics and learn coding.
The future of robotics at Noosa Library Service will see the creation of a Robot Club, which will provide a meeting space for like-minded people to connect and engage with innovative robotics technology. The Noosa Library Service intend to provide training on how to operate Dewey, to organisations who work with specific groups such as children on the autism spectrum and older people with dementia. This will provide an opportunity for them to explore how ‘Dewey’ can be used to help bridge communication and learning challenges.
The 'Robots for Everyone' project has been extremely popular, with the first two workshops booking out within 48 hours and the positive response from the community continuing to grow. Dewey's key attraction is his ability to help people learn firsthand about the present day rise of robotics, whilst being so cute and appealing. Dewey the NAO robot is the latest, most high-tech and popular community and learning resource that Noosa Library Service offers.
Dewy was purchased with the help of a $18K grant through the State Library of Queensland's Technology Trendsetters 2015 funding program.
To learn about more about the ‘Robots for Everyone’ program please contact Noosa Library Service: http://www.libraries.noosa.qld.gov.au/contact