机器人控制系列教程之串联机器人工作空间

news2024/11/18 3:39:04

简介

在机器人学领域,对机器人工作空间的精确分析是实现高效、安全操作的关键。工作空间是指机器人末端执行器在不与环境或其他物体发生碰撞的情况下能够到达的所有位置的集合。为了求解这一空间,研究者们发展了多种方法,包括作图法、蒙特卡洛法、极值法、数值法和解析法等。这些方法各有优势,适用于不同的应用场景和需求。

分类

机器人的工作空间有三种类型:

  1. 总工作空间: 即机器人正常运行时,末端执行器坐标系的原点能在空间活动的最大范围;或者说该原点可达点占有的体积空间,又可称为可达空间,记为 W ( p ) W(p) W(p)
  2. 灵活工作空间: 在总工作空间内,末端执行器可以任意位姿达到的点构成的工作空间,记为 W p ( p ) W_p(p) Wp(p)
  3. 次工作空间: 总工作空间中出去灵活工作空间所余下的部分,记为 W s ( p ) W_s(p) Ws(p).

根据上述定义,则有:

W ( p ) = W p ( p ) + W s ( p ) W(p) = {W_p}(p) + {W_s}(p) W(p)=Wp(p)+Ws(p)

一般来说,工作空间都是一块或多块体积空间,它们都具有一定的边界曲面(有时是边界线)。 W ( p ) W(p) W(p)边界面上的点所对应的操作机的位姿均为奇异位形。与奇异位形相应的机器人的速度雅可比矩阵是奇异的,其边界面又常称作雅可比曲面。

求解

两个基本问题:

  1. 给出机器人的结构形式、结构参数以及关节变量的变化范围,求解工作空间。称为工作空间分析或工作空间正问题。
  2. 给出某一限定的工作空间,求其结构形式、参数等,称为工作空间综合或工作空间逆问题。

机器人的工作空间求解方法主要有解析法、图解法和数值法。

  1. 解析法。是通过包络曲线来确定工作空间的边界线,该方法虽然可以通过约束方程求解边界,但由于表达式过于复杂,而且直观性不强,一般只适合于关节少的机器人。
  2. 图解法。可以直观的看出工作空间的剖截面,但对于有冗余机器人,无法准确的描述机器人的工作空间。
  3. 数值法。计算机器人的工作空间,实际上选取尽可能多的独立的关节变量的组合,再利用正解运动学方程计算机器人手臂末端点的坐标值,这些坐标值就形成了机器人的工作空间。

数值法中的蒙特卡洛法是一种简单、实用的方法,目前已得到了广泛的应用。蒙特卡洛法: 是一种借助于随机抽样来解决数学问题的数值方法,在工程上被广泛应用于描述某些随机的物理现象,通常在机器人的研究中被应用于机器人误差分析、工作空间求解等方面。

工作空间求解步骤: 蒙特卡洛法应用于机器人工作空间求解,关键之处在于机器人的各关节是在其相应取值范围内工作的,当所有关节在取值范围内随机遍历取值后,末端点的所有随机值的集合就构成了机器人的工作空间。其具体步骤如下:

  1. 求解机器人的运动学方程正解。根据正解求得机器人手腕末端点在参考坐标系中的位置向量。由于我们只需要末端点的空间位置,因此没有必要考虑末端姿态.
  2. 确定各个关节的运动变化范围,采用Rand()函数在各关节运动范围内产生一系列随机数值作为随机步长变量;
  3. 将所求关节角随机值代入到正运动学方程中,可得末端点对应的位置向量;
  4. 将得到的机器人末端点位置向量值由 Matlab 绘成三维图像。

结果显示

利用MATLAB机器人工具箱,可进行如下编写,其中UR5机器人模型程序编写请见:

clear,clc,close all;
%% 建立机器人DH参数,初始状态为竖直状态
L1=Link('d',162.50,'a',0,'alpha',0,'modified');
L2=Link('d',0,'a',0,'alpha',pi/2,'offset',pi/2,'modified');
L3=Link('d',0,'a',425,'alpha',0,'modified');
L4=Link('d',126.70+6.6,'a',392.25,'alpha',0,'offset',pi/2,'modified');
L5=Link('d',99.70,'a',0,'alpha',pi/2,'modified');
L6=Link('d',99.60-4.5,'a',0,'alpha',-pi/2,'modified');

