0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

教育场景中的自动化分拣系统!基于大象机器人UltraArm P340机械臂和传送带的实现

大象机器人科技 来源:大象机器人科技 作者:大象机器人科技 2024-07-03 17:31 次阅读

wKgaomaE-DGAK10uAAdYWDwatWo130.png

引言
今天我们将展示一个高度自动化的模拟场景,展示多个机械臂与传送带协同工作的高效分拣系统。在这个场景中,机械臂通过视觉识别技术对物体进行分类,并通过精确的机械操作将它们放置在指定的位置。这一系统不仅提高了分拣的速度和准确性,还展示了现代自动化技术在工业领域的巨大潜力。无论是处理大量的日常物品,还是在复杂的工业流程中应用,这种自动化分拣解决方案都体现出了极高的灵活性和效率。

场景描述
在这个高度自动化的分拣场景中,主要设备包括两个机械臂和一条800mm的传送带。右侧的上料机器人负责识别和抓取标记物,并将它们放置到传送带上。传送带将标记物运输到左侧的下料机器人工作范围内。下料机器人则根据分类要求识别标记物,并将它们有序地放置在指定区域。

放个视频gif

接下来我们简要介绍产品的相关参数

产品

wKgaomaE-GyAUbALAADSNB8IckA110.png

列表中是几个主要的产品。

UltraArm P340

wKgZomaE-ICARIlIAAI6i9Ns85o800.png

ultraArm 是4自由度的机械臂,全身采用经典金属设计结构,本体占用体积只有A4纸张的一半,搭载高性能的步进电机,能够实现±0.1mm重复定位精度和高稳定性。

高性能的步进电机能够进行7*24的工作时长,且保持性能良好,也是比较适合高度自动化这一场景的选择。

wKgaomaE-JSAA2Z3AAEL5IPWBx0718.png

Conveyor belt

wKgZomaFEF2Adc8ZAAR6K5xoniA826.png

这个也是步进电机来进行驱动的传送带,需要用到Arduino mega 2560开发板来作为控制器,给物体提供运输的一个设备。

wKgZomaFEG-ADllPAAB19VgZLMI598.png

USB Camera 2D

wKgaomaFEIqAEqwSAARmF5ScmDA334.png

摄像头作为机器视觉必不可少的一部分,是获取标记物的重要设备,usb 摄像头,能够提供画面,通过各种机器视觉的算法来确定标记物的具体位置,坐标来反馈给机械臂去执行抓取。

wKgZomaFEI6AdZZKAADZX5eVtUc624.png

工作原理
整个项目的被分为以下几个功能模块,以实现整个自动化分拣场景。

wKgaomaFEu2AEToqAABFTZwKCvo019.png

我们具体看看各个功能模块的功能是如何在代码当中实现的。

Visual recognition module
本次项目用的标记物是Aruco码,是一种广泛使用的二进制方形标记,主要用于增强现实和机器人导航等场景中,Aruco码的设计使得它们在图像中易于检测和识别,有以下几个特点。

1易于检测和识别:Aruco码的设计使得它们在图像中易于检测和识别

2 唯一性和抗误识别:每个Aruco码都有一个唯一的ID,具有一定的纠错能力

3姿态估计:Aruco码不仅可以用于识别和定位,还可以用于估计相机相对于标记的姿态(位置和方向)。

4开源和易于使用:OpenCV库提供了对Aruco码的完整支持,包括生成、检测和解码。

5灵活性和多样性:Aruco码可以生成各种尺寸和复杂度的码,以适应不同的应用需求。

6低成本:生成和使用Aruco码的成本非常低。它们可以简单地打印在纸上,或者制作在物体表面,不需要昂贵的硬件设备。

wKgZomaFEv2ARkmLAAB3AkHONnQ879.png

#导入库
import cv2.aruco as aruco

#加载字典
aruco_dict = aruco.Dictionary_get(aruco.DICT_6X6_250)
parameters = aruco.DetectorParameters_create()

#灰度处理并且识别
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)   
               corners, ids, rejectImaPoint = cv.aruco.detectMarkers(
                   gray, self.aruco_dict, parameters=self.aruco_params
               )

#检测Aruco码
if len(corners) > 0:
   if ids is not None:
       id = int(ids[0][0])

姿态估计,确定Aruco码的姿态位置,对于抓取是非常重要的,为控制算法提供反馈,调整机器人的动作。姿态估计后再进行数据的转换和补偿,计算和调整角度最终反馈位置和姿态角度。

wKgaomaFExaAEX7MAAJTaCl0A34513.pngwKgaomaFEyGAE4OTAAYnIfzwsyI450.png

#姿态估计
ret = cv.aruco.estimatePoseSingleMarkers(
   corners, 0.022, self.camera_matrix, self.dist_coeffs
)
(rvec, tvec) = (ret[0], ret[1])

