~ This work was supported by Holly Yanco and the UML Robotics Lab ~
~ Summary ~
The goal of this project is to write progr...
of 1


Published on: Mar 3, 2016

Transcripts - NAO_Poster

  • 1. ~ 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 today. ~ 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] This diagram illustrates the 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] Hello! I am Blue! It is nice to meet you! ~ 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. <http://doc.aldebaran.com/1-14/nao/index.html>. [ 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. <http://www.mathworks.com/hardware-support/nao-robot-matlab.html> [ 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. /my_program /nao_sonar /sonar_topic /nao_walker /walker_topic 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. /teen_reader/teen_magazine /magazine_writer/magazine_i_like /me 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 its head.

Related Documents