机器人正反向运动学(FK和IK)

news2024/11/18 11:24:45

绕第一个顶点可以沿Z轴转动,角度用alpha表示

绕第二个点沿X轴转动,角度为Beta

第三个点沿X轴转动,记作gama

这三个点构成姿态(pose)

我们记第一个点为P0,画出它的本地坐标系,和世界坐标系一样红绿蓝分布代表XYZ

P0坐标系相当于绕Z轴旋转了alpha角度。因此,从世界坐标到此的变化可以写成齐次矩阵M0

其中Rz(alpha)表示绕z轴旋转alpha角所对应的旋转矩阵。

T描述的是腿部的整体平移

P1相对于P0是在Y方向上平移了L1长度,沿X轴旋转Beta角,所以世界坐标到P1的变换矩阵可以写作M1.

同理,P1到P2是x轴旋转gamma,y轴移动L2,P2到P3是y轴移动L3

这种已知alpha、beta、gamma三个角度来求解p3的过程,我们称之为正向运动学(forward kinematics)

反过来,如果我们知道P0和P3的位置,来求解这三个角度。这个过程就叫做反向运动学或逆运动学(inverse kinematics)

逆运动学

        在实际应用中,逆运动学往往更加重要。我们经常已知tip尖端的位置,需要求得是角度。因为这个角度就是需要让舵机打到的角度。

        比如,作为机器人的腿,尖端TIP就是与地面接触的,我们希望它可以抬起来往前走一步。于是我们规划尖端的运动轨迹,来反求角度对舵机进行控制。

        另外,这其实也可以看成是一个机械臂,那么尖端就是手或者类似的抓取机构

                              

我们通常能够结算目标的位置,通过舵机打角让机械臂的尖端到达目标位置。

下面我们来具体求解

        首先,运动过程中腿是在一个平面内的,alpha角度会使这个平面绕Z轴旋转。

我们连接P0和P3,并记从P0到P3在XY平面上的投影向量为u

可得alpha角度就是向量u与y轴向量的夹角

我们从二维来看

为了求belta和gamma,我们引入两个辅助角theta和phi

于是在三角形P1P2P3中,根据余弦定理可求theta

而phi是向量P1P3和向量u的夹角

所以,易得beta是phi与theta的差

知道beta后可求P2的坐标。

就是P1的坐标在u方向上偏移L2乘以cosbeta的长度,在Z方向上偏移L2乘以sinbeta长度。

P2得到后就可求gamma,它是向量P1P2和向量P2P3的夹角

不过,这样计算还有个问题,就是如果P1P2P3攻线不能组成三角形的话。gamma等于多少呢?

那么gamma就一定为0,beta就是P1P3和u的夹角,这样连P2的坐标都不需要求了。

到这里还没完,因为beta、theta、phi并不是始终是这样的关系。

你会发现,其实只有两种情况,只要P3在u向量的上方,那么beta等于phi减去theta,否则beta等于theta减去phi

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

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

相关文章

Java面试八股之Java中数组有没有length()方法?String呢?为什么?

Java中数组有没有length()方法?String呢?为什么? 数组: 数组没有名为length()的方法,但有一个属性叫做length。可以通过数组名直接访问这个属性来获取数组的长度(即元素个数)。这是一个整数值&…

3-2 STM32c8t6实现流水灯

实物接线如下: 软件代码 #include "stm32f10x.h" // Device header #include "delay.h" int main(void) {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //开启时钟GPIO_InitTypeDef GPIO_InitStructure;GPIO_Init…

中国移动首批12个智算中心节点投产暨移动云智算产品体系正式发布

4月28日,中国移动在苏州隆重举办了2024中国移动算力网络大会。其中,以“智算凌云 慧联九州”为主题的一体化算力网络新基建论坛上,中国移动重磅发布了首批12个智算中心节点投产和智算产品体系。 中国移动响应国家号召,依托算力网络…

深度学习之基于YOLOv5智慧交通拥挤预警检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着城市化进程的加速和人口规模的不断增长,交通拥挤问题日益严重。传统的交通拥挤预警方…

goget配置多个golang 运行环境