#位置计算
xyz = tvec[0, 0, :]
xyz = [round(xyz[0]*1000 + self.pump_x, 2), round(xyz[1]*1000 + self.pump_y, 2), round(xyz[2]*1000, 2)]

#旋转向量处理
try:
   rvec = np.reshape(rvec, (3, 1))
except ValueError as e:
   print("reshape错误:", e)
   print("rvec1=", rvec)
   rvec = np.array([[[-2.86279729, -0.00687534, -0.05316529]]])
   print("rvec2=", rvec)

#计算旋转矩阵和欧拉角
rotation_matrix, _ = cv.Rodrigues(rvec)
euler_angles = cv.RQDecomp3x3(rotation_matrix)[0]
yaw_angle = int(euler_angles[2])

#返回结果
for i in range(rvec.shape[0]):
   cv.aruco.drawDetectedMarkers(img, corners, ids)
   if num < 100:
       num += 1
   elif num == 100:
       cv.destroyAllWindows()
       print("final_x:", xyz[0])
       print("final_y:", xyz[1])
       print("final_yaw_angle=", -yaw_angle)
       return xyz[0], xyz[1], -yaw_angle, id

在此之前需要进行手眼标定,标定的目前是确定相机与机器人末端执行器的相对位置和姿态关系。

Robotic arm control module
ultraArm有一个python的控制库pymycobot,安装好环境之后即可使用,一下是简单控制的使用

from pymycobot.ultraArm import ultraArm

#创建实例,com为机械臂的串口号
ua = ultraArm(COM)

# 角度控制
ua.send_angles([angle_list],speed)
# 坐标控制mode,控制走直线还是非直线
ua.send_coords([coords_list),speed,mode)

#吸泵的使用1-open ;0-close
def pub_pump(self, flag):
   if flag:
       self.ua.set_gpio_state(0)
   else:
       self.ua.set_gpio_state(1)
ua.pub_pump(state)

机械臂的运动控制很简单,只需要简单的调用就好了,但是需要注意的是,在机械臂运动的过程中需要设计运动轨迹,不能撞到一些物体,以及根据获取到标记吗的坐标后的点位,比如说起始点位,待抓取点位等等。

Conveyor control module
传送带配备的步进电机通常需要通过微控制器(Arduino Mega 2560)来进行输出控制,mega为此提供了足够的I/O引脚和处理能力,能够精确控制步进电机的步进和方向,从而实现传送带的启动、停止、速度调节和方向控制。

#初始化设置
self.serial = serial.Serial(port, baudrate, timeout=1)

#写入命令
def write_command(self, command):
   self.serial.write(command.encode())

#设置传送带的方向
def set_direction(self, direction):
   command = f'DIR {direction}n'
   self.write_command(command)

#设置速度
def set_speed(self, speed):
   command = f'SPD {speed}n'
   self.write_command(command)

#启动和停止
def start(self):
   self.write_command('STARTn')

def stop(self):
   self.write_command('STOPn')

Data processing and communication module
在这个自动化分拣系统项目中,数据处理和通信是关键部分,为了让他们互相知道彼此在干什么,将整体连贯起来,只要有一个地方出错就会停止程序。

第一步-上料机器人的视觉检测,如果发现检测的物体不复合要求(摆满),将不会执行后续的程序。

第二步-上下料机器人协作好,上料机器人先进行拆码垛工作,搬运到传送带上。

第三步-传送带将物体运输到下料机器人的摄像头识别范围和机械臂工作半径内。

第四步-下料机器人将物体的姿态进行识别,下料机器人得到反馈的姿态进行调整后抓去物体放置在指定区域。第五步-每当完成六次物体的抓取后,会重新再进行一次上料机器人的视觉检测,如果在此期间上料机器人的物体有所变化会导致抓取失败。(这是逻辑上的设定,可自行更改)

 while robot2.count< 18:
       data=obj.detect()
       while len(data)< 6:
           print("二维码检测数目不对,请确保二维码在相机范围内并且能正确识别")
           time.sleep(1)
           data=obj.detect()          
       
       for i in range(len(data)):
           robot.move(data[i][2],data[i][1]) 
                                
           conveyer.open_conveyor(100)
           time.sleep(5.2)
           
           conveyer.close_conveyor()
           
           for i in range(3):
               try:
                   print("i=",i)                                
                   pose=cam.detect()
                   if pose is not None: 
                       break
                   
               except Exception as e:
                   if i==2:
                      message()                
                   temp=obj.exception_handling()
                   robot.Special_handling(temp[0][2],temp[0][1],temp[0][3])
                   conveyer.open_conveyor(100)
                   time.sleep(5.2)
                   conveyer.close_conveyor()
           id=robot2.move(pose[0],pose[1],pose[2],pose[3])                   
           robot2.judge(id)  

总结
本项目展示了一个基于UltraArm P340机械臂和传送带的自动化分拣系统,主要应用于教育场景,旨在教学和演示自动化分拣技术。系统结合计算机视觉、步进电机控制、手眼标定和机械臂运动控制,实现了高效的自动化分拣流程。

