MATLAB - 使用 YOLO 和基于 PCA 的目标检测,对 UR5e 的半结构化智能垃圾箱拣选进行 Gazebo 仿真

本文主要是介绍MATLAB - 使用 YOLO 和基于 PCA 的目标检测,对 UR5e 的半结构化智能垃圾箱拣选进行 Gazebo 仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章目录


前言

本示例展示了在 Gazebo 中使用 Universal Robots UR5e cobot 模拟智能垃圾桶拣选的详细工作流程。本示例提供的 MATLAB 项目包括初始化、数据生成、感知、运动规划和积分器模块(项目文件夹),可创建完整的垃圾桶拣选工作流程。


一、打开项目


要开始使用,请单击文档中的 "打开实时脚本 "或使用 openExample 函数打开示例实时脚本并访问支持文件。

openExample('urseries/GazeboSimulationSemiStructuredIntelligentBinPickingUR5eExample');

 然后,打开 Simulink™ 项目文件。

prj = openProject('BinPickingUR5eSimulation/BinPickingGazeboSimExampleProject.prj');

二、拣选工作流程


该图显示了模拟 cobot 仓储拣选应用的一个完整执行周期所涉及的操作。

 在这个例子中,我们的目标是半结构化分仓,这是一种基于仓复杂性的分类。

从高层次来看,这项任务可分为两个主要模块:

  1. 视觉处理/感知模块
  2. 运动/轨迹规划模块

2.1 视觉处理或感知模块

这一工作流程可进一步分为两个方面:

  • 使用 RGB 数据进行物体检测,即使用深度学习基于 RGB 和深度(RGBD)数据进行物体分割
  • 使用三维点云数据进行物体姿态估算,可用于估算已识别物体的姿态,以便进行运动规划

下图显示了使用 YOLOv4 和基于 PCA 的算法进行物体姿态估计的步骤。

感知过程包括两个主要步骤、

  1. 训练和验证: 训练基于 RGB 的物体检测网络 (YOLOv4),并根据测试数据集进行验证。
  2. 在线物体检测: 使用预训练的 YOLOv4 网络和主成分分析 (PCA) 对实时原始 RGBD 数据进行姿态估计。

 

2.2 运动规划模块


该工作流程可分为两个部分:

  1. 智能运动规划,从检测到的部件中挑选运动规划逻辑
  2. 目标执行,使用 UR5e cobot 执行取放操作的轨迹规划

规划器入口点函数是根据使用 manipulatorRRT 算法示例对 UR5e 进行运动规划和刚体树仿真(用于垃圾拣选)中使用的算法设计的。该算法使用 manipulatorRRT 规划方法,并在碰撞环境中拾取和放置轨迹。

使用 C/C++ 代码生成器生成 MEX 函数可帮助您减少计算时间,从而缩短取放周期时间。

有关为基于操纵器RRT 算法的规划器创建 MEX 函数的更多信息,请参阅在感知环境中生成操纵器运动规划代码示例。

此外,请参阅此示例,进一步了解如何生成 MEX 函数以加速 MATLAB 程序的执行。

三、所需软件


本例需要

  1. MATLAB

  2. Robotics System Toolbox

  3. Computer Vision Toolbox

  4. Deep Learning Toolbox

  5. Image Processing Toolbox

  6. ROS Toolbox

  7. Optimization Toolbox

  8. Statistics and Machine Learning Toolbox

  9. MATLAB Coder (Required if you want to use MEX function for motion planner)

  10. Robotics System Toolbox Support Package for Universal Robots UR Series Manipulators

  11. Computer Vision Toolbox Model for YOLO v4 Object Detection support package (Required if you want to train a detector model)

本示例需要下载虚拟机以使用预配置的 Gazebo 环境。有关详细信息,请参阅以下部分。

 

四、下载预装 Gazebo 环境的 ROS 虚拟机


您可以下载已安装 ROS 和 Gazebo 的虚拟机镜像。该虚拟机基于 Ubuntu® Linux®,已进行预配置以支持 ROS Toolbox™ 中的示例。

  • 从本页 "下载虚拟机 "部分提供的链接下载并安装 ROS 虚拟机。
  • 启动虚拟机。

