Artificial Intelligence and Robotics Research
Vol. 07  No. 04 ( 2018 ), Article ID: 27392 , 6 pages
10.12677/AIRR.2018.74021

Programming and Implementation of Educational Robot Based on Scratch and ROS

Ruilei Zhang1,2, Jintao Liu2, Yongxin Chou1

1School of Electrical and Automation Engineering, Changshu Institute of Technology, Changshu Jiangsu

2Department of Robotics Course, Exbot Robotic Lab, Nanjing Jiangsu

Received: Oct. 10th, 2018; accepted: Oct. 26th, 2018; published: Nov. 2nd, 2018

ABSTRACT

Educational robots cover computer science, education, automatic control, mechanical electronics, artificial intelligence and other fields. They are typical cases of robots used in education, aiming at cultivating students’ comprehensive ability of analysis, design, practice and creation. This paper first introduces the status quo and technology trends of educational robots at home and abroad. Then, through literature analysis and comparison, this paper proposes the main problems of the current development of educational robots. Then, this paper explores the programming and implementation of Scratch and ROS education robots, and integrates three kinds of programming languages: graphical, interpreted and compiled into an educational robot. Finally, the effectiveness of the implemented educational robot is verified by simulation and experiment.

Keywords:Educational Robot, Scratch, ROS, Programming Conversion

基于Scratch和ROS的教育机器人编程与实现

张瑞雷1,2,刘锦涛2,丑永新1

1常熟理工学院,电气与自动化工程学院,江苏 常熟

2易科实验室,机器人课程部,江苏 南京

收稿日期:2018年10月10日;录用日期:2018年10月26日;发布日期:2018年11月2日

摘 要

教育机器人涵盖计算机科学、教育学、自动控制、机械电子、人工智能等领域,是机器人应用于教育领域的典型案例,以培养学生具备分析、设计、实践和创造等综合能力为目标。本文首先介绍国内外教育机器人现状和技术趋势。然后,通过文献分析比较,本文提出当前教育机器人发展的主要问题。接着,本文探讨了基于Scratch和ROS教育机器人编程与实现,将图形化、解释型、编译型三种类别编程语言融于一种教育机器人。最后通过仿真和实验验证了所实现的教育机器人的有效性。

关键词 :教育机器人,框图编程,机器人操作系统,编程转换

Copyright © 2018 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

1. 引言

机器人作为制造业皇冠上的明珠,历经500年的不断发展(从16世纪西班牙自动祈祷的机械僧侣起),目前已经全面进入“机器人+”时代,周围涌现出各种新奇智能的黑科技,如机械狗、无人机、自动驾驶汽车以及各类服务机器人……其中,教育机器人包括“应用于教育行业的服务机器人”和“机器人专业教育”两个方面,已经成为工业机器人和服务机器人之外的第三类机器人发展领域。教育领域中的机器人将增强或延伸教师的表达能力、知识加工能力和沟通能力;机器人教育将激发广大学生对智能技术的学习兴趣和动力,并大范围提高学生信息技术能力,提升数字时代的竞争能力。在全球教育机器人研究领域中,根据国际权威文献库调研,文献引用数量处于前列的国家有美国、瑞士、意大利、日本和英国等,研究主要聚焦在机器人教育、语言教育和特殊教育领域。在“机器人+课堂”方面,日本和韩国更为普及 [1] 。机器学习、自然人机交互、仿生科技是教育机器人研发中需要长期探索的关键技术。人们期待教育机器人能像人一样思考、像人一样行走、像人一样互动,并做出如同“真人”一般的细腻动作 [2] 。

对于教育机器人的编程与实现,各国学者做了大量研究,文献 [3] 设计了ICalico和Calysto开发工具,用于教育机器人帮助学生进行机器人编程和人工智能学习。文献 [4] 介绍了应用于国际比赛和移动机器人教育的中小型机器人开发,主要面向高年级本科生和研究生的项目导向课程,极大提升学生知识整合和应用能力,包括路径规划和迷宫解算等人工智能算法实践。文献 [5] 引入NASA火星探测项目场景,构建SIPI实验室,学生通过机器人编程实现远程操作机器人等任务。文献 [6] 提出了一种群机器人教育平台,使用ROS框架进行实验教学和研究。文献 [7] 开发了一款超低成本模块化和可扩展的教育机器人,装配有局域网和英特网功能,配套在线课程(MOOC)并提供虚拟环境实验室。

