【仪酷LabVIEW AI工具包案例】使用LabVIEW AI工具包+YOLOv5结合Dobot机械臂实现智能垃圾分类

‍‍🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主
🎄所属专栏:『仪酷LabVIEW AI工具包案例』
📑上期文章:『【YOLOv9】实战二:手把手教你使用TensorRT实现YOLOv9实时目标检测(含源码)』
🍻本文由virobotics(仪酷智能)原创

🥳欢迎大家关注✌点赞👍收藏⭐留言📝订阅专栏

文章目录

  • 🧩前言
  • 🧭一、垃圾分类系统介绍
  • ⚒️二、LabVIEW工具包的介绍和使用
    • 2.1 机械臂控制工具包
    • 2.2 仪酷AI工具包
  • 💻️三、环境搭建
  • 🎨四、项目实践
    • 4.1 相机的调用
    • 4.2 AI算法模块
    • 4.3 机械臂控制模块
    • 4.4 垃圾分类系统
  • 💻项目源码
  • 🎯总结

🧩前言

Hello,大家好,我是你们的virobotics(仪酷智能),一个深耕于LabVIEW和人工智能领域的开发工程师。

之前很多朋友私信博主,希望可以写一些LabVIEW AI的应用案例,所以博主创建了一个新专栏【仪酷LabVIEW AI工具包案例】,之后,将会不定期在该专栏中更新汇集最新的AI工具包实践案例包括但不限于:工业瑕疵检测、文字识别、物品抓取分拣等创新应用,各位也可订阅此专栏,以便及时接收更新~

机械臂与LabVIEW视觉工具包的结合是现代工业自动化和机器人技术领域的重要发展方向之一。LabVIEW作为一种图形化编程环境,提供了强大的数据采集、分析和控制功能,而机械臂则能够实现高精度的运动控制和操作。将这两者结合起来,可以实现更加智能化和灵活的生产线,提高生产效率和产品质量。这种结合可以用于各种应用,如装配、品质检测、物料处理等,为生产线带来更高的效率和精度。

在本文中,将为大家分享Dobot机械臂和LabVIEW工具包结合YOLOv5实现垃圾分类,并将各种垃圾区分放入对应垃圾桶的整个过程。

🧭一、垃圾分类系统介绍

实现机械臂与视觉结合的垃圾分类过程,首先要熟悉机械臂的控制以及视觉分类的原理。只有将两部分的原理了解后,我们将两部分结合在一起才会更容易理解一些,本文的垃圾分类应用是在LabVIEW软件的控制下实现的,包括通过机械臂控制工具包对机械臂的运动规划及末端抓取任务,通过视觉工具包对摄像头的调用采集图像信息,通过AI算法工具包导入YOLOv5目标检测模型来实现目标检测功能。将三个工具包模块结合在一起就可以实现我们垃圾分类的过程。下面我将详细介绍我们的模块及系统。
在这里插入图片描述

⚒️二、LabVIEW工具包的介绍和使用

2.1 机械臂控制工具包

Dobot Magician SDK for NI LabVIEW 是上海仪酷智能科技有限公司(VIRobotics)为 Dobot Magician 量身打造的一款基于 LabVIEW 的图形化开发工具。

该 SDK 分为 Dobot_VI 和 Dobot_Serial 两种版本,一共包含约 270 个函数。每一种版本都可以在 LabVIEW 环境下控制机械臂的运动、配置运动参数、设置IO 状态、指导末端执行器的动作等等。再配合 LabVIEW 自带的其他编程函数,就可以让机器臂完成更加复杂且灵活多变的任务。这也是本 SDK 的优势之一。

在LabVIEW上安装该工具包,可以实现PC与Dobot机械臂的通信交互,包括自动校正,运动规划,末端控制,吸取抓住等功能。
在这里插入图片描述

2.2 仪酷AI工具包

在labview上安装AI工具包,可以调用USB或者网络摄像头,并将采集的图像经过算法模块实现目标检测、语义分割、图像分类、文字识别、人脸识别等任务。本次项目中,我们使用的是AI视觉工具包以及ONNX工具包。
在这里插入图片描述
在这里插入图片描述

💻️三、环境搭建

  1. 部署本项目时所用环境
  • 操作系统:Windows 64
  • LabVIEW:2018及以上 64位版本
  • AI视觉工具包(techforce_lib_opencv_cpu):1.0.1.26及以上版本
  • ONNX工具包GPU版(virobotics_lib_onnx_cuda_tensorrt)1.0.0.16及以上版本
  • 仪酷Object Detection工具包(virobotics_lib_object_detection):1.0.0.5及以上版本
  • 机械臂工具包:virobotics_lib_dobot_magician_sdk_for_ni_labview-1.0.0.14.vip
  1. 软件下载及安装
  • AI视觉工具包下载与安装参考:
    https://blog.csdn.net/virobotics/article/details/123656523
  • ONNX工具包GPU版下载与安装参考:
    https://blog.csdn.net/virobotics/article/details/124998746
  • LabVIEW Object_Detection工具包下载与安装
    https://blog.csdn.net/virobotics/article/details/132529219

