Nao

From IPRE Wiki
Jump to: navigation, search

Introduction

NAO is used by the world’s most prestigious universities and laboratories including Harvard and Tokyo University as both a research platform and an educational tool. Founded in 2005 by Bruno Maisonnier, with offices in France, China, Japan and the United States, ALDEBARAN Robotics designs and produces humanoid robots with the aim of contributing to the well-being of humans.

Availibility

Nao has been available as a research and learning tool since 2008.

Since November 2010, Aldebaran Robotics has allowed private programmers to take part in the development of Nao for the general public, through its Nao Developer Program. 200 units are available.[13]

Aldebaran plans to make the robot's source code open source by the end of 2011.[14] A version of the robot for public use is projected to be released in 2012.

[Nao (robot)], wikipedia article.

Technical specification

Arimage 15.large.jpg

The scheme presents all the robot’s axes. Together, these axes allow 25 degrees of freedom, which when coupled with the inertial sensor, the force sensitive resistors, the Hall effect sensors, the infrared receiver and the sonar sensors, allows NAO® a high level of stability and fluidity in its movements.


Part Joint name Motion Range (degrees) Head

               HeadYaw                     Head joint twist (Z)                     -120 / 120
               HeadPitch 	            Head joint front & back (Y) 	     -39 / 30

Left arm

               LShoulderPitch              Left shoulder joint front & back (Y)     -120 / 120
               LShoulderRoll 	            Left shoulder joint right & left (Z)      0 / 95
               LElbowRoll 	            Left shoulder joint twist (X) 	     -90 / 0
               LElbowYaw 	            Left elbow joint (Z)  	             -120 / 120
               LWristYaw 	            Left wrist joint twist (X) 	             -105 / 105
               LHand 	                    Left hand 	                             open/close


Left leg

               LHipYawPitch 	            Left hip joint twist (Z45°) 	             -44 / 68
               LHipPitch 	            Left hip joint front and back (Y) 	     -104.5 / 28.5
               LHipRoll 	            Left hip joint right & left (X) 	     -25 / 45
               LKneePitch 	            Left knee joint (Y) 	             -5 / 125
               LAnklePitch 	            Left ankle joint front & back (Y) 	     -70.5 / 54
               LAnkleRoll             	    Left ankle joint right & left (X) 	     -45 / 25

Right Leg

               RHipYawPitch 	            Right hip joint twist (Z45°) 	     -68 / 44
               RHipPitch 	            Right hip joint front and back (Y) 	     -104.5 / 28.5
               RHipRoll 	            Right hip joint right & left (X) 	     -45 / 25
               RKneePitch 	            Right knee joint (Y) 	             -5 / 125
               RAnklePitch 	            Right ankle joint front & back (Y) 	     -70.5 / 54
               RAnkleRoll 	            Right ankle right & left (X) 	     -25 / 45

Right arm

               RShoulderPitch         	    Right shoulder joint front & back (Y)    -120 / 120
               RShoulderRoll 	            Right shoulder joint right & left (Z)    -95 / 0
               RElbowRoll 	            Right shoulder joint twist (X) 	      0 / 90
               RElbowYaw 	            Right elbow joint (Z) 	             -120 / 120
               RWristYaw 	            Right wrist joint twist (X) 	     -105 / 105
               RHand 	                    Right hand 	                              open/close

General characteristics

Body characteristics

Height ~58 cm Weight ~4.3kg Body type Technical plastic

Energy

Charger AC 90-230 volts / DC 24 volts Battery capacity ~ 90 min. autonomy

Degrees of freedom:

The Nao Robocup Edition has 21 degrees of freedom (DOF), while the Academics Edition has 25 DOF, since it is built with two hands with gripping abilities. However, the figure of 25 for DOF is technically misleading, as each leg has a general "HipYawPitch" axis of movement that amounts to 1 DOF for the pelvis.

-Nao (robot), wikipedia article.

Head 2 DOF Arm 5 DOF in each arm Pelvis 1 DOF Leg 5 DOF in each leg Hand 1 DOF in each hand

Multimedia Speakers 2 Loudspeakers Microphones 4 Microphones Vision 2 CMOS digital cameras

Network access Connections type Wi-fi (IEEE 802.11g)

                       Ethernet connection

Sensors 32 x Hall effect sensors 1 x gyrometer 2 axis 1 x accelerometer 3 axis 2 x bumpers 2 channel sonar 2 x I/R Tactile sensor

LED Tactile sensor 12 LED 16 Blue levels Eyes 2 x 8 LED RGB Fullcolour Ears 2 x 10 LED 16 Blue levels Torso 1 LED RGB Fullcolor Feet 2 x 1 LED RGB Fullcolor

Embedded Software OS Embedded Linux (32 bit x86 ELF) using custom OpenEmbedded based distribution Programming languages C, C++, URBI, Python, .Net

Software Choregraphe

Instructions

Drawn from Official NAO Manual

