机器人制作开源方案 | 智能水果分拣机器人

news2024/11/25 20:40:49

作者:史振鹏 岳欣宇 仲祝伟

单位:邢台学院

指导老师:王承林 魏亚清

一、场景调研

      智能水果分拣机器人是基于探索者设计的一款可搬运可分拣以及移动的一款轻便机器人,集成了语音控制、分拣、搬运、识别、抓取等功能,全部是使用探索者标准件,通过控制板操作使机器人具有简单的判断能力,首先通过语音模块读取语音,识别数据,根据数据分析需要抓取的物料,同时采用较为先进的颜色识别传感器判断识别物料,再由微处理器对识别的物体进行分析处理,并通过控制模块驱动扩展板,从而趋势舵机做出相应的反应,进而使整个机械臂可以抓取。我们这个产品的主要任务为解脱过剩的劳动力,减少生产成本,收缩生产周期,它可以代替酬劳进行货品的分类,在工厂中进行搬运和装卸的工作,代替人类搬运危险物品如放射性物质、有毒物品等对工人身体的有害的工作,不仅提高了生产和工作效率,而且保证了人们的人身安全和生命财产安全,实现了机器人的自动化、智能化、高效率,这样一款既智能又高效的机器人将促进生产力的快速发展。

样机实物图

二、需求及功能

2.1 项目背景

      截至到2020年,全球的智能分拣和搬运市场的规模已经达到了70.2亿美元,并且预计2026年将达到143.4亿美元的高度规模,并且在2020-2026期间复合增长率(CAGR)将为12.63%。

      从地区层面来看,中国市场在过去几年变化较快,2020年市场规模为6.5亿美元,约占全球的9.19%,预计2026年将达到17.55亿美元,市场占比逐年增加。

      未来自动输入运送和分装收拣设备等应用将逐渐往智能化、模块化和标准化的方向发展,其中模块化有利于帮助企业在安装过程中实现快速调试使设备能正常运行;标准化有利于降低产品生产中的成本与运行过程中损坏产生的维修成本。目前快递企业的二、三级快递网点对性价比高,设备的耐用性要求很高,并且要便于公司维护的自动运输设备与分拣设备。此外未来商业配送物流中心将从仓储中心向配送分拣中心转移,目前,在中国市场上,德马科技,中科微至,欣巴科技,金峰团体等具备比较先进的分拣系统集成方案。

AGV产品已经在逐渐融入新型导航技术,AGV产品移动和避障能力大幅提升,各类移动机器人,码垛,分拣等物流机器人应用日渐遍及。移动机器人主要应用于具有搬运需求的情形,如汽车工业,3C电子,香烟,物流等是移动机器人应用广泛且前景广阔的行业。

2.2 产品需求

      根据《2020-2026全球与中国智能分拣系统市场现状及未来发展趋势》这篇文章探索全球与中国市场智能分拣系统的发展现状及未来趋势,分别从生产和消费两个角度分析智能分拣系统的主要生产地区、主要消费地区以及主要的生产产商。其中重点分析全球市场与中国市场目前的主要厂商,包括产品特点、产品规格、不同类型产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。

2.3 功能介绍

      ① 通过语音模块读取领取相应任务,传输给控制板,控制板通过颜色识别传感器进行图像采集与数据处理,处理后的数据传输到控制板进行计算获取任务信息。

      ② 自主寻找、识别任务指定水果。

      ③ 按任务要求的位置将其搬运至指定的存放地点,并按照要求的方向摆放。将传感器反馈的偏移量反应给单片机,对小车的四个步进电机转速进行控制来调整小车身位。机器人小车通过三个舵机来控制其机械臂,因舵机自带的反补常功能,因此机械臂可以转动相应的角度来抓去或放置物体。

三、技术路线说明

