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

系列文章目录

本科毕设正在做多轴机械臂相关的内容,这里是一个学习机械臂运动学课程的相关记录。

如有任何问题,可发邮件至layraliu@foxmail.com问询。
1. 数学基础
2. 机械臂几何法与DH表示法
3. 机械臂运动学逆解

文章目录


一、引言

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问询。

相关推荐
一株月见草哇30 分钟前
Matlab(5)进阶绘图
matlab
livemetee37 分钟前
Flink2.0学习笔记:Flink服务器搭建与flink作业提交
大数据·笔记·学习·flink
INS_KF1 小时前
【C++知识杂记2】free和delete区别
c++·笔记·学习
Easocen2 小时前
Mybatis学习笔记(五)
笔记·学习·mybatis
人类发明了工具2 小时前
【机器人-开发工具】ROS 2 (4)Jetson Nano 系统Ubuntu22.04安装ROS 2 Humble版本
机器人
丑小鸭是白天鹅4 小时前
嵌入式C语言学习笔记之枚举、联合体
c语言·笔记·学习
楼田莉子5 小时前
C++算法题目分享:二叉搜索树相关的习题
数据结构·c++·学习·算法·leetcode·面试
奶黄小甜包6 小时前
C语言零基础第18讲:自定义类型—结构体
c语言·数据结构·笔记·学习
rannn_1118 小时前
【MySQL学习|黑马笔记|Day7】触发器和锁(全局锁、表级锁、行级锁、)
笔记·后端·学习·mysql
喜欢吃燃面9 小时前
C++算法竞赛:位运算
开发语言·c++·学习·算法