当前位置: 首页 > news >正文

网站开发语言 知乎/热门网站排名

网站开发语言 知乎,热门网站排名,郑州高端品牌网站建设,做网站要学什么知识系列文章目录 前言 本示例展示了如何在虚幻引擎 环境中对四种不同形状的标准 PVC 管件实施半结构化智能分拣。本示例使用 Universal Robots UR5e cobot 执行垃圾箱拣选任务,从而成功检测并分类物体。cobot 的末端执行器是一个吸力抓手,它使 cobot 能够拾…

系列文章目录


前言

本示例展示了如何在虚幻引擎® 环境中对四种不同形状的标准 PVC 管件实施半结构化智能分拣。本示例使用 Universal Robots UR5e cobot 执行垃圾箱拣选任务,从而成功检测并分类物体。cobot 的末端执行器是一个吸力抓手,它使 cobot 能够拾取 PVC 管件并将其分类装入工作区中四个不同位置的垃圾箱中。

该图显示了智能分拣系统对 PVC 管件进行分拣的模拟场景。

本示例利用 Simulink 模型引用,从较小的组件构建智能垃圾箱拣选系统。该示例提供了一个模板线束,可用于构建垃圾箱拣选系统。这些示例展示了如何构建 IntelligentBinPicking_Harness.slx 模型中的每个组件:

  • 在虚幻引擎® 中设计垃圾箱拣选场景和传感器
  • 设计摄像头感知组件以检测垃圾箱中的物品
  • 为机器人机械手设计轨迹规划器

这种方法可以让您利用该模板扩展到任何目标。虽然本示例仅部署到 Simulink 3D 目标机,但您也可以将此模板调整部署到硬件目标机。要了解有关在 MATLAB 和 Simulink 中对垃圾桶拣选和类似机械手应用建模的更多信息,请参阅《使用 MATLAB 和 Simulink 进行垃圾桶拣选》。


一、依赖工具箱

本示例依赖于以下工具箱:

  • Robotics System Toolbox™ - 用于机器人机械手建模、设计无碰撞规划器以及在虚幻引擎中模拟机器人。
  • Simulink 3D Animation™ - 用于构建垃圾箱拣选场景并与虚幻引擎共同模拟。
  • Compute Vision Toolbox™ - 用于读取摄像头输出并将感知添加到模型中。您必须安装 “Computer Vision Toolbox Model for Pose Mask R-CNN 6-DoF Object Pose Estimation ”和 “Computer Vision Toolbox Model for Mask R-CNN Instance Segmentation ”支持包才能运行感知组件。有关安装附加组件的更多信息,请参阅获取和管理附加组件。Pose Mask R-CNN 6-DoF Object Pose Estimation 的计算机视觉工具箱模型和 Mask R-CNN Instance Segmentation 的计算机视觉工具箱模型支持包需要 Deep Learning Toolbox™ 和 Image Processing Toolbox™。

1.1 其他资源

本示例还提供了一个预训练的 YOLOV4 物体检测器,用于识别 PVC 物体,这样您就可以运行本示例,而无需等待物体检测器的训练。如果您想训练物体检测器模型,可以安装 Computer Vision Toolbox Model for YOLO v4 Object Detection 支持包,但这并非必需。训练好的物体检测器和训练数据集文件大小约为 230MB。您可以从 MathWorks 网站下载这些文件。

dataFileLocation = exampleHelperDownloadData("UniversalRobots/IntelligentBinPickingDataSet", ...
"PVC_Fittings_Real_Dataset.zip");

二、模型概述

运行 initRobotModelParam 辅助函数来初始化和加载所有必要的参数。作为 PreLoadFcn 回调的一部分,模型在启动时也会执行该函数。

