刘树博,葛远香,魏佳宝,汤宗伟,周王军

(东华理工大学 机械与电子工程学院,江西 南昌330013)

0 引 言

自从厄尔诺·鲁比克教授于1974年在匈牙利创造了魔方之后,魔方文化迅速发展,得到了世界各地人们的关注和喜爱。到目前为止,人们对魔方的研究不只局限于结构方面,还对其还原问题进行了探索,旨在进一步提高解魔方的速度。

近些年,机器人技术已在民用和工业等领域取得了重要的应用,大大提高了人们的工作效率,因此将机器人用于解魔方操作,设计实用高效的解魔方机器人,引起了诸多学者的广泛关注,具有很大的实用价值和创新性。

文献[1]基于STM32设计了两自由度解魔方机器人,在实际操作任务中验证了所提出方法的有效性;文献[2-3]设计了两两相对且相互垂直的4个机械手臂来执行魔方复原操作;文献[4]利用LEGO组件分析和设计了机器人的机械结构,编写了机器人的电机控制指令,利用颜色传感器和超声波传感器,最终实现了魔方的智能还原。文献[5]设计了一款解魔方气动组合机械手,利用气爪的夹持,伸摆气缸的伸缩和摆动,实现魔方还原。综合国内外研究现状,尽管国内外学者在解魔方机器人领域取得了一定的成果,现有魔方机器人仍然存在成本较高、体积大、普及程度不高等问题;此外,机器人稳定性能和解魔方操作速度也有待于进一步提高。

本文基于国内四轴解魔方机器人研究的基础上进行创新升级,使用4个步进电机和4个舵机的组合,重新设计机械结构,由步进电机控制机械臂的旋转,舵机控制机械爪的开合,实现对打乱魔方的自动还原。该系统具有更快的还原速度,结构上也更加稳定、美观,且造价较低,使解魔方机器人的推广应用成为可能。

1 系统设计方案

解魔方机器人由下位机和上位机两部分构成,其中,下位机由单片机STM32F407VET6及其外围电路、步进电机驱动电路、光电开关接口电路、舵机驱动接口电路、蓝牙通信接口电路、电源电路组成;上位机为Android 7.0智能手机构成,包括手机摄像头和蓝牙模块。上位机与下位机通过蓝牙进行无线通信,以完成控制指令的实时发送。系统总体结构如图1所示。

图1 系统总体结构

基于上述结构,系统需要解决以下三方面问题:

1)解魔方机器人机械结构的设计,使机器人能够稳定、准确地旋转魔方面,翻转魔方;

2)解魔方机器人下位机硬件电路的设计,包括系统的电源电路、执行器控制电路及通信电路;

3)解魔方机器人软件的设计,实现对步进电机和舵机的控制,上位机和下位机的无线通信,Android手机的魔方识别以及魔方还原步骤的计算。

2 系统机械结构设计

2.1 机器人总体机械结构设计

机器人总体机械结构如图2所示。解魔方机器人主要由主框架、支撑件及机械臂组成,其中,框架结构由4根长为335 mm和4根长为150 mm的2020铝型材料组成,起到支撑和固定系统其他部件的作用。系统包括4组机械臂,通过抓取实现魔方面旋转和魔方翻转等动作。

图2 机器人机械结构

支撑件由机械臂支撑件和手机支撑座组成。机械臂支撑件将机械臂通过T型螺母与主结构相连接,并为光电开关传感器提供了固定座;步进电机通过4 mm螺母与支撑件相连接固定,光电开关通过3 mm螺母固定在上面。此外,系统提供了手机支撑座结构,手机支撑座通过T型螺母与主结构连接,为手机提供支撑,使手机放在凹槽之中,以实现魔方的状态采集与控制。支撑件结构如图3所示。

图3 支撑件结构

2.2 机械手结构

为实现魔方的旋转和翻转,系统设计了一种由两相四线步进电机、数字舵机和光电开关传感器组成的机械臂,机械臂的结构如图4所示。其中,步进电机用来实现机械臂的旋转,数字舵机实现机械臂的张开和闭合,光电开关传感器用来判断步进电机原点位置。当只有1个机械手夹住魔方,而其他机械手处于放松状态时,步进电机带动主轴旋转可以实现对魔方整体的旋转;当4个机械手同时夹持魔方时,1个步进电机旋转则可实现对魔方某个面的旋转。

图4 机械手结构

3 机器人下位机硬件电路

下位机硬件电路主要包括步进电机驱动电路、MG90D舵机接口电路、光电开关接口电路、蓝牙通信电路及电源电路。系统选取STM32F407VET6作为机器人下位机主控MCU,选取DRV8825驱动芯片实现步进电机的驱动,选取光电开关传感器EE-SX671用于步进电机的回原点检测。

3.1 电源电路设计

