机器人制作开源方案 | 自主消毒防疫机器人

这篇具有很好参考价值的文章主要介绍了机器人制作开源方案 | 自主消毒防疫机器人。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:陈毅豪 张植铜 罗郡 马鑫龙 王丹晶

单位:西安外事学院

指导老师:陈小虎 杜喜

一、产品说明

1.1 目的及意义

      消毒是疫情防控工作中的重要一环,传统的消毒方式需要人工操作消毒设备,不仅工作量大,且一些消毒剂会对人体造成伤害,消毒机器人便成了代替人工的不二之选,因此开发一款能够搭载多种消毒设备的消毒机器人控制系统对疫情防控具有重要意义。

机器人制作开源方案 | 自主消毒防疫机器人,机器人,开源

1.2 研究背景

      以当下疫情大环境为背景,在智能化设计理念的指导下展开设计研究。现有的消毒方式大多采用人工消毒,需要消毒人员做好防护后才能进入消毒区进行消毒,人工消毒的工作区域大,工作强度高,且在人流量大的区域需要每天进行多次消毒,增加了工作人员的感染风险。旨在用于替换传统的人工消毒模式,将消毒功能赋予智能化机器人,同时将人工消杀死角及环境监测考虑在内,进行设计实践。

机器人制作开源方案 | 自主消毒防疫机器人,机器人,开源

1.3难题与解决方法

      难题:自2019年末新冠肺炎疫情暴发以来便迅速席卷全球,新型冠状病毒极强的传染性使得全世界人民的生命和健康面临着巨大的风险,目前我国疫情防控工作已从应急状态转为常态化管理,但全球新冠肺炎疫情防控形势依然严峻复杂。境外输入病例、无症状感染者、变异毒株都在挑战我国的疫情防控工作,在传染病预防阶段,对可能受到病原微生物污染的场所和物品进行消毒是阻断病毒传播的重要技术手段。

      解决方法:通过对车站等有效地阻断公共场合的预防性消毒,能够有效的阻断疫情的传播途径,降低新冠病毒的接触性传播以及气溶胶传播所造成的感染。研究着眼于疫情背景下人流密集地的消毒工作,用智能消毒机器人来取代人工消毒作业,确保人员的健康安全。提升人流密集地的消毒效率和杀菌率,使得各个环境的工作运行效率大大增加,更进一步的减小了疫情在人流密集地传播的可能。

二、机械结构设计

2.1 机械结构设计及建模

      通过实地考察来分析人流密集地消毒环境,并在传统消毒机器人的基础上进行场景的细分处理,通过测量地面与座椅、座椅与扶手的距离来进一步确定智能消毒机器人的工作状态,并根据人流密集地内空间数据,探究智能消毒机器人的行走模式。利用模块化设计,整合功能与结构,并分析其安全性。

2.2 创新点

      本小组所制作的消毒防疫机器人同时具备喷雾和紫外线消杀两种功能,并且因室内兼顾室外进行消毒杀菌,小组成员采用可拆卸组装式底盘,室内消毒杀菌采用轮式底盘,室外消毒杀菌则采用履带式底盘。

三、总体设计

3.1 动力设计

      通过对现有消毒形式进行调研分析,了解其在运作中存在的问题,结合现有消毒机器人工作状态以及执行特定化场景任务来进行优化。采用模块化设计法和限量性结构变化法,进行大量广泛的资料收集与实地调研,分析现有消毒机器人的优劣势,并从中分析未来发展趋势。

3.2 机器人控制系统设计

      机器人采用1个超声波传感器用于对前方障碍物进行识别感知,4个电机实现底盘的驱动,3个舵机用于消杀执行机构的驱动。超声波传感器连接STM32系统扩展板的传感器区A0、A1引脚,4个电机分别连接扩展板的X、Y、Z和A接口,3个舵机连接到扩展板的3、4和7引脚。控制系统软件采用Arduino进行C语言编程。

感知与控制软件流程图如下所示:

机器人制作开源方案 | 自主消毒防疫机器人,机器人,开源

四、制作过程

