APP下载

基于STM32的智能魔方还原机器人设计

2023-01-10翟东丽杜青松何兆丰

机电工程技术 2022年12期
关键词:下位魔方上位

翟东丽,杜青松,程 伟,何兆丰

(1.广东省机械研究所有限公司,广州 510700;2.广州华立学院,广州 511325)

0 引言

魔方作为一个智力开发训练玩具在生活中广泛被人们使用。魔方中最为常见的是三阶魔方,其结构简单但还原过程复杂。目前设计的常见魔方还原机器人有六臂旋转型(如美国MIT设计的和德国Sub1Reloaded设计的)和底面翻滚型(如LEGO的EV3),然而前者直接将魔方的中心块位置与电机轴刚性连接,每个电机都控制一个面,标准三阶魔方的中心块需要进行改造。然而这种形式的解魔方机器人破坏了魔方的完整性,而且魔方安装到机器人上后不可拆卸,无法和人做互动[1]。后者机械结构稳定性差,解算成功率不高。因此综合利用机械、电子、计算机等多学科知识交叉应用,设计一种高速、高成功率、可交互的解魔方机器人将会受到人们迫切的期待。

本魔方机器人系统采用了STM32f103处理器为平台,承担魔方还原控制功能和驱动电机转动还原魔方的作用。上下位机互相通信转换算法采用定长度数据包。设计自适应补光视觉系统获取魔方各个面的图像、然后进行图像处理和颜色识别,图像处理过程采用k-means聚类算法进行聚类与分割获取魔方状态,通过二阶段算法运算后得到魔方还原路径。采用sin函数曲线的1/4周期作为解魔方机器人机械臂驱动电机的加减速曲线,精确控制电机及末端执行器抓取魔方进行转动,实现魔方还原功能。

1 总体设计

本次设计的魔方还原机器人采用一种二臂二指型锁臂环结构,机器人有两个手臂,每个手臂有两个自由度。一个是由步进电机驱动的手腕转动自由度,另一个是由气缸驱动的手指开合自由度。机器人结构整体采用铝合金框架结构,连接处采用铸铁和碳纤维板。在手腕处,采用气电滑环防止线路缠绕[2]。如图1所示。控制系统中,下位机采用STM32f103控制板,负责与上位机通讯以及控制步进电机和气缸。上位机程序采用C#编写,负责与下位机进行串口通讯,以及统筹协调摄像头处理程序和算法程序。控制算法上采用了Herbert Kociemba的Two-Phase-Algorithm算法,该算法又称二阶段算法[3],通过降低魔方的混乱程度,达到复原效果。魔方状态图像采集采用4个fpv摄像头,分别固定于魔方上、下、左、右4个方向,图像采集经emguCV滤波处理后,采用k-means聚类算法进行聚类与分割。

图1 魔方机器人整体结构

2 硬件设计

2.1 接口通讯

上位机使用C#语言编程环境的Windows系统个人计算机,串口通讯采用了自带的SerialPort控件,下位机使用STM32f103c8t6的硬件串口USART1。上下位机通讯的协议[4]如下。

上下位机互相通信的内容总共有3种:上位机发送第二次采集图像指令;下位机发送第二次采集图像完成指令;上位机发送动作序列指令。上位机发送第二次采集图像指令和下位机发送第二次采集完成指令仅是一个触发信号,不需要大量数据传输。因此数据包大小取决于上位机发送动作序列指令的大小。考虑到信息传输量小,信息传输时间对整体解魔方时间影响小,因此采用定长度数据包。

2.2 驱动电机速度控制

魔方机械臂动作采用步进电机来驱动。在正常工作状态下,步进电机位移输出与数字脉冲严格同步。在实际使用中,若步进电机在加速与减速过程中脉冲频率变化不合理,步进电机会产生抖动现象,极大地降低了系统的稳定性。同时,若步进电机加速或者减速过猛,魔方会因转动过程中受力不均匀而产生局部错位,长期使用会导致魔方崩裂。因此,必须合理设置步进电机的加减速运行曲线,在保证运行稳定性的前提下尽可能提高速度。

考虑到梯形曲线的加减速过程不能光滑过渡,而S型曲线的加减速调参过程较为复杂,本设计采用sin函数曲线的1/4周期作为解魔方机器人机械臂驱动电机的加减速曲线[6]。图2所示为魔方机器人机器臂驱动电机sin加速过程,用sin函数曲线对步进电机进行加速控制,设目标速度为A,可以通过控制脉冲数目来控制步进电机角位移。

图2 魔方机器人执行电机加减速曲线

2.3 视觉系统

魔方状态图像采集采用4个fpv摄像头,分别固定于魔方上、下、左、右4个方向,图像采集经emguCV滤波处理后,采用k-means聚类算法进行聚类与分割[7-8]。采用透视变换与图像拼接的方法,可把4个摄像头拍摄的6个魔方表面图片拼接为一张图片。