3.1 系统硬件设计

      本系统基于STC89C51单片机作为主控芯片,控制着舵机模块、激光雷达传感器模块、通讯模块等。通过雷达模块循环识别水果,单片机STC89C51为核心,以雷达传感器为主要检测器件,以SG-90舵机为电机控制模块,通过雷达传感器循环扫描,不断地向单片机发送位置信息。当检测到有物体时,通过串口进行通信,将位置信息发送到单片机上。单片机根据位置信息,单片机继续接受雷达模块的位置信息。 其中硬件包括一个雷达,两个舵机。开机后,所有器件初始化,雷达传感器开始进行位置信息测量,最后通过舵机控制机械臂进行抓取。整体电路框图如下图所示:

整体电路框图

3.1.1 雷达

      大多数激光雷达采用光学三角测距技术,配合精密光学视觉采集处理机构,进行高频测距,每次测量过程中,激光雷达发射经过调制的红外激光信号,该激光信号经目标物体漫反射后被激光雷达的光学视觉采集系统接收,再由激光雷达内部处理器实时数据分析,计算出目标物体到雷达的距离以及当前的夹角,最后通过通讯接口输出到外部设备。

      激光雷达引脚说明,如下表所示:

3.1.2 电机拖动模块

      360度舵机是PWM控制它的旋转速度和旋转方向,500-1500us的PWM是控制它正转,值越小,旋转速度越大;1500-2500us的PWM是它反转,值越大,旋转速度越大。1500us的PWM是控制它停止。(由于每一个舵机的中位可能会不一样,所以有些舵机可能是1520us的PWM,舵机才会停下来。所以需要自己实际测试出舵机的中位。)

      360度舵机就是一个普通的直流电机+一个电机驱动板的组合,所以它只能连续旋转,不能定位,也没法知道它的角度和圈数(除非自己在舵机外面加装其它传感器)。

      180度舵机是PWM控制它的旋转角度,500-2500us的PWM对应控制180度舵机的0-180度,是一一对应的,一个PWM值对应舵机的一个角度。

3.1.3 时钟

      时钟显示采用DS1302芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整,可以来记录工作时间。

时钟

3.1.4 ESP8266WIFI模块

      这款芯片使用了3.3V的直流电源,体积小,功耗低,支持透传,丢包现象不严重,而且价格超低,本作品用该模块可以实现局域网的控制。

ESP8266模块实物图

3.2 电路原理图整体设计

3.2.1 使用软件的简介

      AltiumDesigner在单一设计环境中集成板级和FPGA(现场可编程门阵列)系统设计、基于FPGA和分立处理器的嵌入式软件开发以及PCB版图设计、编辑和制造,并集成了现代设计数据管理功能,使得AltiumDesigner成为电子产品开发的完整解决方案--一个既满足当前,也满足未来开发需求的解决方案。

3.2.2 系统电路设计过程

      智能水果分拣机器人的系统特征在于它基于STC89C51单片机作为主控芯片,控制着舵机模块、激光雷达传感器模块、通讯模块等。

      所述主控制器包括处理器U1和2个20引脚的单排排针P3、P4,所述处理器U1的型号为STC15W4K58S4,所述排针P3的1脚到20脚分别对应接处理器U1的1脚到20脚,所述排针P4的1脚到20脚分别对应接处理器U1的40脚到21脚。

      所述存储电路包括芯片U2、电阻R17、R18;所述芯片U3的型号为AT24C02,其1脚-4脚、7脚均接地,其5脚、6脚分别接处理器U1的P3.6、P3.7,其8脚接所述VCC;所述电阻R4接在芯片U3的5脚与VCC之间,所述电阻R3接在芯片U3的6脚与VCC之间。

AT24C0存储模块

      时钟电路,其1脚接VCC,其2脚和其3脚分别接Y1晶振的两端,其8脚连接D电池盒的一端,电池盒另一端连接GND,其5脚、其6脚和其7脚分别接处理器U1的P4.4引脚、P4.2引脚、P4.1引脚。

时钟模块

      按键电路包括开关A1-A4;所述开关A1-A4的4脚接地,3脚分别接处理器U1的P2.0引脚、P2.1引脚、P2.2引脚、P2.3引脚,1脚和2脚都不接。以便于对激光发射方向的手动控制。

