推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的Nao机器人实验系统设计

更新时间:2019-12-25 21:50:13 大小:1M 上传用户:songhuahua查看TA发布的资源 标签:python机器人 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

针对Nao机器人官方开发软件功能分散、不易使用等不足,采用Python语言,以类方法为基础,设计了Nao机器人实验系统。以图像处理实验为例,说明了实验系统的教学应用。该实验系统代码开源,操作简单、直观,可以加深学生对机器人控制系统的整体认识,有助于提高学生的科研和创新能力。


部分文件列表

文件名 大小
基于Python的Nao机器人实验系统设计.pdf 1M

【关注B站账户领20积分】

部分页面预览

(完整内容请下载后查看)
ISSN1672-1438  
CN11-4994/T  
2017年1月  
总第257期  
现代教育技术与装备  
基于  
的 机器人实验系统设计  
Python Nao  
张仁彦 刘孟茹 孔凡超 赵传林 赵洪亮  
山东科技大学电气与自动化工程学院 山东青岛 266590  
:针对Nao机器人官方开发软件功能分散、不易使用等不足,采用Python语言,以类方法为基础,设计了Nao机器人  
实验系统。以图像处理实验为例,说明了实验系统的教学应用。该实验系统代码开源,操作简单、直观,可以加深学生对  
机器人控制系统的整体认识,有助于提高学生的科研和创新能力。  
关键词Nao机器人;实验系统;Python语言;类方法  
Design of Nao Robot Experimental System Based on Python  
Zhang Renyan, Liu Mengru, Kong Fanchao, Zhao Chuanlin, Zhao Hongliang  
College of Electrical Engineering and Automation, Shandong University of Science and Technology, Qingdao, 266590, China  
Abstract: The official software of Nao robot is decentralized in functions and hard to students. To overcome this shortcoming, a Nao robot  
experimental system is designed in Python programming language based on the class method. The teaching application of the system is  
shown by an image processing experiment. The system is open source, simple and intuitive to operate. It can make students understand the  
robot control system as a whole more deeply, and improve students’ abilities of researching and innovating.  
Key words: Nao robot; experimental system; Python programming language; class method  
人形机器人Nao具有25个自由度,配备了摄像头、  
超声波传感器和惯性器件等传感器,以及电机和电动  
致动器等机构[1],可用于图像处理、人工智能、机器人  
控制以及医疗保健等多个教学和科研领域 [2-5]Nao机器  
人具有丰富、强大的函数库,在LinuxWindowsMac  
OS等操作系统下,均可利用C++MATLABPython语  
言对其编程操作。目前,全球多个高等学校和研究机构  
已将Nao机器人用于教育和科研工作[2]2013年山东科  
技大学电气与自动化工程学院引进Nao机器人平台,并  
将其用于自动化专业(山东省名校工程特色专业)学生的  
创新能力和科研能力培养。  
藏了Nao机器人控制程序的整体框架。上述因素使得  
Choregraphe软件不适用于实验教学。为此,本文使用  
Python语言,以面向对象程序设计思想中的类(Class)方  
法为基础,设计了功能集中,操作简单、直观,且代码  
开源的Nao机器人实验系统,以改善实验教学效果。  
1Python语言  
Nao机器人“默认”的编程语言Python是一种面向对  
象的脚本语言,简单、易学,也被称为“胶水语言”,  
既可以与CC++MATLAB等语言混合编程[6-8],也可使  
MatplotlibNumPy以及Qt等函数库[8]。因此,采用  
Python语言设计Nao机器人实验系统。  
目前,Nao机器人实验多采用其官方开发软件  
Choregraphe。但在实际教学过程中发现,该软件功  
能分散、用法复杂,其“指令盒”拖拽的编程方式隐  
2实验系统的功能结构  
收稿日期2016-11-03  
Nao机器人运动时,需要控制其运动状态,并感  
知其周围环境状况。据此,可以确定实验系统的功能  
结构(如图1所示)。由图1可知,实验系统的主要功能  
有:(1)动作控制,控制机器人关节的独立动作和多关  
作者简介:张仁彦,博士,副教授。  
基金项目:煤炭高等教育实验室工作研究会研究课题(编号:  
00201507);山东科技大学自动化学院名校工程建设项目(编  
号:MX-KJCX-1MX-JCJS-8);山东科技大学电气与自动化  
工程学院优秀教学团队建设计划(编号:skzdhjxtd151)。  
4
2017年1月  
总第257期  
ISSN1672-1438  
CN11-4994/T  
Matplotlib是最著名的Python绘图库之一,通  
过继承该库中的绘图工具类Figure图形容器类  
FigureCanvasQTAgg,建立自定义的一维曲线显示  
类。PyQt4Python语言的图形用户界面库,其中的  
QtGui子库中包含大量用于界面设计的类。通过继承  
QtGui中的QImageQPainter等类,建立自定义视频图  
像显示类,用于显示处理前后的摄像头视频图像。  
节的协调运动;(2)信号检测,读取机器人的传感器信  
号;(3)信号显示,显示机器人传感器信号的曲线或图  
像;(4)添加新实验项目,保留实验项目添加接口,并  
且新项目也可以利用系统其他原有功能。  
3.3 实验项目添加功能的设计  
为了便于更新和扩展实验项目,实验系统在开放  
源代码的同时,保留了添加实验项目的接口,可以通  
过函数调用的方式执行新实验项目的相关程序指令。  
3.4 实验系统的界面设计  
实验者需通过实验系统界面上的操作控件和显  
示窗口与Nao机器人进行人机交互。操作控件(如按  
钮和滑动条等)QtGui中的控件类(QPushButton  
QComboBox)生成。显示窗口由自定义的一维  
曲线显示类和视频图像显示类生成。因为操作控件  
和显示窗口较多,为避免界面混乱,使用QtGui中的  
QTabWidget类建立多个标签页,并将控件和显示窗口  
按系统功能要求摆放于不同标签页中。另外,实验系  
统界面的整体布局由QtGui中的布局类(QGridLayout  
QVBoxLayout)控制实现。  
1 实验系统的功能结构  
3实验系统的软件设计  
采用Python语言及其标准函数库(以下简称“标准  
库”)和面向对象程序设计思想中的类方法设计实验系  
统软件,系统软件架构如图2所示。  
为便于实验操作,实验系统仅有一个主界面(如  
3所示),并根据功能将其划分为4个区域(如图4所  
)。区域1显示机器人两个摄像头处理前后的视频图  
像。区域2包含多个标签页,分组显示各类一维信号  
曲线。向Nao机器人发送控制命令的操作控件主要分  
布于区域3的各标签页上(如图5所示)。  
2 实验系统的软件架构  
3.1 信号检测和动作控制功能的设计  
NaoqiNao机器人的官方标准库,包含大量的  
专用模块和函数。在Python程序中,通过Nao代理  
ALProxy调用Naoqi的专用模块和函数,即可完成对  
Nao机器人的信号检测和动作控制。例如:ALMotion  
模块和getData函数分别用于Nao机器人的运动控制和  
传感器信号读取。  
3 实验系统主界面  
3.2 信号显示功能的设计  
信号显示功能采用了类方法,通过继承标准库中  
的类,建立用于信号显示的自定义类。自定义类不但  
继承了标准库类的强大功能,而且能实现实验系统的  
特定功能。  
4 实验系统的主界面区域划分  
5

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载