2.3.1 颜色空间的坐标变换

视觉系统未标定前的图像采集数据点是沿着(0,0,0)到(255,255,255)方向成带状分布的数据。而正常的同一类数据点,应该是在一个不太大的球体中均匀分布。因此一个显然的解决办法是将数据整体沿着向量(1,1,1)方向压缩,直到带状分布变为球状分布。

2.3.2 自适应补光系统设计

由于解魔方机器人主要的传感设备为摄像头,而视觉设备对于外界光照环境的敏感度非常大,因此一个好的视觉环境对于颜色识别极为重要。若魔方处于强光直射条件下,或者光源以魔方表面为镜面反射到摄像头上,则在视野中会出现局部高光[9]。高光现象对于颜色识别算法是致命的,一旦出现将会无法正确识别。

对于魔方上面的白色块图像,在暗色光照条件下,略微发蓝,在一定程度上会影响视觉系统对魔方颜色的识别,如图3所示。

图3 暗色光照条件下魔方白色块图

为解决上述光照条件问题,魔方还原机器人的视觉系统采用自适应LED补光灯进行补光。通过脉宽调制信号(PWM)控制的可控亮度LED补光电路[11]如图4所示,其中PWM信号由下位机STM32产生。

图4 视觉系统LED补光电路

3 软件设计

一个完整魔方还原计算求解过程总得来说分为两大模块,一个模块是负责人机交互、统筹全过程的上位机主控程序,其逻辑流程[3]如图5所示。另一模块是各个流程环节的功能模块,包括图像采集、下位机、图像处理、算法转换等模块。

图5 魔方机器人主控程序流程

上下位机互相通信转换算法采用定长度数据包,通过测试得出的动作序列中动作步骤数目平均值为75,取二倍余量,数据包的长度为150个无符号8位整型数。定义第1个数据为包头,为固定值0XAA,定义最后一个数据为包尾,为固定值0XBB。中间148个无符号8位整型数为数据段。下面将逐个描述3种指令的数据段格式。若指令为上位机发送第二次采集图像指令,则数据段148个字节据皆为0XFF;若指令为下位机发送第二次采集完成指令,则数据段148个字节据皆为0XEE;若指令为上位机发送动作序列指令,从数据包第2字节,即数据段第一字节开始,每一个字节都代表一个动作步骤,其余字节以0XBB填充[5]。

表1 上下位机互相通信协议内容

视觉系统自适应补光算法程序结构由4部分组成:上位机控制程序、下位机补光程序、聚类算法程序和图像采集程序。上位机控制程序负责总体的统筹兼顾,下位机补光程序负责按照上位机控制程序的要求点亮不同亮度的LED,图像采集程序负责采集图像,聚类算法负责给出某一亮度下聚类可区分度[10]。

由于聚类可区分度越大,聚类效果越好。因此需要遍历所有256个光照强度等级,找到使得区分度最大的光照强度。当机器人被搬动或者所处环境光照条件有较大变化时,调用自适应补光算法对各个补光灯的亮度重新调整。

4 测试验证与结果分析

根据以上软硬件设计,制作安装魔方还原机器人整体实物结构如图6所示。通过编程程序测试机器人进行魔方还原实验,本设计魔方还原机器人经历20次将随机打乱的三阶魔方还原实验中,平均耗时21 s。算法转换采用的带剪枝的深度搜索算法平均机械步骤78步,用时约300 ms。还原过程中Kociemba算法运行平均人工步骤20步,用时约800 ms。传统的层先法虽然思想简单,但是平均需要大约150步,步数稍微短一点的CFOP算法也要在100步左右。结果显示本魔方还原机器人明显优于其他结构和传统算法魔方还原机器人。

图6 魔方还原机器人整体实物

5 结束语

本魔方机器人系统采用了STM32f103处理器为平台,上下位机采用定长度数据包进行通信,设计了自适应补光视觉系统获取魔方各个面的图像进行处理和识别,通过二阶段算法运算后得到魔方还原路径。采用加减速曲线精确控制步进电机及末端执行器抓取魔方进行转动实现魔方还原功能。通过多次实验验证,本次设计的智能魔方还原机器人平均耗时21 s,可实现对任意打乱魔方状态进行还原。还原过程深度搜索算法平均机械步骤78步,用时约300 ms。Kociemba算法运行平均人工步骤20步,用时约800 ms。体现了本设计智能魔方还原机器人良好的可靠性、快速性和交互性[12-13]。

猜你喜欢

下位魔方上位
魔方廖
提高火力发电厂自动电压控制系统投入率的措施
发射机房监控系统之下位机
要攻城略地关键要有好筹码,这匹水产动保“黑马”如何能迅速上位?
成语魔方
特斯拉 风云之老阿姨上位
楼房魔方
基于ZigBee和VC上位机的教室智能监测管理系统
小魔方
围观党“下位”,吐槽帝“登基”