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 的定义是将关节速度与末…...
apisix的real-ip插件使用说明
k8s集群入口一般都需要过负载均衡,然后再到apisix。 这时候如果后台业务需要获取客户端ip,可能拿到的是lb或者网关的内网ip。 这里一般要获取真实ip需要做几个处理。 1. 负载均衡上,一般支持配置获取真实ip参数,需要配置上。然…...
位图的深入解析:从数据结构到图像处理与C++实现
在学习优选算法课程的时候,博主学习位运算了解到位运算的这个概念,之前没有接触过,就查找了相关的资料,丰富一下自身,当作课外知识来了解一下。 位图(Bitmap)是一种用于表示图像的数据结构&…...
Python实现GO鹅优化算法优化支持向量机SVM分类模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 随着信息技术的迅猛发展,数据量呈爆炸式增长,如何从海量的数据中提取有价值…...
Deno vs Node.js:性能对比深度解析
1. 引言 Deno 和 Node.js 都是基于 V8 引擎的 JavaScript 运行时环境,然而它们在架构、模块管理、安全性和性能方面存在显著差异。Deno 由 Node.js 的原始作者 Ryan Dahl 开发,旨在解决 Node.js 设计上的一些问题,比如包管理、安全模型和 Ty…...
我用AI做数据分析之数据清洗
我用AI做数据分析之数据清洗 AI与数据分析的融合效果怎样? 这里描述自己在使用AI进行数据分析(数据清洗)过程中的几个小故事: 1. 变量名的翻译 有一个项目是某医生自己收集的数据,变量名使用的是中文,分…...
备战蓝桥杯:双指针(滑动窗口)算法之逛花展
P1638 逛画展 - 洛谷 | 计算机科学教育新生态 这道题我们只要用一个kind和一个mp[N]的数组就能解决了 我们的解法1就是暴力枚举,先固定2,从2开始找连续的满足所有种类的最短的子数组,然后固定5,3,1,3&…...
【sqlite】python操作sqlite3(含测试)
个人小项目或者小团队,sqllite很适用,数据库封装操作如下 #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2025-02-08 13:57 # Author : duxiaowei # File : connect_sqllite.py # Software: PyCharm """ sqllite操作, …...
mybatis 是否支持延迟加载?延迟加载的原理是什么?
1. MyBatis 是否支持延迟加载? 是的,MyBatis 支持延迟加载。延迟加载的主要功能是推迟数据加载的时机,直到真正需要时再去加载。这种方式能提高性能,尤其是在处理关系型数据时,可以避免不必要的数据库查询。 具体来说…...
collabora online+nextcloud+mariadb在线文档协助
1、环境 龙蜥os 8.9 docker 2、安装docker dnf -y install dnf-plugins-core dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sed -i shttps://download.docker.comhttps://mirrors.tuna.tsinghua.edu.cn/docker-ce /etc/yum.repos.…...
深度学习中的Checkpoint是什么?
诸神缄默不语-个人CSDN博文目录 文章目录 引言1. 什么是Checkpoint?2. 为什么需要Checkpoint?3. 如何使用Checkpoint?3.1 TensorFlow 中的 Checkpoint3.2 PyTorch 中的 Checkpoint3.3 transformers中的Checkpoint 4. 在 NLP 任务中的应用5. 总…...
字符串高频算法:无重复字符的最长子串
题目 3. 无重复字符的最长子串 - 力扣(LeetCode) 解题思路 思路 方法: 滑动窗口 [!简单思路] [^1]以示例一中的字符串 abcabcbb 为例,找出从每一个字符开始的,不包含重复字符的最长子串,其中最长的那个字符串即为答…...
用深度学习模型构建海洋动物图像分类保姆教程
使用深度学习模型构建深度学习海洋动物图像分类模型的完整步骤如下,分为关键阶段和详细操作说明: 1. 数据准备与预处理 1.1 数据集组织 按类别分文件夹存储图像,例如:dataset/train/class1/class2/...val/class1/class2/...test…...
51单片机俄罗斯方块计分函数
/************************************************************************************************************** * 名称:scoring * 功能:计分 * 参数:NULL * 返回:NULL * 备注:采用非阻塞延时 ****************…...
Android开发获取缓存,删除缓存
Android开发获取缓存,删除缓存 app设置中往往有清理缓存的功能。会显示当前缓存时多少,然后可以点击清理缓存 直接上代码: object CacheHelper {/*** 获取缓存大小* param context* return* throws Exception*/JvmStaticfun getTotalCache…...
npm无法加载文件 因为此系统禁止运行脚本
安装nodejs后遇到问题: 在项目里【node -v】可以打印出来,【npm -v】打印不出来,显示npm无法加载文件 因为此系统禁止运行脚本。 但是在winr,cmd里【node -v】,【npm -v】都也可打印出来。 解决方法: cmd里可以打印出…...
NLP_[2]-认识文本预处理
文章目录 1 认识文本预处理1 文本预处理及其作用2. 文本预处理中包含的主要环节2.1 文本处理的基本方法2.2 文本张量表示方法2.3 文本语料的数据分析2.4 文本特征处理2.5数据增强方法2.6 重要说明 2 文本处理的基本方法1. 什么是分词2 什么是命名实体识别3 什么是词性标注 1 认…...
知识库升级新思路:用生成式AI打造智能知识助手
在当今信息爆炸的时代,企业和组织面临着海量数据的处理和管理挑战。知识库管理系统(Knowledge Base Management System, KBMS)作为一种有效的信息管理工具,帮助企业存储、组织和检索知识。然而,传统的知识库系统往往依…...
蚂蚁爬行最短问题
初二数学问题记录 分析过程 考点:2点之间直线最短。 思考过程:将EBCF以BC为边翻折,EF边翻折后为,则A为蚂蚁需要爬行的最小距离。...
【电机控制器】STC8H1K芯片——低功耗
【电机控制器】STC8H1K芯片——低功耗 文章目录 [TOC](文章目录) 前言一、芯片手册说明二、IDLE模式三、PD模式四、PD模式唤醒五、实验验证1.接线2.视频(待填) 六、参考资料总结 前言 使用工具: 1.STC仿真器烧录器 提示:以下是本…...
【专题】2024-2025人工智能代理深度剖析:GenAI 前沿、LangChain 现状及演进影响与发展趋势报告汇总PDF洞察(附原数据表)
原文链接:https://tecdat.cn/?p39630 在科技飞速发展的当下,人工智能代理正经历着深刻的变革,其能力演变已然成为重塑各行业格局的关键力量。从早期简单的规则执行,到如今复杂的自主决策与多智能体协作,人工智能代理…...
SAP-ABAP:SAP的第一行REPORT后面后缀作用详解
在SAP ABAP中,REPORT 语句是定义报表程序的核心语句,其后可以跟多个后缀(参数),用于控制报表的行为和属性。以下是常见的 REPORT 后缀及其作用的详解: 程序名称 • 语法:REPORT <program_nam…...
25/2/8 <机器人基础> 阻抗控制
1. 什么是阻抗控制? 阻抗控制旨在通过调节机器人与环境的相互作用,控制其动态行为。阻抗可以理解为一个力和位移之间的关系,涉及力、速度和位置的协同控制。 2. 阻抗控制的基本概念 力控制:根据感测的外力调节机械手的动作。位置…...
java-list深入理解(流程图)
List源码学习: 此篇文章使用流程图和源码方式,理解List的源码,方便记忆 核心逻辑流程图: #mermaid-svg-BBrPrDuqUdLMtHvj {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-BBrPrDuqUdLMtHvj .error-icon{fill:#…...
Sparse4D v3:推进端到端3D检测和跟踪
论文地址:2311.11722 (arxiv.org) 代码地址:HorizonRobotics/Sparse4D (github.com) 在自动驾驶感知系统中,3D 检测和跟踪是两项基本任务。本文在 Sparse4D 框架的基础上更深入地探讨了这一领域。作者引入了两个辅助训练任务(Temp…...
LeetCode781 森林中的兔子
问题描述 在一片神秘的森林里,住着许多兔子,但是我们并不知道兔子的具体数量。现在,我们对其中若干只兔子进行提问,问题是 “还有多少只兔子与你(指被提问的兔子)颜色相同?” 我们将每只兔子的…...
M系列/Mac安装配置Node.js全栈开发环境(nvm+npm+yarn)
一、安装 nvm(Node Version Manager) 打开终端,使用 curl 在 M 系列 Mac 上安装 nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash对于非 M 系列的 Intel Mac,上述命令同样适…...
Dify使用
1. 概述 官网:Dify.AI 生成式 AI 应用创新引擎 文档:欢迎使用 Dify | Dify GITHUB:langgenius/dify: Dify is an open-source LLM app development platform. Difys intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, ob…...
借助 Cursor 快速实现小程序前端开发
借助 Cursor 快速实现小程序前端开发 在当今快节奏的互联网时代,小程序因其便捷性、高效性以及无需下载安装的特点,成为众多企业和开发者关注的焦点。然而,小程序的开发往往需要耗费大量的时间和精力,尤其是在前端开发阶段。幸运…...
python 语音识别方案对比
目录 一、语音识别 二、代码实践 2.1 使用vosk三方库 2.2 使用SpeechRecognition 2.3 使用Whisper 一、语音识别 今天识别了别人做的这个app,觉得虽然是个日记app 但是用来学英语也挺好的,能进行语音识别,然后矫正语法,自己说的时候 ,实在不知道怎么说可以先乱说,然…...
