机器人制作开源方案 | 核酸检测辅助机器人-程序员宅基地

技术标签: 机器人  人工智能  开源  

作者:周文亚、胡冲、王晓强、张娟

单位:北方民族大学

指导老师:马行、穆春阳

1. 场景调研

      新型冠状病毒肺炎全球流行已近三年,其变异毒株不断增强的传播力同时其症状不断变轻,其中无症状(怎么确认是否被感染)导致人们产生放轻松“躺平”还是严控疑虑的心理交织。新型冠状病毒核酸检测结果是能够准确和迅速的识别感染个体,防止新型冠状病毒传播,落实四个早的重要措施。如今疫情反复、感染范围广、防控难度高,规范、高效地开展新型冠状病毒核酸检测是做好疫情防控的前提。医护检测人员数量有限、检测时间集中在几小时之内、而且大多数核酸检测点都是临时搭建,医护人员也是紧急召集调整,任何时间都会听从安排展开核酸检测。不仅如此小区居民排队造成近距离接触;采样时必须去掉口罩,有时还要求“啊”,采样间隔时间很短,造成局部采样空间病毒可能富集,对采样人员和被采人员都增加感染几率;工作人员和志愿者工作量大,手部消毒、取棉签、采样、掰断棉签、放进试管、旋上盖。这是核酸检测医务人员每天要重复无数遍的循环动作;应检尽检。穿防护服很辛苦,对温度的感知更低,疲惫容易使得医护人员采样时采样效率降低,被采样时就能感受到他们的疲惫。对于行走不便人员下楼采样存在困难。为降低工作人员以及未感染人员的感染病毒风险, 提高核酸检测质量通过无人采样核酸机器人的全自动化操作,从取棉签、到咽拭子采集、拧试管短短几十秒内,一次核酸采样即可完成。不惧高温、严寒,且精确度高,即使每天都在做重复性的工作,也不会感到劳累。相比人工采样,利用机器人核酸采样技术,可以保证每次采样全程动作精准、规范,实现减少了医务人员高风险暴露,缓解了医务人员短缺问题的同时,提高了工作效率,节约了医疗资源。

2. 设计思想

      本作品设计的核酸检测辅助机器人是以探索者组件来进行搭建的,以Arduino作为平台的开发板进行控制设计的,模拟真实核酸检测场景作业。这个机器人设计的核心是自动做核酸采样和平台的自主移动,它可以自主移动到需要做核酸的检测点,然后在医护人员及志愿者的辅助下,独立自主的完成核酸采集工作,降低了核酸检测时候出现交叉感染,减少了医护人员的负担,减缓了医护人员短缺的现象,符合当今社会的发展,具有重要的深挖价值。

3. 机器人本体技术路线说明

      本作品的表面设计图如下所示,由两个按键模块,两个消毒模块,试管瓶子和瓶盖的放置位置,一个六自由度用舵机搭建的采样机器臂,两个触须模块,两个超声波测距模块,然后使用开发板的串口与移动平台通讯。

表面设计图

作品的底部设计图如下所示,采用四个步进电机,四个麦克纳姆轮连接组成,然后利用两层连接柱架高地盘,使小车的通行能力大大提升。

底部设计图

4. 系统框图模块分析

      本参赛作品主要分为核酸辅助检测和移动平台两大部分组成,总框图如下所示。核酸辅助检测部分为首先医护人员每次采样后通过消毒按键为自己手部和机械臂进行消毒,然后把棉签放入机器臂的末端后按下核酸检测按键来控制机械臂进行核酸采样,机械臂把采样后的棉签放入试管盒中,然后回到初始位置进行下一次采样。移动平台是为了增强机器人的活动性,方便性和智能性而设计,在机器人进行自主移动时,通过超声波测距模块和触须测高模块进行避障。

总体框图