initRobotModelParam;
************PickAndPlaceV3::Initializing parameters***************
Loading Robot Model and Parameters...OK
Loading User Command Bus...OK
Loading Motion Planner Collision Object Bus...OK
Loading Object Detector Response Bus...OK
Loading Motion Planner Task Bus...OK
Loading Motion Planner Command Bus...OK
Loading Joint Trajectory Bus...OK
Loading Motion Planner Response Bus...OK
Loading Manipulator Feedback Bus...OK
Loading Robot Command Bus...OK
Loading Planner Tasks Maximum Errors...
OK
Loading Model Simulation Parameters...OK
Loading Object model point cloud...OK
**********PickAndPlace::Parameter Initialization finished**********

打开模型并检查其中的内容。视频查看器会显示模拟过程中装有 PVC 配件的托盘的视频画面。

open_system('IntelligentBinPicking_Harness.slx')

智能垃圾箱拣选系统模型由四个主要组件组成:

  1. 使用基于摄像头的感知组件检测物品--该组件接受垃圾箱中零件的摄像头图像,对零件进行分类,并识别其姿势。
  2. 使用规划组件识别抓取/释放姿势并生成无碰撞机器人轨迹 - 该组件使用已分类的部件及其已识别的姿势,计算出足够的抓取力,并规划从当前姿势到目标物体姿势的无碰撞轨迹。
  3. 利用任务调度组件定义监管逻辑 - 利用规划好的轨迹和当前机器人姿态,该组件可调度行动并向机器人发送指令,以高效清理垃圾箱。
  4. 部署到仿真或硬件目标组件 - 机器人在仿真或硬件中执行接收到的指令。该组件还将从作为目标一部分的摄像头中返回结果和图像数据。

 

2.1 组件概述

以下各节概述了每个组件的工作原理,并链接到演示如何构建组件的示例或提供更多信息的其他资源。

2.2 使用基于摄像头的感知组件检测物品

本示例中的两个模型都使用了基于深度学习的感知组件。不过,您也可以使用第三方相机系统来返回分类对象和姿势。有关如何构建摄像头感知组件的更多信息,请参阅设计摄像头感知组件以检测垃圾桶物品示例。

2.3 使用规划组件识别抓取/释放姿势并生成无碰撞机器人轨迹

轨迹规划组件是一个触发式子系统。这意味着每当任务调度程序需要无碰撞轨迹时,任务调度程序就会向该子系统发出请求,以生成无碰撞轨迹。如果当前的目标姿态是为了拾取物体,任务调度器也会将物体的姿态发送给规划器。然后,规划器必须首先根据物体的姿势确定有效的抓取方式。如果当前目标姿态是空间姿态,则无需确定抓取位置。

一旦知道了物体的理想姿势,规划器就会根据理想姿势确定目标关节配置,然后生成一条从当前关节配置到目标关节配置的无碰撞轨迹。本例中的轨迹规划算法是使用机械手 CHOMP 优化器设计的。该算法通过最小化由平滑度成本和碰撞成本组成的成本函数,优化轨迹的平滑度和避免碰撞。该算法与 TOPP-RA 求解器相结合,可生成时间最优轨迹。有关该方法和接口的更多信息,请参阅 “为机械手设计轨迹规划器 ”示例。

2.4 使用任务调度器组件定义监督逻辑

任务调度器是模型中的主要协调机制。它评估系统状态并决定下一步行动。任务调度器包含在状态流® 图中。打开任务调度器状态流程图,查看事件的逻辑流程。

2.5 部署到模拟或硬件目标组件上

目标由机器人平台(包括垃圾箱及其支架)、机器人和必要的传感器(如摄像头)组成。目标接受一条总线,该总线指示机器人如何移动,并返回实际实现的轨迹。

该子系统包含特定于目标的接口层,如 ROS、RTDE 或类似协议。例如,当 ROS 处理与机器人的通信时,首先会解构机器人命令总线,并将其转换为与机器人兼容的 ros_control 命令。同样,该组件也会将机器人的反馈信息从 ROS 转换回更通用的总线。这种方法使 Simulink 模型与目标机使用的通信方法无关。虽然本示例仅使用 Simulink 3D 目标器进行通信,但您也可以调整模型与其他目标器进行通信。有关与其他目标进行通信的更多示例,请参阅 “使用 MATLAB 和 Simulink 进行料箱拣选”。

