APP下载

多核异构服务机器人通用可编程控制系统研究

2020-01-08

测控技术 2019年12期
关键词:控制板编程终端

(长安大学 工程机械学院,陕西 西安 710064)

随着我国人口老龄化速度的加快,人力劳动成本的不断增长,近些年来我国机器人市场进入了高速增长期,服务机器人的研究也正处于方兴未艾的阶段。文献[1]提出了一种基于嵌入式系统,采用WiFi技术的智能化用于图书馆取书的机器人设计方案。文献[2]提出一种基于Android系统和LabVIEW的变电站服务机器人的自适应模糊PID控制器的设计方案。文献[3]采用双ARM Cortex架构,对嵌入式移动机器人的控制器进行了研究。文献[4]针对液压驱动的四足机器人控制问题,提出了一种以ARM为内核的嵌入式控制系统的设计方案。文献[5]~文献[6]针对不同的应用场合,提出了基于物联网技术,实现对机器人远程操控的控制器系统的设计方案。文献[7]~文献[11]采用Android系统作为机器人控制器设计中的辅助控制,就不同工况的机器人控制器设计进行了有益的探讨。

由上述研究可见,服务机器人控制器的研究已经获得了长足的发展。现在服务机器人设计涉及大量模拟传感器、开关型传感器以及电机的驱动,存在大量设备数据的交互;本地现场设备的运行状态需要实时现场监测监控;为使服务机器人更加人性化,服务机器人需具有多媒体交互功能。而现在服务机器人多采用的单核模式开发控制器,虽能满足上述需求,但也存在开发周期长、研发成本高等问题。

为解决上述问题,提出了一种以Android移动终端为主控制器,以通信主板、模拟板和运动控制板为辅助控制器的多核异构的服务机器人通用可编程控制器系统的设计方案。通信主板、模拟板和运动控制板由自定义增强型SPI相互通信,并分别完成特定的任务和功能,任务的进度和协调由Android移动终端进行控制,将控制系统的任务多核化。运载于主控制器移动终端的控制器监控系统,方便了服务机器人设备现场性能的监测监控。开发了一种基于EngineerC语言面向多核异构的图形化编程系统,可实现对系统平台的快速二次开发,图形化编程降低了系统平台对用户编程能力的要求。

1 总体设计

多核异构的服务机器人可编程控制器的硬件主要包括通信主板、模拟板、运动控制板、移动终端以及PC机。通信主板、模拟板和运动控制板间通过自定义增强型SPI进行相互通信,实现数据的传输。运动控制板用于驱动服务机器人相关的运动单元。模拟板用于采集传感器和运动控制板的数据信息。通信主板主要实现移动终端和微控制板之间的多方式通信。移动终端作为主控制器,处理相关传感器数据,将数据以图表形式显示在移动终端屏幕上。机器人图形化编程系统(Robot Graphical Integration Development Environment,RGIDE)通过图形编程系统为移动终端和微控制板编写相关程序。该方案的具体实现原理图如图1所示。

1.1 通信主板

通信主板实现了上位机与微控制板之间的通信,完成了代码的烧写和传感器数据的传输。通信主板主要由CAN总线、RS232串口、RS485接口、USB串口、蓝牙、WiFi、以太网、自定义增强型SPI和电源构成。通信主板与上位机采用以USB接口有线通信和CAN无线通信方式为主、其他多种通信方式为辅的通信模式,提高了该控制器的通用性。上位机主要采用以Android移动终端为主,PC机等为辅的方案。移动终端的控制器监控系统中以动态文本和动态曲线的形式将传感器数据显示在屏幕上。

图1 多核异构控制器总体设计框架

1.2 模拟板