通过电源配适器将220 V电压转换为12 V/6 A电源,用于驱动步进电机,使用ASM1084-5V大电流线性稳压芯片将12 V转换为5 V,给蓝牙、舵机和光电开关供电;此外,通过BL1117-5V小电流线性稳压芯片将12 V转换为5 V,再将其通过BL1117-3.3 V稳压芯片转换为3.3 V电压,给下位机主控芯片供电。设计中应将大电流和小电流器件隔离开,减少相互干扰,以提高电源稳定性。

3.2 步进电机驱动电路设计

系统使用额定电压为12 V的两相四线步进电机42BYGH40-1704A和DRV8825步进电机驱动模块,通过排针方式与接口电路相连接,通过3位拨动开关接上拉电阻组成模式选择电路,在EN管脚接下拉电阻,使DRV8825默认使能;在VMOT管脚和GND之间接入100μF/50 V的去耦电容,以防止电路噪声影响其自身性能。具体的驱动电路如图5所示。

图5 步进电机驱动电路

3.3 舵机驱动接口电路设计

系统选用4个MG90D舵机,舵机接口电路使用5 V电源供电,通过STM32的PB9、PB8、PB5和PB4管脚输出PWM控制伺服舵机,并使用管脚连接器连接舵机。舵机驱动接口电路如图6所示。

图6 舵机驱动接口电路

3.4 光电开关接口电路设计

系统使用4个EE-SX671光电开关传感器[6],用来检测4个机械臂中步进电机原点位置,其接口电路如图7所示。其中,传感器使用5 V电源供电,其输出管脚3分别与MCU的PC4、PC5、PB0和PB1口连接。

图7 光电开关接口电路

4 解魔方控制算法

解魔方控制算法可分为两个部分:第一部分为魔方状态识别算法,以完成对魔方初始状态的提取;第二部分为魔方还原算法,用来实现魔方的还原操作。

4.1 魔方识别算法

为了实现对魔方初始状态的识别,需要对魔方各个面中的块颜色进行识别。机器人上位机利用摄像头对特定区域内的HSV颜色值进行提取[7-9],通过阈值法识别魔方,具体流程如图8所示。在识别出一个魔方面后,上位机会给下位机发送控制指令,使魔方旋转到下一个面继续识别,以此类推,直至魔方所有面识别成功。

图8 魔方颜色识别流程

4.2 魔方还原算法

当魔方6个面识别成功后,系统将会获得一个魔方状态,生成魔方的状态表,该表包含了要还原的魔方状态和复原的魔方状态。若为正确的魔方状态,系统将利用二阶段搜索算法[10-12]作为魔方还原算法,在状态表里搜索从初始魔方的状态到还原状态的最短路径,并将其转换为机械臂控制指令,缓存入指令发送队列中。具体的魔方还原算法流程如图9所示。

图9 魔方还原算法流程

5 系统软件设计

5.1 上位机软件设计

由于手机具有体积小巧、灵活便捷、智能化程度高等优点,因此系统选取Android手机作为上位机,利用Android开发平台,基于Java语言对手机APP上位机软件进行开发[13-15],实现对机器人的总体控制。上位机APP软件利用手机摄像头识别魔方初始状态,通过魔方还原算法获取还原路径,最后通过蓝牙将控制指令发送至下位机,以控制机械臂还原魔方。上位机主流程如图10所示。

图10 上位机主流程

5.2 下位机软件设计

解魔方机器人下位机能够实时接收并实现由Android手机发送的控制指令。通过对以上设计任务的分析可知,下位机软件需要完成两个部分,一个是指令解析处理部分,一个是相应指令执行部分,以实现对步进电机和舵机的控制。下位机主流程如图11所示。

图11 下位机主流程

6 系统功能测试

为了验证所提方案的正确性,课题组实际制作了解魔方机器人样机,并对系统软硬件进行了实际测试。解魔方机器人样机如图12所示,其中,1为机械臂支撑件;2为主框架;3为光电传感器开关;4为步进电机;5为数字舵机;6为手机支撑件;7为解魔方用智能手机。

图12 机器人样机

解魔方操作过程如图13所示。上位机手机APP识别界面如图14所示。其中,图14a)为单个魔方面识别成功图;图14b)为所有魔方面识别成功图。

在软件调试过程中发现,上位机对魔方小块的颜色识别率并不是很高。基于获取到的各魔方小块HSV颜色,通过反复调试,对官方提供的HSV颜色阈值进行了修改和调整,从而大大提高了魔方小块颜色的识别成功率。修改后的HSV颜色空间阈值如表1所示,具体的实验数据如表2所示。

图13 机器人操作过程

图14 手机魔方识别界面

表1 修改后的HSV颜色阈值表

表2 魔方还原实验数据

7 结论

本文对四轴解魔方机器人的机械结构、硬件电路、上位机和下位机软件部分进行设计,并对机器人样机进行了制作。系统调试结果表明,机器人解魔方速度较快,系统性能稳定,验证了系统设计方案的合理性,达到了预期的设计效果,对解魔方机器人的发展奠定了基础。