Aldebaran Robotics – Nao Robot 11029
Omnidirectional walking – Click For PDF
NAO’s walking uses a simple dynamic model (linear inverse pendulum) and quadratic programming. It is stabilized using feedback from joint sensors. This makes walking robust and resistant to small disturbances, and torso oscillations in the frontal and lateral planes are absorbed. NAO can walk on a variety of floor surfaces, such as carpeted, tiled, and wooden floors. NAO can transition between these surfaces while walking.
Whole body motion
NAO’s motion module is based on generalized inverse kinematics, which handles Cartesian coordinates, joint control, balance, redundancy, and task priority. This means that when asking NAO to extend its arm, it bends over because its arms and leg joints are taken into account. NAO will stop its movement to maintain balance.
The Fall Manager protects NAO when it falls. Its main function is to detect when NAO’s center of mass (CoM) shifts outside the support polygon. The support polygon is determined by the position of the foot or feet in contact with the ground. When a fall is detected, all motion tasks are killed and, depending on the direction, NAO’s arms assume protective positioning, the CoM is lowered, and robot stiffness is reduced to zero.
NAO is a programmable, 57-cm tall humanoid robot with the following key components:
- Body with 25 degrees of freedom (DOF) whose key elements are electric motors and actuators
- Sensor network, including 2 cameras, 4 microphones, sonar rangefinder, 2 IR emitters and receivers, 1 inertial board, 9 tactile sensors, and 8 pressure sensors
- Various communication devices, including voice synthesizer, LED lights, and 2 high-fidelity speakers
- Intel ATOM 1,6ghz CPU (located in the head) that runs a Linux kernel and supports Aldebaran’s proprietary middleware (NAOqi)
- Second CPU (located in the torso)
- 27,6-watt-hour battery that provides NAO with 1.5 or more hours of autonomy, depending on usage
NAO has two cameras and can track, learn, and recognize images and faces.
NAO sees using two 920p cameras, which can capture up to 30 images per second.
The first camera, located on NAO’s forehead, scans the horizon, while the second located at mouth level scans the immediate surroundings. The software lets you recover photos and video streams of what NAO sees. But eyes are only useful if you can interpret what you see. That’s why NAO contains a set of algorithms for detecting and recognizing faces and shapes. NAO can recognize who is talking to it or find a ball or, eventually, more complex objects. These algorithms have been specially developed, with constant attention to using a minimum of processor resources. Furthermore, NAO’s SDK lets you develop your own modules to interface with OpenCV (the Open Source Computer Vision library originally developed by Intel). Since you can execute modules on NAO or transfer them to a PC connected to NAO, you can easily use the OpenCV display functions to develop and test your algorithms with image feedback.
NAO uses four microphones to track sounds, and its voice recognition and text-to-speech capabilities allow it to communicate in 8 languages.
Sound Source Localization
One of the main purposes of humanoid robots is to interact with people. Sound localization allows a robot to identify the direction of sounds. To produce robust and useful outputs while meeting CPU and memory requirements, NAO sound source localization is based on an approach known as “Time Difference of Arrival.” When a nearby source emits a sound, each of NAO’s four microphones receives the sound wave at slightly different times. For example, if someone talks to NAO on its left side, the corresponding sound wave first hits the left microphones, then the front and rear microphones a few milliseconds later, and finally the right microphone. These differences, known as interaural time difference (ITD), can then be mathematically processed to determine the current location of the emitting source. By solving the equation every time it hears a sound, NAO can determine the direction of the emitting source (azimuthal and elevation angles) from ITDs between the four microphones. This feature is available as a NAOqi module called ALAudioSourceLocalization; it provides a C++ and Python API that allows precise interactions with a Python script or NAOqi module.
Besides cameras and microphones, NAO is fitted with capacitive sensors positioned on top of its head in three sections and on its hands. You can therefore give NAO information through touch: pressing once to tell it shut down, for example, or using the sensors as a series of buttons to trigger an associated action. The system comes with LED lights that indicate the type of contact. You can also program complex sequences.
NAO is equipped with two sonar channels: two transmitters and two receivers. They allow NAO to estimate the distances to obstacles in its environment. The detection range is 0–70 cm. Less than 15 cm, there is no distance information; NAO only knows that an object is present.
Ethernet and Wi-Fi
NAO currently supports Wi-Fi (bgn) and Ethernet, the most widespread network communication protocols. In addition, infrared transceivers in the eyes allow connection to objects in the environment. NAO is compatible with the IEE 802.11g Wi-Fi standard and can be used on both WPA and WEP networks, making it possible to connect to most home and office networks. NAO’s OS supports both Ethernet and Wi-Fi connections and requires no Wi-Fi setup other than entering the password.
NAO’s ability to connect to networks offers a wide range of possibilities. You can pilot and program NAO using any computer on the network.
Here are a few examples of applications NAO users have already created:
- Based on NAO’s IP address, NAO can figure out its location and give you a personalized weather report.
- Ask NAO about a topic and it connects to Wikipedia and read you the relevant entry.
- Connect NAO to an audio stream and it plays an Internet radio station for you.
Using XMPP technology (like in the Google Chat system), you can control NAO remotely and stream video from its cameras.
Using infrared, NAO can communicate with other NAOs and other devices that support infrared. You can configure NAO to use infrared to control other devices (“NAO, please turn on the TV”). In addition, NAO can also receive instructions from infrared emitters, such as remote controls. And of course, two NAOs can communicate with each other directly.
Infrared is already the most common method of controlling appliances, making NAO easily adaptable to domotics applications. NAO can also detect whether an infrared signal received is coming from the left or right.