极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2588|回复: 0

开源项目分享 | 基于机器视觉的移动消防机器人(一)

[复制链接]
发表于 2023-1-7 08:30:58 | 显示全部楼层 |阅读模式
本帖最后由 机器谱 于 2023-1-7 08:30 编辑

本文素材来源于 北方民族大学 机电工程学院
作者:牟义达、黄瑞翔、李涛
指导老师:田国禾、张春涛

一、简介

       随着社会的发展,我们的生活不断走向智能化,机器人技术也日益成熟并朝着智能机器和智能系统的方向进行发展。
       机器人技术主要是对生活和工作环境进行优化设计。特别是智能化作业,对人们的生活带来了大的改变,它让我们的生活和工作更加便捷。智能化作业主要是设计算法,算法也即控制方法。这些算法能够大大降低我们作业的复杂性,然后利用一些传感器和机械结构来实现我们设计的算法,进而实现我们所需的功能。
       随着如今建筑结构的复杂性与高危性,灾难发生的不可预知性,一旦发生大型火灾就特别危险,因为可能伴随着大量有毒气体等毒性物质,每年有很多消防战士牺牲于消防作业之中,这时消防机器人就应运而生了。随着机器人技术的日益成熟,智能消防机器人也非常常见,相对于早期的非智能消防机器人,它能够更好地为人们去危区作业,大大地降低了人员伤亡,缓解损失。因此有非常不错的发展前景。
       本课题所设计的消防机器人是以探索者组件进行搭建的,以Arduino为平台进行控制设计,模拟真实消防机器人进行消防作业。
       这个消防机器人设计核心是检测功能,它能够在一块区域内基本无死角检测火源,检测到之后能够精确定位到火源处,再开启灭火装置进行消防操作。

二、功能设计

1.功能分析
       智能消防机器人应拥有自主抵达作业现场、对火源进行检测以及及时作出消防动作的能力。自主抵达作业现场功能的实现则需要消防机器人能够自主行走,对火源进行检测功能的实现则需要机器人有相应的范围内检测及传感功能,灭火功能的实现则需要机器人要有合适的灭火装置。因此消防机器人应具备的能力有:自主行走、火源检测、灭火等功能。

2.系统总体方案设计


      如上图所示,消防机器人的作业系统主要由机器人本体与被检测物(火源)组成。消防机器人本体主要由控制模块、驱动模块和检测模块组成;驱动模块包含驱动机器人自主行走和驱动灭火装置两部分。作业关系流程如下:消防机器人通过检测模块在一定范围内检测火源;若火源被检测模块检测到,则将该信息反馈于消防机器人的控制板模块,控制板模块则命令驱动模块驱动灭火模块,直到灭火模块完成灭火操作;灭火操作完成后则控制模块驱动机器人行走模块进入下一个消防作业区。

3.消防机器人控制模块
      消防机器人的控制模块是机器人的大脑,机器人的执行由该模块控制。控制模块的设计主要就是软件设计,也即编程设计。编程设计主要是将各个功能模块有机结合起来,使得机器人各个功能相互协调,共同合作有效完成相应功能。

4.消防机器人驱动模块
      消防机器人的驱动模块是完成机器人进行消防作业功能的主要执行模块。驱动模块受控制模块的控制,安照控制模块给出的指令完成相应的操作。驱动模块主要完成的操作有“驱动机器人行走模块”和“驱动灭火装置”。
       驱动行走模块是为了对消防机器人进行作业区转移,待当前的消防作业完成之后其进入下一个消防作业区进行作业。行走模块主要是基于探索者组件设计的,探索者里有功能各异的零部件,根据机器人的功能对零件进行分析选取,之后设计出自己所需要的机械结构完成行走行走功能。要实现驱动有很多方案,如轮式的、履带式的、足式的等,可以根据探索者组件进行分析筛选,选择出最合适的方案。
       驱动灭火装置是待机器人检测到火源之后需要完成的动作,灭火装置具备扑灭火源的能力并且受命于控制模块。灭火装置也是基于探索者组件进行设计的,对探索者零部件进行分析筛选,最后根据功能需求选择最佳方案。