🎨四、项目实践

4.1 相机的调用

部署相机的调用模块可对物体进行实时图像采集,除了USB相机,也可以使用网络相机记以及其他常见相机(比如海康相机)。
在这里插入图片描述

4.2 AI算法模块

导入训练好的目标检测模型和标签文件,经过算法模块,可实现目标检测的功能,下图中为基于yolov5训练好的垃圾分类模型。
在这里插入图片描述

4.3 机械臂控制模块

对于机械臂的控制我们首先要分成三部分来完成,鱼头部分就是控制模块与机械臂的通信部署,鱼身部分则是进行运动规划,末端抓取的vi部署,鱼头,鱼身,鱼尾构成了我们机械臂进行自动化抓取的整个模块。
在这里插入图片描述

4.4 垃圾分类系统

当我们对三个模块进行了解部署后,将3个模块进行连接调用就生成了我们垃圾分类系统。
在这里插入图片描述
整个系统的运行效果可在B站搜索:**使用仪酷LabVIEW AI工具包+YOLOv5结合机械臂实现智能垃圾分类**进行观看学习。

💻项目源码

如需源码,请在一键三连并订阅本专栏后评论区留下邮箱

🎯总结

以上就是今天要给大家分享的内容,希望对大家有用。如有笔误,还请各位及时指正。后续我们将为大家更新更多关于AI模型在LabVIEW的部署案例,欢迎大家关注博主。我是virobotics(仪酷智能),我们下篇文章见~

如您想要探讨更多关于LabVIEW与人工智能技术,欢迎加入我们的技术交流群:705637299。进群请备注:CSDN

如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏

推荐阅读

【YOLOv5】LabVIEW+TensorRT的yolov5部署实战(含源码))
【YOLOv5】手把手教你使用LabVIEW ONNX Runtime部署 TensorRT加速,实现YOLOv5实时物体识别(含源码)
【YOLOv8】实战一:手把手教你使用YOLOv8实现实时目标检测
【YOLOv8】实战二:YOLOv8 OpenVINO2022版 windows部署实战
【YOLOv8】实战三:基于LabVIEW TensorRT部署YOLOv8
【YOLOv9】实战一:在 Windows 上使用LabVIEW OpenVINO工具包部署YOLOv9实现实时目标检测(含源码)
【YOLOv9】实战二:手把手教你使用TensorRT实现YOLOv9实时目标检测(含源码)
👇技术交流 · 一起学习 · 咨询分享,请联系👇

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构学习——线性表、顺序表

1.线性表 线性表 ( linear list ) 是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一…

项目管理-项目资源管理2/2

项目管理:每天进步一点点~ 活到老,学到老 ヾ(◍∇◍)ノ゙ 何时学习都不晚,加油 资源管理:6个过程“硅谷火箭管控” ①规划资源管理: 写计划 ②估算活动资源:估算团队资源&…

渗透之sql盲注(时间/boolean盲注)

sql盲注:sql盲注意思是我们并不能在web页面中看到具体的信息,我们只能通过输入的语句的真假来判断。从而拿到我们想要的信息。 我们通常使用ascii值来进行盲注。 目录 手动注入: 时间盲注: 布尔盲注: python脚本注…

LabVIEW波浪发电平台浮筒取能效率数据采集系统

LabVIEW波浪发电平台浮筒取能效率数据采集系统 随着化石能源的逐渐减少以及能源价格的上升,寻找可替代的、可再生的、清洁的能源成为了世界各国的共识。波浪能作为一种重要的海洋能源,因其巨大的潜力和清洁性,近年来受到了广泛关注。开发了一…

(六)JSP教程——out对象

out对象是在JSP中经常使用到的对象,它本质上是一个输出流,前面已经多次使用,我们经常使用它的print()和println()方法,这些方法主要用于实现客户端数据的输出。通过out对象也可以直接向客户端发送一个由程序动态生成的HTML文件。 …

Docker-Compose 容器集群的快速编排

Docker-compose 简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是 工程(project),服务(service)以及容器&…

JavaEE企业级开发中常用的JDK7和JDK8的时间类

