机器人制作开源方案 | “AIBOT”-多功能货物搬运机

news2024/12/24 10:41:27

作者:王晨曦、敖鑫、王威威、安尚琦

单位:北京理工大学

指导老师:李忠新、朱杰

一、场景调研

      如今搬运机在我们的生产作业及生活中都起着比较重要的作用,在现代社会对升降机需求的增多,市场的不断扩大,使得升降机的种类也不断丰富起来,满足了不同作业场合的需求。 目前有移动式、固定式、车载式、铝合金式、自行式等升降机类型,在社会大量需求的推动下,升降机的发展步伐及空间也得到了扩大 ,目前不管是在工厂、企业、机场、码头、酒店等需要高空维修、安装、清洁的场所,都能随处可见升降机的存在,可见给我们的日常作业带来了很大的便利。我们小组在设计前,对搬运机器的工厂应用进行了一定调研,主要得出如下结论:

      ① 在很多危险场合仍然需要人工操作实现货物的运输与堆叠,这不仅是一种人力资源的浪费,同时也是对工作人员生命安全的不负责。而出于多种特殊的需求,一些工厂或仓库需要运输存放危险品,当需要在危险场景下的升降作业时,无人智能的升降装置便派上大用场。

      ② 一些加工生产线上除了需要货物能够竖直升降外还能完成某些功能的设备,以水果加工为例,水果加工生产线需要预先对水果进行清洗,这就需要有擦洗等辅助功能。

人工货物搬运

水果生产线的升降设备

二、机器人功能实现逻辑

2.1 硬件部分--升降平台

(1) 齿轮传动-动力源

      启发于各类物理书中的经典例题:滑轮与铁块的经典组合,我们用齿轮组装拼装成了一个滑轮,利用齿轮将舵机旋转的位移转化为竖直方向的位移,从而实现了升降机的升降功能

2)固定导轨-轨迹控制

      为了使升降机在运行的过程中更加平稳,我们在运行的轨迹中使用了额外的长铁签让升降的篮筐与与铁签配合,从而制成了导轨(红色虐线中间),可控性和安全性极强的升降平台。

(3)金属篮筐-装载货物

      我们将装载货物的金属篮筐系在位于齿轮制成的滑轮上细线上,通过控制滑轮的转动速度控制整体的升降速度,我们还在铁质篮筐中安装了红外传感器,吹气孔,擦洗设备,在应对不同货物时可多样性的选择不同的处理方法。

2.2 软件部分

(1)编程软件

      我们以arduino为编程的核心语言,为简化编程的步骤同时提高编程的准确性,我们采取了图形化编程对整体装置实现了控制。

(2)程序设计

      在程序中我们多采用延迟控制,通过计算好机构整体上升和下降所需时间,让控制升降的360舵机和控制推出物体的270舵机在完成对应功能后在原地延迟停滞,直到另外的部分功能完成后再恢复运动,直到再次回到初始状态进行下一次运动。

以水果为货物设计装置的运行逻辑:

三、机器人本体技术路线

3.1 中央运输手臂

中央运输手臂的总体设计如下图所示:

      中央运输手臂的旋转功能是通过安装在中心旋转轴上的270°舵机实现的,为了保证旋转的流畅度,我们在中心旋转轴的底部安装了四个小轮,又在手臂的最前端安装了一个万向轮。在旋转时四个小轮同时跟着中心轴旋转,前端的万向轮以旋转轴为圆心做半径不变的匀速圆周运动,这样既保证结构的稳定性,又不会影响旋转的流畅性。

中央运输手臂的伸缩功能是通过安装在旋转轴上方的连杆结构实现的,同时为了确保手臂能沿着直线进行伸缩,我们加装了两根导轨约束手臂的伸缩方向。这样中央手臂可以通过收缩保障在旋转过程中不影响其他平台的正常工作,平稳流畅地实现各个平台间的联系。

3.2 推进装置

      在中央运输手臂、清洗模块、去皮模块、切割模块上都各自安装有能伸缩的推进装置,主要是通过连杆结构和导轨的配合使得推进片能在一个方向上自由伸缩,实现推进功能,使得水果能够在各个功能模块间转移。

