MATLAB —— 机械臂工作空间分析
系列文章目录
前言
本示例展示了如何使用可操作性指数对不同类型的机械手进行工作空间分析。工作空间分析是一种有用的工具,可用于确定机器人工作空间中最容易改变末端效应器位置和方向的区域。本示例的重点是利用不同的可操控性指数类型来分析各种机械手的工作空间。了解工作空间对于优化位置和高效运动至关重要,可以精确定位机器人可以执行精确运动的区域。这将提高机器人操作的效率和安全性。
一、可操作性指数类型
1.1 指数类型概述
manipulabilityIndex 函数支持三种指数类型,用于计算操纵器的可操纵性: 吉川(Yoshikawa)、逆条件(Inverse Condition)和浅田(Asada)。这些类型以不同的方式量化机器人操作的能力。以下是每种指数的概述:
1.2 吉川指数
该指数量化机械手从给定配置向任意方向移动的能力。数值越高,表示机械手越容易改变末端执行器的位置和方向。该指数可用于优化路径规划。通过该指数类型,您可以确定具有高灵巧性的配置,确保运动平稳,不易出现奇异现象。
1.3 反向条件数
该指标衡量末端执行器速度对关节速度变化的敏感度。它能突出显示机械手在哪些配置下由于对关节速度变化高度敏感而难以执行精确动作。该指数在外科手术机器人的微操作等场景中非常有价值,在这些场景中,对轻微动作的精确控制至关重要。
1.4 Asada 指数
该指数衡量机器人在不同方向上移动和施力的能力,同时考虑机器人的结构和对力的反应。该指数考虑了机器人机械手的动态性能。它是评估机械手负载能力的有用指标。通过应用 Asada 指数,您可以确定优化机器人负载能力的配置,确保稳定性并将风险降至最低。
有关这些可操控性指数类型的更多信息,请参阅 IndexType 属性。
1.5 指数类型分析图
为了显示每种索引类型之间的差异,请使用每种索引类型分析 Universal UR5e 机械手的工作空间。
加载 Universal UR5e 机械手的机械手模型。
ur5e = loadrobot("universalUR5e",DataFormat="row");
ur5e.Gravity = [0 0 -9.81];
生成无环境障碍物的机械手工作空间。该工作空间由末端执行器位置及其相应的关节配置表示。
[wksp,cfgs] = generateRobotWorkspace(ur5e,{});
1.6 吉川指数
计算每个工作区配置的吉川可操控性指数值。
mIndexYoshikawa = manipulabilityIndex(ur5e,cfgs,IndexType="yoshikawa");
使用工作区点和索引值对机器人进行工作区分析。请注意,红色区域表示末端执行器无法顺利移动的位置。
show(ur5e);
hold on
showWorkspaceAnalysis(wksp,mIndexYoshikawa);
hold off
title("Yoshikawa index");
axis auto
1.7 逆条件指数
接下来,使用逆条件指数类型计算可操作性。
mIndexInvCond = manipulabilityIndex(ur5e,cfgs,IndexType ="inverse-condition");
使用工作空间点和索引值对机器人进行工作空间分析。请注意,红色区域表示关节角度变化对末端执行器姿势影响较大的位置。
show(ur5e);
hold on
showWorkspaceAnalysis(wksp,mIndexInvCond);
hold off
title("Inverse Condition Index");
axis auto
1.8 浅田指数
使用 Asada 指数计算可操作性。指定运动分量只根据线性 xyz 分量进行计算。当运动分量为线性时,这种指数类型的差异更容易看出。
mIndexAsada = manipulabilityIndex(ur5e,cfgs,IndexType="asada",MotionComponent="linear");
使用工作区点和索引值对机器人进行工作区分析。请注意,在蓝色区域,从关节向末端效应器传递力和速度的效率非常高。
figure
show(ur5e);
hold on
showWorkspaceAnalysis(wksp,mIndexAsada);
hold off
title("Asada Index")
axis auto
1.9 主要启示
图表显示,工作空间边缘的可操控性值明显较低,因为机器人在这些区域的操控范围已达到极限。这种限制阻碍了机器人操纵器有效执行操纵任务的能力。相反,向工作区中心移动时,可操控性值会增加。在这些中心区域,机器人表现出较高的可操控性,并且远离奇异点,从而提高了执行任务的效率。
在决定工作区的操作区域时,应避免可操控性值较低的区域,因为在这些区域内,机器人可能会在精度和速度上遇到困难。不同的可操控性指数能让人对机器人机械手的运动和动态能力有不同的了解。因此,根据具体应用选择合适的可操控性指数类型对于实现最佳性能至关重要。
二、运动组件
MotionComponent 的名-值参数决定了计算可操控性时要考虑的运动类型。几何雅可比有六行,分别表示末端效应器可能执行的三种旋转和三种平移运动。您可以使用 MotionComponent 参数根据应用情况筛选出特定行。
manipulabilityIndex 函数支持三种常用的自由度,以及一种自定义方式来选择六个自由度的组合:
- 组合自由度 - 同时考虑线性运动和角度运动。使用该选项时,可操控性指数计算将考虑雅各布的所有六行。
- 线性 - 只考虑线性运动。这意味着可操控性指数计算只考虑雅各布方程的第 4、5 和 6 行。
- 角度 - 只考虑角度运动。这意味着可操控性指数计算只考虑第 1、第 2 和第 3 行。
- 自定义 - 使用六元素向量指定在计算可操控性指数时要考虑的运动分量。
使用此信息对两关节刚体树(twoJointRigidBodyTree)机械手模型进行工作空间分析。这是一个平面机械手,末端效应器只能在 xy 平面内平移。
加载机械手并生成工作空间。
robot = twoJointRigidBodyTree("row");
[wksp,cfgs] = generateRobotWorkspace(robot,{});
为每个生成的配置计算可操控性指数值。使用组合选项可考虑几何雅各布的所有行。
mIndexCombined = manipulabilityIndex(robot,cfgs,MotionComponent="combined");
使用可操作性值进行工作空间分析。将视图设置为 xy 平面。
show(robot);
hold on
showWorkspaceAnalysis(wksp, mIndexCombined);
hold off
title("Workspace Analysis Using All Motion Components")
view(0,90)
axis auto
图中显示,当可操作性计算考虑到所有运动组件时,整个工作空间的可操作性为零。出现这种情况的原因是,函数考虑了雅各布方程中对末端效应器运动没有影响的行。如前所述,由于末端效应器只能在 xy 平面上运动,因此指定只考虑 x 和 y 线性分量。
mIndexCustom = manipulabilityIndex(robot,cfgs,MotionComponent=[0 0 0 1 1 0]);
使用可操作性值进行工作区分析。
show(robot);
hold on
showWorkspaceAnalysis(wksp,mIndexCustom);
hold off
title("Workspace analysis with X- and Y-Linear Components")
view(0,90)
axis auto
请注意,工作区边缘的可操控性最低,然后向底部增加,当数值接近底部时又会降低。因此,通过选择适当的运动组件,可以分析机器人的工作空间。
蓝色区域代表机器人可操作性最高的区域,表明这些区域是机器人执行高精度任务的最有效区域。因此,需要精细操作或精确控制的任务应计划在该区域进行。红色区域表示机器人可操控性较低的区域。这些区域可能不太适合执行操纵任务。选择正确的运动组件组合来计算可操控性也很重要,因为选择不正确的运动组件会导致工作区分析无法代表机器人的实际能力。
三、工作区分析的体素化
工作区分析的体素化与之前的所有绘图一样,可以简化工作区分析绘图。由于大量的工作区点可能会使显示混乱,因此使用体素化图更容易理解工作区中的可操作性分布。
不过,您也可以将 showWorkspaceAnalysis 函数的 Voxelize name-value 参数设置为 false,从而将非体素化曲线图可视化。如果工作空间点较少且稀疏,或者对于机器人来说体素尺寸过大,非体素化图可能比体素化图更有用。
使用上一节中的同一平面机械手机器人模型以及之前的工作空间点和可操控性指数值。
figure
show(robot);
hold on
showWorkspaceAnalysis(wksp,mIndexCustom,Voxelize=false);
hold off
title("Non-Voxelized Workspace Analysis")
view(0,90)
axis auto
相关文章:

MATLAB —— 机械臂工作空间分析
系列文章目录 前言 本示例展示了如何使用可操作性指数对不同类型的机械手进行工作空间分析。工作空间分析是一种有用的工具,可用于确定机器人工作空间中最容易改变末端效应器位置和方向的区域。本示例的重点是利用不同的可操控性指数类型来分析各种机械手的工作空间…...
向日葵连接xrdp虚拟桌面
x2go的虚拟性没有那么好。而xrdp,可以实现较好的配置,并且能适应本机电脑的分辨率,非常方便。 配置xrdp可以参考这个: https://blog.csdn.net/weixin_54227557/article/details/143303803 然后就是重启相关服务了。 sudo pkill…...

AI智算-正式上架GPU资源监控概览 Grafana Dashboard
下载链接 https://grafana.com/grafana/dashboards/22424-ai-gpu-20241127/...

goframe框架bug-记录
implement not found for interface ICompany, forgot register? 错误解决检查: 1.有没有init 2. 注入问题 3. 注入问题...
对偶分解算法详解及其Python实现
目录 对偶分解算法详解及其实现第一部分:对偶分解算法概述1.1 什么是对偶分解算法1.2 应用场景1.3 算法优点第二部分:对偶分解算法的数学推导2.1 问题形式2.2 对偶问题2.3 算法框架第三部分:对偶分解算法的Python实现第四部分:案例1——支持向量机中的对偶分解(策略模式)…...

