雅克比矩阵在机器人运动学中的应用

以六轴机械臂为例,设机械臂关节空间为q,位置矩阵为p,速度矩阵为v

q = [ q 0 , q 1 , q 2 , q 3 , q 4 , q 5 ] q=[q_0,q_1,q_2,q_3,q_4,q_5] q=[q0,q1,q2,q3,q4,q5]

p = [ x , y , z ] T = [ f x ( q ) f y ( q ) f z ( q ) ] p=[x,y,z]^T=\begin{bmatrix}f_x(q) \\ f_y(q)\\ f_z(q) \\ \end{bmatrix} p=[x,y,z]T= fx(q)fy(q)fz(q)
联立机械臂速度矩阵、关节空间和位置矩阵的关系如下

v = p ˙ = ( d f x d t d f y d t d f z d t ) = ( ∂ f x ∂ q 0 d q 0 d t ⋯ ∂ f x ∂ q 5 d q 5 d t ∂ f y ∂ q 0 d q 0 d t ⋯ ∂ f y ∂ q 5 d q 5 d t ∂ f z ∂ q 0 d q 0 d t ⋯ ∂ f z ∂ q 5 d q 5 d t ) = ( ∂ f x ∂ q 0 ⋯ ∂ f x ∂ q 5 ∂ f y ∂ q 0 ⋯ ∂ f y ∂ q 5 ∂ f z ∂ q 0 ⋯ ∂ f z ∂ q 5 ) ( q 1 ⋮ q 5 ) v=\dot p=\begin{pmatrix}\frac {df_x}{dt} \\ \frac {df_y}{dt} \\ \frac {df_z}{dt}\\ \end{pmatrix} =\begin{pmatrix}\frac {\partial f_x} {\partial q_0}\frac {dq_0} {dt}& \cdots & \frac {\partial f_x} {\partial q_5}\frac {dq_5} {dt} \\ \frac {\partial f_y} {\partial q_0} \frac {dq_0} {dt} &\cdots&\frac {\partial f_y} {\partial q_5} \frac {dq_5} {dt} \\\frac {\partial f_z} {\partial q_0} \frac {dq_0} {dt} &\cdots & \frac {\partial f_z} {\partial q_5} \frac {dq_5} {dt} \end{pmatrix}= \begin{pmatrix}\frac {\partial f_x} {\partial q_0}& \cdots & \frac {\partial f_x} {\partial q_5} \\ \frac {\partial f_y} {\partial q_0}& \cdots & \frac {\partial f_y} {\partial q_5} \\\frac {\partial f_z} {\partial q_0}& \cdots & \frac {\partial f_z} {\partial q_5} \end{pmatrix}\begin{pmatrix}q_1 \\ \vdots \\ q_5\\ \end{pmatrix} v=p˙= dtdfxdtdfydtdfz = q0fxdtdq0q0fydtdq0q0fzdtdq0q5fxdtdq5q5fydtdq5q5fzdtdq5 = q0fxq0fyq0fzq5fxq5fyq5fz q1q5

将中间矩阵定义为雅克比矩阵J,则

J = ( ∂ f x ∂ q 0 ⋯ ∂ f x ∂ q 5 ∂ f y ∂ q 0 ⋯ ∂ f y ∂ q 5 ∂ f z ∂ q 0 ⋯ ∂ f z ∂ q 5 ) J=\begin{pmatrix}\frac {\partial f_x} {\partial q_0}& \cdots & \frac {\partial f_x} {\partial q_5} \\ \frac {\partial f_y} {\partial q_0}& \cdots & \frac {\partial f_y} {\partial q_5} \\\frac {\partial f_z} {\partial q_0}& \cdots & \frac {\partial f_z} {\partial q_5} \end{pmatrix} J= q0fxq0fyq0fzq5fxq5fyq5fz

v = J q ˙ v=J\dot q v=Jq˙

