NAO机器人学习笔记(1)
1 NAO机器人硬件
1.1 红外线
红外线发射角度-60°~+60°,波长940nm.
1.2 超声波(声纳)
NAO能够探测前方0.25~2.55m内是否有障碍物,探测角度60°,超声波频率为49kHZ.
1.3 传感器
1.3.1 接触传感器
触摸、按压、划过接触传感器可以出发接触传感器产生电信号,进而完成向机器人输入信息.
头部:前中后三个触摸传感器。
手部触摸传感器,脚前部的碰撞传感器(也起到缓冲作用)。
胸前:长按、短按、连按。
开机:按胸前按钮。
报IP地址:在开机并且联网状态下,按胸前按钮。
关机:在开机状态下,按胸前按钮。
自主生活状态:连续按两次胸前按钮进入或退出。
1.3.2 惯性传感器:测量身体状态以及加速度,包括2个陀螺仪,1个加速度计。
1.3.3 位置传感器(MRE磁性编码器):测量机器人自身关节位置,36个。
1.3.4 压力传感器:每只脚上有4个压力传感器,用来确定每只脚重心的位置。在行走过程中,NAO根据重心为在进行不太调整以保持身体平衡。
1.4 发光二极管LED
头部传感器周围:12个LED
耳部:2*10个16级蓝色LED, 眼部2*8个全彩色LED, 胸前按钮和双足各有1个RGB全彩色LED.
1.5 执行器: 包括安装在各关节处的直流电机、超声波发送器、LED等。
2 NAO关节运动模型
2.1 使用的坐标系
笛卡尔坐标系,X轴指向身体前方,Y为由右向左方向,Z轴为垂直向上方向。
2.2 关节运动分类
沿Z轴方向的旋转称为偏转(Yam), 沿Y轴的旋转称为俯仰(Pitch),沿X轴方向的旋转称为横滚(Roll).
2.3 关节命名规则
关节名称由 部件名 + 动作名两部分组成,例如头部左右转的关节名为HeadYam,实现抬头低头的关节名为HeadPitch.
机器人的某些简单动作由一个关节的运动即可完成,复杂的动作需要由多个关节共同完成。
2.4 关节运动范围
头部两个自由度分别控制Nao脑袋的扭转,其中控制头部关节在Z轴扭转的范围为-120°到120°,在Y轴前后运动的范围为-39°到39°;
左右手臂各有5个自由度且呈对称分布,肩关节控制Y轴前后运动的范围为-120°到120°,控制Z轴左右运动的范围为0°到95°,
肩关节控制在X轴扭转的范围为-90°到0°,
肘关节控制在Z轴运动的范围为-120°到120°,
腕关节控制在X轴扭转的范围为-105°到105°;
Nao的左右手上各有一个自由度,其控制Nao的手部的打开或合拢;
Nao左右腿的关节除髋关节和踝关节外其余均呈对称分布的,
左髋关节控制腿部在Y轴前后运动的范围为-104.5°到28.5°,
左髋关节控制腿部在X轴左右运动的范围为-25°到45°,
左踝关节控制在Y轴前后运动的范围为-70.5°到54°,
左控制X轴左右运动的范围为-45°到25°,
右髋关节控制腿部在Y轴前后运动的范围为-104.5°到28.5°,
右髋关节控制腿部在X轴左右运动的范围为-45°到25°,
右踝关节控制在Y轴前后运动的范围为-70.5°到54°,
右踝关节控制X轴左右运动的范围为-25°到45°;
膝关节控制腿部在Y轴运动的范围为-5°到125°;
髋部存在一个控制其髋部在Y轴运动的自由度,其运动范围为-65.62°到42.44°。
2.5 NAO的自由度
机器人能够独立运动的关节数目称为机器人的运动自由度。头部有两个关节,可以做偏转(Yam)和俯仰(pitch),因此,头部的自由度为2.
全身共有26个自由度。
3 NAOqi框架
NAOqi是NAO机器人运行的主软件,进行NAO编程主要在NAOqi框架下进行。
NAOqi提供了操作机器人的核心API,提供了数以千计的在控制运动、语音、视频等方面的函数,可以满足机器人在
资源、事件、并行、同步等方面的一般需要。尽管NAOqi的动作、音频、视频等不同模块差异很大,NAOqi使用结
构一致的数据模型来表示信息,为调用不同模块设计了相同的编程模式,各个模块与ALMemory信息共享使用相同的
结构,这些都降低了NAO程序设计的复杂性。
4 远程登陆NAO
4.1.利用WinSCP下载上传文件
启动WinSCP,在登录窗口中选择SCP协议,输入NAO的IP地址,端口号选择22,用户名和密码都填nao,点击“登录”按钮,进入WinSCP主界面。
登录后NAO的初始目录为“/var/persistent/home/nao”,与“/home/nao”目录的内容相同,用户nao对该目录具有读写权限。在WinSCP中通过在
本地文件和NAO机器人文件间简单的“拖拽”操作就可以实现文件的上传和下载。选中目录中的文件,点击右键,在弹出菜单中,可以进行删除、重命
名、更改文件属性等操作。
4.2.利用Putty远程登录NAO
启动Putty,在配置窗口中输入机器人IP地址,端口输入22(SCP协议端口),点击“打开”按钮,在弹出的窗口中输入用户名nao和密码nao,进入
NAO的远程控制状态。
监控NAOqi
NAOqi是机器人运行的主要软件。NAOqi不运行,机器人的任何行为都无法完成。在机器人启动过程中,NAOqi会自动启动,脚本/etc/init.d/naoqi管理NAOqi的启动过程。
控制NAOqi的命令包括如下4条:nao start、nao stop、nao restart和nao status。
(1) nao start命令:启动NAOqi。
(2) nao stop命令:停止NAOqi。
(3) nao restart命令:重新启动NAOqi。
(4) nao status命令:显示NAOqi运行状态。
4.3.Python库安装
pip是Python中常用的包管理工具,在NAO机器人预装的Python2.7安装包中,pip不是默认安装的。
(1)下载pip安装文件。下载地址:https://pypi.python.org/packages/source/p/pip/pip-10.0.1.tar.gz。
(2)将下载到本地的pip-10.0.1.tar.gz利用WinSCP上传到NAO的/home/nao目录下。
(3)登录Putty,使用su命令将用户由nao切换到root,密码为root。root用户对“/usr/lib/ python2.7/site-packages”目录拥有写权限。
(4)在NAO上运行如下命令:
tar -xzvf pip-10.0.1.tar.gz
cd pip-10.0.1
python setup.py install
tar是linux的解压缩命令,运行后将pip安装文件解压缩到/home/nao/pip-10.0.1目录下,文件中包括pip的安装文件setup.py。最后利用
python运行setup.py完成安装。安装完成后,可以在NAO的Python库目录“/usr/lib/python2.7/site-packages”下看到新安装的pip相关目录。