按键

       WIFI电路包括WIFI的U13,其3-4脚接处理器处理器U1的P3.0引脚、P3.1引脚,其1脚接VCC,其2脚接GND。

WIFI模块

       所述下载电路包括下载器U14和3脚开关B1,所述下载器的3脚接GND,其4脚接B1的1脚,其1-2脚接处理器处理器U1的P3.0和P3.1。所诉3脚开关B1的3脚不接,2脚接VCC。

示例程序

void stop();

void forward();

void back();

void turnleft();

void turnrigit();

void setup()

{

   pinMode( 5 , OUTPUT);

   pinMode( 6 , OUTPUT);

   pinMode( 9 , OUTPUT);

   pinMode( 10 , OUTPUT);

}

void loop()

{

   forward();

   delay( 2000 );

   turnleft();

   delay( 1000 );

   turnrigit();

   delay( 1000 );

   back();

   delay( 1000 );

   stop();

   delay( 1000 );

}

void back()

{

   digitalWrite( 5 , LOW );

   digitalWrite( 6 , HIGH );

   digitalWrite( 9 , LOW );

   digitalWrite( 10 , HIGH );

}

void forward()

{

   digitalWrite( 5 , HIGH );

   digitalWrite( 6 , LOW );

   digitalWrite( 9 , HIGH );

   digitalWrite( 10 , LOW );

}

void turnleft()

{

   digitalWrite( 5 , HIGH );

   digitalWrite( 6 , LOW );

   digitalWrite( 9 , HIGH );

   digitalWrite( 10 , LOW );

}

void stop()

{

   digitalWrite( 5 , LOW );

   digitalWrite( 6 , LOW );

   digitalWrite( 9 , LOW );

   digitalWrite( 10 , LOW );

}

void turnrigit()

{

   digitalWrite( 5 , LOW );

   digitalWrite( 6 , HIGH );

   digitalWrite( 9 , HIGH );

   digitalWrite( 10 , LOW );

}

五、作品创新点

      ① 智能化程度高,本作品采用语音识别模块可识别语音指令。

      ② 减少不必要器件的使用,使器件图简单明了,但功能齐全,且智能化更高。

      ③ 电机驱动电路直接集成在主控板上,集成化程度更高。

      ④ 最优布线设计、布线宽度量根据实际电流大小设置。尽量避免长距离平行走线,在走线拐弯地方避免使用直角,信号线尽量与电源供电线垂直摆置。

      ⑤ 考虑到小车与主控板的大小,以及空间利用问题,我们将其主控板设计为竖立在小车底盘后方,同时也方便更换。

作品难点

6.1 路径规划和任务调度技术

      首先,行驶路径规划。行驶的路径是指:可以解决AGV技术可以从起点到终点行进的一个路径问题。现在内外已经有许多人工智能算法都已经应用到了AGV的行驶路径规划当中。

      其次,任务工作的调度。主要是根据当前任务的要求,对当前发布任务进行的处理,具体是对具体的任务进行排序,并选择合适的AGV处理任务等。需要我们不断考虑各个AGV技术的电能供应时间、执行次数以及工作与闲置时间等多重因素,确保可以实现充分调用和合理的分配。

      最后,多机协调工作。具体是如何用多个AGV去一块完成某一项任务,并处理在做这个任务的过程中有可能出现的系统工作冲突、死锁等这些问题。目前常见是多机协调工作的方法,具体有基于多智能理论控制法、道路交通规则控制法和分布式协调控制法的多机器人控制法。

6.2 运动控制技术

      对于不同的车轮机构和路线行驶布局有着不同的转向和控制方式,现阶段AGV的转向驱动方式包括如下两种:两轮差速驱动转向方式,即将两个独立驱动轮同车轴平行地固定于车体中部,其它的自由万向轮起到支撑作用,控制器通过调节两个驱动轮的不同的转速和转向,可以实现任意转弯半径的转向。

