一种基于SVM分类器的双臂二指解魔方机器人

    张建新 焦帅峰 范雄 陈奎 贾子伟

    

    

    

    【摘 要】 近年来,智能机器人逐渐走进人类的日常生产生活,而解魔方机器人因为其无与伦比的趣味性和炫酷的交互性,正成为人工智能的研究热点。本解魔方机器人采用了最为简单的机械结构,通过SVM分类器实现对魔方色块颜色的精准识别,通过机械步骤解算方案将解算步骤转换成机器人可以直接执行的机械步骤,最终完成了一个快速且稳定的双臂二指解魔方机器人。

    【关键词】 机械结构 SVM分类训练 步骤解算 控制方案 双臂二指

    1 机械结构设计

    1.1 机器人总体框架的设计

    考虑到机器人要能够实现双臂的高速旋转,框架的设计上为确保魔方机器人的平稳运行,整体框架采用全金属的铝型材搭建,再则考虑到控制器模块、电源模块、稳压模块、继电器模块、高频气阀开关、气缸的位置摆放,使用了轻质的木料,以此作为各个模块结构的支撑平台;将两个摄像头放置在效果最佳位置处,减少图像识别所需的机械步骤,避免摄像头的冗余。3D图如图1,实物图如图2。

    1.2 机械臂结构

    机械臂由高精确度高转速的伺服电机、高转速的滑环以及平行滑轨组成,两个机械臂固定在具有45°斜角的铝型材上,为消除电机转轴与滑环径向不共轴的影响,在它们之间采用弹性联轴器,滑环定子部分固定在铝型材上,平行滑轨与滑环转子相连接。

    1.3机械抓手

    抓手是通过solid works绘制图形,使用强度高的ABS材料进行3D打印,经过了多次设计比较尝试后,最终选择了如下图3所示的组件构成抓手。

    1.4气源支架

    因气源重量大,为使气源容易取出,如上图4所示,根据抽屉的工作原理,在平台上设计了一个可以来回推动的气源支架,当需要充气时,可以将支架抽出,正常工作时,将气源放于支架上,然后推入。在规定范围内,这种设计,不仅稳固,且方便气源的取放。

    1.5 双摄像头最佳摆放方案

    在顶面和底面各放置一个摄像头,一次性采集4个面的颜色(F、B、U和D),随后只需左手带动魔方整体转动90度,就能采集另外两个面的色块信息(R和L)。通过这种方法,只需要电机转动一次就可以将所有的色块信息全部采集完成,减少了图像处理的时间。

    2 控制系统设计

    采用PC作为上位机,用于控制摄像头,将图像处理所得信息通过串口发送给下位机;采用STM32F407主控板作为下位机,用于控制电机驱动器进而驱动伺服电机,控制继电器进一步控制高频电磁阀,进而控制气动导轨,最终实现解魔方的功能。整体控制体系如图5所示。

    2.1控制部分软件设计

    使用通用定时器产生一定频率的脉冲信号(PWM波占空比固定),再使用另一定时器对脉冲进行计数。通过伺服电机的细分数计算电机转动90度、180度所需要的脉冲个数,进而控制手臂转动相应的角度。抓手部分使用I/O口产生高低电平,分别控制抓手的开闭。控制部分程序流程如右图6所示。

    2.2解算步骤转换成机械步骤

    上位机产生解算步骤后,需要将解算步骤转化成机械手能执行的机械步骤,本魔方机器人有两个操作面,规定初始时刻‘D在左手操作面,‘B在右手操作面,每一次转动完成之后,机械手的状态(末态)组合只有三种(左右手在初位置;左手在初位置,右手不在;左手不在初位置,右手在初位置),下一次转动从上一次机械手的末态开始,这样就有效的减少了冗余動作。魔方之间的坐标变换如表1:

    规定初始时刻魔方各个面所在的位置为参考坐标,如上图7所示。上位机的解算步骤执行一步,魔方各个面的位置就会在参考坐标上变换一次。每执行一次上位机的步骤就实时更新魔方面的坐标,再配合机械手的三种末态,完成上位机的步骤到机械手步骤之间的转换。

    3 基于SVM分类训练的颜色识别方案

    使用 SVM 分类器,实现魔方 54 个色块的识别。首先,在正式开始识别之前, 使用摄像头获取魔方的 6 种色块的在不同位置的多个样本,将这些样本保存在一个文件夹中, 如图 8。 然后获取样本中每个像素点的 BGR 值,将这些 BGR 值作为样本数据开始训练,并为每种颜色的训练数据设定相应的标签。测试时,通过摄像头拍摄6个面的图片,共4张,将图片保存在同一个文件夹中, 随后调用照片,通过设定每个色块的坐标,提取相应坐标的 BGR 值与实现训练的6种颜色类型进行匹配,进而获得魔方 54 个色块的颜色。原图如图 9,颜色识别的效果图如图 10。

    4 结束语

    通过巧妙地机械结构设计,实现了整体结构的极简性。采用SVM分类训练使得机器人在不同的外界环境下也可以完美的识别色块颜色,实现了稳定性。通过步骤结算方案,实现了将解算步骤转化为步骤最少的机械步骤,实现了快速性。

    【参考文献】

    [1] 毛星云等编著.Opencv3编程入门[M].北京:电子工业出版社,2015.

    [2] 谭浩强编著.C++面向对象程序设计[M].北京:清华大学出版社,2006.

    [3] 白志刚编著.自动控制系统解析与PID整定[M].北京:化学工业出版社,2012.

    [4] 代勇等编著.Visual C++网络通信编程技术详解[M].北京:机械工业出版社,2011.

    [5] 谢钧,谢希仁编著.计算机网络教程:微课版[M].北京:人民邮电出版社,2018.

相关文章!
  • 融资融券对日历效应的影响:来

    王璐摘 要:过去的研究表明,中国股市的运行效率受到政府监管与干预并存在非对称交易的现象。2010年3月31日,中国股票市场实行了融资融券

  • 渭南抗战纪念碑之谜

    杜尚儒日前,记者获悉,在陕西省渭南市临渭区交斜镇,有一座“抗日阵亡将士纪念碑”,距今已超过七十年的历史,比抗日战争胜利纪念日还要早

  • 公司治理、内部控制对盈余管理

    金玉娜柏晓峰摘 要:按照形成原因——作用机理——解决机制的路径,对抑制盈余管理有效途径的实证研究表明:机会主义偏误和技术性错误是盈余