机械臂运动学笔记(一):正向运动学

正向运动学指的是通过相邻关节间的转动和移动坐标,将末端的坐标计算出来。

反向运动学指的是已知机械臂末端的坐标,反算每个关节可能的转动和移动参数。

参考资料:4.机械臂几何法与DH表示法_哔哩哔哩_bilibili

一.任意连杆连接的变量定义(Craig DH)

假设对于任意轴,只存在转动或移动。

对于任意多个轴连接,相邻两个轴之间,其连杆(绿色),轴的夹角(橙色),连杆的偏距(紫色),关节角(红色)如下图所示。

其方向为X轴沿着连杆方向,Y轴为右手定则方向,Z轴为旋转方向右手定则指向的大拇指方向

多杆连接时,一共有四个参数(\alpha _{i-1},a _{i-1},d _{i}\theta _{i}

\alpha _{i-1}:表示从第frame_i-1坐标系的X _{i-1}向其坐标系原点看过去Z_{i}相对于Z _{i-1}的旋转角度,若为顺时针K _{i}度,\alpha _{i-1}=-K _{i}(顺时针为负,逆时针为正)

a _{i-1}:表示沿着第frame_i-1坐标系的X _{i-1}方向两个坐标系原点发生位移量为La _{i-1}=L

d _{i}:表示沿着第frame_i坐标系的Z_{i}方向两个坐标系的原点发生了d的位移d _{i}=d

\theta _{i}:从第frame_i坐标系的Z_{i}向其坐标原点看过去X _{i}相较于X _{i-1}顺时针旋转M_{i}\theta _{i}=-M_{i}(顺时针为负,逆时针为正)

二.不同坐标系间的坐标变换

对于两个坐标系间的坐标变换,存在:点Pa为A系下的坐标,若要变成B系,则=R+=,其中为A系到B系的变换矩阵;相当于A系在B系中的位姿坐标;相当于B系经过平移旋转和A系重合时,该平移旋转的组成为变换矩阵

那么对于两个轴之间的坐标转换,若要将第i个坐标系的点P_{i}转换到i-1坐标系下P_{i-1},其变换矩阵相当于第i-1个坐标系,经过变换矩阵T^{_{i}^{i-1}}(一系列旋转平移)变成第i个坐标系。那么这一系列变换可分为连续的四个步骤,1)先将i-1坐标系经过a _{i-1}旋转变为R坐标系,使得i-1坐标系与i坐标系的Z轴平行。2)将R系经过a _{i-1}平移变成Q坐标系,使得i-1坐标系与i坐标系的原点的X,Y坐标相同

3)将Q坐标系经过\theta _{i}的旋转变为P坐标系,使得i-1坐标系与i坐标系姿态完全相同

4)将P坐标系经过d _{i}平移,使得i-1坐标系与i坐标系位置完全相同

三.通用的变换矩阵计算

按照上述的变换方式,计算变换矩阵如下:

四:例1:对于RRR(3转轴)平面机械臂

平面机械臂:其Z轴互相平行,则所有的Z轴夹角=0;其连杆都在同一平面上,连杆的偏距=0;

地杆frame0坐标系不动(可理解为基座标),其坐标原点与第一个杆坐标系重合,沿着X0方向,两个坐标系的位移为0,故=0,转角=

机械臂末端(爪子),相对于最后一个坐标系frame3的坐标为(L3,0,0)

将上述的四个参数代入通用表达式,可以得到对应的变换矩阵

五.例2:RRR非平面三转轴机械臂

其Z轴和X轴各有两种选择方案,共有四种选择方案

以第一种为例:

图中,以i=2为例,即2轴与1轴的坐标系转换关系

:从第frame_1坐标系的X1向其坐标系原点看过去Z2相对于Z1的旋转角度为顺时针90度,=-90

:沿着第frame_1坐标系的X1方向两个坐标系原点未发生位移=0

:沿着第frame_2坐标系的Z2方向两个坐标系的原点发生了L1的位移=L1

从第frame_2坐标系的Z2向其坐标原点看过去X2轴相较于X1轴顺时针旋转90度

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode - 周赛435

目录 一、3442. 奇偶频次间的最大差值 I二、3443. K 次修改后的最大曼哈顿距离三、3444. 使数组包含目标值倍数的最少增量四、3445. 奇偶频次间的最大差值 II 一、3442. 奇偶频次间的最大差值 I 题目链接 本题使用数组统计字符串 s s s 中每个字符的出现次数,然后…

鸿蒙HarmonyOS NEXT开发:优化用户界面性能——组件复用(@Reusable装饰器)

文章目录 一、概述二、原理介绍三、使用规则四、复用类型详解1、标准型2、有限变化型2.1、类型1和类型2布局不同,业务逻辑不同2.2、类型1和类型2布局不同,但是很多业务逻辑公用 3、组合型4、全局型5、嵌套型 一、概述 组件复用是优化用户界面性能&#…

pyrender 渲染报错解决

pyrender渲染后,出来的图样子不对: 正确的图: 解决方法: pip install numpy1.26 下面的不是必须的: pip install pyrender0.1.45 os.environ["PYOPENGL_PLATFORM"] "egl" os.environ[EGL_DEVI…

CCFCSP第34次认证第一题——矩阵重塑(其一)

第34次认证第一题——矩阵重塑(其一) 官网链接 时间限制: 1.0 秒 空间限制: 512 MiB 相关文件: 题目目录(样例文件) 题目背景 矩阵(二维)的重塑(reshap…

Neurlps2024论文解读|BERTs are Generative In-Context Learners-water-merged

论文标题 BERTs are Generative In-Context Learners BERTs 是生成式上下文学习器 论文链接 BERTs are Generative In-Context Learners论文下载 论文作者 David Samuel 内容简介 本文探讨了掩码语言模型(如DeBERTa)在上下文学习中的生成能力&…

深入理解Java对接DeepSeek

其实,整个对接过程很简单,就四步,获取key,找到接口文档,接口测试,代码对接。 1.获取 KEY https://platform.deepseek.com/transactions 直接付款就是了(现在官网暂停充值2025年2月7日&#xf…

OSPF高级特性(3):安全特效

引言 OSPF的基础我们已经结束学习了,接下来我们继续学习OSPF的高级特性。为了方便大家阅读,我会将高级特性的几篇链接放在末尾,所有链接都是站内的,大家点击即可阅读: OSPF基础(1):工…

HCIA项目实践--静态路由的总结和简单配置

七、静态路由 7.1 路由器获取未知网段的路由信息: (1)静态路由:网络管理员手工配置的路由条目,它不依赖网络拓扑的变化进行自动更新,而是根据管理员预先设定的路径来转发数据包。其优点是配置简单、占用系…

3dtiles——Cesium ion for Autodesk Revit Add-In插件

一、说明: Cesium已经支持3dtiles的模型格式转换; 可以从Cesium官方Aesset中上传gltf等格式文件转换为3dtiles; 也可以下载插件(例如revit-cesium插件)转换并自动上传到Cesium官方Aseet中。 Revit转3dtiles插件使用…

HCIA项目实践---网络层次常见的三种模型

2.2 网络的层次 2.2.1 常见的三种网络层次划分 应用层 (1)OSI 七层模型 物理层:处于最底层,主要负责处理物理介质上的信号传输,如电缆、光纤、无线等。其作用是定义物理设备的接口标准、信号的编码方式、传输速率等&…

【图片转换PDF】多个文件夹里图片逐个批量转换成多个pdf软件,子文件夹单独合并转换,子文件夹单独批量转换,基于Py的解决方案

建筑设计公司在项目执行过程中,会产生大量的设计图纸、效果图、实景照片等图片资料。这些资料按照项目名称、阶段、专业等维度存放在多个文件夹和子文件夹中。 操作需求:为了方便内部管理和向客户交付完整的设计方案,公司需要将每个项目文件…

Python:凯撒密码

题目内容: 凯撒密码是古罗马恺撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下: 原文:A B C D E F G H I J K L M N O P Q R …

亚信安全正式接入DeepSeek

亚信安全致力于“数据驱动、AI原生”战略,早在2024年5月,推出了“信立方”安全大模型、安全MaaS平台和一系列安全智能体,为网络安全运营、网络安全检测提供AI技术能力。自2024年12月DeepSeek-V3发布以来,亚信安全人工智能实验室利…

2024BaseCTF_week4_web上

继续!冲冲冲 目录 圣钥之战1.0 nodejs 原型 原型链 原型链污染 回到题目 flag直接读取不就行了? 圣钥之战1.0 from flask import Flask,request import jsonapp Flask(__name__)def merge(src, dst):for k, v in src.items():if hasattr(dst, __geti…

【Java 面试 八股文】Redis篇

Redis 1. 什么是缓存穿透?怎么解决?2. 你能介绍一下布隆过滤器吗?3. 什么是缓存击穿?怎么解决?4. 什么是缓存雪崩?怎么解决?5. redis做为缓存,mysql的数据如何与redis进行同步呢&…

使用 Dockerfile 构建自定义 Nginx 镜像并集成 nginx_upstream_check_module

目录 1. 为什么需要自定义 Nginx 镜像? 2. Dockerfile 解析 2.1 基础镜像选择 2.2 安装依赖 2.3 下载并解压 Nginx 源码 2.4 应用补丁并编译 Nginx 2.5 暴露端口并设置启动命令 3. 构建并运行自定义 Nginx 镜像 3.1 构建镜像 3.2 运行容器 3.3 健康检测配…

Python办公自动化之PDF

python版本:3.13.1 开发工具:pycharm 安装三方库:pypdf2 、pdfplumber、pymupdf 一、从PDF中提取文字 用Python从PDF中提取文字-CSDN博客 二、从PDF中提取表格 用Python从PDF中提取表格-CSDN博客 三、拆分和合并PDF文件 用Python拆…

ds-download-link 插件:以独特图标选择,打造文章下载链接

源码介绍 “ds-download-link”插件为 WordPress 网站提供了在文章编辑器中添加下载链接的功能,每个下载链接都支持图标选择,并能将这些链接以美观的样式展示在文章前端页面。以下是该插件的主要特性和功能: 后台功能 在文章编辑器下方添加…

实操部署DeepSeek,添加私有知识库

目录 一、环境介绍 PowerShell版本: wsl版本: 虚拟机版本: 本机IP: 虚拟机IP: 容器宿主机IP(host.docker.internal): Docker版本: Docker Compose版本&#xff…

一致性Hash算法延伸至Redis分片扩容使Lua脚本失效如何解决

文章部分内容来源:小林coding 问题场景:我们需要用Lua脚本,并且这个Lua脚本需要用到两个Key,但这两个Key必须命中同一台机器才可以,不然Lua脚本就会执行失败。如果集群扩容可能会导致两个Key落到不同的节点上导致Lua脚…