q ˙ = [ q ˙ 0 , q ˙ 1 , q ˙ 2 , q ˙ 3 , q ˙ 4 , q ˙ 5 ] \dot q=[\dot q_0,\dot q_1,\dot q_2,\dot q_3,\dot q_4,\dot q_5] q˙=[q˙0,q˙1,q˙2,q˙3,q˙4,q˙5]

那么雅克比矩阵J可以用来表示从关节速度空间q_dot到关节末端执行空间速度的映射,即一个末端的位置可以由多个关节空间的速度映射得到,即

q ˙ J ⟶ v \dot q {J \over \longrightarrow }v q˙Jv

同样,末端执行空间速度F同样可以使用雅克比矩阵映射到关节空间力矩

τ J T ⟶ F \tau {J ^T \over \longrightarrow}F τJTF

τ = J T F \tau = J^TF τ=JTF

例如7轴机械臂,具有冗余的一个关节空间(7x1)q_6,所以在末端执行空间的变换矩阵(6x1)(3x3旋转+3x1平移)进行映射的时候q_6无论处在什么位置,都不会影响末端执行空间的位置和速度,称为零空间

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

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

相关文章

ASP.NET Core中间件记录管道图和内置中间件

管道记录 下图显示了 ASP.NET Core MVC 和 Razor Pages 应用程序的完整请求处理管道 中间件组件在文件中添加的顺序Program.cs定义了请求时调用中间件组件的顺序以及响应的相反顺序。该顺序对于安全性、性能和功能至关重要。 内置中间件记录 内置中间件原文翻译MiddlewareDe…

微服务 云原生:基于 Gogs + Drone 实现 CI/CD 自动化

一般构建部署 以一个简单的前后端项目来说,分别编写前后端的 Dockerfile 文件并构建镜像,然后编写 docker-compose.yml 构建部署,启动运行。每次代码变更后都需重新手动打包、构建、推送。 一个简单的例子: 前端: 项…

【力扣每日一题】2023.8.7 反转字符串

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个字符数组形式的字符串,让我们直接原地修改反转字符串,不必返回。 给出的条件是使用O(1)的额外空间…

bash: sudo: command not found的解决方法 | 安装sudo

-bash: sudo: command not found的解决方法 https://www.cnblogs.com/pengpengboshi/p/16159443.html 报错 安装apt-get update报错由于没有公钥,无法验证下列签名: NO_PUBKEY A4B469963BF863CC解决办法是手动加入 (sudo可去掉)…

c# 全网最稳定 企业级 以太网客户端类库 具备即时更新状态,断线三次重拨,稳定收发。

源码下载,带示例 代码实现了一个基本的TCP客户端,能够连接到服务器并发送接收数据。当连接失败时,会进行重连,并在达到最大重连次数后终止连接。使用异步编程模型、实现事件模型以及重连机制。 ConnectAsync(): 这是一个异步方法,用于与服务器建立连接。在方法中,首先初始…

ARM架构银河麒麟docker,源码编译安装GDAL

docker中安装依赖 sudo apt-get update sudo apt-get install build-essential autoconf automake libtool sudo apt-get install libproj-dev libgeos-dev libjson-c-dev libpng-dev libjpeg-dev sudo apt-get install python3-dev sudo apt-get install python3.11-dev去官网…

IO密集时epoll还高效吗?

io特别密集时为什么 epoll 效率不高。原因是: 连接密集(短连接特别多),使用epoll的话,每一次连接需要发生epoll_wait->accpet->epoll_ctl调用,而使用select只需要select->accpet,减少了…

数组和字符串-字符串

最长公共前缀 题意: 给多个字符串,找最长前缀 解: 暴力匹配,先按字典序排序字符串,这样长度短的优先进行匹配,所得字符串就可能偏小 适合a aa aaa aaaa这样的数据,不过对于aa aab aabc aab…

python爬虫相关

