Published on: Mar 3, 2016
Transcripts - NAO_Poster
~ This work was supported by Holly Yanco and the UML Robotics Lab ~
~ Summary ~
The goal of this project is to write programs for the NAO Robot by recreating
programs from the Choregraphe suite, a drag-and-drop application which comes with the
NAO, with Robot Operating System (ROS), a flexible, more universal framework
for writing robot software.
~ Results ~
We have successfully programmed NAO to complete several tasks previously available on the
Choregraphe suite using only ROS. Our NAO Robot, Blue, is able to autonomously walk
around the room, using her sonar to identify and avoid obstacles. If she falls down, she
resets her body to a default position, and then detects whether she is in an upright position,
lying on her back, or lying on her stomach; she is able to get up into a standing position again
from either of the latter two positions. Blue can also talk, wave, hula, and do basic math!
In addition, all of our code is located in a repository on GitHub, meaning that it is available to
programmers and developers all over the world to utilize or adapt.
~ What is the NAO? ~
The NAO is a humanoid robot that stands 58-cm tall manufactured by Aldebaran Robotics.
She was originally created to aid students of all ages and skill levels in learning and
practicing programming. Many developers began to see the NAO’s worth outside of an
educational environment, and started crafting new, more sophisticated applications for her.
Since the NAO is open source, meaning the original source code is made freely
available for redistribution and modification, developers and programmers around the
world can share their code and collaborate with
others, making the NAO an extremely
dynamic and powerful
robot in the world
~ ROS vs Choregraphe ~
Since the NAO Robot was originally intended to educate students in basic programming, the
built in application used to program the NAO, the Choregraphe suite, is designed for simplicity.
The Choregraphe suite is a drag-and-drop application, meaning that the user strings together
blocks which represent pieces of code (usually by dragging and dropping the blocks into their
program). Since the user isn’t actually “writing” any code, Choregraphe is useful for novice
programmers, but it also limits the potential of the NAO. While more advanced users have the
option to write their own blocks from scratch, they have a very limited way of making their
code available to others, since Choregraphe is limited to the NAO.
ROS on the other hand, is a flexible framework for writing robot software which is almost
universally used in the world of robotics today. It was specifically designed for users to be able
to share and collaborate as easily as possible. When used in conjunction with the NAO Robot,
the user has more control over their program, writing their own code completely from scratch,
with the enhanced capability of moving each joint individually as much or as little as desired.
Since ROS is open source, programmers can utilize code that others have already written (even
those written for other robots) and share their own code with others as well.
Within ROS lies the future of Robotics, and, therefore, the future of the NAO.
A program built in the Choregraphe suite application
[Image from 1]
A program written in ROS from the terminal
~ UML Robotics Lab ~
The Robotics Lab at UMass Lowell, located in Olsen 304, currently employs both
undergraduate and graduate students alike to work on various projects based on improving
how humans and robots interact in today’s world,
with applications in assistive technology,
telepresence, and urban search and rescue .
There are currently a myriad of robots who
call the Robotics Lab home, including the NAO
Robot, Baxter (pictured at right), Lancelot,
Wheeley, and many more.
~ How Does It Work? ~
NAO’s sonar is capable of covering a great
range (right) and area (left). [Image from 2]
number and range
of motors in the NAO’s left arm. [Image from 2]
With such a wide array of sensors available, the NAO is able to
interact with its environment in a wide variety of ways. For example,
you could create a face tracking program utilizing the two cameras,
have the NAO avoid obstacles with its sonar, or make the
robot shout out when its head is touched.
The possibilities are endless!
As for motors, the NAO has one in each of its joints,
allowing for precise control of movement. To move joints
individually, all that is required is publishing and subscribing
to the correct topics (see Publishing and Subscribing).
This is a picture of the NAO
Robot which we have been
working with this summer.
Her name is Blue.
[Image from 5]
I am Blue!
It is nice to meet
~ References ~
~[ 1 ] Aldebaran Robotics Homepage - "Aldebaran Robotics." Aldebaran Robotics. Web. 28 July 2015. <https://www.aldebaran.com/en>.
[ 2 ] NAO Documentation - "NAO Software 1.14.5 Documentation." NAO. Web. 28 July 2015.
[ 3 ] ROS Wiki - "Wiki." Documentation. Web. 28 July 2015. <http://wiki.ros.org/>.
[ 4 ] ROS NAO Wiki - "Wiki." NAO Wiki. Web. 28 July 2015. <http://wiki.ros.org/nao>.
[ 5 ] NAO Image (Center) - “MathWorks.” NAO Robot Programming Using MATLAB. Web. 28 July 2015.
[ 6 ] NAO Image (Bottom Right) - “NAO Dance Project.” NAO Dance Project. Web. 28 July 2015.
<http://neuron.tuke.sk/maria.vircik/danceproject/> [Image from 6]
~ Publishing and Subscribing ~
Say this time a programmer is trying to get the NAO robot to walk forward until it comes
close to a wall, at which point, the robot must stop. In this case, the programmer would
write a program (also referred to as a “node” in ROS) which he or she would use to
communicate with the robot. To make the robot walk in their code, the programmer must
publish the message to walk forward to the topic which causes the robot to walk (think of
topics in the context of magazines in the previous example: you only published your ad in the
magazine which would convey your message to the desired audience). When the message is
published to the walking topic, the robot begins to walk forward. Reversing
the cycle, to make sure the robot does not walk into a
wall, you must subscribe to a topic
to which the robot’s sonar data is
published. Since this information tells
you how close you are to the wall, you can use
the sonar data to indicate when the robot should stop.
Say you are an an environmentalist; you may wish to spread the word about the
importance of recycling amongst teenagers. Thinking of the ads in your favorite magazine,
you decide a good way to transmit your message would be to publish an advertisement
about recycling in a magazine. To make sure that your ad is read by the desired audience
(teenagers) you would publish your ad in a popular teen magazine. This
way, when the ad is published, all the people who
subscribe to the magazine will see the ad,
receive the message, and, if you’re lucky,
start recycling. Publishing and subscribing
messages with ROS works in very much the same way.
The Capabilities of the NAO Robot with ROS
Victoria Albanese and Alexander Infantino
Computer Science Department || Robotics Lab || University of Massachusetts Lowell
Bristling with sensors and with tens of motors poised for action, the NAO is capable of
complex movement in reaction to its environment. The only limitations are the
imagination of the programmer and the hardware available.
Currently, the NAO has two tactile sensors on the
bottom of its feet, two bumpers on the front of its
feet, three tactile sensors on its head, four sonar
sensors on its chest, and two cameras located on