2.6 总线概述

为了确保可以互换使用不同的组件,可以在组件之间使用标准接口。本示例主要通过使用总线系统来实现这一目的。总线可视为 Simulink 与 MATLAB 结构的等价物。总线使您能够高效地读入和读出引用模型中的大量混合数据类型。本模型使用五种主要总线类型:

  • 对象检测器响应总线 - 从对象检测器向任务调度器发送命令。该总线用于向调度程序提供检测到的物体及其姿势的详细信息。如需了解更多信息,请参阅 “设计摄像机感知组件以检测 Bin 项目 ”示例。
  • 运动规划器命令总线 - 从任务调度程序向规划器发送命令。规划器的主要任务在主总线内的任务总线中给出。更多信息,请参阅 “为机械手设计轨迹规划器 ”示例。当仿真目标需要了解被选中进行验证的对象时,该总线也会传递给硬件/仿真目标使用。例如,仿真 3D 块可使用该总线验证目标部件是否已被拾取。
  • 运动规划器响应总线 - 从规划器向任务调度器发送状态和验证标志。用于验证规划器是否成功执行。更多信息,请参阅 “为机械手设计轨迹规划器 ”示例。
  • 机器人命令总线 - 从任务调度程序向机器人目标发送命令,即从任务调度程序向硬件或模拟目标发送运动和抓取命令。
  • 机器人反馈总线 - 将状态和动作完成标志从目标返回调度程序。主要用于验证硬件或模拟目标的运动。

本示例系列中的每个示例都提供了所使用总线的详细概述。您也可以通过在命令行上执行初始值来查看任何总线类型的详细分类。

2.6 设计参数及其影响

本示例是为使用 Robotiq ePick 吸具和 PVC 部件的 UR5e cobot 配置的,该机器人位于指定高度、宽度和姿态的料仓中。这些参数选择是固定的,并硬编码到示例中,但您可以使用参考模型子系统修改和验证参数选择。本概述提供了这些假设的一些影响:

  • 规划器和仿真目标使用刚体树(rigidBodyTree)对象对机器人进行建模。关节数量决定了所有关节行为通信的大小。对于这个 6-DoF 机器人,这些大小表示为 6×M 矩阵或 6×M×K 阵列。
  • 抓手作为刚体树(rigidBodyTree)对象的一部分连接到机器人上,规划器和模拟目标组件也使用刚体树对象。抓手类型会影响抓取目标的姿势。对于吸力抓手,只需考虑 z 方向,因为 x 和 y 方向不会影响抓取成功率。
  • 模拟目标使用作为 STL 提供的 PVC 部件来模拟行为和训练姿势检测算法。规划器的运行与这些部件无关;您可以使用运动规划器命令总线将这些部件作为障碍物提供给规划器。更多详情,请参阅 “为机械手设计轨迹规划器 ”示例。
  • 料仓配置作为放置在空间中的 STL 提供给仿真目标。规划器将此配置作为定义静态放置环境的参数接收。这些参数被设置为 binCenterPosition、binHeight、binLength、binOrientation、binRotation 和 binWidth 等参数。

如果您想更改这些参数,请从引用模型开始,先在组件级验证更改,然后再将其合并到主模型中。您可以使用现有的引用组件,也可以用自己的系统替换引用组件,然后使用线束进行验证。

三、在虚幻引擎中模拟智能垃圾桶拣选