%采用弧度制
L(1).qlim=[-180,180]/180*pi;
L(2).qlim=[-145,65]/180*pi;
L(3).qlim=[-65,220]/180*pi;
L(4).qlim=[-180,180]/180*pi;
L(5).qlim=[-135,135]/180*pi;
L(6).qlim=[-360,360]/180*pi;


robot=SerialLink([L1 L2 L3 L4 L5 L6],'name','UR5')

num=30000;
P=zeros(num,3);
for i =1:num
    q1=L(1).qlim(1)+rand*(  L(1).qlim(2) - L(1).qlim(1)  );
    q2=L(2).qlim(1)+rand*(  L(2).qlim(2) - L(2).qlim(1)  );
    q3=L(3).qlim(1)+rand*(  L(3).qlim(2) - L(3).qlim(1)  );
    q4=L(4).qlim(1)+rand*(  L(4).qlim(2) - L(4).qlim(1)  );
    q5=L(5).qlim(1)+rand*(  L(5).qlim(2) - L(5).qlim(1)  );
    q6=L(6).qlim(1)+rand*(  L(6).qlim(2) - L(6).qlim(1)  );
    
    q=[q1 q2 q3 q4 q5 q6];
    T=robot.fkine(q);
    P(i,:)=transl(T);
end
plot3(P(:,1),P(:,2),P(:,3),'b.','markersize',1);
hold on
grid on
daspect([1 1 1]);
view([45 45]);
robot.plot([0 0 0 0 0 0])

可得:

往期推荐

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【因果推断python】53_效应异质性和非线性带来的挑战1

目录 Treatment Effects on Binary Outcomes 合成一些数据 由于缺乏基本事实,在单位层面预测治疗效果极为困难。因为我们只能观察到一个潜在结果 T(t) ,我们无法直接估计它。相反,我们必须依靠目标变换(也可以看作是设计巧妙的损…

基于Pytorch框架构建ResNet模型

Pytorch 一、训练模型1.导入资源包2.定义数据预处理3.读取数据 二、定义卷积神经网络1.导入必要的库2.定义名为convolutional_block的卷积块类3.定义了一个名为identity_block的恒等块类4.定义了一个名为Resnet的深度卷积神经网络类 三、创建模型1. 检查GPU设备2. 训练过程 四、…

编译原理大题自解(活前缀DFA、LR(0)分析表)

目录 4. (简答题) (1)给出识别活前缀的DFA (2)设计此文法的 LR(0)分析表 第一种解法 第二种解放 首先声明这是作者的写法(不保证正确!)仅供参考。本题因为可能存在冲突的原因,所…

【C语言小例程26/100】

题目&#xff1a;有一分数序列&#xff1a;2/1&#xff0c;3/2&#xff0c;5/3&#xff0c;8/5&#xff0c;13/8&#xff0c;21/13...求出这个数列的前20项之和。 程序分析&#xff1a;请抓住分子与分母的变化规律。 程序源代码&#xff1a; #include <stdio.h>int ma…

windows上运行arm32架构的安卓模拟器

说明 主要功能&#xff1a;在win10上研究和学习32位arm汇编指令的执行 环境如下 主机环境: windows10 目标模拟器环境:armeabi-v7a调试环境搭建 1、下载android studio 下载地址&#xff1a;https://developer.android.com/studio?hlzh-cn 2、安装android studio 直接下…

互联网应用主流框架整合之Spring Boot开发

Spring Boot数据库开发 通常SpringBoot数据库开发&#xff0c;会引入spring-boot-starter-jdbc&#xff0c;而如果引入了spring-boot-starter-jdbc&#xff0c;但没有可用的数据源或者没有配置&#xff0c;那么在运行Spring Boot时会出现异常&#xff0c;因为spring-boot-star…

思考-生涯思考-GPT-5对人们的影响

GPT-5 一年半后发布&#xff1f;对此你有何期待&#xff1f; IT之家6月22日消息&#xff0c;在美国达特茅斯工程学院周四公布的采访中&#xff0c;OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布&#xff0c;给出了肯定答案并表示将在一年半后发布。此外&#xff0c;…

Java知识点整理 11— 后端 Spring Boot 万用初始化模板使用

一. 模块简介 annotation&#xff1a;自定义注解aop&#xff1a;请求日志和权限校验common&#xff1a;通用类config&#xff1a;配置类constant&#xff1a;常量 controller&#xff1a;控制层esdao&#xff1a;方便操作ESexception&#xff1a;异常类job&#xff1a;定时任务…

企业邮箱老板如何看员工邮件往来记录

员工离职&#xff0c;删除邮箱内重要邮件&#xff1f;已删除的邮件能否恢复&#xff1f;企业邮箱老板如何查看员工邮件的往来记录呢&#xff1f;本篇文章将为您详细介绍企业邮件自动备份的原理以及邮箱内的设置方法。 一、为何查看员工邮件往来记录&#xff1f; 企业邮箱关乎…

了解SD-WAN与传统WAN的区别

近年来&#xff0c;许多企业选择了SD-WAN作为他们的网络解决方案。云基础架构的SD-WAN不仅具备成本效益&#xff0c;而且提供更安全、更可靠的WAN连接&#xff0c;有助于实现持续盈利。客户能够更好地控制他们的网络&#xff0c;个性化定制且无需额外成本。 那么&#xff0c;为…

第二十八篇——复盘:世界不完美,我们该怎么办?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 对于信息传递过程中的相关知识的总结&#xff0c;让我又仿佛回到了每一个…

猫头虎 分享已解决Error || API Rate Limits: HTTP 429 Too Many Requests

猫头虎 分享已解决Error || API Rate Limits: HTTP 429 Too Many Requests &#x1f42f; 摘要 &#x1f4c4; 大家好&#xff0c;我是猫头虎&#xff0c;一名专注于人工智能领域的博主。在AI开发中&#xff0c;我们经常会遇到各种各样的错误&#xff0c;其中API Rate Limits…

多路h265监控录放开发-(15)回放页面中的三个槽函数进行视频的录放(0.1版本项目完结篇)

xviewer.h 中的回放页面的三个槽函数&#xff1a; void SelectCamera(QModelIndex index);//选择摄像机129void SelectDate(QDate date); //选择日期129void PlayVideo(QModelIndex index); //选择时间播放视频129 SelectCamera槽函数解析&#xff1a; 点击相机列表日…

【路由交换技术】Cisco Packet Tracer基础入门教程(四)

Hello各位&#xff0c;好久不见&#xff0c;第四期我准备讲一下Packet Tracer中DHCP的配置&#xff0c;使用方法。 本章实验我们将拓扑中的某个路由器作为DHCP服务器&#xff08;它仍然可作为路由器使用&#xff09;&#xff0c;通过命令配置DHCP服务。独立的服务器可通过图形化…

【AI大模型】GPTS 与 Assistants API

前言 2023 年 11 月 6 日&#xff0c;OpenAI DevDay 发表了一系列新能力&#xff0c;其中包括&#xff1a;GPT Store 和 Assistants API。 GPTs 和 Assistants API 本质是降低开发门槛 可操控性和易用性之间的权衡与折中&#xff1a; 更多技术路线选择&#xff1a;原生 API、…

创新指南|品牌电商新策略:五大转型思路与RGM举措

在流量红利过去的背景下&#xff0c;品牌电商面对多渠道运营的难题&#xff0c;如缺乏统盘经营、绩效管理分散、价格战失控、用户体验不足以及流量过度依赖&#xff0c;品牌电商如何有效应对这些挑战&#xff0c;本文从5个维度探讨全渠道电商RGM破局之路&#xff0c;实现品牌的…

利用chrome_remote_interface实现程序化、自动化Web安全测试

2024软件测试面试刷题&#xff0c;这个小程序&#xff08;永久刷题&#xff09;&#xff0c;靠它快速找到工作了&#xff01;&#xff08;刷题APP的天花板&#xff09;-CSDN博客跳槽涨薪的朋友们有福了&#xff0c;今天给大家推荐一个软件测试面试的刷题小程序。https://blog.c…

MOE学习笔记

MOE网络结构 和传统的 transformer 网络结构相比&#xff0c;我们将 Transformer 模型的每个 FFN 层替换为 MoE 层&#xff0c;MoE 层由门网络&#xff08;Router&#xff09;和一定数量的专家&#xff08;Expert&#xff09;组成。 这些 Expert 其实也是 FFN 层&#xff0c;…

LeetCode 算法:二叉树的直径 c++

原题链接&#x1f517;&#xff1a;二叉树的直径 难度&#xff1a;简单⭐️ 题目 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由…

审美进阶:7个小程序模板,助你提高设计感!

小程序是一种无需下载和安装即可使用的应用程序。小程序实现了应用程序“触手可及”的梦想。用户可以通过扫描或搜索打开应用程序。对于开发者来说&#xff0c;小程序也大大降低了开发成本。因此&#xff0c;越来越多的品牌争相制作小程序应用程序。本文将为您带来优秀的微信小…