作者:张昊 罗志彤马 新龙 **景
所属机构: 习外交学院
指导老师:陈小虎 杜习
1 目的和意义
消毒是疫情防控工作的重要组成部分,传统的消毒方式需要人工操作消毒设备,不仅工作量大,而且有些消毒剂会对人体造成伤害,消毒机器人成为替代人工工作的最佳选择,因此开发一种可携带多种消毒设备的消毒机器人控制系统,对防疫和防疫具有重要意义。控制。
2 背景
基于当前疫情环境的背景,在智能设计理念的指导下开展设计研究。 现有的消毒方法大多采用人工消毒,消毒人员在进入消毒区域进行消毒前需要做好防护工作,人工消毒工作区域大,工作强度大,每天需要在精力较大的区域进行多次消毒, 这增加了工作人员的感染风险。它旨在取代传统的人工消毒模式,将消毒功能赋予智能机器人,并兼顾人工消毒死角和环境监测,进行设计实践。
三、问题与解决方法
挑战:自2024年底新冠肺炎疫情爆发以来,迅速席卷全球,新型冠状病毒的强烈传染性使全世界人民的生命和健康面临巨大风险。 输入病例、无症状感染者、变异株等都对我国疫情防控工作构成挑战,对可能被病原微生物污染的场所和物品进行消毒,是阻断病毒传播的重要技术手段。
解决方法:通过对车站等公共场所进行预防性消毒,可以有效阻断疫情的传播途径,减少新型冠状病毒接触传播和气溶胶传播引起的感染。 研究聚焦疫情背景下最密集的消毒工作,以智能消毒机器人代替人工消毒作业,保障人员健康安全。 提高最密集区域的消毒效率和杀菌率,大大提高了每个环境的工作效率,进一步降低了疫情在最密集区域传播的可能性。
1. 机械结构设计与建模
通过实地考察,分析密集消毒环境,在传统消毒机器人的基础上对场景进行细分,通过测量地面与座椅、座椅与扶手的距离,进一步确定智能消毒机器人的工作状态,并基于密集空间数据确定智能消毒机器人的行走模式。 利用模块化设计,集成功能和结构,并分析其安全性。
2 创新
该组生产的消毒防疫机器人兼具喷雾和紫外线消毒功能,由于进行室内外消毒杀菌,队员采用可拆卸组装式底盘,室内消毒杀菌采用轮式底盘,室外消毒杀菌采用履带式底盘。
1 电源设计
通过对现有消毒形式的调查分析,了解其运行中存在的问题,并结合现有消毒机器人的工作状态和特定场景任务的执行情况,对现有消毒机器人进行优化。 采用模块化设计方法和有限结构变化方法,进行了大量广泛的数据收集和实地调研,分析了现有消毒机器人的优缺点,并分析了未来的发展趋势。
2. 机器人控制系统设计
该机器人使用 1 个超声波传感器来识别和感知前方障碍物,4 个电机用于底盘驱动,3 个伺服系统用于对执行器进行消毒。 超声波传感器接在STM32系统扩展板的传感器区域A0、A1引脚上,四个电机分别接在扩展板的X、Y、Z、A接口上,三个伺服器接在扩展板的7个引脚上。 控制系统软件使用Arduino在C语言中编程。
感知与控制软件流程图如下所示:
2D 绘图
侧视图,可以看到机械臂的上下。
俯视图,用于观察机械臂的平面摆动。
2.3D测绘成像
2.现场组装和生产
整体组装和调试
随着机器人技术的飞速发展,机器人早已出现在医疗领域,虽然防疫消毒机器人发展缓慢,各企业研发力量不足。 在疫情爆发之前,为了降低人工消毒的劳动强度和交叉感染的风险,解决一线医护人员不足的问题,用消毒机器人代替人工,在医院、户外等场所从事消毒工作,这使得医院对消毒机器人的需求迅速增加, 各国也开始加大对医疗服务机器人的研发力度。
#include
定义舵机速度 40 定义舵机转动的快慢。
#define servo_speed1 1
定义舵机速度 Walkforward Low 10 设置前进的慢动作。
定义伺服速度 Walkforward High 40
定义伺服速度回退低 10 以设置慢速后退运动。
定义伺服速度 Walkback High 5
定义伺服速度右低 6 以设置慢速右转动作的时间。
定义伺服速度 Right High 4
servo myservo[3];定义 3 个舵机。
int f = 30;定义舵机在每种状态之间旋转的次数,从而确定每个舵机每次旋转的角度。
int servo_port[3] = ;定义伺服引脚。
int servo_num = sizeof(servo_port) / sizeof(servo_port[0]);定义舵机的数量。
float value_init[8] = ;定义舵机的初始角度。
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()
void loop()
else 舵机的运动控制。
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()
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)
void servo_move(float value0, float value1, float value2, float t)
alue0、value1、value2、value3是舵机角度时要写入的四个参数,float t是表示舵机运动时间的参数。
float value_arguments = ;
float value_delta[servo_num];
for(int i=0;ifor(int i=0;ifor(int j=0;jdelay(t);
更多详情请见:[S037] 自主消毒防疫机器人