虚拟现实技术下分拣机器人嵌入式遥控系统设计
2019-05-08
(1.湖北大学 商学院,武汉 430062; 2.湖北诠享科技有限公司,武汉 430062)
0 引言
机器人遥控技术是近年来机器人技术研究领域的一个重要分支,它实现了人工智能和机器人灵活运动的有机结合,使得人员无法到达的远距离作业现场和环境极其恶劣作业现场的分拣任务执行成为可能。近年来国内外针对机器人技术与虚拟现实技术的有机结合开展了大量研究和实践,虚拟现实技术的兴起和发展得益于机器人技术,与此同时虚拟现实技术又为机器人技术的进一步发展提供了强有力的技术支持,二者之间相互促进,在电缆巡检机器人、水下探测机器人、家用扫地机器人、水果采摘机器人、军事侦察机器人、手术机器人、汽车零件装配机器人、卫星探测机器人等众多领域显示出了巨大的优势,给人类生产、生活带来了极大便利[1-2]。
基于虚拟现实技术的分拣机器人嵌入式遥控系统设计已经成为工业领域极具发展潜力和应用前景的研究方向之一。利用虚拟现实技术实现分拣机器人遥控控制一方面是指操作者利用分拣机器人携带的多传感器系统,将操作者本身的位置信息和运动信息实时检测并作为控制命令发送给远程服务控制器中;另一方面操作者可以将远距离分拣机器人采集获得的视频信息、图像信息、数据信息等实时反馈给本地服务控制器,在系统操作者周围生成远程环境映射的虚拟环境,使得系统操作者能够身临其境地感受分拣机器人周围的环境变化,有利于系统操作者根据现场环境的变化作出正确的反映和决策,有效地控制分拣机器人完成复杂的分拣任务[3-4]。
为了克服当前遥控系统控制分拣机器人执行既定任务时存在目标轨迹跟踪效果不佳、跟踪误差较大,任务执行成功率较低、失误率较高以及系统响应延迟较长等缺点,提出并设计了基于虚拟现实技术的分拣机器人嵌入式遥控系统。
1 虚拟现实技术下分拣机器人嵌入式遥控系统
1.1 分拣机器人虚拟现实系统结构
分拣机器人虚拟现实系统结构主要包括五部分,分别为分拣机器人操作指令检测模块、操作指令反馈模块、操作指令传感器模块、操作指令控制模块和操作指令建模模块[5],具体结构体系如图1所示。
图1 分拣机器人虚拟现实系统结构
分析图1可知,分拣机器人操作指令检测模块主要用于检测用户的操作指令,并通过分拣机器人携带的传感器模块作用于虚拟环境;反馈模块主要用于接收来自分拣机器人传感器模块的数据,为用户提供虚拟环境实时反馈;传感器模块的作用主要有两方面,一方面用于接收来自用户的操作指令,并将操作指令通过分拣机器人作用于虚拟环境;另一方面将分拣机器人执行操作指令后产生的结果以反馈的形式上传给用户;控制模块主要用于控制分拣机器人携带的传感器,通过控制传感器影响用户、虚拟环境和现实世界。
1.2 基于虚拟现实技术的分拣机器人遥控
针对当前基于CAD系统的三维场景几何建模方法难以适应非结构化复杂环境的问题,采用机器视觉技术描述三维环境,设计了分拣机器人嵌入式遥控系统[6],具体组成结构如图2所示。
图2 分拣机器人嵌入式遥控系统结构示意图
分析图2可知,分拣机器人是一台包含多台传感器和智能的自引导小车,通过利用超声传感器、视觉传感器、磁传感器等多个传感器数据融合来实现导航,其中,系统智能代理服务器是一台具备高性能的服务器,主要用于处理分拣机器人和嵌入式遥控系统客户端数据,是整个系统的信息枢纽;嵌入式遥控系统客户端是一个接口控件,可以与任意计算机通过Internet连接,当客户端成功登录智能代理服务器取得访问权限后可以下载ActiveX控件对分拣机器人下达操作指令,控制分拣机器人执行分拣任务,嵌入式遥控系统客户端是分布式的,其具体界面显示如图3所示。
图3 嵌入式遥控系统分布式客户端界面显示
虚拟现实技术在分拣机器人嵌入式遥控系统的应用主要是通过采用三维建模软件建立分拣机器人及其相应环境的三维模型,在建模过程中引入机器人结构学和场景动力学,对分拣机器人运动行为及其与三维场景的交互加入约束条件,能够使得分拣机器人在虚拟场景下的行为更加真实自然;在此基础上,采用图形快速生成系统将分拣机器人及其与三维场景绘制出来,依据用户通过键盘、鼠标、控制盒等输入的操作指令产生需要的三维虚拟场景,同时采用系统中的立体显示设备将生成的三维虚拟场景实时反馈给用户。用户能够利用嵌入式遥控系统中的操纵杆等设备实时控制分拣机器人手臂、手腕、手肘等部位的转动以及分拣机器人在三维虚拟场景中的移动,还可以选择分拣机器人视角观察周围环境或从旁观者角度观察分拣机器人的运动行为等[7]。
利用虚拟现实技术设计分拣机器人嵌入式遥控系统主要是依据模块化、标准化、开放性和可用性原则实现分拣机器人具有临场感的操作指令输入输子系统和分拣机器人具有真实感的虚拟场景仿真子系统,前者主要负责控制分拣机器人操作指令输入、语音输入以及立体设备显示、触觉感知、声音感知和输出等等。后者则包括三维虚拟环境的三维图像快速生成和三维模型数据库管理[8]。如图4展示了基于虚拟现实技术的分拣机器人嵌入式遥控系统结构。
图4 虚拟现实技术下的分拣机器人遥控系统
将三维图形输入到系统的立体显示设备中,用户通过系统立体显示设备能够看到一个三维虚拟场景,同时利用分拣机器人的运动控制器控制机器人与三维虚拟场景相连,用户发出的诸如抓取、高举等操作指令被同时上传给虚拟场景仿真子系统和分拣机器人控制器中,通过控制分拣机器人的动作即可检验虚拟场景仿真子系统的精准性。
图5展示了基于虚拟现实技术的分拣机器人嵌入式遥控系统的基本功能单元和具体操作流程[9]。
图5 嵌入式遥控系统具体操作流程
用户通过键盘、鼠标、控制盒等输入设备将分拣机器人操作指令和观察者在空间中的位置信息发送给虚拟场景仿真子系统,同时将这些操作指令和位置信息处理后生成分拣机器人控制器能够识别的命令序列,将这些处理后的命令序列发送给实际分拣机器人,控制分拣机器人执行与命令序列对应的动作。虚拟场景仿真子系统接收到用户发送的分拣机器人命令序列和观察者在三维虚拟场景中的位置信息后,利用分拣机器人动力学和场景动力学模型,计算分拣机器人的各个关节及其相应构建在三维虚拟场景中的运动轨迹,根据计算结果获得一个变化后的分拣机器人模型和三维虚拟场景空间模型,完成三维图形实时生成和绘制,并将绘制成的三维虚拟场景空间模型展示在系统立体显示设备上,用户可以通过立体显示设备界面看到一个虚拟世界,同时还能够通过触觉反馈使用户感受更加真实,使用户操作更加准确。
根据上述系统各个功能模块分析可知,各个功能模块之间周期性地发送和接收系统共享内存中的数据,通过读写保护策略保证系统共享内存中数据的安全性和完整性,可以方便多用户在同一时间通过多个线程读取系统共享内存中存储的数据信息。在写入数据时,用户只需要通过一个线程即可享系统共享内存中写入,其他线程则处于等待工作状态。
1.3 嵌入式遥控系统软件程序设计
1.3.1 分拣机器人实时操作系统
采用QNX Neutrino系统作为分拣机器人本体控制器,QNX Neutrino系统具有较好的灵活性,且能够满足分拣机器人嵌入式遥控系统资源有限的要求。QNX Neutrino系统支持x86、SH-4、ARM等多平台。QNX Neutrino系统上所有运行的应用程序、驱动程序等都受到安全保护,该系统上的大部分组件都能够在运行失败后执行自动重启,不会对系统上运行的其他组件或内核产生影响。
在分拣机器人嵌入式遥控系统远程服务器终端安装QNX Neutrino系统提供的软件开发环境,并采用C++语音编写软件控制程序,利用路由装置将分拣机器人控制指令序列发送给机器人QNX Neutrino系统中。分拣机器人本体控制器在收到远程服务器终端控制指令后指令解析,将分拣机器人电机速度信息、电流信息、位置信息等指令通过工业现场总线EtherCAT发送到相应驱动器中,最终实现对分拣机器人的动作控制。
在QNX Neutrino系统中,各个程序进程之间主要通过文件、信号、消息队列、共享内存等多种方式实现通信。QNX Neutrino系统中的每个程序进程都有其特有的虚拟地址空间,可以通过采用mmap函数实现虚拟地址空间分配和共享内存释放。研究主要采用共享内存通信方式设计分拣机器人嵌入式遥控系统控制软件。
1.3.2 工业现场总线EtherCAT在系统中的应用
工业现场总线EtherCAT是一个德国公司生产的以以太网结构为基础的现场总线,工业现场总线EtherCAT不需要在每个节点处接受信息,且网络规模不受限制,能够为基于虚拟现实技术的分拣机器人嵌入式遥控系统提供强有力的网络技术支持。
1.3.3 分拣机器人嵌入式遥控系统软件设计
分拣机器人执行分拣任务主要通过遥控操作控制,利用模块化思想设计分拣机器人嵌入式遥控系统软件部分,采用共享内存的方式实现各个模块进程之间的通信。将系统软件控制程序划分为串口通信模块、通信传输协议解析模块、数据处理算法模块、分拣机器人控制器驱动模块、分拣机器人位姿数据模块、共享内存数据输出模块和分拣机器人操作指令键盘控制模块七部分[10]。系统软件控制程序具体工作流程如图6所示。
图6 系统软件控制程序具体工作流程
1)系统串口通信模块主要负责接收、检测、识别分拣机器人操作控制指令,并将操作控制指令存储到串口接收共享内存中;将串口接收共享内存中的分拣机器人实时状态信息发送给远程服务器。
2)通信传输协议解析模块主要负责将串口接收共享内存中的分拣机器人实时状态信息解析成操作控制指令,并将解析后的操作控制指令存储到协议解析接收共享内存中;将分拣机器人实时状态共享内存中的分拣机器人当前状态信息进行编码,同时存储到串口接收共享内存中。
3)数据处理算法模块主要负责将拣机器人实时状态共享内存中的分拣机器人当前状态信息处理成控制器控制指令序列,采用IMU数据及其驱动器反馈的数据进行闭环控制,将分拣机器人闭环控制指令序列存储到相应驱动器发送共享内存中;将驱动器发送共享内存中的分拣机器人电机控制器运行状态信息和操作控制指令转化为分拣机器人本体状态信息存储到分拣机器人状态信息共享内存中。
4)分拣机器人控制器驱动模块主要负责将分拣机器人状态信息共享内存中操作控制指令序列发送给分拣机器人相应电机驱动控制器,实现电机驱动控制;将电机驱动控制器的速度信息、电流信息、位置信息等存储到驱动器接收共享内存中。
5)分拣机器人位姿数据模块主要负责读取分拣机器人执行分拣任务时的实时位姿信息,并将读取信息存储到分拣机器人位姿数据模块中。
6)共享内存数据输出模块主要负责将系统各个控制器共享内存中的数据输出到远程终端服务器,便于用户实时查看和调试。
7)分拣机器人操作指令键盘控制模块主要负责调试远程终端服务器对整个嵌入式遥控系统的操作指令。
2 系统性能测试与结果分析
为了测试研究提出并设计的基于虚拟现实技术的分拣机器人嵌入式遥控系统的性能优劣,采用一台操作系统为Windows7,CPU主频为1.8 GHz,硬盘容量为120 GB,显存容量为3 GB,运行内存为8 GB的电脑PC机作为分拣机器人远程服务器终端,用于控制分拣机器人动作。
以工业领域投入应用的3自由度分拣机器人为例,如图7和图8所示测试了该分拣机器人跟踪性能。
图7 目标轨迹跟踪效果图
图8 分机机器人目标轨迹跟踪误差测试结果
从图7和图8的实验结果中可以清楚地看出,设计系统控制的分拣机器人取得了较好的目标轨迹跟踪效果,无论是X方向、Y方向、Z方向目标轨迹跟踪误差,还是角度跟踪误差都能在较短时间内消除,同时设计系统通过采用虚拟现实技术模拟三维场景,使得用户能够在听觉、触觉、感觉等多方面身临其境,对造成分拣机器人目标轨迹跟踪干扰的因素及时作出了相应动作,克服了多种干扰因素对目标轨迹跟踪效果的影响,使得分拣机器人沿着设定轨迹移动;另外,设计系统充分考虑了分拣机器人电机控制器速度信息、电流信息、位置信息等以及分拣机器人本体位置信息的反馈采样,并且通过不受网络规模限制的工业现场总线EtherCAT发送给远程服务器终端,终端用户可以根据分拣机器人当前状态信息对嵌入式遥控系统进行调试,大大减小了目标轨迹跟踪误差,获得了比较理想的目标轨迹跟踪效果,为后续进一步执行分拣任务奠定了良好基础。
为了进一步检验设计系统的性能,分别测试了分拣机器人执行0~1200个任务的成功率、失误率以及耗时情况,如图9~图11所示。
图9 分拣机器人任务执行成功率测试结果
图10 分拣机器人任务执行失误率测试结果
图11 分拣机器人嵌入式遥控系统响应延迟测试
分析图9~图11的结果可以发现,采用设计系统控制分机机器人执行任务时,随着任务量的增多,任务执行成功率有所降低,但很快又恢复,这是由于设计系统采用QNX Neutrino系统作为分拣机器人本体控制器,具有较好的灵活性,该系统上的大部分组件都能够在运行失败后执行自动重启,不会对系统上运行的其他组件或内核产生影响,保证了任务执行成功率,同时也降低了任务执行失误率;除此之外,设计系统在执行不同数量分拣任务时,响应延迟时间较短,最长没有超过0.025 s,这是由于设计系统采用工业现场总线EtherCAT作为系统程序进程之间的通信软件,为分拣机器人嵌入式遥控系统提供强有力的网络技术支持,使得用户输入的操作指令能够快速到达系统控制器,控制分拣机器人完成任务,大大缩短了系统响应延迟时间。
3 结束语
随着科学技术水平的不断提高以及国民经济的快速发展,机器人技术得到了大力推动,遥控分拣机器人成为机器人领域中的一个重要分支,成功地将人工智能识别技术与机器人的灵活性有机结合,让原来作业场景的工作人员通过输入控制指令控制位于现场的分拣机器人即可完成既定操作任务。为了实现分拣机器人的远程操控提出并设计了基于虚拟现实技术的分拣机器人嵌入式遥控系统,通过系统性能测试结果表明,利用设计系统能够实现分拣机器人的高精度控制,具有较快的系统响应性能。