多轴机械臂/正逆解/轨迹规划/机器人运动学/Matlab/DH法 学习记录03——机械臂运动学逆解

本文主要是介绍多轴机械臂/正逆解/轨迹规划/机器人运动学/Matlab/DH法 学习记录03——机械臂运动学逆解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章目录

本科毕设正在做多轴机械臂相关的内容,这里是一个学习机械臂运动学课程的相关记录。
如有任何问题,可发邮件至layraliu@foxmail.com问询。
1. 数学基础
2. 机械臂几何法与DH表示法
3. 机械臂运动学逆解

文章目录

  • 系列文章目录
  • 一、引言
    • 1.手臂顺向运动学forward kinematics(FK)
    • 2.手臂逆向运动学inverse kinematics(IK)
  • 二、求解概念
    • 1.概念1
    • 2.概念2
    • 3.概念3
  • 三、多重解
    • 1.解的数目
    • 2.puma(6 rotational joints)
    • 3.解的选择方式
  • 四、求解方法
    • 1.解析法(closed-form solutions)
    • 2.数值法(numerical solutions)
    • 3.A RRR Manipulator
    • 4.A Pieper’s Solution
  • 五、一般的例子
    • 1.坐标系
    • 2.物件取放任务
  • 总结


一、引言

1.手臂顺向运动学forward kinematics(FK)

正运动学(forward kinematics)是从关节变量θ到坐标系{b}在坐标系{s}中的位置和方向的映射T(θ)。
即,正运动学是通过 Joints 的转动角度或移动距离来推算末端执行器的位姿。

2.手臂逆向运动学inverse kinematics(IK)

逆向运动学刚好相反,是由末端执行器的位姿来推算 Joints 的状态。
在这里插入图片描述

二、求解概念

1.概念1

假设手臂有6 DOFs,则有:在这里插入图片描述
在H frame中提取出16个数字,其中:转动9个数字,第六个frame的原点相对于第零个点位移量3个数字。
转动的9个数字:3个自由度,6个限制条件(三个列向量之间两两垂直——三个约束条件;秩为3——三个约束条件)。
位移的3个数字:独立,3个自由度
在这里插入图片描述

求解:
12个nonlinear transcendental 方程式。(非线性超越方程组)

2.概念2

reachable workspace可达空间:手臂可以用一种以上的姿态到达的位置。
dexterous workfare灵巧空间:手臂可以用任何的姿态到达的位置。
在这里插入图片描述
原点为dexterous workspace(360度)

3.概念3

subspace:手臂在定义头尾的T所能到达的变动范围
(如下就只有一个)
若x和y确定,左上角旋转矩阵就定下来了,没有多余的解。
在这里插入图片描述

三、多重解

1.解的数目

由于是非线性超越方程,所以六个未知数六个方程不代表有唯一解。
(6个未知数、6个限制条件)
是由joint和link参数所决定的。
在这里插入图片描述

2.puma(6 rotational joints)

针对一个特定工作点,有八组解;
前3个轴具有4种姿态;
在这里插入图片描述
每一个姿态中,具有2组手腕转动姿态。
在这里插入图片描述
但若手臂本身有几何限制,并非每一种解都可以运作。

3.解的选择方式

选择:离目前状态最近的解
最快/最省能;
避开障碍物。

四、求解方法

在这里插入图片描述

1.解析法(closed-form solutions)

代数法/几何法
目前大多数机械手臂都设计成具有解析解,即pieper’s solution,相邻三轴相交于一点。

2.数值法(numerical solutions)

3.A RRR Manipulator

(已知是红色的,未知是橙色的)
在这里插入图片描述
附:
在这里插入图片描述

  1. 几何法
    将空间几何切割成平面几何。划分成平面几何后,按正弦、余弦定律等找解。
    在这里插入图片描述
    量化计算
    在这里插入图片描述
  2. 代数解
    在这里插入图片描述
    注意这里theta 2是双解
    在这里插入图片描述
    在这里插入图片描述
    一个数学问题:(理解为高数里的万能公式)
    在这里插入图片描述

4.A Pieper’s Solution

若6DOFs具有三个连续的轴相交于一点,则手臂有解析解。
一般来说,会把最后三轴如此设计。(例如puma)
在这里插入图片描述

前三轴:产生移动;
后三轴:产生转动。
因为三轴交一点,所以:
在这里插入图片描述
以下为解析过程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、一般的例子

1.坐标系

在这里插入图片描述

2.物件取放任务

情景:机械手臂夹住放在桌子的杯子,移动手臂将杯子挂到墙上的杯架。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了 多轴机械臂/正逆解/轨迹规划/机器人运动学/Matlab/DH法的学习记录03——机械臂运动学逆解,而Matlab提供了大量能使我们快速便捷地处理数据的函数和方法。如有任何问题,可发邮件至layraliu@foxmail.com问询。

这篇关于多轴机械臂/正逆解/轨迹规划/机器人运动学/Matlab/DH法 学习记录03——机械臂运动学逆解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/913236

相关文章

好用的vue富文本编辑器记录

vue-quill-editor https://github.com/surmon-china/vue-quill-editor https://www.npmjs.com/package/vue-quill-editor https://blog.csdn.net/nickroprak/article/details/86645519(自定义图片上传) *默认上传图片为base64编吗

基于matlab的DTMF信号的产生和检测(1)

DTMF是什么?Double Tone Multiple Frequency就是这个,双音多频信号,不仅在我们现在的音频电话中使用,还在数据通信中处理各种数据流等信息。 一个DTMF信号由两个单音频正弦信号组成,有一个低频组(697hz,770hz,852hz,941hz),还有一个高频群(1209hz,1366hz,1477hz,1633hz),特点: 1.所有音频都位于人的可听范围内,因此

matlab的一些语法知识

matlab作为仿真工具,如今已经成为工科生必会的工具,其语法和c语言很相似,那么就来复习一下吧。 round()函数和fix()函数的作用都是取整,区别是,round是四舍五入,而fix是都舍掉了,即向0取整。还有floor()是不大于该数的最接近的整数,ceil()为不小于该数的最接近的整数。 “\”除是整个相除,但是“.\”点除是矩阵对应元素相除。 在绘图的时候,plot()函数很重要

Leetcode——爬楼梯(动态规划问题)

70.爬楼梯 描述 假设你正在爬楼梯。需要 n 步你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例1 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 步 + 1 步2 步 示例2 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 步 + 1 步 + 1 步1 步 + 2 步2 步

Apache Shiro术语-03

Apache Shiro术语 这里的术语和概念在文档中随处可见,它将极大地简化您对Shiro和安全性的理解。 由于使用了术语,安全性可能非常混乱。通过澄清一些核心概念,我们将使生活更轻松,您将看到Shiro API如何很好地反映它们: 身份(Authentication) 验证身份验证是验证主体身份的过程 - 基本上证明某人确实是他们所说的人。当身份验证尝试成功时,应用程序可以信任

MyBatis的update语句的返回值改为从匹配数改为受影响的记录数,向mysql连接添加useAffectedRows=true一个参数即可。

1、现象mysql更新update语句执行时,没有内容变更的话,会返回“0”;存在内容更新的话,会返回会返回有内容更新的记录数“1”。  2、mybatis默认情况,没有内容更新也是返回“1”。这么怎么会是”1“,不应该是”0“???其实默认mybatis返回的是 Rows matched “1”,而不是 “ 0 row affected ”中的 “0”。  3、那需要怎么才能让m

Linux命令学习之二

每日一结 ​               命令置换:是将一个命令的输出作为另一个命令的参数,命令格式如下: commond1 `command2` 其中,命令command2的输出将作为命令command1的参数,需要注意的是, 命令置换的单引号为ESC键下方的 ` 其意思就是说,先运行单引号内的命令,再将其命令作为

Linux命令学习之一

每日一结                                                                                        注:当用户不确定一个软件包的类型时, 可使用file命令查看文件类型

Android_03_数据库的使用总结

前言: 1>区分SQL和SQLite SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。 SQL 可与数据库程序协同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。 不幸地是,存在着很多不同版本的 SQL 语言,但是为了与 ANSI 标准相

Android_03_单元测试框架

测试类(用于单元测试之用) package com.itheima.junit.test;import com.itheima.junit.utils.Utils;import android.test.AndroidTestCase;public class TestCase extends AndroidTestCase {public void test(){int result =