模拟板主要包括A/D电路模块、D/A电路模块、增强SPI和电源模块。A/D电路模块主要由衰减电路、模拟开关和仪表放大器组成,该模块可采集来自传感器的三路差分信号和两路4~10 mA的电流信号;D/A模块可产生±10 V的数字信号,用于系统测试;电源模块主要是为模拟板提供±5 V和±15 V的电源。模拟板主要采集并处理来自超声波测距传感器、相关摄像机和机械里程计等外设传感器的相关数据,并通过通信板传输给移动终端。模拟板D/A模块原理图如图2所示。

1.3 运动控制板

运动控制板的主要功能为控制移动机器人运动单元的运动状态,实现步进电机的控制。运动控制板主要由DRV8835模块、CH340模块、SWD接口和电源模块构成。DRV8835模块主要由4片DRV8835构成,用以驱动8个步进电机的运动。SWD接口可实现运动控制板主芯片的单独调试。运动控制板的CH340作为转接芯片,可实现USB转串口和USB打印串口。DRV8835的原理图如图3所示。

1.4 多核异构

多核异构控制器系统的硬件主要由通信主板、模拟板和运动控制板构成。每个微控制板搭载不同的主芯片和外设芯片,从而将控制器的特定任务分配给特定的控制板完成。各微控制器之间可通过增强型SPI连接,实现了各微控制板互为主从的通信模式。各微控制板即可单运行,也可多微控制板同步运行。如在模拟板进行多传感器数据采集的同时,运动控制主板进行服务机器人的运动控制,实现了多任务的同步运行,这种控制系统功能的多核化处理,降低了运算负荷,提高了系统的实时性和可靠性。

图2 D/A模块原理图

图3 DRV8835原理图

2 客户端监控系统

2.1 监控系统总体架构

设计了一种运载于终端移动平台的服务机器人监控器系统,便利了服务机器人的现场维护和维修。该监控系统总体架构如图4所示。

2.2 传感器数据获取

该监控系统使用Android中的Service组件实时获取传感器数据,即在Service的onStarCommand()函数中初始化传感器,获取传感器数据,并实时传输给SQLite中间数据库。首先设置传感器管理器,并获取相应传感器权限,其次,注册并实例化传感器监听器,然后获取传感器数据。

陀螺仪传感器和加速度传感器数据由空间X轴、Y轴和Z轴三方向数据组成,经如下算法获得设备实际运行状态数据。

图4 监控系统总体架构

If(event.Sensor.getType()=

Sensor.TYPE_GYROSCOPE)

{

float[]values_gy=event.values;

if(timestamp!=0)

{

//方向旋转角度初始值

float axisX=event.values[0];

float axisY=event.values[1];

float axisZ=event.values[2];

}

}

2.3 传感器中间数据库设计

该控制器监控系统选择Android移动终端支持的SQLite数据库作为中间数据库,用来存储和管理获取的传感器数据。先创建数据库monitordatabase,根据系统功能要求,创建sensordata_table(传感器数据表)和userdata_table(用户信息表)。

传感器数据表创建的关键代码如下:

Public void CreatTable_SensorData(

SQLitDatabase database)

{

String SensorTable=”create table

SensorTable(

id integer primary key autoincrement,

date Date,time Time,acc_xvalue Double,

acc_yvalue Double,acc_zvalue

Double,gyr_xvalue Double,

gyr_yvalue Double,gyr_zvalue Double);

Database.SQLexec(SensorTable);

}

对中间数据库可进行添加数据、更新数据、查找数据和删除数据等操作。监控系统中间数据库的构建和操作过程如图5所示。

图5 中间数据库的构建和操作流程

2.4 传感器数据可视化

传感器数据来源有两种:一种是移动终端自带传感器采集的数据;一种是由模拟板采集的数据,经中央通信板传送到移动终端的传感器数据。

获得传感器数据与当前时间数据,将时间数据传递给中间变量,然后匹配当前时间与中间变量不一致时,采集数据、刷新移动端可视化数据。传感器数据在移动终端上的可视化方式有动态文本和动态曲线两种模式。将移动终端与测试设备绑定测试,获得两种显示模式结果。

