蒙特卡洛法求解机械臂工作空间(以IRB4600型工业机械臂为例)

1. 概念

工作空间是衡量机器人工作能力的一个重要的运动学指标,蒙特卡洛法是一种随机模拟方法,用于在计算机上估计某些统计量,对于要估计的统计量,通过模拟大量的随机抽样,并计算这些样本的随机值来估算这个统计量的值。 蒙特卡洛法的优点在于,在处理许多复杂的问题时可以通过模拟来估计答案,而无需解决复杂的数学方程。

2. 蒙特卡洛法求解

蒙特卡洛法求解机械臂工作空间流程是将各个关节在限位范围内离散后随机组合,最终求得机械臂末端在空间上的位置集合的过程。可通过建立运动学模型与组合求解两个步骤实现

2.1 建立机器人运动学模型,设置关节旋转角度限制

对于六自由度工业机器人来说,一般情况下对各个关节的旋转角度有限制,查找说明可得IRB4600型工业机械臂关节限位如下:

蒙特卡洛法要求解工作空间,首先要实现IRB4600型工业机械臂的DH建模和运动学正解,详细可参考:机械臂标准DH建模及正运动学分析(以IRB4600型工业机械臂为例)
,这里为了求解方面,利用matlab的robotic toolbox工具箱建立机器人模型,关键代码如下:

clc;
clear;
%          thetai       di      ai-1     alphai-1
L1 = Link([0            495     175      -pi/2  ],'standard');
L2 = Link([0            0       1095      0     ],'standard');L2.offset=-pi/2;
L3 = Link([0            0       175      -pi/2  ],'standard');
L4 = Link([0            1230.5  0        pi/2   ],'standard');
L5 = Link([0            0       0        pi/2   ],'standard');L5.offset=-pi;
L6 = Link([0            85      0        0      ],'standard');
 
L1.qlim =[-180*pi/180, 180*pi/180];
L2.qlim =[-90*pi/180, 150*pi/180];
L3.qlim =[-180*pi/180, 75*pi/180];
L4.qlim =[-400*pi/180, 400*pi/180];
L5.qlim =[-125*pi/180, 125*pi/180];
L6.qlim =[-400*pi/180, 400*pi/180];

IRB4600=SerialLink([L1 L2 L3 L4 L5 L6], 'name', 'IRB4600');

2.2

3.组合求解

组合求解可大致分为三个步骤实现:
(1)设置随机工作点数目;
(2)在关节旋转角度限制下随机取得各关节角
(3)所有末端点的随机点的集合构成机械臂的工作空间。
利用matlab的随机数生成函数rand,生成所有关节角组合并逐一基于robotic toolbox工具箱建立的模型正解得到机械臂法兰中心的空间位置,关键代码如下:

% 蒙特卡洛法确定工作空间
NUM = 3000;% 随机点数
J = zeros(NUM,6);
POS = zeros(NUM,3);%x,y,z
for i = 1:NUM
    J(i,1) = L1.qlim(1) + (L1.qlim(2)-L1.qlim(1))*rand;
    J(i,2) = L2.qlim(1) + (L2.qlim(2)-L2.qlim(1))*rand;
    J(i,3) = L3.qlim(1) + (L3.qlim(2)-L3.qlim(1))*rand;
    J(i,4) = L4.qlim(1) + (L4.qlim(2)-L4.qlim(1))*rand;
    J(i,5) = L5.qlim(1) + (L5.qlim(2)-L5.qlim(1))*rand;
    J(i,6) = L6.qlim(1) + (L6.qlim(2)-L6.qlim(1))*rand;
    T = IRB4600.fkine(J(i,:));
    POS(i,:) = transl(T);
    % 绘制结果
end
% 绘制结果
IRB4600.plot(J(NUM,:));%最后一个点
hold on
plot3(POS(:,1),POS(:,2),POS(:,3),'b.','MarkerSize',0.5);%随机轨迹
grid on;