打开 IntelligentBinPicking_Harness 模型并单击运行即可在虚幻引擎中模拟智能垃圾桶拣选。这可以通过这些参考模型来实现:

  • PosemaskRCNN_Detection_Module.slx - 感知组件是一个 Pose Mask R-CNN 网络,该网络已在 Simulink 3D Animation 中的标记图像上进行了训练。有关训练 Pose Mask R-CNN 网络的更多信息,请参阅使用深度学习(计算机视觉工具箱)执行 6-DoF Pose Estimation for Bin Picking 示例。
  • Simulink_3D_IBP_Target.slx - 仿真目标是使用 Simulink 3D 动画创建的半结构化分拣场景。
  • CHOMP_Trajectory_Planner_Module.slx - 使用基于优化的规划器 manipulatorCHOMP 和 TOPP-RA 求解器 contopptraj 来生成时间最优轨迹的轨迹规划器。

单击 “运行 ”或执行此代码开始模拟。

sim('IntelligentBinPicking_Harness.slx');

图中显示的是 cobot 利用吸力抓手抓起一个 PVC 管件,以及装有 PVC 管件的托盘的视频画面。

相关文章:

MATLAB Simulink® - 智能分拣系统

系列文章目录 前言 本示例展示了如何在虚幻引擎 环境中对四种不同形状的标准 PVC 管件实施半结构化智能分拣。本示例使用 Universal Robots UR5e cobot 执行垃圾箱拣选任务,从而成功检测并分类物体。cobot 的末端执行器是一个吸力抓手,它使 cobot 能够拾…...

linuxCNC(五)HAL驱动的指令介绍

HAL驱动的构成 指令举例详解 从终端进入到HAL命令行,执行halrun,即可进入halcmd命令行 # halrun指令描述oadrt加载comoonent,loadrt threads name1 period1创建新线程loadusr halmeter加载万用表UI界面loadusr halscope加载示波器UI界面sho…...

STM32 进阶 定时器3 通用定时器 案例2:测量PWM的频率/周期

需求分析 上一个案例我们输出了PWM波,这个案例我们使用输入捕获功能,来测试PWM波的频率/周期。 把测到的结果通过串口发送到电脑,检查测试的结果。 如何测量 1、输入捕获功能主要是:测量输入通道的上升沿和下降沿 2、让第一个…...

第一节、电路连接【51单片机-TB6600驱动器-步进电机教程】

摘要:本节介绍如何搭建一个51单片机TB6600驱动器步进电机控制电路,所用材料均为常见的模块,简单高效的方式搭建起硬件环境 一、硬件清单 ①51单片机最小控制系统 ②USB转TTL模块 ③开关电源 ④TB6600步进电机驱动器 ⑤二相四线步进电机 ⑥电…...

【通俗理解】Koopman算符与非线性动力系统分析

【通俗理解】Koopman算符与非线性动力系统分析 关键词: #Koopman算符 Koopman Operator #非线性动力系统 Nonlinear Dynamical System #无穷维线性算子 Infinite-Dimensional Linear Operator #演化分析 Evolution Analysis #Bernard Koopman Bernard Koopman 第…...

mybatis plus打印sql日志

1、官方文档 使用配置 | MyBatis-Plus 2、日志实现 MyBatis-Plus 提供了多种日志实现(log-impl),用于记录 SQL 语句和相关操作,帮助开发者进行调试和监控数据库操作。以下是一些可用的日志实现及其说明: StdOutImpl…...

ObjectMapper

ObjectMapper 是 Jackson 库中非常重要的一个类,它是 JSON 和 Java 对象之间进行序列化与反序列化的核心工具。ObjectMapper 的底层实现是基于 Jackson 的数据绑定模型,它将 Java 对象与 JSON 数据转换为互通格式。 1. ObjectMapper 的设计与核心功能 O…...

新增白名单赋予应用安装权限

目录 相关问题 具体实现 相关问题 安装app到/data/分区时&#xff0c;如何在安装阶段就赋予权限&#xff0c;无需请求权限 具体实现 frameworks/base/core/res/res/values/config.xml <!-- For whitelis apk --><string-array translatable"false" nam…...

传奇996_51——脱下装备,附加属性设为0

