左国玉, 刘洪星, 顾凌云, 胥子宸, 谢晓添
(北京工业大学 信息学部, 北京 100124)
魔方是一种益智玩具,复原魔方任意组合的转动次数的最小值也被称为“上帝之数”[1]。魔方机器人为益智表演类机器人,属智能机器人的一种,它能像人一样独立完成魔方的还原工作,在一定程度上表现出了机器的智能行为,魔方还原过程具有很强的观赏性,所以魔方机器人是一种对中小学生进行机器人教育、培养科技素质的适用平台。
解魔方机器人的研究与设计涉及多学科领域的知识和技术,包括魔方状态识别、复原算法研究、机器人执行机构的设计等[2]。目前,现有的魔方机器人仍有很多改进之处。文献[3]中其机械结构仅仅由2个臂组成,在旋转过程中,会增加很多步来考虑魔方的整体旋转;文献[4]不能同时完成爪子的开合与旋转,降低了工作效率;文献[5]给出了魔方求解的基本算法,但是算法步骤太多,会使机械手转动过程变长。
本文设计了一种基于智能手机的四面对称结构的解魔方机器人。它通过作为上位机的智能手机单元配合执行机构,快速采集三阶魔方各面颜色信息,决策系统根据还原算法解算出最佳还原方案,通过蓝牙与机器人下位机进行通信,使用PID算法控制电机、舵机和机械手共同作用以完成魔方还原动作。
图1为本文设计的解魔方机器人系统整体框图,该机器人由智能手机上位机系统和四面对称结构的下位机系统组成。上位机系统包含了颜色采集与处理系统、决策系统和通信系统3个子系统。其中颜色采集与处理系统实现了对魔方颜色的采集以及处理采集得到的图像,并以矩阵的形式保存;决策系统根据还原算法进行逻辑还原解算,实现魔方的解算功能;通信系统无线传输控制指令发送给下位机,实现了上位机与下位机之间的无线通信。下位机系统包含了控制与动作执行系统。控制系统对接收到的上位机数据进行处理,将处理后的指令发送给执行系统,控制电机驱动模块和舵机模块共同驱动机械手执行还原动作。
图1 解魔方机器人系统整体框图
机器人机械结构是实现魔方还原功能最基础的载体,其结构设计直接关系魔方机器人还原动作稳定可靠的执行。目前魔方机器人的机械结构主要有类人双臂式和四轴旋转式两种类型[6]。相比之下,四轴旋转式的魔方机器人在机械结构稳定性方面更具有优势,且4个机械手可共同进行控制,缩短还原所用的时间。图2为本文设计的一种具有四面对称形式机械结构的解魔方机器人系统。
它是一种具有高度对称性的由四组电机、舵机、配套齿轮及连杆组成的机构。四组执行机构单元共同协调配合从4个方向夹持和拧动魔方,使得执行一次有效步骤的效率大大提高,减少了魔方旋转过程中倒手的问题;舵机连杆连接与主轴同轴的轴承上,控制轴承沿主轴前后相对滑动从而控制机械手的开闭;手机固定支架可调节尺寸大小,可以固定不同尺寸的智能手机。
图2 解魔方机器人总装图
魔方的还原通过对机器人机械爪进行平移、旋转和开闭3种动作来实现。机械爪的开闭功能实现主要是由舵机的单摇臂转动带动L型推杆运动,L型推杆带动固定在主轴上的机械爪沿主轴前后滑动。若向后滑动机械爪打开松开魔方,向前滑动机械爪闭合夹持住魔方。机械爪闭合夹持住魔方后,由微型电机控制转轴转动小齿轮,小齿轮带动大齿轮,因为大齿轮和主轴固定在一起,所以主轴转动带动机械爪旋转,实现机械爪对魔方的拧动。如此,机器人根据控制指令控制机械爪进行一系列平移、旋转与开闭动作组合序列,即可实现魔方还原。
上述机器人的机械结构设计既解决了各机械爪旋转过程中可能产生的绕线问题,又能独立控制机械爪的旋转与开闭,互不干扰,提高了魔方的还原效率;四组执行机构共同执行还原动作,可提高还原魔方动作的稳定性,且可以最大程度的节省时间、提高效率,使该系统在解魔方操作中的稳定性和效率得以保障。
解魔方机器人的硬件电路系统主要包括系统控制模块、电源管理模块、通信系统模块、位置检测模块。图3为该机器人硬件电路系统。
图3 解魔方机器人硬件电路系统
硬件电路系统的控制中心,负责处理所有的数据以及控制电机以及舵机。选择使用主频为72M的 STM32F103ZET6作为控制器,其外设接口能满足信息传输和电机驱动的需要。
系统中一共使用3种电压12、6、3.3 V,12 V使用稳压电源给电机供电;由于12 V转6 V的压差过大,所以采用开关稳压来进行电压转换,转换出了6 V电压给舵机进行供电,最后利用线性稳压转换出3.3 V电压来给单片机进行供电。
魔方机器人下位机系统与智能手机之间的数据通信采用蓝牙方式,该机器人系统通过蓝牙模块接收上位机的决策发送的控制指令。由手机上位机系统发来的信息为32位数据,其中包括一部分校验信息。通过这些校验信息检验这些数据的传输正确与否。
实现的功能是检测并实时反馈电机转轴的位置给控制中心,从而得到机械爪相对于魔方的位置,便于进行下一步PID控制。检测模块选用的是磁编码器。磁电式编码器采用磁电式设计,因磁性材料角度或者位移的变化会引起一定电阻或者电压的变化,通过放大电路对变化量进行放大,通过单片机处理后输出脉冲信号或者模拟量信号,达到测量的目的,弥补了光电编码器在精度和体积上的缺陷,更具抗震、耐腐蚀、耐污染、性能可靠高、结构更简单。
解魔方机器人软件系统包含上位机系统和下位机系统两部分,其中上位机系统包含图像扫描采集、处理以及决策系统和通信系统,下位机监控系统主要完成数据处理、电机控制算法和蓝牙无线通信3个功能。
解魔方机器人上位机系统包括图像扫描与采集、图像处理、图像识别、决策系统、通信系统,上位机系统框图见图4。
图4 上位机系统框图
上位机系统设计利用安卓平台编写应用程序,在该应用程序里对手机自身的摄像头和闪光灯进行控制。该应用程序运行时,首先打开摄像头对魔方当前面进行扫描,若周围环境光照强度不足,控制手机的闪光灯打开,通过对灯光强度的调整,达到最好的采集效果,进行魔方6面颜色的扫描与采集。采集到的图像进行图像处理包括图像的预处理、图像的分割、图像的描述与特征提取[7],最后识别到完整魔方图像。决策系统是将识别到的魔方图像利用编写好的解魔方算法进行还原解算。利用智能手机的蓝牙功能将采集得到的数据矩阵发送给下位机系统控制机械爪的还原动作。
决策系统是手机上位机系统的控制中心,对识别到的6张图像按照色块矩阵的形式存储,并依照编写好的魔方还原算法进行魔方还原解算。魔方的还原方法很多,有层先法、角先法、棱先法、桥式方法、CFOP法等[8-9]。对比多种算法之间的优劣后,本文采用CFOP法。CFOP法是层先法通过F2L优化得到的。CFOP方法一共分4步: CROSS→F2L→ OLL→PLL,图5为执行流程, 图6为一个实现样例的还原步骤。具体实现步骤如下:
Step1:CROSS动作,在底层架好十字,并使底层和中间层的棱块颜色一致。
Step2:F2L动作,在第一层十字完成好的情况下,将前两层的颜色对齐。
Step3:OLL动作,完成前2步,前2层的魔方已经复原。第三步首先要调整顶面十字颜色一致,之后完成顶面的还原。
Step4:PLL动作,调整最后一层,先调整角块朝向,最后就调整棱块的朝向,完成整个魔方的还原。
图5 魔方算法执行流程
图6 魔方还原步骤
该机器人下位机监控系统流程如图7所示。下位机监控系统是控制执行机构还原魔方的最直接的部分,该系统的动作指令由蓝牙模块接收,控制中心依据动作信息控制机械爪电机和舵机的动作、进行魔方还原。位置检测模块的磁编码器实时反馈机械爪的位置信息,控制中心根据反馈信息利用PID控制器调节机械爪的角度、达到目标位置。
图7 下位机监控系统流程
图8为解魔方系统实物图。该系统具有四面对称结构,4个机械手位置对称且可独立控制,四轴旋转结构可以在魔方的4个面进行操控转动魔方,提高了还原魔方动作的稳定性;利用智能手机的摄像头采集。
图8 解魔方系统实物图
根据还原算法解算出魔方各面颜色信息最佳还原方案;通过蓝牙模块与下位机进行数据通信,实现上位机与下位机数据的无线传输,并使用积分分离式PID算法控制微型电机、舵机和机械手共同作用完成魔方还原动作。表1为10次魔方还原实验的数据。可以看到,该解魔方机器人可以在30 s内还原打乱的魔方,达到了机器人设计目标。
表1 魔方还原实验
设计和实现了一种基于智能手机平台的解魔方机器人,提出了一种四面对称形式的机器人执行机构,4组可独立控制的机械爪可以执行平移、旋转与开闭动作,协作完成魔方的还原动作。智能手机作为该机器人的上位系统,用于采集和处理魔方状态,并根据魔方算法解算得到的控制数据发给机器人下位机系统。实验表明,这种四面对称结构的魔方机器人可以稳定快速地还原魔方,魔方机器人的结构也可以应用在其他领域。
[1] Kasprzak W. Rubik’S cube reconstruction from singleview for service robots[J]. Machine Graphics & Vision, 2006, 15(3/4):451-459.
[2] 梁小龙. 解魔方算法的研究和系统实现[D]. 沈阳:东北大学, 2013.
[3] 黄铭, 陆思良, 孔凡让. 魔方还原机器人的视觉子系统设计与实现[J]. 机械与电子, 2013(5):60-64.
[4] 吴季泳, 郭锐, 杨桂平. 一种可自主抓取魔方的智能解魔方机器人及其解魔方方法: 中国, CN103350419A[P]. 2013-10-16.
[5] 何智勇, 贲可荣. 基于OpenGL的魔方自动求解算法与实现[J]. 哈尔滨工业大学学报, 2004, 36(7):893-895.
[6] Czajewski W. Visual identification of the Rubik’S cubein human environment[J]. Przeglad Elektrotechniczny, 2004,80(4):311-314.
[7] 陈凤东, 洪炳镕, 朱莹. 基于HSI颜色空间的多机器人识别研究[J]. 哈尔滨工业大学学报, 2004, 36(7):928-930.
[8] 王兴通. 基于TMS320C6416DSP的实时视频图像处理系统的研制[D]. 长春:东北师范大学,2005.
[9] 张艳珠, 古长军, 王凡迪,等. 魔方机器人控制系统设计[J]. 沈阳理工大学学报, 2016, 35(3):41-46.