解决方案

      ① 引导及定位技术。这项技术作为AGV技术研究的核心部分,引导及定位技术的好坏将直接关系着AGV的性能稳定性、自动化程度的高低及应用的实用性。

      ② 语音控制部分,这部分需要了解语音模块的使用方法,而且语音模块使用时不能有其他声音干扰,这就要求测试环境必须安静,也就意味着对环境要求比较严格,如果提前设置好,那么他会按照设定的程序执行。

      ③ 小车采用8路灰度检测对小车进行8路灰度传感器来检测赛道线路相对于车身位置并以此为反馈参数让机器人感知自身所处的位置,再将反馈的偏移量反馈给单片机,对小车的四个步进电机转速进行控制来调整小车身位。机器人小车通过三个舵机来控制其机械臂,因舵机自带的反补常功能,因此机械臂可以转动相应的角度来抓去或放置物体。

      ④ 对于物体颜色的识别采用的是GY-33模块,其工作原理是,照明LED发亮,映射到被测物体后,返回光经过滤镜检测蕴含的RGB的比例值,根据RGB的比例值识别出颜色。

更多详情请见:【S039】智能水果分拣机器人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1321142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 序列化机制详解

Java 序列化机制是一种将对象转换为字节流的过程,以便在网络上传输或保存到文件中,并能在需要时将字节流还原为对象。这一机制通过实现 java.io.Serializable 接口来实现,同时涉及到一些关键概念和注意事项。 Serializable 接口 Serializabl…

vscode使用remote ssh到server上 - Node进程吃满CPU

起因:Node进程吃满CPU 分析 我发现每次使用vscode的remote插件登陆到server后,就会出现node进程,不太清楚干什么用的,但是绝对和它有关。 查找原因 首先找到了这篇文章,解决了rg进程的问题: https://blo…

Shell编程基础 – C语言风格的Bash for循环

Shell编程基础 – C语言风格的Bash for循环 Shell Programming Essentials - C Style For Loop in Bash By JacksonML 循环是编程语言的基本概念之一,同样也是Bash编程的核心。当用户需要一遍又一遍地运行一系列命令直到达到特定条件时,例如&#xff1…

知识蒸馏:channel wise知识蒸馏CWD

论文:https://arxiv.org/pdf/2011.13256.pdf 1. 摘要 知识蒸馏用于训练紧凑型(轻量)模型被证明是一种简单、高效的方法, 轻量的学生网络通过教师网络的知识迁移来实现监督学习。大部分的KD方法都是通过algin学生网络和教师网络的归一化的feature map, 最小化feature map上的…

数据结构--图

树具有灵活性,并且存在许多不同的树的应用,但是就树本身而言有一定的局限性,树只能表示层次关系,比如父子关系。而其他的比如兄弟关系只能够间接表示。 推广--- 图 图形结构中,数据元素之间的关系是任意的。 一、图…

内网安全—Windows系统内核溢出漏洞提权

系统内核溢出漏洞提权 往缓冲区中写入超出限定长度的内容,造成缓冲区溢出,从而破坏程序的堆栈进而运行自己精心准备的指定代码,达到攻击的目的。 分类: 堆溢出 栈溢出 查找补丁的方法 1、手工查找补丁情况 systeminfo Wmic qfe…

Redis设计与实现之Lua 脚本

目录 一、 Lua 脚本 1、初始化 Lua 环境 2、脚本的安全性 3、脚本的执行 4、 EVAL 命令的实现 定义 Lua 函数 执行 Lua 函数 5、 EVALSHA 命令的实现 二、 小结 一、 Lua 脚本 Lua 脚本功能是 Reids 2.6 版本的最大亮点,通过内嵌对 Lua 环境的支持&#xf…

加特兰Demo点迹数据Python读取和显示

加特兰当前主推的芯片,拿到了样件做了几个基本Demo测试,录取的点迹数据为txt文档,数据格式如下: FT 0.10 CMN1 263 CMN2 150 BNK 0 --- F 0 O 140/2/140!0/0/0/0/0/0.00! --- BK00: P 25.67, R 4.11, V 0.00, A -39.04,…

AR室内导航如何实现?技术与原理分析

