今年年初参加中国工程机器人大赛暨国际公开赛,搬运机器人、摄像头车型赛赛道,当初摄像头搬运机器人机器视觉部分选用的树莓派4B加上USB摄像头方案,前期运行速度慢的时候还好,勉强能正常巡线不脱轨,后期要提高运行速的时候,反馈完全根本上,总是已经过线了,跑出去很远了,树莓派才发出警告信息,很是头疼。正好借助此次机会,使用旭日X3派,看看能不能很好改善这个问题,顺便把参加比赛的摄像头搬运机器人这个小项目分享给大家(水平有限,如有写的不好的地方请多多谅解)。
0摄像头搬运机器人实现具体效果and参加比赛任务书
比赛评判标准其实官方给的很细,要是对这个比赛感兴趣的旭友可以去举办方官方看具体细节,以下给出比赛官网还有具体任务书
官网链接:中国工程机器人大赛暨国际公开赛 (robotmatch.cn)
比赛任务书:2014中国机器人大赛暨RoboCup公开赛 (robotmatch.cn)
搬运任务简化一下就是:标有A、B、C、D、E子母的白色圆圈处都有需要搬运的物块(表面涂有不同颜色的圆柱形物块),摄像头搬运机器人要根据物块不同的颜色,把物块搬运到对应颜色的区域。
1系统整体设计
1.1机器人类型
摄像头三轮式搬运机器人
1.2机器人的组成
抓取单元;运动单元;信息采集单元;控制单元。
1.3机器人的整体方案设计
该搬运机器人由抓取单元;运动单元;信息采集单元;上位机;下位机六部分组成。抓取单元完成抓取和放置物块任务,运动单元完成车辆的行驶功能,信息采集单元负责周边信息的采集,控制单元包含上位机和下位机两部分,上位机负责环境感知和信息传输,下位机负责控制抓取单元和运动单元并接受来自上位机的指令。
车体主要使用材料包括亚克力板、3D打印材料及一些金属杆件。小车的上底座和下底座均由亚克力板经过激光切割而成,所运用到的硬件主要是通过设计及建模再由3D打印机打印出模型,结合螺钉螺母等常用零件进行固定。
1.3.1控制单元
采用ATmega2560(下位机)、旭日X3派(上位机),由摄像头采集图像后传给旭日X3派进行分析,然后将指令传输给下位机控制电机实现行驶和搬运。
1.3.2信息采集单元
信息采集单元由两个免驱USB摄像头组成。一个摄像头用于颜色识别,一个摄像头用于视觉循迹和车身位置的引导。
1.3.3抓取单元
抓取单元包含一个MG90舵机和一个42步进电机,核心设计是直筒式多功能机械爪,承担物料的抓取,推,拉以及储藏任务。
1.3.4运动单元
运动单元包含两个42步进电机和一个万向轮,承担小车的转向,前进等任务。
我们的旭日X3派在这里给个特写
2机械结构设计
2.1结构简介
搬运机器人机构设计中,设计核心是机械爪的设计,需要能够精准地抓住物块,并可以同时抓取和存储五个物块,且稳定放置到地面上,对机械爪的稳定性、精度、抓取的力度有一定的要求。其次是摄像头小车的驱动部分。由于比赛的地面环境并不复杂,为减轻车身重量减小车辆尺寸而选择了两个驱动轮加上一个万向轮的三轮结构,并采用两个伺服驱动电机,以提高运动的精准程度。抓取部分、驱动部分是本搬运机器人的核心机械结构部分,其基础元件和结构设计必须首先确定下来才能展开核心的机构设计和加工工作。
2.2结构组成
2.2.1车架
车架主体硬件材料选用201mm*126mm 5mm厚的亚克力板,加工性能良好,综合性能优良。既能满足强度要求,又能降低制作成本。根据设计的需要,使用正天激光切割机将CAD软件绘制好的dxf文件导入,将亚克力板精确的切割出需要的形状。车架分为上下两层,上层主要承载搬运小车所用到的大部分开发板和驱动模块,下层固定驱动电机和小车电源, 上下两层共同承担机械爪。两层亚克力板之间用四个内圆直径为6mm高40mm的六边形铜柱支撑。在尽量避免占用车体空间的基础上,使上下两层的结构实现最高程度的稳定,为机械爪和驱动电机的运行提供可靠的机械环境。
2.2.2 42步进电机
步进电机是一种将电脉冲信号转换成相应角位移或线位移的开环控制电机。当步进驱动器接收到一个脉冲信号,就驱动步进电机按设定方向转动一个固定的角度(步距角),以固定的角度一步步运行,可以通过控制脉冲个数来控制角位移量从而达到精确定位的目的,同时可以通过控制脉冲频率来控制电机转动的速度和角速度,从而达到调速的目的。
42步进电机具有可以实现高效精准控制、高速响应、性能稳定、转速均匀的优良特性,由下位机IO口提供固定的脉冲频率,可以实现对摄像头小车运动距离、运动角度等的精准控制,也可以实现对机械爪上升下降高度的精准控制和高速响应。
其次,42步进电机可以提供0.22N的扭矩,保证了即使在相对较高的速度下,也可以稳定提供摄像头小车前进、转弯、抓取等各种动作所需的扭力。
42步进电机为金属电机,可以配合电机支架固定连接在摄像头小车下底板,可以平衡摄像头小车的重量分布,使小车重心下移,增加摄像头小车运行时候的稳定性和可靠性。
42步进电机配套金属支架,具有多个不同方位的通孔,可以从不同方位对电机进行固定。保证电机结构的稳定性和运动的可靠性。
2.2.3 42MG90D 9g金属舵机
采用MG90D金属舵机,尺寸大小60*90*10mm,采用金属齿轮,转角交度可以达到90度,最突出的特点就是相比其他相同尺寸的塑料舵机,该舵机拥有1.6KG*cm的扭矩,可以让机械爪在抓取物料的过程中,更加牢固,其次就是舵机重量只有9g,在拥有更大扭矩的同时,没有增加车身负担。
2.2.4 橡胶轮
小车选用的是直径为65mm,宽为26mm的内六角套边、到边12mm外圈为软橡胶轮胎,内含海绵内胆、尼龙轮毂的车轮。这种型号的轮胎具有摩擦力大、防滑效果更好、轮胎变形可迅速恢复、重量轻等优点。轮胎通过5mm黄铜六角联轴器将轮胎与驱动电机相连接。能够为动力的输出提供可靠的保障。
2.2.5 一寸螺杆6mm万向轮
小车所使用的万向轮是丝杆长度为15mm,丝杆直径为25mm、安装高度38mm、单轮宽度12mm,单轮直径为25mm的橡胶万向轮。安装在车体的尾部。在整个车体中起到承重和稳定小车的重要作用,既不会过多的占用车体空间,又能较好的满足小车的力学需求。
2.2.6 6mm同步带
连接42步进电机和机械臂抓手部分,可以稳定将步进电机输出的角动量转化成线位移,从而实现抓手的升降。
2.3抓取单元
2.3.1圆筒双臂夹持机构
抓取机构是用来握持物料的部件,由于被握持物料的形状,尺寸,重量材料及表面状态的不同,其结构也是多种多样的,因此根据特殊的物块抓取要求专门设计出圆筒式机械爪。在设计时考虑到需要具有足够的握力即夹紧力,在确定机械爪握力时,除了考虑物块的重量,还应考虑在传送或操作过程中所产生的惯性力和振动,以保证滑块不至滑落到地上,因此采用MG90金属舵机和舵机臂,以提供足够大的握力。为了更稳定地抓取圆柱形物块,设计的两臂采取夹持式结构(固定臂和摆动臂),合拢时上下大致呈圆柱形,其中固定臂与机器人车体部分相连,保持不动。摆动臂与舵机臂相连。为了能够同时抓取五个物块,手部整体设计高180mm,两指内圈圆弧直径为40mm,并在末端采用缩管结构,以保证闭合时的握力足够。
为了使物块能够移动到适合夹取的部位,我们在摆动前端增加了一个用于钩取物块的L型勾手;在圆筒的正下方贴近地面处安装了半弧形推手,用以推动物块。
2.3.2垂直升降机构
由于夹持机构需要实现容纳多个物料的功能,因此夹持机构必须具备上升与下降的能力。采用同步带电机加滑块滑轨的组合,将机械爪固定臂固定在滑块上,再由电机带动同步带上的滑块来控制夹持机构的上下移动。
2.4运动单元
2.4.1三轮驱动设计
智能车的移动机制有很多,其中以三轮和四轮最为常见,理论上采用四轮驱动机器人方式最为稳定,机器人运动时比较平稳,但是根据比赛规则表明参赛用机器人的最大尺寸不应大于300×200,结合抓取单元的设计,若采用四轮驱动方式,机器人尺寸会过大,因此本机器人选用三轮式车体结构。两个前轮分别用一个42步进电机驱动,后轮为一个万向轮起平衡和支撑作用。三轮结构相对于如四轮结构具有更加小巧的车体结构,更加易于控制。
通过控制两个前置驱动轮相应电机的旋转速度和旋转角度来调整前进方向和前进距离。
万向轮就是所谓的活动脚轮,它的结构允许360度旋转,同时万向轮的使用在保证车体稳定性的基础上大大减少了车体的占用空间。
2.4.2抓取单元动力源的选择
动力方式的选择是制作搬运机器人的重要组成部分,根据驱动方式的不同,工业机械手的驱动机构大致可分为液压、气动、电动和机械驱动等四类。液压驱动压力高,可获得大的输出力,反应灵敏,可实现连续轨迹控制,维修方便,但是液压元件成本高,油路比较复杂,气动驱动压力低,输出力较小,但结构简单,能源方便,成本低。电动驱动有异步电动机、步进电动机为动力源。电动机使用简单且随着材料性能的提高,电动机性能也逐渐提高。
故而本搬运机器人的驱动机构采用步进电机驱动的方式,在满足握力需求的基础上,最大限度降低了机械结构的复杂程度和控制难度。
3硬件设计
3.1Aduino Mega2560 Pro 开发板+IO拓展板
搬运小车的下位机使用的是以开源开发板Arduino ATmega2560 为原型改进的YWRduino mega 2560 pro开发板。它可以提供共计54个外接GPIO管脚(模拟口16;数字口54)。可以使用5–17V的电压进行供电。每个IO口最大可以提供40mA的电流。最高时钟频率为16MHz。满足搬运小车的基本设计需求。开发环境使用的是Arduino官方提供的IDE和基于VS CODE的Platform IDE。
规格:101*54mm
主控芯片:ATmega2560
3.2旭日X3派
3.2.1.介绍
本摄像头小车上位机采用旭日X3派 开发板。开发环境为Ubuntu系统下的opencv-python环境。通过HDMI外接显示器实现对两个车载USB摄像头的监测与开发,进而感知周边地图环境,通过UART与下位机的通信实现对下位机的控制。
3.2.2产品参数
3.3电源模块
3.3.1 4200mAh14.8V锂电池
采用14.8V大电流锂电池,作为摄像头小车的电源,因为电源要同时给ArduinoMega2560和三个步进电机供电,所以需要较大的电流,锂电池可提供较大电流,保证控制单元稳定运行。
尺寸:135*43*29mm
重量:365g
3.3.2 5.2V锂聚物合电池
用于上位机及信息采集模块的供电,旭日X3派对于供电电压具有较为苛刻的要求,因此必须采用供电电压在5.1V以上的可移动电源为旭日X3派的运行提供动力。信息采集模块所使用的USB摄像头由旭日X3派的USB2.0口提供工作所需电源。
尺寸:60*90*10mm
3.3.3 LM2596 DC-DC 可调降压模块
LM2596降压模块采用较为先进的电压微处理器,输入电压介于4V – 40V之间,可稳定输出1.25-37V的电压(连续可调)。最大可提供高达3A的电流。因为搬运小车的电路中包含多种不同工作电压的电子元件,同时LM2596具有短路保护和反接保护,可以有效保护开发板不受来自电路的物理损伤。因此选用LM2596作为整车的降压模块。
3.4罗技C170网络摄像头
此摄像头是用于车身位置引导和视觉循迹的摄像头。对分辨率和视野范围有较为特殊的需求。使用视频流时分辨率可以达到640 * 480像素。每帧图像的品质最高可以达到500万像素,在视频流获取过程中刻印实现自动变焦。
3.5免驱动USB摄像头
此摄像头用于颜色识别,其镜头焦距为6.0MM,调焦范围在20MM至极远之内,视像解析度为640 * 480。摄像头长约3.8CM,宽1.5CM,高约3CM,配有可伸缩线圈,最长可以65cm。
3.6补光灯
补光灯使用的是自行设计的双档可调补光灯,由8个发光二极管并联而成。通过GPIO口控制三极管的通断及发光二极管的通断,实现亮度调节的目的,以满足在不同的环境条件下摄像头对环境光的需求,进而提高颜色识别的精准程度。
3.7电机驱动A4988
选用的电机驱动模块是以A4988为核心驱动的驱动模块。A4988是一款完全的微步电动机驱动器,带有内置转换器,易于操作。该驱动可在全、半、四分之一、八分之一、十六分之一步进模式下工作,为电机的控制提供了更多的选择。
「地平线旭日X3派,开启你的嵌入式开发之旅」,欢迎正在阅读的你申请试用,一起交流开发心得