四、作品创新点

      ① 以中央手臂运输结构为核心,通过其旋转和伸缩的功能可以建立极坐标系,如下图所示,中央的机械手臂可以通过一定的计算实现二维平面上几乎是任意位置的定点到达,具有充分的自由性和可控性。

      ② 舵机上置考虑到我们的机器需要涉水或在一些危险的场景中工作,为了减少对舵机的损伤,我们决定采用舵机 上置的方式,尽可能减少复杂场地环境和危险货物对装置运行带来的阻碍。

      ③ 自动感应,配合性强全程通过红外传感器的感应实现功能,减少人工操作与货物的接触,很好地保障工作人员的安全。可以通过自主调节360°舵机的转速改变货物运输速度和升降位置的高低,同时能够与现有的叉车、传送带等装置配合协作,实现更加智能的工作,进一步减少工作人员与危险产品的接触,同时简化工作流程。

      ④ 各个模块间只要将初始平台高度调成一致即可实现工作配合,可以自由调节模块的高度,满足多种复杂的地形需求,同时占地面积较小又便携,适合于家庭或个体商户在多种不同情况下的使用。

五、作品难点及解决/改进方案

      ① 我们起初设计时只打算通过旋转或履带的传送完成各个功能的配合,后来发现这样各个单独的模块与传送装置之间的配合会比较困难,于是我们大胆利用极坐标的特性设计了如下图所示的可以伸缩、旋转的中央传送手臂,这样就可以轻松实现定点的配合。

      ② 装置运行时我们发现容易出现球形货物滚动,从装置中脱落,无法按照既定路线运输的困难。于是我们通过程序的改写和延时的增加改变了伺服电机的运转速度,使得推进装置和旋转装置在运送货物和不运送货物时的速度有了区别,这样既可以节省时间也可以保障货物在运输过程中的稳定性。同时我们在很多水平或垂直运行的结构上加入了导轨的限制,使得其能在我们期望的方向上顺利运行,减少了货物运输过程中的阻碍。

      ③ 受到硬件设备的影响,我们缺乏足够的长杆实现一次性推进的功能。于是我们利用两个舵机的配合使用了一些二次推进的结构,如下图所示,虽然结构不够简化,但是最终实现了将水果运输到指定位置的功能。

六、附录

部分代码

              #include <Servo.h>

Servo servo_pin_7;

Servo servo_pin_4;

Servo servo_pin_11;

void setup()

{   pinMode( 14, INPUT);

  servo_pin_4.attach(4);

  servo_pin_7.attach(7);

  servo_pin_11.attach(11);

void loop()

{   if (!( digitalRead(14) ))

  { delay( 5000 );

    for( int k0 = 30; k0 < 54; k0++)

    {   servo_pin_11.write( k0 );

        delay( 100 );      }

        delay( 1000 );

    servo_pin_7.write( 100 );

    delay( 2000 );

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

    {   servo_pin_4.write( i );

        delay( 100 );      }

    delay( 2000 );

    servo_pin_4.write( 0 );

    delay( 45000 );

    servo_pin_7.write( 60 );

    delay( 2000 );

  for( int k = 56; k < 85; k++)

    {   servo_pin_11.write( k );

        delay( 100 );      }

        delay( 1000 );       

        servo_pin_7.write( 100 );

    delay( 2000 );

    for( int i2 = 0; i2 < 80; i2++)

    {   servo_pin_4.write( i2 );

        delay( 100 );      }

    delay( 2000 );

    servo_pin_4.write( 0 );

    delay( 2000 );

     servo_pin_7.write( 60 );

    delay( 2000 );

      for( int k5 = 85; k5 > 54; k5--)

    {   servo_pin_11.write( k5 );

        delay( 100 );      }

        delay( 1000 );

    delay( 30000 );

      for( int k6 = 54; k6 < 85; k6++)

    {   servo_pin_11.write( k6 );

        delay( 100 );      }

        delay( 2000 );

         servo_pin_7.write( 100 );

        delay( 28000 );

         servo_pin_7.write( 60 );

        delay( 2000 );

        for( int k7 = 85; k7 > 54; k7--)

    {   servo_pin_11.write( k7 );

        delay( 100 );      }

        delay( 1000 );

    delay( 8000 );

  for( int k3 = 54; k3 < 120; k3++)

    {   servo_pin_11.write( k3 );

        delay( 100 );      }

        delay( 1000 );

        servo_pin_7.write( 100 );

    delay( 2000 );

    for( int i3 = 0; i3 < 80; i3++)

    {   servo_pin_4.write( i3 );

        delay( 100 );      }

    delay( 2000 );

    servo_pin_4.write( 0 );

    delay( 40000 );

    servo_pin_7.write( 60 );

    delay( 2000 );

      for( int k4 = 120; k4 > 30; k4--)

    {   servo_pin_11.write( k4 );

        delay( 100 );      }

        delay( 1000 );

        servo_pin_7.write( 100 );

    delay( 2000 );

    for( int i4 = 0; i4 < 80; i4++)

    {   servo_pin_4.write( i4 );

        delay( 100 );      }

    delay( 2000 );

    servo_pin_4.write( 0 );

    delay( 2000 );

    servo_pin_7.write( 60 );

    delay( 2000 ); }

  else

  { servo_pin_4.write( 0 );

    delay( 4000 );

    servo_pin_7.write( 60 );

    delay( 2000 );

    servo_pin_11.write( 30 );

    delay( 2000 );   } }

*更多资料请见:【S035】“AIBOT”-多功能货物搬运机

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

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

相关文章

2.5 常规游戏中模型通用要求介绍

一、布线和理性 多星点&#xff08;4个及4个以上边的交点&#xff09; 如果是在中模阶段&#xff0c;减少使用多星点&#xff0c;因为会在细分是时出现凸点问题&#xff0c;如果要使用多星点&#xff0c;需要通过布线技巧把它移动至平面处&#xff0c;不要让他出现在倒角边缘。…

基于SSM医院员工考勤管理系统,请假系统,员工管理系统,部门管理系统(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

电流测量原理

由于直接测量电流信号是很难的&#xff0c;但是测试电压信号比较容易&#xff0c;因此通常都是先将电流信号转换为电压信号&#xff0c;将电压信号进行调理后送至 CPU&#xff0c;CPU 通过 AD 转换得到一个码值&#xff0c;软件读出该码值&#xff0c;先根据主控的硬件设计参数…

1688一件采购实现指南:含代码实现采购流程

一、引言 1688是中国最大的B2B电子商务平台之一&#xff0c;提供了丰富的商品信息和采购服务。一键采购是1688平台的一项便捷功能&#xff0c;可以帮助用户快速完成采购流程&#xff0c;提高采购效率。本文将详细介绍如何使用1688一键采购功能&#xff0c;并通过代码示例演示如…

语音群呼有哪些常见的应用场景?

事务通知提醒 银行信用卡还款通知、帐户进出帐通知等&#xff1b;供电部门电费收缴通知、客户查询、公告通知等&#xff1b;通信企业话费欠费通知。其他行业如&#xff1a;物业行业、自来水行业、人社局、法院等事务通知。 预警通知 譬如台风、防汛、防洪、地震、海啸、泥石…

AppLink+WMS,实现仓储管理一体化

WMS像全能的库管员&#xff0c;可以在线还原真实仓库&#xff0c;让企业进行科学化、条理化、俯视化的仓库管理。 随着移动互联网和物流行业的快速发展&#xff0c;如何提高仓储管理的效率和准确性成为了企业关注的焦点。在这个背景下&#xff0c;结合AppLink和WMS系统&#x…

windows 网卡设备收包禁止自动剥掉VLAN

windows网卡驱动默认会在接收数据包的时候剥掉vlan tag&#xff0c;使得用wireshark抓到的数据包中不含vlan tag&#xff0c;此时需要通过修改注册表让驱动保留vlan tag。 1. 打开网络连接 找到需要修改的网卡。属性-配置-详细信息-驱动程序关键字。复制{4d36e972-e325-11ce-…

10款AI绘画软件,一次性打包给你!

科技的发展如疾风骤雨&#xff0c;人工智能的影响已渗透到我们生活的各个角落。其中&#xff0c;艺术界同样在这股大潮中得到了翻天覆地的改变。人工智能与艺术的结合&#xff0c;开辟出了科技与艺术融合的全新视野。例如&#xff0c;人工智能绘画软件&#xff0c;这种类型的软…

使用@ExceptionHandler对数据库异常进行统一处理

使用ExceptionHandler对数据库异常进行统一处理 数据库插入异常信息,插入字段长短超时数据库设置字段长度 ### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column remark at row 1捕获异常处理…

【T1】T1飞跃专业版软件中, 操作添加现金银行信息时提示:该父类账户信息有财务数据,不能分级。

【问题描述】 在T1飞跃专业版软件中&#xff0c; 操作添加现金银行信息时提示&#xff1a;该父类账户信息有财务数据&#xff0c;不能分级。 【解决方法】 该问题是原因是因为T1和U通用财务联用。 Ps&#xff1a;留一下软件版本【飞跃19.5财务15.0.2.5】 针对账套库执行下属语…

【含泪分享】OpenCV4工业缺陷检测的六种方法

机器视觉 机器视觉是使用各种工业相机&#xff0c;结合传感器跟电气信号实现替代传统人工&#xff0c;完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工业品的缺陷检测极大的依赖人工完成&#xff0c;特别是传统的3C制造环节&#xff0c;产品缺陷检测依赖于…

PyQt6 QSlider滑块控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计45条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

【数据结构—栈的实现(数组栈)】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、栈 1.1栈的概念及结构 二、栈的实现 2.1头文件的实现—Stack.h 2.2源文件的实现—Stack.c 2.3源文件的测试—test.c 三、栈的实际测试数据展示 3.1正常的出…

好用便签类工具有哪些?让上班族更轻松一些

想象一下你坐在电脑前&#xff0c;正在为即将到来的会议做准备&#xff0c;你需要整理一些重要的信息&#xff0c;以免在会议中遗漏关键内容。可是&#xff0c;你的电脑桌面上堆满了各种文件和图标&#xff0c;让你感到有些凌乱。这时&#xff0c;好用的便签类工具就成了你的救…

使用Allure框架创建个性化测试报告的步骤

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

FindMy技术用于手表

手表是一种用于计时和显示时间的仪器&#xff0c;通常由机械、电子或石英等机制驱动。手表可以作为配饰佩戴在手腕上&#xff0c;具有方便携带、时尚美观等特点。手表的种类和款式很多&#xff0c;可以根据不同的需求和场合进行选择。常见的手表类型包括机械表、石英表、电子表…

如何进行产品数据分析一——移动应用APP分析方法

如何进行产品数据分析 产品的定义产品分析的构成移动应用APP分析方法AARRR1.流量拆解DAUMAU活跃率拆解流量深度 2.流量引入反作弊算法识别系统&#xff08;量&#xff09;拉新质量评估体系&#xff08;质&#xff09;渠道价值评估体系&#xff08;值&#xff09; 3.流量输出 产…

同义词替换器降低论文重复率的最新技术进展

大家好&#xff0c;今天来聊聊同义词替换器降低论文重复率的最新技术进展&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 标题&#xff1a;同义词替换器降低论文重复率的最新技术进展 一、引言 随着学术…

RK3568全国产化多网口板卡带poe供电,支持鸿蒙麒麟系统

信迈XM-3568-01主板采用瑞芯微RK3568四核Cortex-A55 处理器&#xff0c;主频最高可达2.0GHz&#xff0c;效能有大幅提升最高可配8GB内存容量&#xff0c;频率高达1600MHz&#xff1b;支持全链路ECC&#xff0c;让数据更安全可靠配置双千兆自适应RJ45以太网口&#xff0c;并扩展…

kernel32.dll如何解决,教你如何快速修复kernel32.dll文件缺失问题

kernel32.dll是Windows操作系统中非常重要的一个动态链接库文件&#xff0c;它提供了许多系统级的功能和服务。本文将介绍kernel32.dll动态链接库报错的五种解决方法&#xff0c;并探讨kernel32.dll丢失对电脑的影响以及其作用的介绍。 一、kernel32.dll动态链接库报错的五种解…