1. 二维图纸绘制

机器人制作开源方案 | 自主消毒防疫机器人,机器人,开源
侧视图观察机械臂上下运作
机器人制作开源方案 | 自主消毒防疫机器人,机器人,开源
俯视图观察机械臂平面摆动

2. 三维绘图成像

机器人制作开源方案 | 自主消毒防疫机器人,机器人,开源

机器人制作开源方案 | 自主消毒防疫机器人,机器人,开源

2. 现场组装制作

机器人制作开源方案 | 自主消毒防疫机器人,机器人,开源

4. 整体装配与调试

机器人制作开源方案 | 自主消毒防疫机器人,机器人,开源

五、应用前景

随着机器人技术的迅猛发展,医用领域早已出现了机器人的身影,防疫消毒机器人虽有所发展,但发展缓慢,各公司研发动力不足。直到疫情暴发以来,为降低人工消毒的劳动强度及交叉感染风险,解决前线医护人员不足等问题,用消毒机器人替代人工,在医院、户外等场所从事消毒工作,使得医院对消毒机器人的需求迅速增加,各国开始加大了对医用服务型机器人的研发力度。

六、示例程序

#include<Servo.h>

#define SERVO_SPEED 40                  //定义舵机转动快慢的时间

#define SERVO_SPEED1 1

#define SERVO_SPEED_WalkForward_low 10   //设定前进的慢速动作

#define SERVO_SPEED_WalkForward_high   40 //设定前进的快速动作

#define SERVO_SPEED_WalkBack_low 10      //设定慢速的后退动作

#define SERVO_SPEED_WalkBack_high   5     //设定快速后退的动作

#define SERVO_SPEED_Right_low 6          //设定慢速右转动作时间

#define SERVO_SPEED_Right_high   4        //设定快速右转动作时间

Servo myServo[3];               //定义3个舵机

int f = 30;                     //定义舵机每个状态间转动的次数,以此来确定每个舵机每次转动的角度

int servo_port[3] = {3,4,7};                      //定义舵机引脚

int servo_num = sizeof(servo_port) / sizeof(servo_port[0]);     //定义舵机数量

float value_init[8] = {1650,1300,2400}; //定义舵机初始角度

int Judge=0;

int GetIntData=0;

const int xdirPin = 44;   // 方向引脚

const int xstepPin = 45; // 步进引脚

const int ydirPin = 32;   // 方向引脚

const int ystepPin = 33; // 步进引脚

const int zdirPin = 42;   // 方向引脚

const int zstepPin = 43; // 步进引脚

const int adirPin = 30;   // 方向引脚

const int astepPin = 31; // 步进引脚

const int STEPS_PER_REV =200;

#define ECHOPIN A0

#define TRIGPIN A1

void setup() {

//超声波传感器设置

  pinMode(TRIGPIN, OUTPUT);

  pinMode(ECHOPIN, INPUT);

 

//底盘设置

  pinMode(8,OUTPUT);

  pinMode(xstepPin,OUTPUT);

  pinMode(xdirPin,OUTPUT);

  pinMode(ystepPin,OUTPUT);

  pinMode(ydirPin,OUTPUT);

  pinMode(zstepPin,OUTPUT);

  pinMode(zdirPin,OUTPUT);

  pinMode(astepPin,OUTPUT);

  pinMode(adirPin,OUTPUT);

 

//执行器舵机设置

  for(int i=0;i<servo_num;i++)

  {

       ServoGo(i,value_init[i]);   //使能舵机并赋予初始角度

    }

}