一台主机安装多个golang 运行环境 本环境 windows10 为 基础 mac linux也可以按照此方法操作 背景 开发不同的运维工具会用到不同版本的golang,但是开发者不能一直进行重装来处理 ,因此 需要一个工具进行golang版本的管理 go管理工具介绍 gvm (Go V…

【报错处理】ib_write_bw执行遇到Couldn‘t listen to port 18515原因与解决办法?

要点 要点: ib默认使用18515端口 相关命令: netstat -tuln | grep 18515 ib_write_bw --help |grep port# server ib_write_bw --ib-devmlx5_1 --port88990 # client ib_write_bw --ib-devmlx5_0 1.1.1.1 --port88990现象: 根因&#xff…

蓝桥杯如何准备国赛?

目录 一、赛前准备 1、如何刷题,刷哪些题? 2、记录(主要看个人习惯) CSDN博客 写注释 3、暴力骗分 4、从出题人的角度出发,应该如何骗分 二、赛中注意事项 一、赛前准备 1、如何刷题,刷哪些题&…

24.什么是跨域?解决方案有哪些?

为什么会出现跨域问题 存在浏览器同源策略,所以才会有跨域问题。那么浏览器是出于何种原因会有跨域的限制呢。其实不难想到,跨域限制主要的目的就是为了用户的上网安全。 同源策略导致的跨域是浏览器单方面拒绝响应数据,服务器端是处理完毕…

OPC UA与IEC61499 在分布式智能电网中的应用

储能系统的系统架构 CMC :Cell Management Controller 储能设备中的电池芯包与电池均衡系统构成电池模组,国内的电池芯包通常使用被动均衡技术,被动均衡芯片通常通过SPI 接口连接到CMC 控制器,CMC 以单片机为主构建,具…

C语言——单链表实现数据增删查改

一.前言 嗨嗨嗨,我们又见面了。前面我们已经学习了关于数据结构中的顺序表,今天我们来学习数据结构中的单链表。废话不多说让我们直接开始吧。 二.正文 1.1链表的概念 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺…

“云卷数潮”云原生数据库分论坛亮点回顾!

4月29日,2024中国移动算力网络大会“云卷数潮”云原生数据库分论坛在江苏苏州举行。本次论坛不仅是技术交流的盛宴,更是行业发展趋势的风向标。论坛汇聚了众多企业领袖、专家学者及行业精英,共话云原生数据库技术发展,探讨行业最新…

无人机+大载重+长航时:油电混动多旋翼无人机技术详解

多旋翼无人机是一种具有三个及以上旋翼轴的特殊的无人驾驶旋翼飞行器。具有稳定性强、操控简单、勤务性高、价格便宜等优势,因此在市场上的应用非常广泛。此外,利用地面供电的绳系多旋翼通过电缆向多旋翼持续传输电能,可以大大提高多旋翼的空…

QT程序通过GPIB-USB-HS转接线控制数字万用表

1、硬件准备 1.1、数字万用表 型号 :Agilent 34401A 前面图示: 后面图示:有GPIB接口 1.2、GPIB-USB-HS转接线 2、GPIB协议基础了解 2.1、引脚 8条数据线:DIO1 ~ DIO8 5条管理线:IFC、ATN、REN、EOI、SRQ 3条交握线…

2024年五一杯高校数学建模竞赛(C题) 建模解析| 冲击地压危险预测 |小鹿学长带队指引全代码文章与思路

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮200人完成了建模与思路的构建的处理了~ 本篇文章是鹿鹿学长经过深度思考,独辟蹊径,通过滑动平均法解决冲击地压危险预测问题。实现综合建模。独创复杂系统视角&#xf…

Android滑动冲突解决方案面试问题及回答

问题 1: 什么是滑动冲突?在Android开发中常见哪些类型? 答案: 滑动冲突通常发生在多个滑动组件(如ScrollView, ListView, ViewPager等)嵌套使用时,各个组件对同一个滑动事件的响应发生冲突。常见的类型包括垂直滑动冲…

Flask教程1:flask框架基础入门,路由、模板、装饰器

文章目录 一、 简介二、 概要 一、 简介 Flask是一个非常小的Python Web框架,被称为微型框架;只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各…

算法:双指针题目练习

目录 题目一:移动零 题目二:复写零 题目三:快乐数 题目四:盛最多水的容器 题目五:有效三角形的个数 题目六:和为s的两个数字(剑指offer) 题目七:三数之和 题目八:四数之和 常…

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深…

CAD的DWG文件如何进行搜索文字

1.目的 想搜索CAD文件中的数字或文字是否存在DWG文件中。 2.方法 方式1:菜单栏 编辑→查找 方式2:指令格式 图纸的左下侧→命令处,进行输入find→再按回车enter 3.结果

Day 22 SSH远程管理服务

sshd服务,系统自带,默认开机自启运行 云/物理服务器的安全组和防火墙默认放行该端口 软件包:openssh-server(服务端);openssh-client(客户端); 格式:ssh I…