4.1 机器人消毒模块

      本模块为了在核酸检测过程中对医护人员和核酸采样人员进行保护,避免交叉感染而设计,分为医护人员核酸采样手部消毒和每次采样后机器臂末端,采样区间消毒两部分消毒。通过一个按键作为触法源,一个自由度的机器臂为医护人员进行消毒,两个自由度的机器臂为采样后机器臂末端和采样区间进行消毒。其程序流程图如下所示:

消毒模块流程图

4.2 机器人核酸采样模块

      核酸采样模块首先医护人员把棉签放入六自由度的机器臂的末端夹持器里,然后按下采样按键,机械臂末端先夹持住棉签,然后移动到采样区域,再进行核酸采样,采样过后移动到存放采样棉签的试管瓶口的上端,夹持器放下棉签到试管里,最后移动到初始的位置进行下一次采样,程序流程图如下所示

核酸采样模块流程图

4.3 机器人超声波测距避障模块

      在移动平台的前端左右两边均匀的安装两个超声波测距模块,若检测到超声波模块的距离会导致平台发生碰撞时,再检测两个超声波模块哪一个会发生碰撞,若检测到右边的会发生碰撞,则小车往左避障,若检测到左边的会发生碰撞,则小车往右避障。若两个超声波模块都检测到会发生碰撞,小车先执行左避障程序,若不能避障,再执行右边避障程序, 程序流程图如下所示

超声波测距避障模块流程图

4.4 机器人触须测高避障模块

      在移动平台的前端左右两边均匀的安装两个触须测高模块,若检测到触须模块的高度会导致平台发生碰撞时,再检测两个触须模块哪一个会发生碰撞,若检测到右边的会发生碰撞,则小车往左避障,若检测到左边的会发生碰撞,则小车往右避障。若两个触须模块都检测到会发生碰撞,小车先执行左避障程序,若不能避障,再执行右边避障程序, 程序流程图如下所示

触须测高避障模块流程图

5. 示例程序

消毒程序代码

int a=0,b=0,c=0;

#define ECHOPIN A0

#define TRIGPIN A1

#include <Servo.h>

Servo servo_pin_4;

Servo servo_pin_7;

Servo servo_pin_11;

void setup()

{

  Serial.begin(9600);

  pinMode(ECHOPIN, INPUT);

  pinMode(TRIGPIN, OUTPUT);

  servo_pin_4.attach(4);

  servo_pin_4.write( 160);

  servo_pin_7.attach(7);

  servo_pin_7.write( 50);

  servo_pin_11.attach(11);

  servo_pin_11.write(90);

  delay(300);

}

void loop()

{

  digitalWrite(TRIGPIN, LOW);

  delayMicroseconds(2);

  digitalWrite(TRIGPIN, HIGH);

  delayMicroseconds(10);

  digitalWrite(TRIGPIN, LOW);

  float distance = pulseIn(ECHOPIN, HIGH);

  Serial.println(distance);

  if(0<distance)

  {

  int a=160;b=50;c=90;

  servo_pin_4.write(a);

  servo_pin_7.write(b);

  servo_pin_11.write(c);

  for(a=160;a>=100;a-=1)           

  {servo_pin_4.write(a);delay(30);}  

   for(a=100;160<=a;a+=1)           

  {servo_pin_4.write(a);delay(30);}

  for(b=50;b>=20;b-=1)

  {servo_pin_7.write(b);delay(30);}

 

  for(c=90;c>=20;c-=1)

  {servo_pin_11.write(c); delay(30);}

  for(b=20;50<=b;b+=1)

  {servo_pin_7.write(b);delay(30);}

  for(c=20;90<=c;c+=1)

  {servo_pin_11.write(c); delay(30);}

  delay(100);

  }

}

机器臂核酸采样代码

int a=0,b=0,c=0,d=0,e=0;

#define ECHOPIN A0

#define TRIGPIN A1

#include <Servo.h>

Servo servo_pin_4;

Servo servo_pin_7;

Servo servo_pin_11;

Servo servo_pin_3;

Servo servo_pin_8;

void setup()