Care Recommendations

  1. Precautions: take all necessary precautions to ensure that NAO will not be directly or indirectly damaged by its surroundings. Do not exert strong forces on NAO and protect it from falls. Do not make NAO walk on thick carpets or rugs, mattresses, clothes. NAO will move about properly if the floor is flat, hard and smooth. Do not block its sensors or introduce foreign objects into its body. Do not use NAO outdoor.
  2. Handling: if you need to handle or move NAO, it is best to hold it with both hands by the waist/torso. Do not pull it by the arms, legs or head.
  3. Water: do not expose NAO to any form of water as permanent damage may occur. In particular, if NAO switches from a cold environment to a warm one, condensation may occur on its surface or inside. In that case, let NAO dry before turning it on.
  4. Cleaning: clean NAO and charger with a dry and soft cloth only. Do not use solvents.
  5. Transportation: please use the original packing or any suitable box that will protect NAO entirely.

Power on

The Power button, located on NAO's chest, responds to the following orders:

  • Press it once to turn NAO on.
    • NAO introduces himself and speaks its IP address.
  • Two consecutive pushes stop NAO’s motor control loop.
    • If you do this, hold NAO in your hands as it may fall.

To turn NAO off:

  • Press its chest button for 5 seconds.
  • WARNING: Pressing its chest button for more than 8 seconds will force the NAO into emergency shut off.


Connecting with IDLE

import sys
import time     
sys.path
sys.path.append("Type the path to .../Aldebaran/Choregraphe 1.10.37/bin")
sys.path.append("Type the path to .../Aldebaran/Choregraphe 1.10.37/lib")
import naoqi

from naoqi import ALBroker
from naoqi import ALModule
from naoqi import ALProxy
from naoqi import ALBehavior
from naoqi import ALDocable

IP = "IP_Number"
PORT = 9559

API

All of Aldebaran NAO's APIs can be found here: http://users.aldebaran-robotics.com/docs/site_en/bluedoc/naoqi.html.

To find out which APIs your NAO comes with, enter the IP address:port (for example: 123.456.78.900:9559) into your web browser of choice which opens the Broker page.

Proxies

To use the APIs, first must connect to a Proxy. For example, the text to speech function. tts = ALProxy("ALTextToSpeech", IP, PORT)

  • NOTE: The text to speech function has a bug and will occasionally not return.
    • Solution: instead of tts.say("type string here"), use tts.post.say("type string here")

Sonar

sonar = ALProxy("ALSonar", IP, PORT)

leftSonar = 'Device/SubDeviceList/US/Left/Sensor/Value'
rightSonar = 'Device/SubDeviceList/US/Right/Sensor/Value'

period = 500
precision = 1.0
sonarOn = sonar.subscribe('test1', period , precision)

sonarL = memory.getData(leftSonar, 0)
sonarR = memory.getData(rightSonar, 0)

sonar.unsubscribe('test1')

sonarL and sonarR return the distance between the Nao and obstacle in meters.

Bumper

sensor = ALProxy("ALSensors", IP, PORT)

sensor.subscribe("RightBumperPressed")
sensor.subscribe("LeftBumperPressed")

rBumpLeft = memory.getData('Device/SubDeviceList/RFoot/Bumper/Left/Sensor/Value')
rBumpRight = memory.getData('Device/SubDeviceList/RFoot/Bumper/Right/Sensor/Value')
lBumpLeft = memory.getData('Device/SubDeviceList/LFoot/Bumper/Left/Sensor/Value')
lBumpRight = memory.getData('Device/SubDeviceList/LFoot/Bumper/Right/Sensor/Value')

rBumpLeft, rBumpRight, lBumpLeft, lBumpRight returns 0.0 if False and 1.0 if True.

Camera

To view the camera in real time, use Telepathe (Aldebaran Software).

To switch between the cameras:

def topCamera():

   kCameraSelectID = 18
   video.setParam(kCameraSelectID, 0)

def bottomCamera():

   kCameraSelectID = 18
   video.setParam(kCameraSelectID,1)

Modifying camera parameters

Running Programs on Start Up

Instructions to make missing PATHs

Linux - open up terminal

ssh nao@<ip address here>
(type) nao's password
cd ../../..
ls

[The terminal should show]
bin         etc         lost+found  opt         sbin        tmp
boot        home        media       proc        srv         usr
dev         lib         mnt         root        sys         var

cd opt
cd naoqi
cd preferences
cp autoload.ini /home/nao/naoqi/preferenecs/autoload.ini
cd ../../..
cd home
cd nao
cd naoqi
cd preferences
ls i
vi autoload.ini
i [go to where you want to change - see Dutch Nao team instructions]
press <Esc>, type :w, press <Return>
press <Esc>, type :q!, press <Return>
cd ..
mkdir lib [place desired python file into this directory - see Dutch Nao team instructions]

To log out type: <ctrl> d

Python Script

The Python script functions exactly the same as if using a remote proxy. However no need to append Choregraphe's bin or lib (the below).

sys.path
sys.path.append("Type the path to .../Aldebaran/Choregraphe 1.10.37/bin")
sys.path.append("Type the path to .../Aldebaran/Choregraphe 1.10.37/lib")

Note: In Windows use a program such as WinSCP to transfer the files to the Nao.

Official Software Documentation

http://users.aldebaran-robotics.com/docs/site_en/index_doc.html