5.消防机器人检测模块
      消防机器人的检测模块主要是检测作业区有无火源,若有火源则将该信息反馈于控制模块,若无火源也要将该信息反馈于控制模块,控制模块才能根据反馈的信息对驱动模块作出相应指令。检测模块具备在作业范围内检测火源的能力,基于探索者组件进行设计,其主要设计的零部件是相应的传感器以及能够使传感器在范围内检测的机械结构,可以分析筛选探索者组件,选择最佳设计方案。

三、详细设计

1.消防机器人的本体设计
       根据消防机器人的功能特点,对探索者的零件加以分析,选择与功能向匹配的零部件进行构建机器人机械体。
       首先是机器人的自主行走的能力。实现机器人自主行走这个功能可以有很多方案。有轮式的、足式的、履带式的机器人可以完成这项功能。根据探索者组件里的零部件进行筛选,我发现有轮式的现成的驱动轮,并且轮式的可靠性要比足式的和履带式的要高,而且结构相对要简单,因此综合考虑我选择轮式作为机器人的驱动方式。


      其次是机器人的检测火源的能力。检测火源应该是逐个范围内进行检测,所以机械结构应该是需要有两个及以上的自由度。根据探索者组建里的零部件,可以实现两个自由度的机械组合也比较多,比较常见的就是两转动轴互相垂直的组合。转动轴的转动靠的是电机,电机有直流电机、圆周舵机和180度转动舵机。考虑到消防机器人检测需要有一定的检测精度,也即需要一定的位置精度,考虑到直流电机和圆周舵机是无法控制精度的,所以选择180度转动舵机,并且舵机的扭矩比较大,也很完美地契合消防机器人的功能。所以两个180度圆周舵机是我所选的转动轴。之后根据所选舵机来选择舵机所需支架和所需输出头。


      最后是灭火装置的设计。灭火的方式主要就是喷阻燃剂,阻燃剂不光式水,其他能够降低燃料的可燃性或者延迟燃烧的物质都能称之为阻燃剂。考虑的实验的局限性,可以选择的方案不多,可以选择喷水式,还可以选择鼓吹强风(蜡烛模拟火源)。由于设计的过程需要不断地进行实验,所以用水比较麻烦,影响设计效率,所以选择鼓吹强风作为我的灭火方式。


      通过探索者组件已经可以选择出能完成功能的零部件了,现在就要考虑如何将这些功能模块结合于一体。由于是轮式结构机器人,所以我将机器人设计成小车模型。从底板开始,探索者组件里有很多平板类结构,有5×7孔平板、7×11孔平板和11×25孔平板。考虑到机器人模块比较多,所以我选择了最大的11×25孔平板作为机器人底板。接下来是将检测装置合并到机器人中,用4块7×11孔平板组合形成一个带有大空隙顶板。空袭可以避免与舵机发生干涉。


2. 控制模块设计

(1)控制板的选择
       控制板选择Basra控制板,由于Basra板上输出口无法直接与电机和传感器等元件进行匹配,所以需要一块用于连接功能元件和主控板的扩展板。因为探索者组件里只有一块与Basra控制板结合的扩展板,所以扩展板因主控板的确定而确定了。与Basra主控板匹配的扩展板是Bigfish扩展板,扩展板可以使得主控板的电路连接稳定可靠,上面还扩展了伺服电机接口、8*8Led点阵、直流电机驱动以及一个通用扩展接口,可以说是Arduino控制板的必备配件。
需要注意的是D11\D12舵机端口与LED点阵复用,注意避免同时使用。背面两侧的跳线分别作用于两侧的红色接口(通常采用5v,接传感器)或白色接口(通常采用6v,接舵机),使用需检查背面跳线设置是否与器件电压相符。

(2)传感器的选择
       探索者组件里有大量功能各异的传感器,需要选择能够检测火源来完善火源检测模块的那些。参考这些传感器的功能,有些是可以检测火源的,比较合适的还是火焰传感器。只要在照度30LUX以下的环境中,火焰传感器还是能够有效检测出火源的。因此火源检测模块选用的传感器就为火焰传感器。
       火焰传感器也称光强传感器,因为可以检测范围内的光线强度,所以可以用来检测火源,火焰传感器可以在30LUX照度以下触发,当照度大于30LUX时传感器不触发。特别要注意的是,火焰传感器不要和闪动传感器混淆,闪动传感器和它相似,闪动传感器的触发方式为:30LUX照度以下时变亮触发,30LUX照度以上时变暗触发。