如果你觉得该项目有什么可以改进的地方欢迎在下方留下评论,你的留言和支持是对我们更新最大的鼓励。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    209

    文章

    27438

    浏览量

    202485
  • 开源
    +关注

    关注

    3

    文章

    3055

    浏览量

    41832
  • 机械臂
    +关注

    关注

    12

    文章

    489

    浏览量

    24055
收藏 人收藏

    评论

    相关推荐

    国产Cortex-A55工智能教学实验箱_基于Python机械跳舞实验案例分享

    发行包管理,它也提供一些工具和库用于获取、建立、编写和执行多机融合的程序。 机械通过ROS机器人操控系统,简化了6自由度串行总线舵机复杂运动控制,可
    发表于 06-28 14:37

    2016年德国机器人自动化技术贸易博览会

    。Automatica是世界上最先将机器人技术和自动化技术作为独立项目在一起展出的专业博览会,旨在展示整个机器人自动化行业附加值产业链。展会由德国
    发表于 10-15 16:32

    如何系统性地学习工业机器人技术?

    传动装置,这就是驱动系统,驱动系统可以是液压传动,气动传动,电动传动,或者他们结合起来使用,可以直接诶驱动,或者通过同步,链条,轮系,谐波齿轮等机械传动结构来间接驱动的。(2)
    发表于 03-06 12:56

    多轴机器人的发展趋势

    /VALproduct/uniVAL三种编程方法满足集成商、最终用户、设备商的不同需求。可实现机器人同步,人机协作。)作为一种成本低廉、系统结构简单的自动化
    发表于 07-29 06:57

    一种机器人光机电一体化分拣实训系统

    、技术员、工程师、输送到各条战线。ZN-IRF01机器人光机电一体化分拣实训系统以下简称:高速分拣系统,它
    发表于 07-01 07:21

    ZN-17A机器人光机电一体化分拣实训系统设计

    ZN-17A机器人光机电一体化分拣实训系统一、 机器人光电一体化实训装置概述机器人光机电一体化分拣
    发表于 07-01 08:51

    一种ZN-IRF03机器人RFID分拣实训系统

    广的机电一体化教学课程。符合各院校的教学实验需求。培养出大量的能熟练掌握及开发运用机器人、PLC、变频器、触摸屏、传感器检测、气动执行控制、机械设计装配调试等技术的技术工人、技术员、工程师、输送到各条战线。ZN-IRF03机器人
    发表于 07-01 12:44

    机器人光机电一体化分拣实训系统有哪些技术参数?

    机器人光机电一体化分拣实训系统有哪些技术参数?
    发表于 07-13 06:30

    一种利用计算机控制的快递分拣机器人

    有计算机控制器(3),其特征在于:所述分拣机器人支架(2)上还安装有称重装置(4),称重装置(4)远离计算机控制器(3)的一侧通过第一伺服电机(5)驱动安装第一传送装置(6),第一传送
    发表于 09-02 09:01

    同仁堂颗粒剂车间引入ABB机器人实现自动化高效率生产

    机器人陆续分拣堆叠药袋,并跟踪工位传送链,将药袋放入格挡槽内。传送带将格挡槽内的药袋传送自动
    发表于 08-10 09:23 2702次阅读

    14张图带你看懂自动化物流分拣系统运行模式

        移栽式   偏转轮式   扫式   滑靴式   侧向翻转   推盘式   交叉分拣   下漏式   垂直循环交叉分拣机   钢
    的头像 发表于 12-16 09:51 5741次阅读

    海康机器人推出基于机器视觉引导机械拆码垛方案

    针对以上痛点,海康机器人研发并推出了基于机器视觉引导的机械拆码垛方案,轻松应对多SKU且来料无序的拆码垛场景,适用于各类箱体、麻包袋、料箱
    的头像 发表于 05-11 17:19 2305次阅读

    大象机器人推出桌面高精度机械ultraArm,配五大套装,助力最燃AI视觉玩法

    机械转化成桌面级机械,通过较低的价格,搭建了一个机器人研究和教育平台,降低了AI人工智能领域
    发表于 01-04 13:49 455次阅读

    大象机器人ultraArm深入测评

    常适合教育,科研等领域的应用,拥有紧凑型设计,易于操作和维护。UltraArm是一款先进的机械,旨在帮助教师和学生更好地理解机械
    的头像 发表于 03-10 18:05 1109次阅读

    自动化革命:大象机器人的Mercury A1机械

    。Mercury系列的推出,反映了大象机器人机器人技术未来趋势的洞察,旨在满足工业、教育和研究等多种场景的需求。这些
    的头像 发表于 01-15 14:41 381次阅读
    <b class='flag-5'>自动化</b>革命:<b class='flag-5'>大象</b><b class='flag-5'>机器人</b>的Mercury A1<b class='flag-5'>机械</b><b class='flag-5'>臂</b>