基于图形化的模块化机器人编程系统的研究
2021-10-25朱宏锋庄严
朱宏锋 庄严
1. 知识背景:
机器人技术和应用是当今国际技术发展的热点之一,它集成了电子、机械、计算机硬件、软件、人工智能等众多科技领域的尖端技术。目前,国内外的大部分高校都开展了机器人技术的教学和科研工作。本论文基于营口理工学院科研项目《基于人工智能图像识别技术在分拣机器人中的应用和开发》,以模块化机器人为技术背景研究基于图形化的机器人编程系统。图形化编程作为一种易于高效易懂的开发方式,具有友好的人机交互界面、易于理解的程序操作和开发流程、易于操作的程序编译下载和参数设置的方式,能够提高学生对机器人技术学习的兴趣和编程开发的速度。与此同时,通过可视化编程所开发的程序具有较高的稳定性,兼容性和可扩展性。因此机器人的可视化编程技术目前被广泛的应用在本科机器人专业教学中。
2.图形化编程系统的软件框架
机器人的可视化编程工具其目的是为大专院校学生使用,易于理解的同时要兼具兼容性、稳定性和可扩展性。因此编程系统需要满足以下要求:
模块化设计:
开发系统的各个编程模块需要独立开发、并提供标准的程序接口,从而实现每个模块功能的同时还可通过各模块的组合生成可执行的程序,同时利于后期软件的更新升级功能,具有可扩展性。
软件编程和硬件环境分离:
针对不同的机器人不同的硬件配置如果通过硬件设计,其语言和参数设置都需要修改,因此在设计可视化编程系统时需要将可视化开发功能和硬件程序生成模块功能分离,这种设计方式针对于不同硬件其上层界面是完全相同的,降低了学习和开发的成本。[1]
3. 软件模块和数据结构的设计
可视化编程系统的实现需要对软件和硬件进行模块封装和功能抽象,将不同的功能进行分离使系统具有对多种设备和应用领域的扩展性。在实现可视化编程系统的技术需要具有以下特征:
设计的封装性:
将可视化编程工具的功能进行独立的封装,每一种编程功能提供通用的接口以可视化作为表现方式,即软件系统实现的图形工具项。抽象的实现通过编程模块、图形程序、可视化数据和属性,最终通过代码生成器参数针对于模块化机器人硬件环境的类C语言代码,下载到机器人中实现其对应的设计功能。[2]
功能的模块化:
根据所要实现的不同功能的类型进行模块化分类和设计,使其实现编程系统的低耦合、高内聚的特征。模块化设计降低了系统的复杂性,利于软件的复用。在实现系统的设计中一般采用以下的功能模块划分来实现对应的功能:
动作功能模块,实现电机的参数设置、液晶显示的内容、声音播放以及LED灯的开关功能。
流程控制模块,实现软件编程基本语法和控制流程,包括程序的开始、等待、循环结构、分支结构以及切换和终端。
传感器控制模块,实现采集外界环境或内部变量的信号和状态,包括程序块按钮、颜色传感器、陀螺仪传感器、电机旋转传感器、温度传感器、计时器、触碰传感器、超声波传感器、声音传感器等外部设备。
数据操作模块,实现了软件编程的基本数据、逻辑运算和操作符的功能。包括变量、常量的定义和实现、逻辑运算、数学运算、位运算和随机数等运算功能。
基于数据流的数据交互方式:
图形化编程方式使用数据流作为信息和数据的交互方法,即当某个模块所参与计算和处理的数据流到达后程序对应的功能模块才被调用执行对应的功能。同时整个开发系统的功能也是基于数据流工作的,仅当所有模块的数据全部到达,才进行设计程序的解释并生成对应的硬件可执行代码下载到模块机器人中。在编译的过程中首先根据每个功能模块所负责的功能将其转化为类C语言的代码,完成软件层的功能。后续的硬件环境层根据对应模块化机器人的硬件环境对编译的代码进行进一步的处理编译,会根据对应的硬件不同环境进行参数设置和编译代码。这种方式使开发者不再需要学习硬件命令和针对不同设备的参数设置,使软件编程完全独立硬件环境,从而提高了开发的效率和程序的稳定性。[3]
4.结语:
本文分析了目前应用型本科的模块化机器人教育和课程安排所采用的可视化编程系统的软件框架和功能实现。总结了当前广泛使用的可视化编程开发系统的技术特点和实现方式。随着我国人工智能和机器人在教育,服务,制造,运输等各领域的广泛应用,在工科院校的本科教学阶段中大力发展机器人技术和编程开发课程势在必行。后续的机器人编程还将兼具互联网化,远程控制和信息收集处理等功能,可视化编程系统脱离了以往针对硬件编程的约束,降低了入门者的学习成本,提高开发的效率和程序的扩展性,将在后续机器人开发和应用中发挥越来越大的作用。
参考文献:
[1]邱长伍,曹其新.机器人图形化編程与三维仿真环境[J].机器人,2005,27(5):436-441.
[2]刘昱,王立福.一种面向图形化编程的软件设计方法[J].计算机科学,1997(1):73-76.
[3]朱兴,IDE集成GCC编译器的方法[J].指挥控制与仿真,2007(5) :105-107+120.