本文在综合分析国内外教育机器人基础上,针对机器人编程的特点,基于开源软件开发实现了一种新型教育机器人,主要内容包括教育机器人问题描述,基本系统配置,多语言转换实现,仿真与实验验证等。

2. 问题描述

目前国内外大部分教育机器人产品针对不同基础和年龄进行设计开发,提供了非常丰富的课程和学习方案。但是并没有将适用于零基础的图形化编程无缝扩展至语言编程。本文实现的教育机器人方案,将图形化、解释型、编译型三种类别编程语言融为一体,让学生在进行人工智能和机器人编程时,能够将三类编程方法对比分析,更好的掌握机器人编程。在ROS机器人操作系统下,低年级学生可以用Scratch2进行图形化编程,到中高年级用Python进行简单编程,进入大学之后用Python和C++进行复杂机器人编程,循序渐进,不断深入学习研究。接口示意如图1所示,方案提供了三种编程语言实现机器人环境感知和运动控制等,这三种方式都可以通过ROS消息机制直接控制仿真或真实机器人运动。同时,Scratch、Python和C++可以通过相应的模块进行编程转换,将在下节详细介绍。

Figure 1. Educational robot interface

图1. 教育机器人接口示意

3. Scratch和ROS配置

3.1. Scratch和ROS

Scratch则是一款由麻省理工学院(MIT)设计开发的少儿编程工具,而Python则是近年来非常流行的机器人和人工智能编程语言。ROS (Robot Operating System)即机器人操作系统,可以帮助提高机器人软件的开发效率,目前也是当前全球最为流行的。2008年起源于斯坦福大学人工智能实验室与机器人技术公司Willow Garage的机器人合作项目,集成了全世界机器人领域的顶级科研机构,包括斯坦福大学、麻省理工学院、慕尼黑工业大学、加州大学伯克利分校、佐治亚理工大学、弗莱堡大学、东京大学等多年的研究成果(图2)。

Figure 2. Scratch & ROS

图2. Scratch和ROS

ROS一问世便受到了科研人员的广泛关注。随后,ROS又借助开源的魅力吸引了世界各地机器人领域的仁人志士群策群力,推动其不断进步。2013年麻省理工学院科技评论(MIT Technology Review)指出:“从2010年发布1.0版本以来,ROS已经成为机器人软件的事实标准(de facto standard)”。由于,Scratch是无法直接进行机器人编程的,于是,需要构建一种接口将Scratch代码转换为机器人通用编程语言Python或C++,并通过ROS消息机制发布到机器人的相应主题上,实现机器人控制。

3.2. 配置流程

• 第一步,安装Ubuntu 16.04操作系统;

• 第二步;配置ROS Kinetic版本机器人软件;

• 第三步;配置Scratch2、Gazebo 7、JdeRobot、Python2.7等。

详细的安装和配置可以参考文献8。安装成功后,就可以启动Scratch2等进行机器人编程了。教育机器人编程的实现架构如下图3所示。

Figure 3. Educational robot programming and implementation

图3. 编程实现框图

4. 语言转换实现

本节将说明如何将图形化编程语言转换为机器人系统可以直接使用的代码指令。首先,新建hiros.bz2,如图4所示,这里以“Hello, ROS Kinetic!”字符串输出为例:

Figure 4. Scratch programming interface

图4. Scratch程序设计界面

然后,使用python scratch2python.py hiros.sb2,将其转为Python,核心代码如下:

第一步:

when @green Flag clicked

repeat 10

say “Hello, ROS Kinetic!”

end

第二步:

try:

for i in range (10):

print ('Hello, ROS Kinetic!')

except Keyboard Interrupt:

raise

5. 仿真与实验

仿真可以使用ROS自带的Gazebo环境也可以使用任意一款带有对应接口的机器人三维仿真软件,如V-Rep、MORSE等。使用下面命令启动环境 [8] :

$ roslaunchkobuki_gazebokobuki_playground.launch-screen

