? ? ? 如今,智能机器人在军事、制造业、交通运输、航天航空、医疗、服务等领域已有广泛的应用,智能车是机器人研究领域的一项重要基础内容,在各种移动机构中,最为常见的是轮式移动方式,当今社会正处于科技高速发展的时代,人工智能技术飞速进步,将人工智能技术与全地形智能车相结合,利用计算机控制理论和机械设计的原理,制作出一款自动化的多地形适应野外探索智能车。
? ? ? 本作品设计的多地形适应野外探索智能车,采用可自由转动适应地形的轮组通过窄桥、弯道、楼梯等障碍物,来模拟智能车在野外可能遇到的不同地形。智能车还搭载了三种不同的运行控制模式来实现循迹、遥控和自主探索功能,并设计触碰传感器和颜色识别模块识别色卡颜色,驱动舵机带动针尖扎破相应颜色气球的功能。为了更好的获取小车周围的环境信息,小车还搭载了全景探测视觉模块来收集环境信息并上传到终端,以便更好的应对复杂的地形环境。同时,我们为了实现功能的快速切换还对智能车进行了模块化设计,以便更加快速的适应复杂环境。
2.1 作品装配图
?2.2 作品设计思路
2.2.1 硬件选型
? ? ? 1)传感器:触碰传感器和C04黑标传感器
? ? ? 触碰传感器:触碰传感器可以检测物体对开关的有效触碰,通过触碰开关触发相应的动作,触碰开关的行程距离为2mm。触碰传感器上有:固定孔,便于用螺丝将模块固定在机器人上;四芯输入先接口,用于连接四芯输入线,可以有效防止接线的脱落,造成不必要的麻烦;触碰开关,用于检测触碰的有无。
? ? ? CO4黑标传感器:黑标传感器可以进行黑线的跟踪,可以识别白色背景中的黑色区域,寻线信号可以提供稳定的输出信号,使寻线更准确、稳定。其有效距离为0.7-3厘米,工作电压为4.7-5.5伏,工作电流为1.2毫安。CO4黑标传感器上有:固定孔,便于用螺丝将模块固定在机器人上;四芯输入线接口,用于连接四芯输入线;黑标传感器元件,用于检测黑线信号。
? ? ? 2)颜色识别模块:TCS 3200颜色识别传感器
? ? ? TCS 3200颜色识别传感器是一款全彩的颜色检测模块,包括一块TAOS TCS3200RGB感应芯片和四个白色的LED灯,TCS 3200可以在一定的范围内检测和测量几乎所有的可见光。此颜色识别模块是一种可编程彩色光到频率的传感器,它具有分辨率高、可编程的颜色选择与输出定标、单电源供电等特点;它的输出量为数字量,可以直接与微处理器连接。以下说明其原理及相关特性。
? ? ? 通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如红R、黄Y、绿G、青V、蓝B、紫P)。根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。
? ? ? 由三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于TCS3200来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其他原色的通过。例如:当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,选择其他的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个值,就可以分析投射到TCS3200传感器上的光的颜色。
? ? ? 白平衡就是告诉系统什么是白色。从理论上讲,白色是由等量的红色、绿色和蓝色混合而成的;但实际上,白色中的三原色并不完全相等,并且对于TCS3200的光传感器来说,它对这三种基本色的敏感性是不相同的,导致TCS3200 的RGB输出并不相等,因此在测试前必须进行白平衡调整,使得TCS3200对所检测的“白色”中的三原色是相等的。进行白平衡调整是为后续的颜色识别作准备。在本装置中,白平衡调整的具体步骤和方法如下:将空的试管放置在传感器的上方,试管的上方放置一个白色的光源,使入射光能够穿过试管照射到TCS3200 上;根据前面所介绍的方法,依次选通红色、绿色和蓝色滤波器,分别测得红色、绿色和蓝色的值,然后就可计算出需要的3个调整参数。
? ? ? 当用TCS3200识别颜色时,就用这3个参数对所测颜色的R、G和B进行调整。这里有两种方法来计算调整参数:
? ? ? ① 依次选通三种颜色的滤波器,然后对TCS3200的输出脉冲依次进行计数。当计数到255时停止计数,分别计算每个通道所用的时间。这些时间对应于实际测试时TCS3200每种滤波器所采用的时间基准,在这段时间内所测得的脉冲数就是所对应的R、G和B的值。
? ? ? ② 设置定时器为一固定时间,然后选通三种颜色的滤波器,计算这段时间内TCS3200的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。在实际测试时,使用同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的R、G和B的值。
? ? ? 在使用过程中,我们选择的方式为方式②。
? ? ? 在使用过程中应当注意:颜色识别时要避免外界光线的干扰,否则会影响颜色识别的结果,最好把传感器、光源等放置在一个密闭、无反射的箱子中进行测试;对光源没有特殊的要求,但是光源发出的光要尽量集中,否则会造成传感器之间的相互干扰;当第1次使用TCS3200或TCS3200识别模块重启、更换光源等情况时,都需要进行白平衡调整。
? ? ? 3)舵机:标准伺服电机
? ? ? 标准舵机是比较严格的伺服电机,具有反馈功能,但这种小型伺服电机一般不安装反馈数据线。
? ? ? 伺服电机是一种传统的电机,又称执行电动机,在自动控制系统中,常常用作执行元件,把所收到的电信号转换成电动机轴上的角位移或角速度输出。它分为直流和交流伺服电动机两大类,其主要特点是,当信号电压为零时无自转现象,转速随着转矩的增加而匀速下降。它是自动装置的执行元件。伺服电机的最大特点是可控。在有控制信号时,伺服电机就转动,且转速大小正比于控制电压的大小。去掉控制电压后,伺服电机就立即停止转动。
? ? ? 伺服马达内部包括了一个小型直流马达、一组变速齿轮组、一个反馈可调电位器及一块电子控制板。其中,高速转动的直流马达提供了原始动力,带动变速(减速)齿轮组,使之产生高扭力的输出,齿轮组的变速比愈大,伺服马达的输出扭力也愈大,也就是说越能承受更大的重量,但转动的速度也愈低。
? ? ? 标准的微型伺服马达有三条控制线,分别为:电源线、地线及控制线。电源线与地线用于提供内部的直流马达及控制线路所需的能源,电压通常介于4V-6V之间,该电源应尽可能与处理系统的电源隔离(因为伺服马达会产生噪音)。甚至小伺服马达在重负载时也会拉低放大器的电压,所以整个系统的电源供应的比例必须合理。
? ? ? 减速齿轮组由马达驱动,其终端(输出端)带动一个线性的比例电位器作位置检测,该电位器把转角坐标转换为一比例电压反馈给控制线路板,控制线路板将其与输入的控制脉冲信号比较,产生纠正脉冲,并驱动马达正向或反向地转动,使齿轮组的输出位置与期望值相符,令纠正脉冲趋于为0,从而达到使伺服马达精确定位的目的。
? ? ? 4)扩展板:Big fish扩展板
? ? ? Big fish的扩展板连接的电路可靠稳定,还扩展了伺服电机接口、8 X 8 LED点阵、直流电机驱动以及一个通用扩展接口,此扩展板具有以下多种优良特点:
? ? ? ① 完全兼容Arduino控制板标准接口;
? ? ? ② 彩色分组插针,一目了然;
? ? ? ③ 全部铜制插针,用料考究,电器性能稳定;
? ? ? ④ 优秀PCB设计,美观大方;
? ? ? ⑤ 多种特殊接口设计,兼容多种电子模块,使用方便;
? ? ? ⑥ 所有3P、4P接口采用防反插设计,避免电子模块间连线造成的误操作;
? ? ? ⑦ 板载舵机接口、直流电机驱动芯片、MAX7219LED驱动芯片,可以直接驱动舵机、直流电机、数码管等机器人常规执行部件,无需外围电路;
? ? ? ⑧ 具有5V、3.3V以及VIN三种电源接口,便于为各类扩展模块供电。
? ? ? Big fish的基本参数如下:
? ? ? ① 4针防反插口供电5V;
? ? ? ② 舵机接口使用3A的稳压芯片LM1085ADJ,为舵机提供6v额定电压;
? ? ? ③ 8 X 8 LED模块采用MAX7219驱动芯片;
? ? ? ④ 板载两片直流电机驱动芯片L9170,支持3-15V的VIN电压,可以驱动两个直流电机;
? ? ? ⑤ 2个2*5的杜邦座扩展坞,方便无线模块、OLED、蓝牙等扩展模块直插连接,无需额外接线。
? ? ? 5)驱动马达:M06 双轴直流电机
? ? ? 直流电机是利用电磁感应工作的执行器,通过给线圈通电,使其能够在两片磁铁之间旋转,直流电机是制作驱动轮的常见部件,同时可以驱动一切圆周运动的机构,直流电机已经加装了减速器,速度较快,力量较小,其主要参数如下表所示:
2.2.2零部件及机械结构设计
? ? ? 智能车的主体零部件选择标准产品,对于数量较少的一些固定件,使用Solid Works自行制作并利用3D打印生成。为了使智能车更方便的适应全地形,在大量阅读参考文献的基础上,对小车的机械结构进行构思与设计。
? ? ? 1)标准零部件
? ? ? 在现有基础的条件下,尽可能多的选择标准系列的零部件来搭构智能车,我们团队所选择的关键零部件说明如下:
? ? ? 2) 自加工零部件
? ? ? 为了更好的将直流电机和颜色识别模块固定,特自行制作直流电机固定架和颜色识别模块固定架,自加工零部件清单及图纸如下:
? ? ? 控制系统主要包括:系统初始化模块、运动控制系统(包括:前、后、左、右四个方向的运动控制以及停车控制)、模式切换系统(包括:循迹模式、遥控模式、自主探索模式)、传感器计数系统、颜色识别系统、舵机控制系统、全景探测视觉系统、模块化拼装系统。
? ? ? 系统初始化模块主要功能为对控制程序的全局变量及控制对象的初始化、对系统使用的各个引脚初始化、串口初始化、定时器初始化。
? ? ? 运动控制系统负责内容为对程序中各个电机的控制,这里使用到了六个电机,但是每三个电机的运动控制方式相同,因而将所有的电机当作两个电机来控制。程序中包含的运动控制函数有:前进函数、后退函数、左小转函数(应对车体偏移较小情况)、左大转函数(应对车体偏移程度较大的情况)、右小转函数、右大转函数和停车函数。
? ? ? 传感器计数系统并没有单独设立函数,而是通过设置全局变量来进行控制,其包括两部分:通过管道的数量统计、颜色识别区域黑线触发停车控制。赛道中一共有两个u型管道,程序需要感知智能车所在的大致位置以便于判断,通过触碰传感器触发并持续一段时间后计数器加一。当智能车运动到颜色识别区域的黑线横条时触发停车进行颜色识别,触发方式为两个最外侧的灰度传感器同时触发。
? ? ? 颜色识别系统为团队自行编写的程序并封装成为Arduino库。因此在程序中只需要声明传感器对象并将程序中使用的引脚参数传递给对象即可。在程序需要通过对象所属库函数来获得色卡对应的颜色的R、G、B值,通过比较三个色域的大小进行识别颜色。
? ? ? 舵机控制系统使用的是自行编写的控制函数,由于担心Arduino自带的多级控制库使用的定时器会与程序中的定时器中断中途因而自己编写的控制函数。
? ? ? 程序的流程图如下所示:
4.1 作品创新点说明
? ? ?(1)能够适应全地形
? ? ? 本团队设计的多地形适应野外探索智能车采用全地形六轮结构,可以充分适应野外复杂的地形,我们设计出与地形相适应的连杆轮组,即其中的两个相邻的橡胶轮用连杆相连接,连杆通过转动副连接到地形车体上,使其可以自由转动。如下图所示,连杆连接团队设计的直流电机固定架与智能车主体,并围绕旋转轴自由转动。同时在安装时特别注重的使前后轮安装位置不同使得连杆具有一定倾角,使得在遇到较高的障碍物时,能是轮组轻松上翘,利于越障。
? ? ? 为保证小车在越障阶梯时出现两侧轮组不协调的情况,特在小车车前安装横杆,保证小车在跨越阶梯时两侧同步越障。如下图所示:
? ?? (2)采用的四路灰度传感器循迹设计具有准确、稳定性优势
? ? ? 智能车循迹模式下为保证循迹稳定流畅,我们在小车车前安装四路黑标传感器,内侧两路可调范围小,保证小车在直行时循迹流畅,在通过弯道时因弯度较大,调整范围较大,故可利用外侧两路传感器进行大幅度的调整,以使顺利转弯循迹。传感器布置如图4-3所示:
? ? ? 在循迹控制思路上,我们采用对四路传感器进行四位数组表示,每个传感器均有两种情况,以确定所有的可能性,通过程序将四位二进制数转化为十进制数,共16种情况,利用库函数针对于每种情况进行分类,进行不同的调整,将所有情况进行涵盖,避免了循迹时出现意外情况,增加稳定性。
? ? ? (3)全景探测野外环境
? ? ? 野外探索智能车在循迹或遥控时为了及时获取四周环境信息,我们在车顶处安装了视野探测结构,该结构由顶部Open MV视觉模块和底部伺服电机两部分组成,顶部的Open MV视觉模块可以收集到周围环境的视觉信息,底部的伺服电机可以实现Open MV机械视觉模块的360°无死角探测。在未来的优化迭代中,我们将努力实现利用视觉采集到的实时环境信息作为智能车的输入,从而对不同环境的状态做出修正。
? ? ? (4)多种运行控制模式
? ? ? 为了应对不同的环境,我们为智能车设计了3种不同的运行模式,用三个按钮来进行切换。分别是循迹模式,遥控模式和自主探索模式。循迹模式可以实现小车的循迹运行,适合单一固定的行进路线。遥控模式可以让操作者使用PS2手柄对小车进行遥控,适合复杂且需要人为干涉判断的情况。而自主探索模式则是通过红外传感对周围的环境进行简单的判断并加以修正运行,是循迹模式和遥控模式的折中,应用范围更加广泛。
? ? ? (5)功能多样且模块化
? ? ? 为了让小车拥有快速适应不同环境的能力,我们对智能车进行了功能模块化处理。在不同的环境下,通过更换功能模块与控制模块来改变小车的功能以适应不同的环境。如,在探测新环境时采用使用全景探测模块,在运输物品时采用机械臂模块。
4.2 创新点在生活中的应用
? ? ? 野外探索智能车能够广泛应用于军事、救援、服务等领域,具有强大的适应能力。
5.1 野外探索智能车设计过程
? ? ? (1)尺寸设计
? ? ? 由于野外环境复杂多样,故为提高小车的适应性,我们采用5X7孔平板作为小车的主体板,减少小车的横向尺寸以此来使小车更加灵巧,同时用连杆控制小车纵向尺寸,保证小车顺利应对不同的地形。
? ? ? (2)全地形机构设计
? ? ? 在主体两侧各安装两个输出支架,安装双足支杆,在支杆上分别安装两侧的轮组。为保证顺利通过较窄地形和颠簸地形,两侧各有一个轮组可以绕车体自由转动,来适应各种复杂地形。并用横杆将两侧轮组连接起来保证自由旋转轮组的同步性。
? ? ? (3)多运行控制模式设计
? ? ? 在智能车上安装PS2遥控模块可以实现对小车的人为遥控,以便应对复杂的环境。同时在智能车前添加红外传感器、超声波模块,让小车在自主探测模式下可以自主的判断前方障碍并做出调整。在智能车车前安装四路黑标传感器,内侧两路可调范围小,保证小车在直行时循迹流畅,在通过弯道时因弯度较大,调整范围较大,利用外侧两路传感器进行大幅度的调整,以使顺利转弯循迹,保证智能车运行稳定流畅。
? ? ? (4)颜色识别设计
? ? ? 触碰传感器安装在前侧并具有倾角,触碰传感器上装有长条,保证在通过弯道是压下触碰传感器,为之后的颜色识别进行计数。颜色传感器安装在小车后并靠近色卡的一侧,到识别到场地黑条时便停止,打开颜色识别模块,进行颜色识别,安装具体的位置根据小车停车的实际距离得知。
? ? ? (5)扎气球装置设计
? ? ? 舵机和小舵机支架安装在小车的主体的一侧,舵机上用舵盘搭接双足支杆,在支杆一段安装尖锐针头,当小车到达指定位置时,给定舵机转动信号,扎破相应颜色的气球。
? ? ? (6)全景环境观测设计
? ? ? 在智能车的顶部放置由舵机和Open MV组合而成的全景视觉模块,Open MV视觉模块负责收集小车周围的环境信息,舵机带动Open MV进行角度的旋转,从而达到360°无死角的效果。
5.2 野外探索智能车制作过程
? ? ? 在选择好硬件和零部件加工的基础上,开始进行智能车的制作组装工作。
? ? ? 我们设计的场景大致可分为四个方面。首先,我们在平整的道路上贴上循迹路线以模拟小车在正常平整路线的正常行驶过程。其次我们用硬质木板制作出了上下坡用来模拟小车在坡路以及窄桥等高度缓慢变化的地形的行进情况。在180°转弯处我们有设计出隧道形状的地形以验证小车在急转地形以及隧道等狭小地形下的运行情况。最后,我们用大小不一的硬木板设计出了阶梯状地形用来考察小车在楼梯等地形高度变化剧烈的地形下能否顺利通过。最终,经过我们的测试,小车在以上多种地形下仍顺利通过并最终完成任务。
更多详情请见:【S048】多地形适应野外探索智能车