上述代码中, 随机工作点的数目设置为3000,为每个关节角在转动的角度范围内随机生成3000个点,形成3000组关节角,并正解成笛卡尔空间的位置绘制出来,所形成的包络面如下图所示,所有离散点包络的范围及机器人的工作空间范围。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

释放 OSINT 的力量:在线调查综合指南

开源情报 (OSINT) 是从公开信息中提取有价值见解的艺术。无论您是网络安全专业人士、道德黑客还是情报分析师,OSINT 都能为您提供先进的技术,帮助您筛选海量的数字数据,发现隐藏的真相。 在本文中,我们将深入研究大量的OSINT 资源…

【LeetCode刷题】滑动窗口解决问题:串联所有单词的子串(困难)、最小覆盖子串(困难)

【LeetCode刷题】Day 10 题目1:30. 串联所有单词的子串(困难)思路分析:思路1:滑动窗口哈希map 题目2:LCR 017.最小覆盖子串思路分析思路1:滑动窗口哈希表 题目1:30. 串联所有单词的子…

【论文阅读|cryoET】DeepETPicker:使用弱监督深度学习的快速准确cryoET三维颗粒挑选算法

题目 DeepETPicker: Fast and accurate 3D particle picking for cryo-electron tomography using weakly supervised deep learning 发表期刊: Nature Communications 发表时间:2024.02 Accepted 作者:Guole Liu, Tongxin Niu 中科院自动化…

43-2 Linux入侵排查实验

环境准备: 老规则,我没有靶场就自己搭建了类似, 这里准备一台CentOS 7虚拟机作为受害者,然后使用CS制作木马并在受害者主机上线,具体过程可以看我之前写的一篇文章: 黑客必备利器:如何在系统上安装和使用 CobaltStrike(简称:CS)_cobalt strike-CSDN博客 最终的效果…

FPGA——eMMC验证

一.FPGA基础 1.FPGA烧录流程 (1) 加载流文件 —— bitfile (2) 烧录文件 —— cmm 二.MMC 1.基础知识 (1)jz4740、mmc、emmc、sd之间的关系? jz4740——处理器 mmc——存储卡标准 emmc——mmc基础上发展的高效存储解决方案 sd—— 三.eMMC和SD case验证 1.ca…

【一竞技DOTA2】RAMZES666替补参加裂变联赛

1、根据主办方文件,RAMZES666将继续作为Tundra战队替补参加裂变联赛。该比赛为欧洲线上赛,于5月27日-30日举行,总奖金8万美元。 除此之外,Nigma战队在上个月宣布四号位Matthew离队后,也选择启用老队员GH参赛。而在本月初让ah fu转回教练、携替补Thiolicor出战PGL瓦拉几亚的Secr…

浏览器提示网站不安全怎么办?有什么解决办法吗?

当你在浏览器中访问一个网站时,如果看到提示说该网站不安全,这通常是由于网站没有使用SSL证书或者SSL证书存在问题。SSL证书在这里扮演着非常关键的角色,下面我会详细解释它的作用以及如何解决这类不安全提示。 SSL证书的作用: 1…

JAVA基础----线程池

①什么是线程池? 线程池是对所有线程进行统一的管理和控制,从而提高系统的运行效率。当我们要使用线程的时候可以直接从线程池中拿,用完也不用自己去销毁,省去创建和销毁的时间,提升系统的响应时间。 ②线程池的七大核…

Apache、Nginx、IIS文件解析漏洞