随着科技的进步,我们生活中许多方面正在被重新定义。其中之一就是导航,尤其是室内导航。增强现实(AR)技术的出现为室内导航带来了革命性的变革。本文将深入探讨AR室内导航的技术与原理,以及它如何改变我们的生活方式。…

bat批处理:git上传更新

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置,前后端开发环境的配置,编辑器的配置,网络服务的配置,网络命令的应用与配置,windows常见问题的解决等。 文章目录 批处理背景批处理代码代码说明:使…

Hadoop Single Node Cluster的安装

Hadoop Single Node Cluster的安装 安装JDK查看java -version更新本地软件包安装JDK查看java安装位置 设置SSH无密码登录安装hadoop下载安装设置hadoop环境变量修改hadoop配置设置文件设置core-site.xml设置YARN-site.xml设置mapred-site.xml设置HDFS分布式文件系统创建并格式化…

[ CTF ]【天格】战队WriteUp-第七届“强网杯”全国安全挑战赛

第七届“强网杯”全国安全挑战赛 2023.12.16~2023.12.17 文章目录 【Misc】Pyjail ! Its myFILTER !!!easyfuzz谍影重重2.0签到Pyjail ! Its myRevenge !!!server_8F6C72124774022B.py 问卷调查 【Reverse】ezre 【Web】happygame 【强网先锋】石头剪刀布TrieSpeedUpezreez_fmt…

翻译: LLMs新的工作流程和新的机会 New workflows and new opportunities

生成人工智能正以多种方式引领着不仅仅是成本节约,更是收入增长。但是,就像生成人工智能这样的通用技术创造价值的方式有很多,谈论这些方式是很多的。但在这个视频中,我想看看一些我看到的新兴的,或者更常见的走向这种…

Java 8 中的 Stream:优雅的集合处理

Java 8 中的 Stream:优雅的集合处理 为什么需要 Stream?Stream 的特性Stream 基本操作1. 创建 Stream2. 中间操作2.1 过滤(Filter)2.2 映射(Map)2.3 截断(Limit) 3. 终端操作3.1 遍历…

STM32内部是怎么工作的

STM32是怎么工作的 1 从孩子他妈说起2 早期计算机的组成2.1 五大元件(1)第一个出场的是电容元件(2)第二个出场的是二极管(3)第三个出场的是电阻元件(4)第四个出场的是电感&#xff0…

其他配置相关安装

consul安装和配置 docker run -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600/udp consul consul agent -dev -client0.0.0.0访问:http://192.168.0.102:8500/ DNS查询 dig 192.168.0.102 -p 8600 consul.service.consul SRVnacos安装 ht…

华为OS与麒麟OS:华为自研操作系统的对决

导言 在移动操作系统领域,华为OS和麒麟OS代表了华为在自主研发方面的努力。本文将深入探讨这两个操作系统的特点、竞争关系以及它们在用户体验、生态系统建设等方面的差异。 1. 背景与起源 华为OS的诞生: 华为OS是华为公司为应对外部环境而自主…

12.18_黑马数据结构与算法笔记Java

目录 thinking:orElse? thinking:map.computerifabsent? thinking:subString? 184 哈希表 问2 解释拆分 185 哈希算法 概述 186 哈希算法 Object.hashCode 187 哈希算法 String.hashCode 188 哈希算法 冲突测试 189 哈希算法 MurmurHash 190…

Linux操作系统:自由、稳定、强大的开源之光

导言 Linux操作系统作为一个开源的、多用户、多任务、支持多线程和多CPU的UNIX类操作系统,不仅在服务器领域占有显著份额,也逐渐在桌面和嵌入式系统中崭露头角。Linux操作系统的多样性体现在各种不同的发行版上,而Ubuntu、CentOS和Red Hat可以…

用Python编辑PDF文件:拆分合并、加密解密、页面编辑

文章目录 安装和初步使用合并与拆分页面编辑加密解密 安装和初步使用 PyPDF2支持拆分、合并、页面旋转、添加水印、加密解密等操作。支持pip安装,过程很丝滑。 pip install PyPDF2PyPDF2提供了PdfFileReader类,可用于读取PDF文件,其metadat…