JDK7时间类 全世界的时间有一个统一的计算标准 在同一条经线上的时间是一样的 格林威治时间 简称GMT 计算核心 地球自转一天是24小时 太阳直射正好是12小时 但是误差太大 现在用原子钟来代替 用铯原子震动的频率来计算时间,作为世界的标准时间UTC 中国标准时间…

在国企分公司做信息宣传新闻投稿的经验分享

作为一名国企分公司的信息宣传工作者,我亲历了从传统投稿方式到数字化转型的全过程,这段经历既充满了挑战,也收获了成长。回首最初的日子,那些用邮箱投稿的时光,至今仍让我感慨万千。 初尝辛酸,邮箱投稿的艰难岁月 刚接手信息宣传工作时,我满腔热情,却很快被现实的冷水浇了个透…

c语言实现贪吃蛇小游戏————附全代码!!!

目录 1.Win32 API 1.1控制台应用程序 1.2控制台的名称,控制台窗口大小 1.3设置控制台光标位置 COORD - 光标坐标 GetStdHandle - 获取句柄 SetConsoleCursorPosition - 设置光标位置 封装一个设置光标的函数 1.4设置控制台光标的属性 CONSOLE_CURSOR_INFO …

栈PART 1

目录 1. 栈 1.1 栈的概念和结构 1.2 栈的实现 1.2.1 栈的顺序储存结构 1.2.2 栈的基本操作 1.3 有效的括号 1. 栈 1.1 栈的概念和结构 堆栈又名栈(stack),它是一种运算受限的线性表。 限定仅在表尾进行插入和删除操作的线性表。这一端…

C++进阶之路:深入理解编程范式,从面向过程到面向对象(类与对象_上篇)

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

java-函数式编程-语法

目录 1、函数表现形式 分类 lambda表达式 参数类型可以全写,也可以全不写,但不能一部分写,一部分不写lambda 的省略策略:凡是可推导,都可以省略 方法引用 练习-判断语法正确性 练习-写出与方法引用等价的lambda表达式…

TCP三次握手四次挥手 UDP

TCP是面向链接的协议,而UDP是无连接的协议 TCP的三次握手 三次传输过程是纯粹的不涉及数据,三次握手的几个数据包中不包含数据内容。它的应用层,数据部分是空的,只是TCP实现会话建立,点到点的连接 TCP的四次挥手 第四…

VMware虚拟机提示内存不足

VMware虚拟机,k8s集群搭建内存不足的问题 疑问:我的电脑是8G8G双通道的内存,当我在搭建k8s集群时给master-2G内存,node1-3G内存,node2-3G内存; 当依次打开虚拟机到node2时VM提示“物理内存不足,…

【大学物理】双语合集听课笔记

7.5 angular momentu(角动量)_哔哩哔哩_bilibili 6.4Energy in Rotation Motion 有质量有速度的物体有动能,是不是很有道理 international system(from French systeme international,acronym,SI)of ineria kg*m^2 转…

使用 Cython 加密 Python 代码防止反编译

文章目录 前言使用 Cython 加密 Python 代码环境Python 源代码编写 Cython 编译配置文件 编译查看输出文件使用 问题error: Microsoft Visual C 14.0 or greater is requiredpyconfig.h(59): fatal error C1083: 无法打开包括文件: “io.h”: No such file or directorydynamic…

鸿蒙开发全攻略:华为应用系统如何携手嵌入式技术开启新篇章~

鸿蒙操作系统是华为自主创新的成果,打破了传统操作系统的局限。通过结合嵌入式技术,鸿蒙实现了跨平台、跨设备的高度融合,提供了流畅、智能的体验。华为应用系统与嵌入式技术的结合,提升了性能,丰富了用户体验。鸿蒙与…

嵌入式Linux的QT项目CMake工程模板分享及使用指南

在嵌入式linux开发板上跑QT应用,不同于PC上的开发过程。最大的区别就是需要交叉编译,才能在板子上运行。 这里总结下嵌入式linux环境下使用CMake,嵌入式QT的CMake工程模板配置及如何使用,分享给有需要的小伙伴,有用到的…

【C++】---继承

【C】---继承 一、继承的概念及定义1、继承的概念2、定义语法格式3、继承基类成员访问方式的变化 二、基类 和 派生类 的对象之间的赋值转换1、赋值规则2、切片(1)子类对象 赋值 给 父类对象(2)子类对象 赋值 给 父类指针&#xf…

数据结构-线性表-链表-2.3-1

设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点。 void del(Linkllist &L,int x){LNode *p;if(LNULL){return;}if(L->datax){pL;LL->next;;free(p);del(L,x);}else{del(L->next,x);} } 时间复杂度为O(n)