4.1 本模拟示例中使用的插件和 ROS 驱动程序

  1. 模拟 Universal 机器人 UR5e
  2. 模拟 Robotiq Epick 抽吸式机械手
  3. 模拟英特尔® RealSense™ 深度摄像头 D415

4.2 Universal 机器人 UR5e 使用的接口


Universal Robots UR 系列机械手机器人系统工具箱支持包的功能用于对模拟 Universal Robots UR5e 进行轨迹和关节控制。该支持包提供 universalrobot 类,可通过 ROS 接口进行控制。有关其他功能的更多信息,请参阅此文档页面。

4.3 用于 Robotiq Epick 吸爪的接口


为了模拟虚拟吸力机械手,我们使用了 ROS gazebo_plugin 的定制修改真空机械手插件。该插件的修改方式是在末端执行器本体和目标物体之间创建一个虚拟关节,并设定一定的偏移距离,以便吸附物体。在此过程中,它还会消除物体的碰撞,从而避免与垃圾箱或其他部件发生碰撞。

在激活和停用插件时,会使用 activateVacuum 和 deactivateVaccum 函数来调用相应的 ROS 服务。

4.4 用于英特尔® RealSense™ D415 的接口


为实现感知目的,本应用程序开发使用了英特尔® RealSense™ D415 摄像头深度模块。MATLAB 通过 ROS 使用 IntelRealSense ROS 驱动程序建立连接。除了这些 ROS 驱动程序,D415 传感器的 Gazebo 传感器还使用了 realsense_gazebo_plugin 插件。

用于训练 YOLOv4 深度学习网络的数据集就是使用该传感器创建的。

注:所有插件和修改都包含在下载的虚拟机中,并附有所需的许可证文件。

 4.5 本示例中使用的模拟物理设置


为演示使用 Universal Robots UR5e 的智能垃圾桶拣选工作流程,本示例使用了一个长方体物体和一个矩形垃圾桶。

长方体和垃圾箱的尺寸在 initializeParametersForBinPickingSimulation.m 脚本中提供。

4.6 刚体树和实际环境设置


在本示例中,我们将为运动规划创建一个刚体树(RigidBodyTree)环境。

 

 本流程图将引导您了解感知、运动规划和积分器模块的可用脚本。

五、参数初始化


初始化脚本 initializeParametersForBinPickingSimulation.m 会在打开此 MATLAB 项目时自动运行。该脚本定义了感知、运动规划和积分器项目模块中使用的一些重要参数。您可以在 Initialize 文件夹中找到该脚本,也可以运行下面的命令打开该脚本。如果使用不同的设置,请相应更改参数。

open("initializeParametersForBinPickingSimulation.m");


六、打开合成数据生成模块脚本


运行此命令打开脚本,以便使用 Gazebo 仿真环境生成合成数据。

open("DatasetGenerationUsingGazeboExample.mlx");


七、打开感知模块脚本


运行此命令可打开感知工作流程脚本。该脚本涵盖从训练到物体姿态估计工作流的整个感知流程。

open("DetectionAndPoseEstimationforCuboidSim.mlx");


八、打开运动规划模块脚本


运行此命令可打开运动规划工作流程的脚本。该脚本包括运动规划模块的 RigidBodyTree 仿真工作流程和 MEX 函数生成步骤。

open("BinPickingMotionPlanningMEXGenerationSim.mlx");


九、打开积分器脚本


运行此命令可打开积分器工作流程的主脚本。该脚本展示了如何使用感知和运动规划模块,利用仿真 Universal Robots UR5e 创建完整的垃圾拣选应用工作流程。

open("UR5eSimulationBinPickingApplicationIntegratedScript.mlx");

 

这篇关于MATLAB - 使用 YOLO 和基于 PCA 的目标检测,对 UR5e 的半结构化智能垃圾箱拣选进行 Gazebo 仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/528752

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma