机器人学之运动学笔记【7】—— 机械手臂轨迹规划实例

2023-10-07 14:40

本文主要是介绍机器人学之运动学笔记【7】—— 机械手臂轨迹规划实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

机器人学之运动学笔记【7】—— 机械手臂轨迹规划实例

  • 1.任务描述
  • 2. 参数设定
  • 3. 方法一:以linear function with parabolic blends 在 Cartesian space 下规划轨迹
    • 3.1 步骤一
    • 3.2 步骤二
    • 3.3 步骤三
    • 3.4 步骤四
    • 3.5 步骤五
  • 4. 方法二:以linear function with parabolic blends 在 Joint space 下规划轨迹
    • 4.1 步骤一
    • 4.2 步骤二
    • 4.3 步骤三
    • 4.4 步骤四
  • 5. 小结

用一个例题把整门课程的重点知识做一个汇整应用

1.任务描述

机械手臂夹住放在桌子上的杯子,移动手臂将杯子挂到墙上的杯架,规划手臂【将杯子从桌面拿起放上杯架】间的整段轨迹
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
initial point 对应 fc0;final point 对应 fcf;
如果直接以起点和终点做轨迹规划的话,可能会发生一些现问题:我们无法确保在开始时,杯子不会受到向下的挤压。所以增设两个via point ,一个 fc1 设置在杯子重心上方,确保轨迹路径是向上的;一个 fc2 设置在杯架前方,确保杯子是先移动到杯架前方然后再水平移动到杯架上面。

在这里插入图片描述

2. 参数设定

在这里插入图片描述
在这里插入图片描述
注意:这里 PPT所示有误,不是以 world frame 角度,是以关节0角度计算。找出杯子在各个轨迹点时相对于{0}的 Transformation Matrix 。

我们关心的是{6}对{0}的 Transformation Matrix,所以还需要进一步找到C对{6}的Transformation Matrix,从而求解出{6}对{0}的 Transformation Matrix。

在这里插入图片描述
在这里插入图片描述

3. 方法一:以linear function with parabolic blends 在 Cartesian space 下规划轨迹

3.1 步骤一

在这里插入图片描述

3.2 步骤二

在 cartesian space 下将6个自由度规划出来就是长这个样。

在这里插入图片描述
到目前为止,我们只是了解了所要规划的轨迹是怎样的,还没有涉及到机械臂相关的部分,所以下一步就需要逆运动学解算。

3.3 步骤三

这里需要以IK解算出轨迹上所有设定点以及内插点的六轴转角,计算量非常大
这里以第二个via point P2为例进行详细逆运动学计算

在这里插入图片描述
先把123轴的角度解出来,然后456轴的角度再以 Euler angle 的方式去解

在这里插入图片描述
在这里插入图片描述
到这里就将 P2 时刻的前三轴的角度计算完了

在这里插入图片描述ZYZ的方式就是以Z4的轴向做后续的转动,但是现在Z3和Z4方向如图所示,如果从3对0做ZYZ的话差了一个角度,必须把3对0转到456这边与ZYZ做对应。

在这里插入图片描述DH上面定义的 θ4、θ5、θ6是针对{4}{5}{6}的Z轴旋转的,而ZYZ的 euler angle 是针对同一个frame上面的Z轴、Y轴、Z轴去转的

在这里插入图片描述在这里插入图片描述

3.4 步骤四

在这里插入图片描述

3.5 步骤五

在这里插入图片描述

4. 方法二:以linear function with parabolic blends 在 Joint space 下规划轨迹

4.1 步骤一

在这里插入图片描述

4.2 步骤二

在这里插入图片描述

4.3 步骤三

在这里插入图片描述

4.4 步骤四

在这里插入图片描述
在这里插入图片描述

5. 小结

通过机器人学一的学习,主要涵盖了以下知识点

  • 刚体运动状态的描述
  • 顺向运动学
  • 逆向运动学
  • 轨迹规划

这篇关于机器人学之运动学笔记【7】—— 机械手臂轨迹规划实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

PyQt6 键盘事件处理的实现及实例代码

《PyQt6键盘事件处理的实现及实例代码》本文主要介绍了PyQt6键盘事件处理的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起... 目录一、键盘事件处理详解1、核心事件处理器2、事件对象 QKeyEvent3、修饰键处理(1)、修饰键类

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

浅谈MySQL的容量规划

《浅谈MySQL的容量规划》进行MySQL的容量规划是确保数据库能够在当前和未来的负载下顺利运行的重要步骤,容量规划包括评估当前资源使用情况、预测未来增长、调整配置和硬件资源等,感兴趣的可以了解一下... 目录一、评估当前资源使用情况1.1 磁盘空间使用1.2 内存使用1.3 CPU使用1.4 网络带宽二、

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal

Python跨文件实例化、跨文件调用及导入库示例代码

《Python跨文件实例化、跨文件调用及导入库示例代码》在Python开发过程中,经常会遇到需要在一个工程中调用另一个工程的Python文件的情况,:本文主要介绍Python跨文件实例化、跨文件调... 目录1. 核心对比表格(完整汇总)1.1 自定义模块跨文件调用汇总表1.2 第三方库使用汇总表1.3 导

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束