机器人学中的状态估计 中文版_机器人学——学习笔记18(Minpulator Traj Planning Example)...
台大机器人学——林沛群
机械手臂轨迹规划实例
Manipulator Trajectory-Planning Example
通过一个example,是对以上所有知识的应用;在真实使用的场景具有实用意义。
顺向+逆向+轨迹规划完成放杯子任务:
Revisit物件取放任务:机械手臂夹住放在桌子上的杯子,移动手臂将杯子挂到墙上的杯架中。
1. 六轴RRRRRR手臂之DH Table(Review):
2. 在Inverse Kinematics的学习中,进行了夹取任务的计算,以IK计算RRRRRR手臂在任务起始点C的6个转角(Joint Angles),让手臂能顺利夹住杯子。
何小白:机器人学——学习笔记12(夹取任务)zhuanlan.zhihu.com
3. 这篇blog中的任务:规划手臂【将杯子从桌面上拿起放到杯子架上】件的整段轨迹;
为了防止机器人会不自觉的将杯子下压损坏了杯子,加上一些辅助条件:① 垂直拿起杯子一小段距离;② 到达杯架前,调整到通常姿态,让杯子能顺利放上杯架; (真实在轨迹规划时,需要思考一下是否有必要加上一些via points来保证运动的平滑性与安全性)
4. 设定-1 清楚杯子在各个点
时间、坐标位置、姿态;
整理成总表的形式,方便后面进行轨迹规划(对world frame;角度以XYZ fixed angle计算) 这里是
5. 设定-2: 求出各点的Transformation Matrix
{cup}对地)
6. 设定-3:求出各点的Transformation Matrix
7. 设定-4:从
这样就明确了Cartesian Space下,机械臂末端点在轨迹中的各点的坐标与姿态;
1-7 这些,我们只是明确了需求,后面需要开始进行规划,需要引入各个手臂的参数。
8. 以linear function with parabolic blends在Cartesian space下规划轨迹
8.1 求出
速度根据之前位置与姿态的条件可以算出来,得出速度,两两速度相减再除以时间,就可以得到加速度(只是parabolic段的加速段可以方便计算出)。
8.2 建立并绘出各个DOF在每个时间区段轨迹,Linear/Parabolic共7段(每段Parabolic curve时间设定为0.5s)
8.3 以IK解出轨迹上所有设定点&轨迹内插点的6轴转角
用Inverse Kinematics,结合手臂参数,求解Joint angles;以第二个via point
① 先算出1.2.3轴的角度;详细方程式推导参见逆向运动学的课程内容; 4,5,6轴的角度可以通过Euler Angle的方式去解。
何小白:机器人学——学习笔记9(Inverse Kinematics)zhuanlan.zhihu.com
因为1、2、3轴也是couple的,所以解的过程中,也是一步一步解耦,将
找到
分离
最后:
到目前为止,解出了前三轴的joint angles(以第二个via point为例)
② 通过Euler Angles ZYZ的方式求出
----P.S---- 4、5、6轴交于一点,其不影响轴末端的X,Y,Z位置坐标。所以1、2、3轴负责X,Y,Z的移动,4、5、6轴负责姿态 ----------------
- 先求出
;
- 后面方便求出:
- 为让手臂姿态和ZYZ重合,需要先做
之中对X轴之旋转
:
- 为让手臂姿态和ZYZ重合,需要先做
- 从下可以发现,要做ZYZ,先得把
转到的方向,这之后的R才可以与ZYZ对应(做顺时针90°的转动),接着才方便去解ZYZ
- 以
求出当中的Euler ZYZ Angles;
- 如何把这个
与做对应?
- 参照之前的讲义,ZYZ的
与DH的,在有+180°的差异,需要补回来
- REVIEW: 为啥有180°的差异?
以ZYZ来看,
;(对齐
到了第六轴是向前转,为了使第六轴坐标系(green & red)重合,
详细过程如下:
温故:
何小白:机器人学——学习笔记2(Fixed Angles&Euler Angles)zhuanlan.zhihu.com
8.4 针对轨迹归化中的每一个点,解出对应的
将接触设定点&轨迹内插点的6个转角各自对时间表示成轨迹图(在joint space下轨迹不在是直线,但是依然是smooth的...)
8.5 将转角代入Forward Kinematics,绘制出杯子
根据解出θ所得到的Trans Matrix与
8.6 轨迹模拟
9. 以LFPB方式在Joint Space下规划轨迹
9.1 先以IK计算出各点的6轴转角
直接将4个点,以IK的方式,倒推
9.2 求出各轴
9.3 建立各轴在每个时段的equation(Linear/Parabolic共7段),绘出平滑的轨迹(每段parabolic curve时间为0.5s)
9.4 以FK绘制出
转回来之后,我们可以发现因为FK过来会乘上cos、sin,会发现轨迹变成了曲线,joint space下的直线,在cartesian space下式曲线轨迹,其中Y的变化尤其剧烈,变动比较大,如果画出手臂轨迹末端点的规划可以发现是明显曲线。
整个空间轨迹中,第二段有比较大的形变。
Cartesian Space下和Joint Space下轨迹比较:
说明:
① 如果真的很在意,比如说,希望真实运动轨迹是直线,那最好在Cartesian Space(CS)下进行LFPB的路径规划;
② 如果说,直线要求没那么强,可以我们希望在Joint上面对电机的扭力、速度有要求,则可以把LFPB的路径规划移到Joint Space(JS)下进行。因为,在Cartesian下,你需要带上内插点,一起做IK,而你如果在Joint Space下,则你需要计算4个点的IK即可。
③ 如果,real-time的需求较高,则在CS下由于要进行更多次IK的计算,这不利于保证实时性。
总结Conclusion ...
1。这个Capstone Example(总体例题)的多个知识点:
- 1.刚体移动状态的描述;(空间中位置的描述、姿态的描述(转动),基于Trans Matrics进行表达,借由TM使移动转动连续);
- 2. 顺向运动学(FK),知道了
推出手臂末端点的状态;从 Frame 6在通过平移到cup frame;
- 3. 逆向运动学(IK),知道杯子位置、姿态,反算关节的角度,使其可以到达;
- 4. 轨迹规划(CP法,LFPB方法,这里主要用第二个方法);
2。轨迹规划一般为任务导向,设定手臂末端点和物件(工件)之间的关系,独立于手臂的类型(或自由度配置)
- Cubic Polynominals;
- Linear Function with parabolic blends;
- 任务本身和手臂是无关的(杯子的位置时任务需求,与手臂参数无关);
- 若有更高的要求,可以位置、速度、加速度..都连续进行规划(高阶);
3。平面RRR与空间RRRRRR 都属于Open-Chain(开链式)手臂的IK
- 平面RRR自由度手臂的IK
- 加上移动自由度——SCARA与圆晶机器人可视为RRR的扩展
- PRRR&RRRP
- 这两个机械手臂RRR都可以看成垂直于Z的一个平面内的RRR;
- 空间RRRRRR自由度手臂IK
- 多关节机器人(Articulated Manipulator)
4。【坐标型】机器人不需要进行FK和IK
第一种:Joint Space== Cartesian Space,末端点任何位置,移动X,Y,Z都可以达到(3D打印机);第二种、第三种:球坐标机器人与圆柱坐标机器人,FK和IK follow相应的转换规则就可以。
转动方面可以用Euler Angles方式求解。
5。Closed-Chain(闭链)手臂的FK和IK计算方式不同
- DELTA机器人,Stewart Platform等...
6。若手臂有冗余自由度(7个自由度较多)(redudant DOF),轨迹规划和IK一般具有无限多节,需导入最优化方法(可避障、时间最快、最节能...)
机器人学中的状态估计 中文版_机器人学——学习笔记18(Minpulator Traj Planning Example)...相关推荐
- 机器人学中的状态估计 中文版_机器人学中的状态估计/State Estimation for Robotics—第三章习题答案...
机器人学中的状态估计/State Estimation for Robotic 第三章习题答案 英文最新版已于2020年4月11日勘误此第二题,维度改为六维矩阵,即图片上的形式.
- 机器人学中的状态估计 中文版_《机器人学中的状态估计》-05偏差,匹配和外点...
由于实际不如理论那么理想 实际噪声并不是零均值高斯噪声 实际当中可能存在错误观测 观测数据还存在匹配问题(数据关联) 处理输入和测量的偏差 偏差对卡尔曼滤波器的影响 为了有效抑制偏差,我们必须知道偏差 ...
- dqn在训练过程中loss越来越大_强化学习笔记:OpenAI Gym+DQN+Tensorflow2实现
参考了一些文章,针对OpenAI gym环境,使用tf2.x实现了DQN算法:加上了一些没有太大必要(?)的小功能,比如:自动保存视频,保存训练日志从而利用TensorBoard实现数据可视化,保存和 ...
- uml图中的各种箭头_设计模式学习笔记(二):UML与面向对象设计原则
1 UML 1.1 UML UML(Unified Modeling Language)是统一建模语言,1997年11月UML1.1版本提交给OMG并正式通过,成为建模语言的个那个也标准.2003年6 ...
- 机器人学中的状态估计——学习笔记
机器人学中的状态估计--学习笔记 离散时间的批量估计问题 1.最大后验概率法(Maximum A Posteriori, MAP) 2.贝叶斯推断(Bayesian inference) 离散时间的迭 ...
- 机器人学中的状态估计学习笔记(二)第三章线性高斯系统的状态估计
机器人学中的状态估计学习笔记(二)第三章线性高斯系统的状态估计 3.1 离散时间的批量估计问题 3.1.1 问题定义 3.1.2 最大后验估计 3.1.3 贝叶斯推断 3.1.4 存在性.唯一性与能观 ...
- Asp.Net 中Report Service (RDLC)动态绑定数据-学习笔记
Asp.Net 中Report Service (RDLC)动态绑定数据-学习笔记 1)托拽ReportViewer控件到aspx页面,此时,系统会自动添加相关引用,修改Web.config设置: 2 ...
- Java中如何创建自定义的注解学习笔记(MD版)
概要 Java中如何创建自定义的注解学习笔记(MD版). 博客 博客地址:IT老兵驿站. 前言 记得这篇笔记还是在泉州的龙玲酒店记录的,是一个周六的晚上,坐飞机从上海到泉州,从笔记中能勾起一些旅游的回 ...
- 第98讲:使用SBT开发时动手解决rt.jar中CharSequence is broken等问题学习笔记
第98讲:使用SBT开发时动手解决rt.jar中CharSequence is broken等问题学习笔记 几乎所有从IDEA官网上下载安装在win上,采用默认方式自动运行的都 会遇到这个问题. er ...
- python面向对象编程中方法和属性_Python面向对象编程中关于类和方法的学习笔记...
Python面向对象编程中关于类和方法的学习笔记 类与类方法是面向对象的编程语言中必不可少的特性,本文总结了Python面向对象编程中关于类和方法的学习笔记,需要的朋友可以参考下 类和实例 pytho ...
最新文章
- Java高级特性增强-多线程
- python切片语法-如何在Python中使用省略号切片语法?
- centos下排查vsftpd出现put零字节问题的记录
- 函数模块:CTVB_COMPARE_TABLES
- 一站式导航 -- 奋斗の博客
- 上机练习 实现消费单的打印 需求不明确要补充
- “Head First 设计模式“ :策略模式
- 【Java并发编程的艺术】第二章读书笔记之原子操作
- java技术学习路线(自用)
- Qt5_当前exe所在路径
- 主板usb接口全部失灵_主板USB接口都无法使用故障
- Git查询一定时间范围团队代码提交日志
- 软件智能:aaas系统的 AI服务功能:大纲图的无意识代理功能和八卦图的关系
- ICTCLAS 汉语词性标注集
- Java集合框架详解笔记及其代码
- AI软件快捷键操作大全
- IE 代理服务器设置程序实现
- android启动其他apk,Android 启动apk的常用方法
- 阿里大佬自述:Java零基础到精通是这样炼成的!
- 钉钉桌面版(dingtalk)介绍:支持Linux、Windows和macOS平台
热门文章
- LANMP架构----------------------mysql(2)
- Red hat linux ping: unknown host www.baidu.com
- 注册表系列之恶作剧之吻
- 2.SOA架构:服务和微服务分析及设计--- 理解面向服务架构
- 28.MySQL Variables
- 16.UNIX 环境高级编程--网络IPC:套接字
- 14.UNIX 环境高级编程--高级IO
- css3中关于transform rotate、translate()、skew()、scale()的复合变换
- php中file文件操作函数readfile fread fgets fgetc以及不需要加fopen的file_get_contents file_put_contents file()
- 编程语言 - 大数据 - Hadoop