奶奶的lua怎么都修改不了&#xff0c;可以调用txt的 ; LINKPICKUPITEM ; ChangeitemaddvaLue -1 5 0 ; GETITEMADDVALUE 3 5 M10 ; SENDUPGRADEITEM ; SENDMSG 9 你的衣服附加了<$STR(M10)>点防御属性. 或者lua callscriptex(actor,“LINKPICKUPITEM”) callscriptex(…...

【Mac】安装Gradle

1、说明 Gradle 运行依赖 JVM&#xff0c;需要先安装JDK&#xff0c;Gradle 与 JDK的版本对应参见&#xff1a;Java Compatibility IDEA的版本也是有要求Gradle版本的&#xff0c;二者版本对应关系参见&#xff1a;Third-Party Software and Licenses 本次 Gradle 安装版本为…...

MySQL中的redoLog

在数据库系统中&#xff0c;redo log&#xff08;重做日志&#xff09;用于记录所有已提交事务的修改操作&#xff0c;它的主要目的是确保在系统崩溃或故障后&#xff0c;能够恢复数据库到崩溃前的状态。Redo log 记录的是事务修改的数据的具体操作&#xff0c;而不是数据本身。…...

Windows 安装 MySQL

1.下载 MySQL 安装包 访问&#xff1a;MySQL :: Download MySQL Installer选择适合的版本。推荐下载 MySQL Installer for Windows&#xff0c;该安装包包含所有必要的组件选择 Windows (x86, 32-bit), MSI Installer 或 Windows (x86, 64-bit), MSI Installer 2.运行安装程序…...

yocto的xxx.bb文件在什么时候会拷贝文件到build目录

在 Yocto 中&#xff0c;.bb 文件用于描述如何构建和安装一个软件包&#xff0c;而文件在构建过程中的拷贝操作通常会在某些特定的步骤中进行。具体来说&#xff0c;文件会在以下几个阶段被拷贝到 build 目录&#xff08;或者更准确地说&#xff0c;拷贝到目标目录 ${D}&#x…...

Ubuntu Server 22.04.5 LTS重启后IP被重置问题

Ubuntu Server 22.04.5 LTS重启后IP被重置问题 最近在使用Ubuntu Server 22.04做项目开发测试时发现每次重启和关机后&#xff0c;所设置的静态IP地址都会回复到安装系统时所设置的ip Ubuntu Server 22.04 官网下载地址&#xff1a;Ubuntu官方下载地址 对虚拟机下安装Ubuntu感…...

Java基础复习

“任何时候我也不会满足&#xff0c;越是多读书&#xff0c;就越是深刻地感到不满足&#xff0c;越感到自己知识贫乏。科学是奥妙无穷的。” ——马克思 目录 一、方法&方法重载 二、运算符 三、数据类型 四、面向对象 1. 面向对象思想 2. 引用传递 3. 访问权限修饰…...

简易图书管理系统

