论文部分内容阅读
摘 要:NAO机器人作为最新一款人形智能机器人,在教学中扮演了扮演了重要的角色,为我们提供了良好的平台来学习、探索机器人的设计。文章在NAO机器人的基础上,设计程序将NAO机器人作为迎宾机器人,可以省下一定的人力,又可以给人们一种新鲜感,带来乐趣。文章也介绍了我们通过一些实际的实验后所得出的一种比较可靠地同时启动多台机器人的软件编程方法,可以使多台机器人同时准确启动并自主完成一些动作。
关键词:迎宾;NAO机器人;同时启动;软件编程
中图分类号:TP18 文献标识码:A 文章编号:1006-8937(2015)33-0001-02
1 迎宾机器人的程序设计
迎宾机器人的执行动作过程,如图1所示。
设计该程序的主要目的是能够使NAO机器人做到自主迎宾,即将机器人放置与会场入口处,当宾客经过时,机器人会主动打招呼:“您好!欢迎XX”。该程序设计的主要问题在于如何判断是否有人经过,经过考虑,我们选择使用机器人自带的超声波传感器作为检测传感器,如图2所示。
NAOV4版机器人配备有两对超声波传感器,频率为 40 Hz,分辨率为1 cm,测量范围为60 ?觷,测量距离为0.25~2.55 m(在0.25 m以内无法获得距离但可检测到有物体存在),位于胸前两侧对称分布,具体分布数据见表1。
在默认值下,2号传感器作为1号传感器的接受器,4号传感器作为3号传感器的接收器。
在默认值下,其探测范围如图3所示。
当没有人从门口经过时,测量返回值将恒为2.55(即所能测得最大距离),当有人从机器人前经过时,该值将发生变化,考虑到会场正门宽不会超过2 m,我们将判断值设为1.5,即memoryProxy.getData(“Device/SubDaviceList/US/Left/Actuator/Va
ator/Value”)<1.5时,跳出等待循环并做出欢迎的动作,结束后继续返回等待。具体程序,如图4所示。
由于从超声波发射器发出超声波到测量值写入存储器的时间约为10 ms,为防止误测,在这里引入变量i扩大检测时间到0.5 s。
2 关于8台机器人同时启动的程序设计
团体舞蹈要做到美观、震撼,整齐划一是必不可少的条件。而对于机器人来说,要做到整齐,最重要的是要保证机器人能够同时启动,同时执行程序。
来控制8台机器人。其中,(4)中的可以通过将8台机器人连入同一局域网后所分配到的IP替换robotIP项,使某一台机器人向该IP所属的机器人发出动作指令,并通过函数(5)对指定关节数值进行检测,当达到站立时的数值后,执行舞蹈动作。但是运用这种方法,我们发现机器人不能做到同时启动并完成站立动作。在排除掉网络延迟等外界因素干扰下,我们猜测是由于在该方式中机器人之间采用点对点通讯,当主机完成与一台从机通讯后,才会像下一台从机发出指令导致的。
随后,我们考虑采用利用时钟完成同时启动,即我们在程序中利用其图像编程软件中所带的时钟指令盒获取时间,当时间到达某一设定值(即XX点XX分)时,机器人启动。但是,我们在随后的测试中发现每一台机器人的内部时钟都有着小到几秒钟多到几分钟的误差,而我们又无法对其内部时钟进行调整。
最后,经过查阅资料,我们选择利用socket套接字编程,将一台PC端作为主机,利用广播的形式向8台机器人发送指令,其程序如下:
①PC端:PC端的程序图如图5所示。
②NAO机器人端:NAO机器人端的程序图如图6所示。
利用该程序,每一台连入局域网内的机器人在启动完成后,都会向主机发送其IP地址作为准备就休的标志,当我们收到所有IP后,便可按下回车,使所有机器人同时运行。经过多次实验,该方法能实现8台机器人的同时启动,精确性、稳定性很高。
3 总 结
通过超声波传感器作为检测信号,用Python编程实现设计程序将NAO机器人作为迎宾 机器人,是将来实现机器人为人们做日常服务的一种基础设想,为以后机器人的开发研究做基础;利用socket套接字编程是我们在比较各种控制方法后决定使用的一种比较稳定的控制方法,稳定性高,方法简便。NAO机器人还有很大的发展空间,在此基础上,之后再进行更深入的研究。
参考文献:
[1] 钟秋波,童春芽.机器人程序设计[M].西安:西安电子科技大学出版社,2013.
[2] 谢涛,徐建峰,张永学,等.类人机器人的研究历史、现状及展望[J].机器 人,2002,(4).
[3] W.Richard Stevens,Bill Fenner,Andrew M.Rudoff(美).UNIX网络编程 (卷1):套接字联网API[M].北京:人民邮电出版社,2010.
关键词:迎宾;NAO机器人;同时启动;软件编程
中图分类号:TP18 文献标识码:A 文章编号:1006-8937(2015)33-0001-02
1 迎宾机器人的程序设计
迎宾机器人的执行动作过程,如图1所示。
设计该程序的主要目的是能够使NAO机器人做到自主迎宾,即将机器人放置与会场入口处,当宾客经过时,机器人会主动打招呼:“您好!欢迎XX”。该程序设计的主要问题在于如何判断是否有人经过,经过考虑,我们选择使用机器人自带的超声波传感器作为检测传感器,如图2所示。
NAOV4版机器人配备有两对超声波传感器,频率为 40 Hz,分辨率为1 cm,测量范围为60 ?觷,测量距离为0.25~2.55 m(在0.25 m以内无法获得距离但可检测到有物体存在),位于胸前两侧对称分布,具体分布数据见表1。
在默认值下,2号传感器作为1号传感器的接受器,4号传感器作为3号传感器的接收器。
在默认值下,其探测范围如图3所示。
当没有人从门口经过时,测量返回值将恒为2.55(即所能测得最大距离),当有人从机器人前经过时,该值将发生变化,考虑到会场正门宽不会超过2 m,我们将判断值设为1.5,即memoryProxy.getData(“Device/SubDaviceList/US/Left/Actuator/Va
ator/Value”)<1.5时,跳出等待循环并做出欢迎的动作,结束后继续返回等待。具体程序,如图4所示。
由于从超声波发射器发出超声波到测量值写入存储器的时间约为10 ms,为防止误测,在这里引入变量i扩大检测时间到0.5 s。
2 关于8台机器人同时启动的程序设计
团体舞蹈要做到美观、震撼,整齐划一是必不可少的条件。而对于机器人来说,要做到整齐,最重要的是要保证机器人能够同时启动,同时执行程序。
来控制8台机器人。其中,(4)中的可以通过将8台机器人连入同一局域网后所分配到的IP替换robotIP项,使某一台机器人向该IP所属的机器人发出动作指令,并通过函数(5)对指定关节数值进行检测,当达到站立时的数值后,执行舞蹈动作。但是运用这种方法,我们发现机器人不能做到同时启动并完成站立动作。在排除掉网络延迟等外界因素干扰下,我们猜测是由于在该方式中机器人之间采用点对点通讯,当主机完成与一台从机通讯后,才会像下一台从机发出指令导致的。
随后,我们考虑采用利用时钟完成同时启动,即我们在程序中利用其图像编程软件中所带的时钟指令盒获取时间,当时间到达某一设定值(即XX点XX分)时,机器人启动。但是,我们在随后的测试中发现每一台机器人的内部时钟都有着小到几秒钟多到几分钟的误差,而我们又无法对其内部时钟进行调整。
最后,经过查阅资料,我们选择利用socket套接字编程,将一台PC端作为主机,利用广播的形式向8台机器人发送指令,其程序如下:
①PC端:PC端的程序图如图5所示。
②NAO机器人端:NAO机器人端的程序图如图6所示。
利用该程序,每一台连入局域网内的机器人在启动完成后,都会向主机发送其IP地址作为准备就休的标志,当我们收到所有IP后,便可按下回车,使所有机器人同时运行。经过多次实验,该方法能实现8台机器人的同时启动,精确性、稳定性很高。
3 总 结
通过超声波传感器作为检测信号,用Python编程实现设计程序将NAO机器人作为迎宾 机器人,是将来实现机器人为人们做日常服务的一种基础设想,为以后机器人的开发研究做基础;利用socket套接字编程是我们在比较各种控制方法后决定使用的一种比较稳定的控制方法,稳定性高,方法简便。NAO机器人还有很大的发展空间,在此基础上,之后再进行更深入的研究。
参考文献:
[1] 钟秋波,童春芽.机器人程序设计[M].西安:西安电子科技大学出版社,2013.
[2] 谢涛,徐建峰,张永学,等.类人机器人的研究历史、现状及展望[J].机器 人,2002,(4).
[3] W.Richard Stevens,Bill Fenner,Andrew M.Rudoff(美).UNIX网络编程 (卷1):套接字联网API[M].北京:人民邮电出版社,2010.