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这个选项,这个主要是为了后来再安卓模拟…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