{

  Serial.begin(9600);

  pinMode(ECHOPIN, INPUT);

  pinMode(TRIGPIN, OUTPUT);

  servo_pin_4.attach(4);

  servo_pin_4.write( 120);

  servo_pin_7.attach(7);

  servo_pin_7.write( 90);

  servo_pin_11.attach(11);

  servo_pin_11.write(90);

  servo_pin_3.attach(3);

  servo_pin_3.write( 100);

  servo_pin_8.attach(8);

  servo_pin_8.write(90);

  delay(300);

}

void loop()

{

  digitalWrite(TRIGPIN, LOW);

  delayMicroseconds(2);

  digitalWrite(TRIGPIN, HIGH);

  delayMicroseconds(10);

  digitalWrite(TRIGPIN, LOW);

  float distance = pulseIn(ECHOPIN, HIGH);

  Serial.println(distance);

  if(0<distance)

  {

  int a=120;b=90;c=60;d=100;e=90;

  servo_pin_4.write(a);

  delay(200);

  servo_pin_7.write(b);

  delay(200);

  servo_pin_11.write(c);

  delay(200);

  servo_pin_3.write(d);

  delay(200);

  servo_pin_8.write(e);

  delay(200);

//1;夹面棉签

  for(d=100;d<=120;d+=1)

  {servo_pin_3.write(d);delay(30);}

//2;做核酸口预设位置

  delay(200);

  for(a=120;a>=35;a-=1)           

  {servo_pin_4.write(a);delay(30);}

//3:接近测试口

  delay(200);

  for(b=90;b>=80;b-=1)           

  {servo_pin_7.write(b);delay(30);}

//4;采集

  delay(200);

  for(a=35;a<=45;a+=1)           

  {servo_pin_4.write(a);delay(60);}

  delay(200);

   for(a=45;a>=35;a-=1)           

  {servo_pin_4.write(a);delay(60);}

//5;返回接近测试口

  delay(200);

  for(b=80;b<=100;b+=1)           

  {servo_pin_7.write(b);delay(30);}

//6;移动核酸管上口

  delay(200);

  for(a=35;a<=105;a+=1)           

  {servo_pin_4.write(a);delay(30);}

  delay(200);

  for(b=100;b>=60;b-=1)           

  {servo_pin_7.write(b);delay(30);}

  delay(200);

  for(c=60;c<=100;c+=1)           

  {servo_pin_11.write(c);delay(30);}

  delay(1000);

  //7:放下棉签

  for(d=120;d>=100;d-=1)

  {servo_pin_3.write(d);delay(30);}

  delay(200);

  for(b=60;b<=90;b+=1)           

  {servo_pin_7.write(b);delay(30);}

   delay(200);

   for(c=90;c>=60;c-=1)           

  {servo_pin_11.write(c);delay(30);}

  //8:回到初始的点

  delay(200);

  for(a=105;a<=120;a+=1)           

  {servo_pin_4.write(a);delay(30);}

  delay(100);

  }

}

6. 作品创新点

      ① 避免了核酸采样医护人员和广大人民群众在新冠肺炎在核酸采样时遭受交叉感染。

      ② 减少了核酸采样医护人员的体力负担。

      ③ 此机器人对核酸检测工作人员的医护职业水平要求不高,操作不仅简单,而且很容易上手,缓解了核酸采样医护人员短缺的尴尬局面。

      ④ 采用自主移动平台增加了机器人活动性和便利性,可以在任何地方,任何场地进行核酸采样。

7. 作品难点及解决方案

      难点一:机械臂怎样对人进行采样

      解决方案:通过先接近,再接近,后采样的策略,本设计采用定点采样,做核酸人员通过一次性采样嘴再机器人采样口等待核酸采样,然后机械臂先接近采样口,再接近人的口腔,最后进行核酸采样。

      难点二:移动平台的移动

      解决方案:通过PID对四个轮子进行差速控制,进而控制移动平台的前后,左右转向移动。

      难点三:两个控制板之间的通讯

      解决方案:通过串口通讯来对两个控制板进行数据的传输。

更多详情请见:【S047】核酸检测辅助机器人

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Robotway/article/details/135316342

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文