25/2/7 <机器人基础>雅可比矩阵计算 雅可比伪逆
雅可比矩阵计算
雅可比矩阵的定义
假设我们有一个简单的两个关节的平面机器人臂,其末端执行器的位置可以表示为:
其中:
- L1 和 L2 是机器人臂的长度。
- θ1 和 θ2是关节的角度。
计算雅可比矩阵
雅可比矩阵 JJ 的定义是将关节速度与末端执行器的速度联系起来,因此我们需要对末端位置 (x,y) 进行对关节角度 (θ1,θ2)的偏导数计算:
计算各偏导数
- 计算 ∂x/∂θ1:
- 计算 ∂x/∂θ2:
- 计算 ∂y/∂θ1:
- 计算 ∂y/∂θ2:
构造雅可比矩阵
现在,我们将这些偏导数代入雅可比矩阵:
示例参数
假设:
- L1=1
- L2=1
- θ1=π/4(45度)
- θ2=π/4(45度)
计算函数值
-
计算 J 中的各项:
-
将这些值代入雅可比矩阵,得到:
- 结果为:
雅可比伪逆
雅可比伪逆(Jacobian Pseudoinverse)是雅可比矩阵的一个重要扩展,主要用于处理系统中的非线性或不适定问题。它常用来求解最小二乘问题和求逆运动学中的关节角度。以下是它的计算方法和主要用途。
计算雅可比伪逆
对于一个矩阵 J,其伪逆 J+ 可以通过以下步骤计算:
-
奇异值分解(SVD):
将雅可比矩阵 J分解为:
J=UΣVT
其中:- U 和 V 是正交矩阵。
- Σ是对角矩阵,包含 J 的奇异值。
-
计算伪逆:
伪逆可以表示为:
J+=VΣ+UT
其中 Σ+是 Σ的伪逆,具体为:- 如果 σi 是非零奇异值,则其伪逆为 1/σi。
- 对于零奇异值,保持位置为0。
雅可比伪逆的用途
-
解决最小二乘问题:
在很多情况下,我们需要最小化误差。通过使用伪逆,可以有效解决 Jx=b 的最小二乘解:
x=J+b -
逆运动学:
在求解机器人运动学中,伪逆可以帮助找到关节角度,使得末端执行器的位置尽可能接近期望的位置。当系统存在多解或没有解时,伪逆能够提供一个合理的解。 -
速度控制:
用于实现关节速度与末端速度之间的转换,将末端的速度映射回关节空间。 -
处理测量噪声:
在传感器测量不精确的情况下,伪逆能够提供更稳健的解,从而减少噪声对系统的影响。
力雅可比矩阵
力雅可比矩阵(Force Jacobian Matrix)是一个重要的工具,用于描述机器人或机械系统中作用在末端执行器上的力与关节力之间的关系。它在机器人控制和力控制问题中起着关键作用。
力雅可比矩阵的定义
力雅可比矩阵通常表示为 JfJf,用于将末端执行器的力(或力矩)映射到关节力(或关节力矩):
其中:
- F 是末端执行器施加的力向量。
- τ 是关节施加的力向量(常称为关节扭矩)。
- Jf是力雅可比矩阵。
计算力雅可比矩阵
计算方法通常依据运动学模型和系统的配置。以下是一般步骤:
-
定义末端执行器的位置和姿态:确定末端执行器相对于机器人的位置和姿态。
-
反向求导:在求解冬锡变换(Derivation of the Kinematic Model)时,通过对系统运动学方程的求导,得到关于关节角度的变化对末端执行器的力的影响。
-
矩阵构造:根据定义,力雅可比矩阵的每一列通常由关节对末端执行器施加的力或扭矩的作用点位置来组成。这可以通过以下方式构造:
- 对每个关节的力量影响进行建模,包括关节自由度和末端执行器位置。
- 考虑重力和外力等对雅可比矩阵的贡献。
力雅可比矩阵的用途
-
力控制:在力控制任务中(如抓取或施力操作),力雅可比矩阵用于将目标末端执行器的力转变为关节力,以实现目标力的精确控制。
-
模仿人类操作:在机器人模仿人类动作时,力雅可比矩阵帮助捕捉人类在执行任务时施加的力,以及如何将其映射到机器人的关节上。
-
稳定性分析:在动态负载情况下,力雅可比矩阵可以帮助分析和保持系统的稳定性,确保机器人能够在外部干扰下保持平衡。
-
联动控制:在多关节系统中,力雅可比矩阵有助于协调多个关节的动作,以便同时实现特定的力和运动目标。
速度雅可比矩阵
速度雅可比矩阵(Velocity Jacobian Matrix)是描述机器人关节速度与末端执行器线性和角速度之间关系的工具。它通常用于运动学分析和机器人控制。
速度雅可比矩阵的定义
假设末端执行器的状态由位置 (x,y,θ) 表示,其中 (x,y)是末端执行器的位置,θ 是其朝向角。速度雅可比矩阵 Jv将关节速度 (θ˙1,θ˙2) 与末端执行器的线性速度 (x˙,y˙) 和角速度 θ˙ 关联起来,形式为:
计算速度雅可比矩阵
为计算速度雅可比矩阵,我们需要取末端执行器位置和姿态对各关节角速度的偏导数。
1. 末端执行器的速度表达式
根据先前的示例,末端执行器的位置是:
将其速度表示为关节速度的线性组合:
2. 计算偏导数
与之前相似,我们计算偏导数:
计算 ∂x/∂θ1 和 ∂x/∂θ2(如前所示):
计算 ∂y/∂θ1 和 ∂y/∂θ2
3. 构造速度雅可比矩阵
速度雅可比矩阵 Jv可以写成:
将之前计算出的值代入:
x˙ 表示末端执行器的线性速度,特别是它在 x 方向的速度分量。类似地,y˙ 表示在 y方向的速度分量,θ˙表示末端执行器的角速度。
因此,速度雅可比矩阵的意义是将关节角速度(通过 θ˙1 和 θ˙2 表示)转化为末端执行器的线性和角速度(通过 x˙、y˙ 和 θ˙ 表示)。
刚度(Stiffness)
定义:刚度是指物体或系统抵抗变形的能力。刚度越大,物体在外力作用下产生的变形越小。
数学表达式:
刚度 K可以用弹性模量(应力与应变的比值)表示,通常的关系为:
K=F/δ
其中:
- F 是施加的力
- δ 是由该力引起的变形量(位移)
柔度(Compliance)
定义:柔度是刚度的倒数,描述物体或系统在施加力时的变形能力。柔度越大,物体在相同的力作用下产生的变形越大。
数学表达式:
柔度 C 的定义为:
C=δ/F=1/K
相关文章:

25/2/7 <机器人基础>雅可比矩阵计算 雅可比伪逆
雅可比矩阵计算 雅可比矩阵的定义 假设我们有一个简单的两个关节的平面机器人臂,其末端执行器的位置可以表示为: 其中: L1 和 L2 是机器人臂的长度。θ1 和 θ2是关节的角度。 计算雅可比矩阵 雅可比矩阵 JJ 的定义是将关节速度与末…...

网络爬虫js逆向之异步栈跟栈案例
【注意!!!】 前言: 1. 本章主要讲解js逆向之异步栈跟栈的知识(通过单步执行调试) 2. 使用关键字搜定位加密入口 3. 本专栏通过多篇文章【文字案例】的形式系统化进行描述 4. 本文章全文进行了脱敏处理 5. 详…...

使用Ollama本地部署deepseek
1、下载安装Ollama 前往下载页面 https://ollama.com/download下载好安装包,如同安装软件一样,直接安装即可 win中默认为C盘,如果需要修改到其他盘,查找具体教程 运行list命令,检查是否安装成功 2、修改模型下载的…...

Rust错误处理:从灭火器到核按钮的生存指南
开篇:错误处理的生存哲学 在Rust的平行宇宙里,错误分为两种人格: panic! → 核按钮💣(不可恢复,全系统警报)Result → 灭火器🧯(可控制,局部处理࿰…...

Golang:Go 1.23 版本新特性介绍
流行的编程语言Go已经发布了1.23版本,带来了许多改进、优化和新特性。在Go 1.22发布六个月后,这次更新增强了工具链、运行时和库,同时保持了向后兼容性。 Go 1.23 的新增特性主要包括语言特性、工具链改进、标准库更新等方面,以下…...

电脑运行黑屏是什么原因?原因及解决方法
电脑运行黑屏是指电脑在正常开机或使用过程中,突然出现屏幕变黑,无法显示任何内容的现象。这种现象可能会给用户带来很多不便,甚至造成数据丢失或硬件损坏。那么,电脑运行黑屏是什么原因呢?下面我们将分析几种可能的原…...

redis之AOF持久化过程
流程图 在redis.conf文件中配置appendonly为yes则开启aof持久化机制 #开启aof持久化,默认关闭为no appendonly no也可以在命令行开启 aof刷盘策略 #每个写操作都会同步刷盘。 appendfsync always #执行命令后先放入aof缓冲区,每秒钟将缓冲区数据刷盘…...

Elasticsearch:向量搜索的快速介绍
作者:来自 Elastic Valentin Crettaz 本文是三篇系列文章中的第一篇,将深入探讨向量搜索(也称为语义搜索)的复杂性,以及它在 Elasticsearch 中的实现方式。 本文是三篇系列文章中的第一篇,将深入探讨向量搜…...

Docker在安装时遇到的问题(第一部分)
一、在用docker-config-manager安装yum源时出现错误 [rootlocalhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 已加载插件:fastestmirror, langpacks adding repo from: https://download.docker.com/linux/ce…...

使用 OpenGL ES 在 iOS 上渲染一个四边形:从基础到实现
使用 OpenGL ES 在 iOS 上渲染一个四边形:从基础到实现 在 iOS 开发中,OpenGL ES 是一个强大的工具,用于实现高性能的 2D 和 3D 图形渲染。本文将详细分析一段完整的代码,展示如何使用 OpenGL ES 在 iOS 上渲染一个简单的四边形。我们将从代码的结构、关键模块、着色器的实…...
Spring Boot 2 快速教程:WebFlux处理流程(五)
WebFlux请求处理流程 下面是spring mvc的请求处理流程 具体步骤: 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求HandlerMapping查找 Handler (可以根据xml配置、注解进行查找) 匹配条件包括…...

Vue 鼠标事件合集,关于鼠标右键的处理方法(改写鼠标右键方法、自定义鼠标右键)
鼠标事件使用 mousedown"canvasDown($event)"按下事件合集 click 点击某个对象时触发 mousedown 鼠标按钮被按下时触发 mouseup 鼠标按钮被松开时触发 mouseleave 当鼠标指针移出元素时触发 dblclick 双击时触发 mousemove 鼠标移动时触发,…...

两种交换排序算法--冒泡,快速
目录 1.冒泡排序原理 2.快速排序原理 3.冒泡代码实现 4.快速排序代码实现 1.冒泡排序原理 冒泡排序(Bubble Sort)是一种简单的排序算法,基本思想是通过反复交换相邻的元素,直到整个序列有序。它的名字来源于较大的元素像气泡…...

语音交友app系统源码功能及技术研发流程剖析
语音交友App的核心功能包括语音聊天、语音房间、社交互动等,开发流程涵盖需求分析、技术选型、前后端开发、实时通信集成、测试优化、部署上线及运营维护。 一、语音交友App的大概功能 1. 语音聊天 一对一聊天:用户可与好友进行私密语音通话。 群组语音…...

零基础Vue入门7——状态管理Pinia
本节重点: pinia是什么pinia怎么用 pinia是什么 vue中组件间的数据传递: app.config.globalProperties:能够被应用内所有组件实例访问到的全局属性的对象props:父传子用provide:父传后代用 想象下有咩有哪些数据存储…...

Bash (Bourne-Again Shell)、Zsh (Z Shell)
文章目录 1. 历史背景2. 主要区别3. 功能对比自动补全插件和主题路径扩展提示符定制 4. 性能5. 使用场景6. 如何切换 Shell7. 总结 以下是 Bash 和 Zsh 之间的主要区别,列成表格方便对比: 特性BashZsh默认Shell大多数Linux发行版默认ShellmacOS默认She…...

Android studio 创建aar包给Unity使用
1、aar 是什么? 和 Jar有什么区别 aar 和 jar包 都是压缩包,可以使用压缩软件打开 jar包 用于封装 Java 类及其相关资源 aar 文件是专门为 Android 平台设计的 ,可以包含Android的专有内容,比如AndroidManifest.xml 文件 &#…...

DeepSeek R1 简单指南:架构、训练、本地部署和硬件要求
DeepSeek 的 LLM 推理新方法 DeepSeek 推出了一种创新方法,通过强化学习 (RL) 来提高大型语言模型 (LLM) 的推理能力,其最新论文 DeepSeek-R1 对此进行了详细介绍。这项研究代表了我们如何通过纯强化学习来增强 LLM 解决复杂问题的能力,而无…...

图论常见算法
图论常见算法 算法prim算法Dijkstra算法 用途最小生成树(MST):最短路径:拓扑排序:关键路径: 算法用途适用条件时间复杂度Kruskal最小生成树无向图(稀疏图)O(E log E)Prim最小生成树无…...

MySQL三大日志详解
在MySQL数据库的运行过程中,三大关键日志——binlog、redo log和undo log,起着至关重要的作用。理解这三大日志,对于深入掌握MySQL的工作原理、数据恢复以及主从复制等操作有着极大的帮助。本文将详细剖析这三大日志的作用和工作机制。 Binl…...

【SQL 中的分组查询与联合查询详解】
文章目录 SQL 中的分组查询与联合查询详解 1. GROUP BY分组查询 1.1 语句格式1.2 示例说明 1.2.1 分别查询哥哥组和弟弟组的英语成绩总和1.2.2 查询哥哥组的所有成绩总和 2. 联合查询 2.1 内连接 2.1.1 语法格式2.1.2 执行过程 2.2 外连接 2.2.1 左外连接2.2.2 右外连接 2.3 …...

【实战篇】用 Cursor 独立开发并上线电商类 Android APP 全攻略
一、为啥要用 Cursor 开发电商类 Android APP 家人们,如今电商类 APP 随处可见,不管是买衣服、食品,还是电子产品,都能通过这些 APP 轻松搞定。要是能自己开发一款电商类 Android APP,那可太酷啦!但开发 APP 可不是一件容易的事,涉及到很多技术,像写代码、设计界面、处…...

quartus24.1版本子模块因时钟问题无法综合通过,FPGA过OOC问题复盘
因为只负责一个子模块,所以需要单独对该子模块进行综合和过OOC,这时候已经有一些加虚拟pin文件,敲命令让子模块能过OOC的方法。但这个方法的前提是先过综合,然后再敲命令让虚拟管脚命令成功,最终可以过OOC。 今天负责…...

零基础Vue入门6——Vue router
本节重点: 路由定义路由跳转 前面几节学习的都是单页面的功能(都在专栏里面https://blog.csdn.net/zhanggongzichu/category_12883540.html),涉及到项目研发都是有很多页面的,这里就需要用到路由(vue route…...

使用 Let‘s Encrypt 和 OpenResty 实现域名转发与 SSL 配置
在搭建网站或服务时,确保域名的安全性和正确的流量转发是非常重要的。本文将介绍如何使用 Let’s Encrypt 获取免费的 SSL 证书,并将其配置到 OpenResty 中,同时实现特定的域名转发规则。这不仅可以提升网站的安全性,还能优化流量…...

Lambda 表达式
一、Lambda 表达式简介 Lambda 表达式是一种简洁的函数式编程方式,用于实现只有一个方法的接口(例如函数式接口)。 基本语法 (parameters) -> expression (parameters) -> { statements; } 参数:可以有零个或多个参数。…...

TCN时间卷积神经网络多变量多步光伏功率预测(Matlab)
代码下载:TCN时间卷积神经网络多变量多步光伏功率预测(Matlab) TCN时间卷积神经网络多变量多步光伏功率预测 一、引言 1.1、研究背景和意义 随着全球能源危机的加剧和环保意识的提升,可再生能源,尤其是太阳能&…...

【Elasticsearch】 Composite Aggregation 详解
1.什么是 Composite Aggregation? Composite Aggregation 是 Elasticsearch 中的一种特殊聚合方式,适用于需要分页展示的聚合结果。它与传统的聚合方式不同,采用了基于游标的分页模型。这种聚合方式可以高效地处理多级聚合中的所有桶&#x…...

如何通过 Logstash 将数据采集到 Elasticsearch
作者:来自 Elastic Andre Luiz 将 Logstash 与 Elasticsearch 集成以实现高效的数据提取、索引和搜索的分步指南。 什么是 Logstash? Logstash 是一种广泛使用的 Elastic Stack 工具,用于实时处理大量日志数据。它充当高效的数据管道&#x…...

mysql的cpu使用率100%问题排查
背景 线上mysql服务器经常性出现cpu使用率100%的告警, 因此整理一下排查该问题的常规流程。 1. 确认CPU占用来源 检查系统进程 使用 top 或 htop 命令,确认是否是 mysqld 进程导致CPU满载:top -c -p $(pgrep mysqld)2. 实时分析MySQL活动 …...