目录 1、文件解析漏洞介绍 2、Apache相关的解析漏洞 (1)多后缀解析漏洞 (2)Apache配置问题 (3)换行符解析漏洞 (4)罕见后缀解析 3、Nginx相关的解析漏洞 (1&…

【安装笔记-20240528-Linux-在 Vultr 云服务器上安装 OpenWRT】

安装笔记-系列文章目录 安装笔记-20240528-Linux-在 Vultr 云服务器上安装测试 OpenWRT 文章目录 安装笔记-系列文章目录安装笔记-20240528-Linux-在 Vultr 云服务器上安装测试 OpenWRT 前言一、软件介绍名称:OpenWRT主页官方介绍 二、安装步骤测试版本&#xff1a…

【SCAU操作系统】实验二页面置换算法的模拟实现及命中率对比python源代码及实验报告参考

一、课程设计目的 通过请求页式管理方式中页面置换算法的模拟设计,了解虚拟存储技术的特点,掌握请 求页式存储管理中的页面置换算法。 二、课程设计内容 模拟实现 OPT (最佳置换)、 FIFO 和 LRU 算法,并计算缺页…

Linux快速定位日志 排查bug技巧和常用命令

1. 快速根据关键字定位错误信息 grep 在 Linux 系统中,可以使用 grep 命令来查找日志文件中包含特定关键字的行。假设你的日志文件路径为 /var/log/myapp.log,你想要查找包含关键字 "abc" 的日志内容,可以按照以下步骤操作&#…

【浅水模型MATLAB】尝试完成一个数值模拟竞赛题

【浅水模型MATLAB】尝试完成一个数值模拟竞赛题 前言题目描述问题分析理论基础控制方程数值方法边界条件 代码框架与关键代码结果展示写在最后 更新于2024年5月25日 前言 最近看到第四届水科学数值模拟创新大赛的通知,就好奇翻看了前几年的比赛试题。发现去年的一个…

信息安全法规和标准

《全国人民代表大会常务委员会关于维护互联网安全的决定》规定,威胁互联网运行安全的行为:(1)侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统,(2)故意制作、传播计算机病毒等破坏性…

[ue5]建模场景学习笔记(1)——混合材质

卷首:这部分会记录建模场景等相关学习内容,与ue引擎学习笔记不同的是,可能会略过一些基础内容,因为部分知识在blender中已经学习过了,不再继续记录。 1.需求分析: 想构建一个山地的场景,在ue5中…

在豆包这事上,字节看得很明白

大数据产业创新服务媒体 ——聚焦数据 改变商业 导语: 1.基于豆包的话炉/猫箱APP市场反响一般 2.价格战对于豆包来说是副产物 3.价格战对大模型市场是良性的 4.豆包接下来会推广至国际社会 因为宣称价格比行业便宜99.3%,豆包成功出圈了。根据火山引擎公…

通过安全的云开发环境重新发现 DevOps 的心跳

云开发平台如何“提升” DevOps 首先,我来简单介绍一下什么是云开发环境:它通常运行带有应用程序的 Linux 操作系统,提供预配置的环境,允许进行编码、编译和其他类似于本地环境的操作。从实现的角度来看,这样的环境类…

猫耳 WebSocket 跨端优化实践

前言 在现代的移动应用程序中,长连接是一种不可或缺的能力,包括但不限于推送、实时通信、信令控制等常见场景。在猫耳FM的直播业务中,我们同样使用了 WebSocket 长连接作为我们实时通信的基础。 在我们推进用户体验优化的工作中,…

如何将音频中的人声分离出来?

想要把一段视频中的人声跟背景音乐分离开来,找个好一点的音频处理软件就能把声音分离了,常见的有以下方法,一起来看看吧。 pr 打开软件,然后将电脑上的音频文件,上传到软件中,然后按住[ctrla]选择所有音频…

6-继承

6-继承 1、基本语法和方式2、继承的基本特点2.1 三种继承方式相同的基本点2.2 三种继承方式的差别2.3 公有继承的独有特点 3、子类的构造、析构3.1 子类的构造3.2 子类的析构3.3 子类的拷贝构造函数3.4 子类的拷贝赋值 4、多重继承4.1 内存布局4.2 类型转换4.3 名字冲突问题 5、…