1.Pepper的硬件和软件
Pepper机器人身高1.2米,总共有20个自由度,其中身体有17个自由度,底座有3个自由度。该机器人有一个IMU,它与车轮的编码器结合,提供里程计的航位推算(DR,Dead-Reckoning)。为了避免碰到障碍物,机器配备了两个声纳,两个红外传感器和六个激光器,其中三个探测身体下方,另外三个探测机器人周围的障碍物。它的轮子旁边还有三个碰撞传感器,用于万一与障碍物发生碰撞时进行停车操作。
在感知方面,Pepper配备2个2D摄像头,分别位于额头上方和嘴巴下方。考虑到机器人的高度,高清晰度的成像是机器人所必需的,因为通过该装置测量出用户的平均高度。Pepper的一只眼睛还装有华硕Xtion 3D传感器,用于定位和导航。
在计算能力方面,Pepper配备1.9GHz四核Atom处理器和4GB内存。此外,机器人的操作系统是NAOqi OS,一个基于Gentoo的GNU/Linux发行版。出于安全原因,开发人员没有根权限,sudo命令只能用于关闭或重新启动机器人。
2.集成ROS和NAOqi系统
本文中,我们将介绍如何将ROS集成到Pepper机器人和NAOqi 系统中。类似的工作已经在NAO机器人上完成了,但是在这里我们提出了一种交叉编译的替代方法,即使用带有Pepper操作系统NAOqi OS的虚拟机。
NAOqi系统和框架
Pepper由可执行文件NAOqi控制,当操作系统NAOqi OS启动时自动启动。如下图所示,NAOqi就像是一个中间代理人,并加载包含一个或多个模块的库,这些模块使用代理发布它们的方法。(图片来源网络)
NAOqi可执行文件附带了一个核心模块列表和一个公共API接口,其功能划分为如下组:
• NAOqi Core:处理通信、模块管理、内存访问、情感识别等模块;
•NAOqi Motion:实现动作、导航任务、低位关节位置和基准速度控制的模块;
•NAOqi Audio:控制动作语音、语音识别、录音的模块;
•NAOqi Vision:斑点检测、照片捕捉、基本定位、地标检测模块;
•NAOqi People Perception:专注于人机交互的模块,具有人脸检测、凝视分析和人跟踪等;
•NAOqi Sensors:读取激光、声纳和触摸传感器的模块
(图片来源网络)
ROS接口用于定位和导航
机器人操作系统(ROS)是一个开源中间件框架,带有用于机器人软件开发的库和工具。它包括***先进的算法,一个进程间通信框架和可视化工具。由于它的硬件抽象和包管理,以及用于感知、规划和定位的许多算法,它被用在许多机器人身上和研究小组的研究。 在ROS中,处理单元称为节点,节点通过主题或服务进行通信。主题遵循发布者/订阅者模式,而服务使用客户机/服务器模型。总有一个主协调节点,但是其他节点可以分布,允许在多台机器上进行分布式操作。
ROS社区支持一个ROS接口节点来桥接ROS和NAOqi系统。它同时作为ROS节点和NAOqi模块运行,并将NAOqi调用转换为标准类型的ROS服务和主题。
因此,在我们的工作中,我们使用ROS作为工具,使Pepper与***先进的导航技术和基本的可视化工具集成。此外,一旦ROS接口开始运行,开发人员就可以为Pepper创建具有标准类型和通信的软件,从特定的硬件中抽象出来。这也使得在其他机器人和模拟之间移植代码变得很容易。
为了自主导航,机器人需要有一张环境地图,并使用它的里程数和感知能力来估计它在地图上的位置。传统的方法是使用SLAM (simultaneous localization and mapping)利用激光测距
为了自主导航,机器人需要有一张环境地图,并使用它的里程数和感知能力来估计它在地图上的位置。传统的方法是使用SLAM (simultaneous localization and mapping)利用激光测距