首先,进行图形化程序设计,并将其转为Python,接着修改配置文件,将控制输出映射到ROS中对应的机器人控制器中,如图5所示。其中,Server定义了网络服务器的类别,有3种类型,这里选择2,就是ROS。Proxy为端口配置属性,定义了本机或网络上所使用服务器的端口。Topic为主题配置属性,定义了消息交互的名称,修改此处对应仿真或真实机器人的相应主题就可以实现控制。参数配置可以调整机器人电机、激光传感器、三维位置、里程计、摄像头等内容。

Figure 5. Parameter configuration file

图5. 参数配置文件

然后,运行程序就可以看到机器人在环境中运动了,如图6所示。如果需要控制真实机器人,只需将图4所示的Motors:Topic调整为真实机器人对应的主题即可,可实现命令控制机器人前进后退和旋转运动,也可用键盘特定按钮遥控机器人,更复杂是从环境获取信息进行自动路径规划。

Figure 6. Robot simulation

图6. 机器人仿真运行结果

6. 总结

现在越来越多的人工智能和机器人编程课程把图形化作为入门工具,将Python作为首选语言。很多大学也选用Python和C++语言进行机器人程序的编程设计,其主要原因在于Python功能强大并且易学,可以较容易地掌握编程概念。Python的深度和广度使得它成为教育和研究领域的首选语言,世界各地的研究机构和高校都广泛使用Python设计构建研究项目。本文在分析国内外教育机器人现状和技术趋势的基础上,通过文献分析比较,提出了当前教育机器人发展的主要问题。接着,探讨了基于Scratch和ROS教育机器人编程与实现,将图形化、解释型、编译型三种类别编程语言融于一种教育机器人。最后通过仿真和实验验证了所实现的教育机器人的有效性。

基金项目

课题由青年教师科研启动基金(XZ1527),江苏省科技厅自然科学基金青年基金项目(BK20170436),2018年高等学校仪器类专业新工科建设项目(2018C023)资助。

文章引用

张瑞雷,刘锦涛,丑永新. 基于Scratch和ROS的教育机器人编程与实现
Programming and Implementation of Educational Robot Based on Scratch and ROS[J]. 人工智能与机器人研究, 2018, 07(04): 178-183. https://doi.org/10.12677/AIRR.2018.74021

参考文献

  1. 1. Yoo, J. (2015) Results and Outlooks of Robot Education in Republic of Korea. Procedia-Social and Behavioral Sciences, 176, 251-254. https://doi.org/10.1016/j.sbspro.2015.01.468

  2. 2. 卢月品. 解读《中国机器人产业发展白皮书(2016版)》[J]. 机器人产业, 2016(3): 26-32.

  3. 3. Hara, K.J.O., Blank, D. and Marshall, J. (2015) Computational Notebooks for AI Education. Twenty-Eighth International Florida Artificial Intelligence Research Society Conference, 18-20 May 2015, Hollywood, 263-268.

  4. 4. Su, J.H., Cai, X.H., Lee, C.S., et al. (2016) The Development of a Half-Size Micromouse and Its Application in Mobile Robot Education. International Conference on Advanced Robotics and Intelligent Systems, Taipei, 31 August-2 September 2016, 1-6. https://doi.org/10.1109/ARIS.2016.7886611

  5. 5. West, J., Vadiee, N., McMahon, A., et al. (2017) From Class-room Arduinos to Missions on Mars: Making STEM Education Accessible and Effective through Remotely Operated Robotics. 2017 IEEE Integrated STEM Education Conference (ISEC), Princeton, 11 March 2017, 88-95. https://doi.org/10.1109/ISECon.2017.7910255

  6. 6. Rezeck, P.A.F., Azpurua, H. and Chaimowicz, L. (2017) HeRo: An Open Platform for Robotics Research and Education. 2017 Latin American Robotics Symposium (LARS) and 2017 Brazilian Symposium on Robotics (SBR), Curitiba, 8-11 November 2017, 1-6.

  7. 7. López-Rodríguez, F.M. and Cuesta F. (2016) Andruino-A1: Low-Cost Educational Mobile Robot Based on Android and Arduino. Journal of Intel-ligent & Robotic Systems, 81, 63-76. https://doi.org/10.1007/s10846-015-0227-x

  8. 8. Relay Zhang. 使用Scratch2和ROS进行机器人图形化编程[N/OL]. https://blog.csdn.net/ZhangRelay/article/details/78857311, 2018-09-27.

期刊菜单