javawebjspservlet 实体类 package com.ghx.entity;/*** author &#xff1a;guo* date &#xff1a;Created in 2024/12/6 10:13* description&#xff1a;* modified By&#xff1a;* version:*/ public class Book {private int id;private String name;private double pri…...

结构型-组合模式(Composite Pattern)

什么是组合模式 又名部分整体模式&#xff0c;是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象&#xff0c;用来表示部分以及整体层次。这种类型的设计模式属于结构型模式&#xff0c;它创建了对象组的树形结构。 结构 抽象根节点&#xff08;Co…...

【知识堂】大数据

一、大数据的基本概念 什么是大数据&#xff1f; 大数据&#xff08;Big Data&#xff09;是指无法通过传统工具和方法在合理时间内处理的海量数据集合。其关键特征是4V&#xff0c;即数据量大&#xff08;Volume&#xff09;、数据种类多&#xff08;Variety&#xff09;、处…...

力扣C语言刷题记录(三)搜索插入位置

给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例 2: 输入:…...

在Node.js局域网调试https的Vue项目

需求&#xff1a; 最近在测试在网页端&#xff08;HTML5&#xff09;调用移动设备的定位等权限功能&#xff0c;发现某些功能是必须保证域名在https下的否则会出现不正常现象。 解决&#xff1a; 1.在线生成和证书 访问&#xff1a;CSR文件生成工具-中国数字证书CHINASSL …...

3.5 认识决策树

3.5 认识决策树 3.5.1 认识决策树 如何高效的进行决策&#xff1f; 特征的先后顺序 3.5.2 决策树分类原理详解 已知有四个特征&#xff0c;预测 是否贷款给某个人。 先看房子&#xff0c;再看工作&#xff0c;是否贷款。 年龄&#xff0c;信贷情况&#xff0c;工作&#…...

股市复盘笔记

复盘是股市投资中非常重要的一个环节&#xff0c;它指的是投资者在股市收盘后&#xff0c;对当天的市场走势、个股表现以及自己的交易行为进行回顾和总结&#xff0c;以便更好地指导未来的投资决策。以下是对复盘的详细解释&#xff1a; 一、复盘的目的 总结市场走势&#xff…...

Canal 深入解析:从原理到实践的全面解读

Canal 深入解析&#xff1a;从原理到实践的全面解读 官网&#xff1a;https://github.com/alibaba/canal Canal 是阿里巴巴开源的一款分布式增量数据同步工具&#xff0c;广泛应用于数据同步、实时数据处理和数据库的增量备份等场景。它可以通过监听 MySQL 数据库的 binlog&am…...

SQL SERVER 2016 AlwaysOn 无域集群+负载均衡搭建与简测

之前和很多群友聊天发现对2016的无域和负载均衡满心期待&#xff0c;毕竟可以简单搭建而且可以不适用第三方负载均衡器&#xff0c;SQL自己可以负载了。windows2016已经可以下载使用了&#xff0c;那么这回终于可以揭开令人憧憬向往的AlwaysOn2016 负载均衡集群的神秘面纱了。 …...

解决 Maven 部署中的 Artifact 覆盖问题:实战经验分享20241204

&#x1f6e0;️ 解决 Maven 部署中的 Artifact 覆盖问题&#xff1a;实战经验分享 &#x1f4cc; 引言 在软件开发过程中&#xff0c;持续集成和持续部署&#xff08;CI/CD&#xff09;是提高开发效率和代码质量的关键手段。Hudson 和 Maven 是两种广泛使用的工具&#xff0…...

【开源免费】基于SpringBoot+Vue.JS中小型医院网站(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 078 &#xff0c;文末自助获取源码 \color{red}{T078&#xff0c;文末自助获取源码} T078&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

Linux CentOS

​阿里云开源镜像下载链接 https://mirrors.aliyun.com/centos/7/isos/x86_64/ VMware 安装 CentOS7 自定义 下一步 选择稍后安装操作系统 选择 输入 查看物理机CPU内核数量 CtrlShiftEsc 总数不超过物理机内核数量 推荐内存 自选 推荐 推荐 默认 拆分成多个 默认 自定义硬件…...

Android SurfaceFlinger layer层级

壁纸作为显示的最底层窗口它是怎么显示的 1. SurfaceFlinger layer层级 锁屏状态dump SurfaceFlinger &#xff0c;adb shell dumpsys SurfaceFlinger Display 0 (active) HWC layers: -----------------------------------------------------------------------------------…...

spark-sql配置教程

1.前期准备 &#xff08;1&#xff09;首先要把hadoop集群&#xff0c;hive和spark等配置好 hadoop集群&#xff0c;hive的配置可以看看这个博主写的博客 大数据_蓝净云的博客-CSDN博客 或者看看黑马程序员的视频 黑马程序员大数据入门到实战教程&#xff0c;大数据开发必…...

生成表格pdf格式

1. 添加依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>kernel</artifactId><version>7.2.5</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>layout…...