void loop() {

  //超声波测距

  //以下代码为计算超声波测距传感器进行测距并计算,返回距离的单位为cm

  //Serial.begin(9600);

  digitalWrite(TRIGPIN,LOW);   

  delayMicroseconds(2);

  digitalWrite(TRIGPIN,HIGH);

  delayMicroseconds(10);

  digitalWrite(TRIGPIN,LOW);

  float distance=pulseIn(ECHOPIN,HIGH);

  distance=distance/58;

  //Serial.println(distance);

  delay(200);

  if(distance>10)     //10cm以内无障碍

  {

  //底盘的运动控制

  digitalWrite(xdirPin,LOW);

  digitalWrite(ydirPin,HIGH);

  digitalWrite(zdirPin,LOW);

  digitalWrite(adirPin,HIGH);

  for(int x = 0; x < STEPS_PER_REV; x++)

  {

       digitalWrite(xstepPin,HIGH);

       digitalWrite(ystepPin,HIGH);

       digitalWrite(zstepPin,HIGH);

       digitalWrite(astepPin,HIGH);

       delayMicroseconds(400);

       digitalWrite(xstepPin,LOW);

       digitalWrite(ystepPin,LOW);

       digitalWrite(zstepPin,LOW);  

       digitalWrite(astepPin,LOW);

       delayMicroseconds(400);

       }

  }

else

  {

    //停止,避障

    digitalWrite(xdirPin,LOW);

    digitalWrite(ydirPin,LOW);

    digitalWrite(zdirPin,LOW);

    digitalWrite(adirPin,LOW);

  }

  //舵机的运动控制

    servo_move(950,1300,1500, SERVO_SPEED_WalkForward_low);

    delay(5000);

    //               950,                              1300,                                   1500,                                 SERVO_SPEED_WalkForward_low

    //表示D3引脚连接的舵机要转到的角度     表示D4引脚连接的舵机要转到的角度        表示D7引脚连接的舵机要转到的角度                      表示舵机转动时的速度

    servo_move(2400,1800,2500, SERVO_SPEED_WalkForward_low);

    delay(5000);

    //               2400,                              1800,                                   2500,                                 SERVO_SPEED_WalkForward_low

    //表示D3引脚连接的舵机要转到的角度     表示D4引脚连接的舵机要转到的角度        表示D7引脚连接的舵机要转到的角度                      表示舵机转动时的速度   

}

  //自定义函数

  void ServoActionReset()

  {

      servo_move(1500,1000,2400, SERVO_SPEED); //初始化

  }

void ServoStart(int which)//使能舵机

{

  if(!myServo[which].attached()) myServo[which].attach(servo_port[which]);

  pinMode(servo_port[which], OUTPUT);

}

void ServoStop(int which)//释放舵机

{

  myServo[which].detach();

  digitalWrite(servo_port[which],LOW);

}

void ServoGo(int which , int where)//打开并给舵机写入相关角度

{

  if(where!=200)

  {

    if(where==201) ServoStop(which);

    else

    {

  ServoStart(which);

  myServo[which].write(where);

    }

  }

}

void servo_move(float value0, float value1, float value2, float t)

//   alue0, value1, value2, value3这四个参数时要写的舵机角度,float t这个参数是代表舵机运动的时间

{

  float value_arguments[] = {value0, value1, value2};

  float value_delta[servo_num];

  for(int i=0;i<servo_num;i++)

  {

    value_delta[i] = (value_arguments[i] - value_init[i]) / f;   //f=30,舵机初始角度定义为(1650,1300,2400)

  }

  for(int i=0;i<f;i++)

  {

    for(int k=0;k<servo_num;k++)

    {

       value_init[k] = value_delta[k] == 0 ? value_arguments[k] : value_init[k] + value_delta[k];

    }

    for(int j=0;j<servo_num;j++)

    {

        ServoGo(j,value_init[j]);

    }

    delay(t);

  }

}

​更多详情请见:【S037】自主消毒防疫机器人文章来源地址https://www.toymoban.com/news/detail-781095.html