(3)电动机的选择
       前面已经确定选用轮式驱动,轮子已经确定,现在需要选择合适的电机来与轮子配合。探索者组件里的电机有双轴直流电机、12V直流电机、无刷电机和圆周舵机满足驱动要求。考虑到只是为了完成自主行走功能,实验也无需越障爬坡,所以选择简单廉价的双轴直流电机作为与轮子配合的驱动电机即可。
       双轴直流电机外接于BigFish扩展板的5、6引脚或9、10引脚,5、6引脚与9、10引脚是由VIN引入外部电源的,其电压基本与外接电源电压大小一致,电压范围为5.9V。设计计划在机器人上安装4个直流电机,前后各两个,四驱使得机器人小车的动力足够,行动迅捷。由于有四个直流电机,而BigFish上只有两个插线引脚(5、6和9、10),所以需将同侧的两个电机引线合并到一起并将其插入扩展板的同一引脚上,将另一侧的两个电机引线合并到一起插入扩展板的另一引脚上面。


      除了驱动机器人需要引用电机,检测功能也需要电机。由于舵机的可控性强,可以在工作范围内精确控制电机的转动角度。而消防机器人的主要工作就是“检测火源、精确定位、作出处理”,所以舵机能够为消防机器人的工作提供极大的便利。两个舵机使得机器人有了两个自由度,工作范围由线性转变为面性,大大提高了消防机器人的工作效率。
      探索者组件里有M01标准伺服舵机和M04大标准伺服舵机,由于两个舵机都需要承受一定的负载,所以我选用的都是M04大标准伺服舵机。以下是舵机的原理介绍:
      舵机称之为伺服电机,它是一种角度伺服的驱动器[1]。主要是由直流电机、控制电路、电位器和减速器等组成,封装于一个单元盒里便于安装于控制。接受外部的控制信号并将其输入信号调制芯片,从而得到一个偏置电压。舵机内部有一个基准电路,电路会产生宽度为1.5ms、周期为20ms的基准信号,使所获得的直流偏置电压与电位器的电压相比较,得到一个电压差输出[2]。而电压差的正负来控制电机的正反转(电压差输出到电机驱动芯片)。当电机转速达到一定值时,电位器被联级减速齿轮所带动,电位器相当于一个滑动变阻器,当电位器达到一定状态时会使得电压差为0,从而使得电机停止转动[3]。这样的直流电机控制方式叫作闭环控制,所以舵机也可称作伺服马达,英文为“servo”[4]。


3. 机器人小车的装配
(1)轮子的安装
①支架安装:常见装法完成后的效果如下图所示,使用螺丝:F325。



②输出头安装:完成效果图2.26,安装于粉色端,中心需安装F2510H。
③在联轴器里放置一个15mm的螺柱,如图2.27。
④将联轴器与直流电机输出头锁死,使用螺丝F310,如图2.28。
⑤锁上轮胎,如下图所示。


(2)大标准舵机的安装
①支架安装


②安装舵机输出头

③机器人车身设计
     底板选的是11×25的,再用四个弯板安装在底板的四个角上,用以支撑4块7×11的板,4块小板组合成一块顶板,中间留有间隙用以安装舵机。底板下面四个边角安装四个驱动轮。


④灭火装置的安装
灭火装置是由小马达和自剪风扇叶组合而成,安装于设计的长杆上面,长杆受舵机控制可以在一定角度范围内进行摆动。


⑤机器人小车完整版
驱动轮、舵机控制的灭火装置以及车身构架完成后,安装控制板及完成接线后,整个小车就完成设计了,如下图所示。


注释:
[1]张国元. 某型舵机改进设计及其仿真分析[D].哈尔滨工业大学,2016.
[2]郑州 姜笃庆. 微型伺服电机(舵机)原理简介[N]. 电子报,2004.10.17(013).
[3]蔡睿妍.Arduino的原理及应用[J].电子设计工程,2012,20(16):155.157.
[4]蔡睿妍.基于Arduino的舵机控制系统设计[J].电脑知识与技术,2012,8(15):3719.3721.


想了解更多机器人开源项目资料请关注 机器谱网站 https://www.robotway.com






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 06:39 , Processed in 0.043412 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表