目录 初识爬虫 爬虫分类 网络爬虫原理 爬虫基本工作流程 搜索引擎获取新网站的url robots.txt HTHP协议 Resquests模块 前言: 安装 普通请求 会话请求 response的常用方法 简单案例 aiohttp模块 使用前安装模块 具体案例 数据解析 re解析 bs4…

数据治理内容

https://space.bilibili.com/405479587 文章内容来源b站up主,语兴呀 数据治理内容 一.模型: 由于早期业务快速扩张,对元数据把控不到位,导致成熟期出现大量不合规模型 解决:数据标准:元数据补充 建设管控&…

基于长短期神经网络LSTM时间序列回归分析

​目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的回归分析 MATALB代码:基于长短期神经网络的回归分析,基于LSTM的回归预测资源-CSDN文库 https://download.csdn.net/download/abc991835105/88184633 效果图 结果分析 展望 参考论文 背影 LSTM神经…

AutoDL服务器的镜像版本太高,配置python3.7 tensorflow1.15版本的框架的步骤

1.选择一个实例,进入后端界面 2. 更新bashrc中的环境变量 conda init bash && source /root/.bashrc查看虚拟环境 conda info --envs可以看到此时有一个base的虚拟环境 但是它的python版本为3.8.10,无法安装tensorflow1.15,所以我们要创建一个…

PHP面向对象面试题

1、简述面对对象六大设计原则 ? 面向对象六大设计原则是一组指导软件设计的原则,它们有助于提高代码的可维护性、可扩展性和可重用性。这些原则是: 单一职责原则(Single Responsibility Principle,SRP)&a…

Ctfshow web入门 SSTI 模板注入篇 web361-web372 详细题解 全

CTFshow SSTI web361 笔记分享 一、代码块 变量块 {{}} 用于将表达式打印到模板输出 注释块 {##} 注释 控制块 {%%} 可以声明变量,也可以执行语句 {% for i in .__class__.__mro__[1].__subclasses__() %}{% if i.__name___wrap_close %}{% print i.__init__.…

Nacos服务治理—负载均衡

引入负载均衡 在消费方引入负载均衡机制&#xff0c;同时简化获取服务提供者信息的流程 Spring Cloud引入组件LoadBalance实现负载均衡 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web<…

高等数学:圆周率的计算方法

文章目录 1 割圆术2 无穷级数2.1 拉马努金(Ramanujan)圆周率公式2.2 Chudnovsky圆周率公式2.3 BBP公式2.4 其他级数(1) 自然数倒数偶次方和(2) 泰勒展开(3) 无穷乘积 3 微积分4 概率学(Monte Carlo)5 连分数6 总结 本文将对圆周率 π \color{red}{\pi} π的计算方法作简单整理&…

js 正则表达式

js 正则表达式 http://tool.oschina.net/regex https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions 11 22 333

学习pytorch 3 tensorboard的使用

tensorboard的使用 1. 安装2. add_scalar 查看函数图形3. 查看结果4. add_image() 查看训练步骤中间结果的图片 1. 安装 pytorch conda环境 pip install tensorboard pip install opencv-python2. add_scalar 查看函数图形 常用来查看 train val loss等函数图形 from torch…

解决:Unexpected ‘debugger‘ statement.eslint(no-debugger) (即:页面中的 debugger 标红)的问题

1、问题描述&#xff1a; 其一、报错为&#xff1a; Unexpected debugger statement.eslint(no-debugger) 中文为&#xff1a; 意外的“调试器”语句.eslint&#xff08;无调试器&#xff09; 其二、问题描述为&#xff1a; 在正常的 vue 项目中使用 debugger 的调试过程…

Android上的基于协程的存储框架

在Android上&#xff0c;经常会需要持久化本地数据&#xff0c;比如我们需要缓存用户的配置信息、用户的数据、缓存数据、离线缓存数据等等。我们通常使用的工具为SharePreference、MMKV、DataStore、Room、文件等等。通过使用现有的存储框架&#xff0c;结合协程&#xff0c;我…