C# WinForm怎么使用COM组件
首先在右边自己的项目上右键→添加→引用 然后在 引用管理器 的 COM 分页下选择自己要添加的COM组件,当然前提是你已经用 regsvr32 命令注册过了此COM组件到注册表,如果还没有注册在这个列表里是看不到的。 选择好后点确定,就会在右边你的工程…...
【Python】深入理解Python的字符串处理与正则表达式:文本处理的核心技能
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 字符串处理和正则表达式是数据清洗和文本分析中的重要工具,广泛应用于自然语言处理、数据爬取和格式化输出等领域。本文章详细讲解Python中的字符串操作技巧,以及如何高效使用正则表达式完成复杂文本匹配…...

【开源项目】2024最新PHP在线客服系统源码/带预知消息/带搭建教程
简介 随着人工智能技术的飞速发展,AI驱动的在线客服系统已经成为企业提升客户服务质量和效率的重要工具。本文将探讨AI在线客服系统的理论基础,并展示如何使用PHP语言实现一个简单的AI客服系统。源码仓库地址:ym.fzapp.top 在线客服系统的…...

OpenCV从入门到精通实战(五)——dnn加载深度学习模型
从指定路径读取图像文件、利用OpenCV进行图像处理,以及使用Caffe框架进行深度学习预测的过程。 下面是程序的主要步骤和对应的实现代码总结: 1. 导入必要的工具包和模型 程序开始先导入需要的库os、numpy、cv2,同时导入utils_paths模块&…...
【Leetcode Top 100】142. 环形链表 II
问题背景 给定一个链表的头节点 h e a d head head,返回链表开始入环的第一个节点。 如果链表无环,则返回 n u l l null null。 如果链表中有某个节点,可以通过连续跟踪 n e x t next next 指针再次到达,则链表中存在环。 为了…...

嵌入式Qt使用ffmpeg视频开发记录
在此记录一下Qt下视频应用开发的自学历程,可供初学者参考和避雷。 了解常用音频格式yuv420p、h264等了解QML,了解QVideoOutput类的使用,实现播放yuv420p流参考ffmpeg官方例程,调用解码器实现h264解码播放 不需要手动分帧。ffmpeg…...

iOS 17.4 Not Installed
0x00 系统警告 没有安装 17.4 的模拟器,任何操作都无法进行! 点击 OK 去下载,完成之后,依旧是原样! 0x01 解决办法 1、先去官网下载对应的模拟器: https://developer.apple.com/download/all/?q17.4 …...
CTF之WEB(sqlmap tamper 参数)
apostropheask.py 作用:将单引号替换为UTF-8,用于过滤单引号。 base64encode.py 作用:替换为base64编码。 multiplespaces.py 作用:绕过SQL关键字添加多个空格。 space2plus.py 作用:用号替换…...

多点DMALL启动招股:将在港交所上市,聚焦数字零售服务
近日,多点数智有限公司(Dmall Inc.,下称“多点”或“多点DMALL”)发布全球发售文件,于11月28日至12月3日招股,预计将于2024年12月6日在港交所主板挂牌上市。 招股书显示,多点DMALL本次全球发售的…...

【c++篇】:解读Set和Map的封装原理--编程中的数据结构优化秘籍
✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:c篇–CSDN博客 文章目录 前言一.set和map的初步封装1.树的节点封装修改2.Find()查找函数3.红…...

ollama部署bge-m3,并实现与dify平台对接
概述 这几天为了写技术博客,各种组件可谓是装了卸,卸了装,只想复现一些东西,确保你们看到的东西都是可以复现的。 (看在我这么认真的份上,求个关注啊,拜托各位观众老爷了。) 这不,为了实验在windows上docker里运行pytorch,把docker重装了。 dify也得重装: Dify基…...

在并发情况下,Elasticsearch如果保证读写一致?
大家好,我是锋哥。今天分享关于【在并发情况下,Elasticsearch如果保证读写一致?】面试题。希望对大家有帮助; 在并发情况下,Elasticsearch如果保证读写一致? 1000道 互联网大厂Java工程师 精选面试题-Java…...

AMD的AI芯片Instinct系列介绍
AMD最强AI芯片发布! 在旧金山举行的Advancing AI 2024大会上,AMD推出Instinct MI325X AI加速器(以下简称MI325X),直接与英伟达的Blackwell芯片正面交锋。 现场展示的数据显示,与英伟达H200的集成平台H200 …...
【知识科普】设计模式之-责任链模式
这里写自定义目录标题 概述责任链模式的详细描述责任链模式的使用场景 使用场景举例1. 审批流程示例:2. 过滤器链示例:3. 事件处理系统示例:4. 插件系统示例: Java代码示例及注释代码解释 概述 责任链模式的详细描述 责任链模式…...

fiddler安卓雷电模拟器配置踩坑篇
一、fiddler端配置 和网页版fiddler一样,需要首先再本机安装证书,可以参考我之前的fiddler浏览器配置文章,前期操作一致: 此处需要注意的是connections里面需要勾选allow remote这个选项,这个主要是为了后来再安卓模拟…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
大数据驱动企业决策智能化的路径与实践
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:数据驱动的企业竞争力重构 在这个瞬息万变的商业时代,“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...