① 动态文本模式。该控制器平台的监控系统设计中设计了中间数据库,系统将会从每200 ms刷新一次的中间数据库中提取数据,并以动态文本的形式显示在移动平台界面。传感器数据动态文本显示界面如6所示。

② 动态曲线模式。为能够更加直观地观察传感器数据的变化幅值和趋势,监测系统使用可绘制图表的TChart控件,将传感器数据以动态曲线的形式显示在移动平台的界面。传感器数据动态曲线显示界面如图7所示。动态曲线使用户更容易发现错误数据和意外工况,方便了现场维护和维修。

图6 传感器数据动态文本显示界面

图7 传感器数据动态曲线显示界面

3 机器人图形化编程系统

研发了一种基于EngineerC开发环境面向多核异构的图形化编程系统——机器人图形化二次开发平台(RGIDE)。RGIDE由文件系统、拖拽系统、智能提示系统、图形交互模块、调试模块和显示模块组成。RGIDE实现了对移动终端和微控制板的程序代码的编写和二次开发,RGIDE的图形化简化了编程过程,降低了控制系统编程的难度,即便是初学者也能完成复杂代码的编写。图8为RGIDE的主界面。

图8 RGIDE使用界面

3.1 EngineerC开发语言

为实现面向多核异构控制器系统的调试与开发,研发了拥有自主知识产权的EngineerC开发语言。该开发语言以C语言为基础,结合C++和C#语言特点,实现了半结构化的自然语言编程。该语言为用户提供了图形化输入语言,用户根据编程逻辑,拖拽相关图形完成工程的建立和函数的添加,编程代码将在EngieerC开发环境后台自动生成。

3.2 RGIDE关键技术

编程代码的编写主要由图形交互模块实现,是RGIDE编辑的核心部分,图形交互模块可以实现基本语句代码交互和复杂表达式交互。

① 语句交互。RGIDE的语句交互主要实现在图形代码编辑区完成语句内容实质编辑。可实现的语句交互类型为定义变量交互,赋值语句交互,if/if…else…交互,for循环交互,while循环交互和return交互。如图9,第0行和第1行为定义变量交互编辑,第2行和第6行组成if交互编辑,第3行和第5行为while循环交互编辑。由此可见,此控制系统降低了对用户编程水平的要求。

图9 语句图形交互

② 复杂表达式交互。用户可通过复杂表达式交互的点击调用,将变量、常量和函数自由组合在一起,如图所示,通过点击相应图形输入单元格,可完成复杂编程程序的设计,如图10所示。

图10 复杂表达式图形交互

3.3 RGIDE应用

RGIDE为用户提供了简单易学编程平台,使得编程知识欠缺用户也可为该控制系统编写控制程序。使用RGIDE为该多核异构服务机器人通用可编程控制系统编程方便易学。图11展示了RGIDE为控制系统编写程序的编辑过程。

4 结束语

提出了一种面向服务机器人的基于多核异构模式的通用可编程控制器系统平台。完成了控制器系统的功能向各个微控制板的分配,实现了多核异构的模式设计,增加了系统的实时性和可靠性。通过客户监控系统,将传感器数据以动态文本和动态曲线形式,显示在移动终端的屏幕上,方便了系统平台现场维修和维护。同时基于EngineerC语言的图形化编程系统,降低了平台对用户的编程能力要求,实现了对系统平台的快速二次开发。经测试,该低成本控制器系统平台达到了较高可靠性和实时性,且该系统运行稳定可靠。

图11 RGIDE 编辑系统

猜你喜欢

控制板编程终端
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
X美术馆首届三年展:“终端〉_How Do We Begin?”
纺织机上诞生的编程
通信控制服务器(CCS)维护终端的设计与实现
轨道交通AFC导向标识控制板设计
GSM-R手持终端呼叫FAS失败案例分析
一种集成脚本控制单元的设计与实现
一种全隔离的无刷直流电机的反馈制动控制板的研究