到了这里,关于机器人制作开源方案 | 自主消毒防疫机器人的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器人制作开源方案 | AI校园服务机器人

    作者:李强、李振宁、毛维雷、李文文、张奥 单位:山西能源学院 指导老师:姚志广、程晟       在这个科技飞速发展的时代,在工业智造、人工智能的飞速发展中,出现了越来越多的智能化机械装置,也有许多创新类的比赛,本作品基于探索者创新套件设计平台设计出一

    2024年01月20日
    浏览(53)
  • 机器人制作开源方案 | 全自动导航分拣机器人

    作者:孙国峰 董阳 张鑫源 单位:山东科技大学 机械电子工程学院 指导老师:张永超 贝广霞 1.1 研究背景       在工业生产中,机器人在解决企业的劳动力不足,提高企业劳动生产率,提高产品质量和降低生产成本方面有着显著的意义。随着计算机自动化技术和社会的发展

    2024年01月23日
    浏览(53)
  • 机器人制作开源方案 | 家庭清扫拾物机器人

    作者: 罗诚、李旭洋、胡旭、符粒楷 单位: 南昌交通学院 人工智能学院 指导老师: 揭吁菡       在家庭中我们有时无法到一些低矮阴暗的地方进行探索,比如茶几下或者床底下,特别是在部分家庭中,如果没有及时对这些阴暗低矮的地方进行清扫,则会导致这些地方不干

    2024年02月07日
    浏览(45)
  • 机器人制作开源方案 | 乒乓球自动拾取机器人

    作者:刘众森、王森、王绘东、崔岳震、宋维鑫 单位:山东农业工程学院 指导老师:潘莹月、廖希杰       我们小组选择项目的任务方向乒乓球的捡取与存放,针对此问题我们研发了一款乒乓球自动拾取机器人。众所周知,乒乓球是一种世界流行的球类体育项目,而我国是

    2024年02月01日
    浏览(48)
  • 机器人制作开源方案 | 图书管理助手

    作者:丁位 朱红磊 程国正 杨秀萍 丁语林 单位:黑龙江科技大学 指导老师:邵文冕 刘安平 1.1 研究背景及意义        通过查阅资料,我们团队了解到自2015年起中国公共图书馆图书流通人次逐年增加,2019年中国公共图书馆图书流通人次达90135万人次,较2018年增加了8103万人

    2024年02月20日
    浏览(38)
  • 机器人制作开源方案 | 森林管理员

    ​作者: 李佳骏、常睿康、张智斌、李世斌、高华耸 单位:山西能源学院 指导老师: 赵浩成、郜敏       森林作为地球上可再生自然资源及陆地生态的主体,在人类生存和发展的历史中起着不可代替的作用,它不仅能提供国家建设和人民生活所需的木材及林副产品,而且

    2024年02月03日
    浏览(39)
  • 机器人制作开源方案 | 智能垃圾桶

           智能垃圾桶是一种利用物联网技术和智能感知能力的智能设备,旨在提高垃圾分类和处理的效率。通常具备以下特点和功能: ① 智能感知:智能垃圾桶配备各种传感器,如压力传感器、红外线传感器等,可以实时感知垃圾桶内垃圾的填充情况和类型。 ② 垃圾分类:

    2024年02月16日
    浏览(53)
  • 机器人制作开源方案 | 智能盲道除雪小车

    作者: 汪荣顺 李明旭 马晓乐 吴泽俊 李以陈 单位:江汉大学 指导老师: 张朝刚 张会利       本文论述了一种新型智能盲道除雪小车的设计与研发。由于目前的除雪设备集中在公路、城市道路、机场路面、高速公路等领域,但对于街道等路况的研究很少。因此,我们针对盲

    2024年02月02日
    浏览(50)
  • 机器人制作开源方案 | 滑板助力器

    我们可以用一块废滑板做些什么 呢 ?     如今,越来越多的人选择电动滑板作为代步工具或娱乐方式,市场上也涌现出越来越多的电动滑板产品。 (图片来源: Backfire Zealot X Belt Drive Electric Skateboard– Backfire Boards ) (图片来源: Electric Skateboards - Boosted USA ) 那么,这是不

    2024年02月12日
    浏览(35)
  • 机器人制作开源方案 | 行星探测车概述

           行星探测车(Planetary Rover)是一种用于进行科学探索和勘测任务的无人车辆,它们被设计成能够适应各种复杂的地形条件和极端环境,以便收集数据、拍摄照片、采集样本等。行星探测车通常包含以下主要组件和功能:        ① 底盘和轮子系统:底盘提供了行星探

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包