当前位置: 首页 > article >正文

《动手学机器人学》笔记

目录

  • 0.介绍
  • 1.概述|空间位置、姿态的描述(3×3)|《动手学机器人学》
  • 2.(2)-Robotics Toolbox①(V10.4)
  • 3.齐次坐标与变换矩阵
  • 4.一般形式的旋转变换矩阵
  • 5.(轴角法)或(Rodrigues' rotation formula)或(罗德里格旋转公式)或(一般形式的旋转变换矩阵)详细推导证明
  • 6.空间位姿表示方法-----RPY角
  • 7.欧拉角 | 空间位姿表示方法 |《动手学机器人学》
  • 8.标准DH参数详解+案例分析【1】

0.介绍

原课程来源于b站劉海濤LHT,链接:【《动手学机器人学》开课了】 https://www.bilibili.com/video/BV1CY4y1W7Ry/?share_source=copy_web&vd_source=338eeada513a018955017f069032f82c

1.概述|空间位置、姿态的描述(3×3)|《动手学机器人学》

1.1正运动学(forward kinematics,简写FK),根据机器人的关节角度,计算末端位姿
1.2逆运动学(inverse kinematics,简写IK),根据末端位姿,反解关节角
1.3在这里插入图片描述
1.4除了空间某点位置还需要确定空间物体方位,用旋转矩阵表示
在这里插入图片描述

2.(2)-Robotics Toolbox①(V10.4)

2.1安装教程可以参考这个https://blog.csdn.net/m0_71721954/article/details/145087352。注意:设置路径的时候,到MATLAB\R2024b\toolbox这一层,否则容易出现找不到命令。在这里插入图片描述
2.2 相关命令
在这里插入图片描述

% 二维空间姿态
>> SE2(1,2,pi/3)ans = 0.5000   -0.8660         10.8660    0.5000         20         0         1
>> trplot(ans)

在这里插入图片描述

% 纯平移
>> transl2(1,2)ans =1     0     10     1     20     0     1
% 绕x轴旋转,角度一定要用弧度制
>> rotx(pi/3)ans =1.0000         0         00    0.5000   -0.86600    0.8660    0.5000
% 绕y轴旋转
>> roty(pi/3)ans =0.5000         0    0.86600    1.0000         0-0.8660         0    0.5000
% 绕z轴旋转
>> rotz(pi/3)ans =0.5000   -0.8660         00.8660    0.5000         00         0    1.0000
% 齐次
>> trotx(pi/3)ans =1.0000         0         0         00    0.5000   -0.8660         00    0.8660    0.5000         00         0         0    1.0000>> troty(pi/3)ans =0.5000         0    0.8660         00    1.0000         0         0-0.8660         0    0.5000         00         0         0    1.0000>> trotz(pi/3)ans =0.5000   -0.8660         0         00.8660    0.5000         0         00         0    1.0000         00         0         0    1.0000>> rotx(pi/3)ans =1.0000         0         00    0.5000   -0.86600    0.8660    0.5000
% 三维轨迹
>> trplot(ans)
% 动画演示(图略)
>> tranimate(ans)

在这里插入图片描述

3.齐次坐标与变换矩阵

3.1齐次坐标用 n + 1 n+1 n+1维来代表 n n n维坐标

在这里插入图片描述
3.2 引入齐次坐标的目的是,合并矩阵运算中的乘法和加法
3.3 (特别重要)矩阵的左乘和右乘的运动解释是不一样的。对于固定坐标系:变化顺序“从右向左”;对于相对坐标系:变化顺序“从左向右”。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
说明这个物体在空间里做刚体运动。

4.一般形式的旋转变换矩阵

4.1 通用的旋转变换矩阵:已知旋转轴和旋转角度,得到旋转矩阵
在这里插入图片描述
4.2 已知旋转矩阵,得到旋转轴和旋转角度(过程略)
在这里插入图片描述
旋转角度 θ = a r c c o s ( . . . ) \theta=arccos(...) θ=arccos(...)在这里插入图片描述
旋转轴
在这里插入图片描述
注意:存在多解,等效轴和转角不唯一,一般角度在0度到180度

这题就能解了
在这里插入图片描述
4.3 matlab中的函数

% 已知旋转角度和旋转轴,求旋转矩阵
>> angvec2r(pi/3,[1,0,0])ans =1.0000         0         00    0.5000   -0.86600    0.8660    0.5000>> rotx(pi/3)ans =1.0000         0         00    0.5000   -0.86600    0.8660    0.5000
% 齐次
>> angvec2tr(pi/3,[1,0,0])ans =1.0000         0         0         00    0.5000   -0.8660         00    0.8660    0.5000         00         0         0    1.0000

4.4 练习题
在这里插入图片描述

function [f,theta] = resolve_f_theta(T)nx = T(1,1); ox = T(1,2); ax = T(1,3);ny = T(2,1); oy = T(2,2); ay = T(2,3);nz = T(3,1); oz = T(3,2); az = T(3,3);theta = acos(0.5*(nx + oy + az - 1));if(theta == 0 || theta == 180)fprintf("error!");elsefx = (oz - ay)/(2*sin(theta));fy = (ax - nz)/(2*sin(theta));fz = (ny - ox)/(2*sin(theta));f = [fx,fy,fz];end
end
>> [f,theta] = resolve_f_theta([0 1 0;0 0 -1;-1 0 0])f =0.5774    0.5774   -0.5774theta =2.0944>> 2*pi/3ans =2.0944>> sqrt(3)/3ans =0.5774

5.(轴角法)或(Rodrigues’ rotation formula)或(罗德里格旋转公式)或(一般形式的旋转变换矩阵)详细推导证明

5.1 一般形式旋转矩阵公式证明

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

在这里插入图片描述

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

在这里插入图片描述
这个公式的意义,空间中给定任意的向量v,绕着旋转轴和旋转角,得到旋转后的向量v‘

>> t=2*pi/3t =2.0944>> u = [sqrt(3)/3,sqrt(3)/3,-sqrt(3)/3]'u =0.57740.5774-0.5774>> v = [1 2 3]'v =123>> result = cos(t)*v + (1-cos(t))*dot(u,v)*u+sin(t)*cross(u,v)result =2.0000-3.0000-1.0000

进一步化简成矩阵形式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2 齐次坐标变换在这里插入图片描述

6.空间位姿表示方法-----RPY角

6.1 RPY角
在这里插入图片描述

syms alpha beta gamma T1 T2 T3 RPYT1 = [cos(alpha) -sin(alpha) 0;sin(alpha) cos(alpha) 0; 0 0 1];T2 = [cos(beta) 0 sin(beta);0 1 0;-sin(beta) 0 cos(beta)];T3 = [1 0 0;0 cos(gamma) -sin(gamma); 0 sin(gamma) cos(gamma)];RPY = T1*T2*T3;display(RPY);

在这里插入图片描述

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

在这里插入图片描述

% 给RPY角输出旋转矩阵
>> rpy2r(pi/6,pi/3,pi/4)ans =0.3536   -0.3062    0.88390.3536    0.9186    0.1768-0.8660    0.2500    0.4330
% RPY角分别对应绕x,y,z轴旋转
>> rotz(pi/4)*roty(pi/3)*rotx(pi/6)ans =0.3536   -0.3062    0.88390.3536    0.9186    0.1768-0.8660    0.2500    0.4330>> rpy2tr(pi/6,pi/3,pi/4)ans =0.3536   -0.3062    0.8839         00.3536    0.9186    0.1768         0-0.8660    0.2500    0.4330         00         0         0    1.0000
% 已知旋转矩阵得到RPY角
>> tr2rpy(ans)ans =0.5236    1.0472    0.7854>> pi/6ans =0.5236>> pi/3ans =1.0472>> pi/4ans =0.7854>> atan2(1,2)ans =0.4636
% 转化为角度
>> atan2d(1,2)ans =26.5651

6.2 在这里插入图片描述

>> T =[0.527 -0.574 0.628 3;0.369 0.819 0.439 2;-0.766 0 0.643 -4;0 0 0 1]T =0.5270   -0.5740    0.6280    3.00000.3690    0.8190    0.4390    2.0000-0.7660         0    0.6430   -4.00000         0         0    1.0000>> rpy=tr2rpy(T);
>> display(rpy)rpy =0    0.8725    0.6109>> rpy2r(rpy)ans =0.5267   -0.5736    0.62740.3688    0.8192    0.4393-0.7659         0    0.6429

7.欧拉角 | 空间位姿表示方法 |《动手学机器人学》

7.1 欧拉角
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

>> [alpha, beta, gamma] = resolve_zyz_theta([0.527 -0.574 0.628;0.369 0.819 0.439;-0.766 0 0.643])alpha =0.6101beta =0.8725gamma =0
% 欧拉角变旋转矩阵
>> eul2r([alpha, beta, gamma])ans =0.5269   -0.5729    0.62770.3684    0.8196    0.4388-0.7659         0    0.6429

7.2 matlab常用函数

>> eul2r([pi/6 pi/4 pi/3])ans =-0.1268   -0.7803    0.61240.9268    0.1268    0.3536-0.3536    0.6124    0.7071>> eul2tr([pi/6 pi/4 pi/3])ans =-0.1268   -0.7803    0.6124         00.9268    0.1268    0.3536         0-0.3536    0.6124    0.7071         00         0         0    1.0000
% tr2eul(ans,'deg')能直接输出角度
>> tr2eul(ans)ans =0.5236    0.7854    1.0472>> ans*180/pians =30.0000   45.0000   60.0000

8.标准DH参数详解+案例分析【1】

8.1 DH参数法描述串联式连杆和关节的系统方法
DH参数法式描述串联式连杆和关节的系统方法。
8.2 有两种DH参数法:标准DH和改进的DH参数
改进的DH参数法坐标系{i}建立在{i}关节的轴线上,而不是标准DH方法将坐标系{i}建立在{i+1}关节的轴线上

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

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为matlab工具箱theta默认是0度
PQArt软件也可以进行机器人仿真
在这里插入图片描述

相关文章:

《动手学机器人学》笔记

目录 0.介绍1.概述|空间位置、姿态的描述(33)|《动手学机器人学》2.(2)-Robotics Toolbox①(V10.4)3.齐次坐标与变换矩阵4.一般形式的旋转变换矩阵5.(轴角法)…...

国产编辑器EverEdit - 文本编辑器的关键特性:文件变更实时监视,多头编辑不掉坑

1 监视文件变更 1.1 应用场景 某些时候,用户会使用多个编辑器打开同一个文件,如果在A编辑器修改保存,但是B编辑器没有重新打开,直接在B编辑器修改再保存,则可能造成在A编辑器中修改的内容丢失,因此&#x…...

化学蛋白质组学与药物靶点筛选:DARTS、LiP-MS、TPP、CETSA技术的深度解析

更多详情请看:LiP-MS药物靶点筛选技术 在药物研发的复杂过程中,药物靶点的筛选是关键环节之一。化学蛋白质组学技术的出现,为药物靶点筛选提供了强大的工具,化学蛋白质组学是一门研究细胞或组织中全部蛋白质的化学组成、结构、功…...

如何使用 Flutter DevTools 和 PerformanceOverlay 监控性能瓶颈

使用 Flutter DevTools 和 PerformanceOverlay 监控性能瓶颈:详细分析与实战 在开发 Flutter 应用时,性能问题可能会导致用户体验下降,比如页面卡顿、掉帧、内存泄漏等。为了定位和解决这些问题,Flutter 提供了强大的性能监控工具…...

为AI聊天工具添加一个知识系统 之113 详细设计之54 Chance:偶然和适配 之2

本文要点 要点 祖传代码中的”槽“ (占位符变量) 和 它在实操中的三种槽(占据槽,请求槽和填充槽, 实时数据库(source)中数据(流入 ETL的一个正序流程 行列并发 靶向整形 绑定变量 &#xff09…...

HTML5 面试题

1. HTML5 新增了哪些重要特性? 语义化标签:这些标签有助于提高页面的可读性和可维护性。多媒体支持:HTML5 引入了 和 标签,可以直接嵌入音频和视频文件,无需依赖插件。本地存储:引入了 localStorage 和 se…...

鸿蒙初学者学习手册(HarmonyOSNext_API14)_自定义动画API(@ohos.animator (动画) )

前言 在纯血鸿蒙中最具有用户特色的效果就是自定义的动画效果。在纯血鸿蒙中有多种定义方式,但是今天介绍的是ApI中的自定义动画。 注意: 动画本身具有生命周期,但是不支持在UIAbility的文件使用,简单而言就是不允许在UIAbility生命周期中…...

PINN求解一维burgers方程

PINN求解一维burgers方程 模型搭建网络与训练结果可视化对比实际结果 完整代码下载链接 PINN求解一维burgers方程 模型 搭建网络与训练 #########-------------- python求解一维burgers方程-------------------################## # -*- coding: utf-8 -*- import os os.envi…...

Linux系统配置阿里云yum源,安装docker

配置阿里云yum源 需要保证能够访问阿里云网站 可以先ping一下看看(阿里云可能禁ping,只要能够解析为正常的ip地址即可) ping mirrors.aliyun.com脚本 #!/bin/bash mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos…...

Android 动态加入Activity 时 manifest 注册报错解决。使用manifestPlaceholders 占位

需求如下: 项目 测试demo 有多个渠道,部分渠道包含支付功能,在主测试代码外,需要一个单独 Activity 调用测试代码。 MainActivityPayActivity渠道A包含不包含渠道B包含包含 因为支付功能需要引入对应的 moudule,因此…...

【找工作】C++和算法复习(自用)

文章目录 C头文件自定义排序函数stl 算法树状数组 自用随便记录 C 排序 stl 头文件 全能头文件&#xff1a; #include<bits/stdc.h>自定义排序函数 bool compare(const int &odd1,const int &odd2) {return odd1>odd2; }stl 枚举map map<int, strin…...

【相聚青岛】人工智能与材料国际学术会议即将召开

一、大会简介 人工智能与材料国际会议&#xff08;ICAIM 2025&#xff09; 官方网站&#xff1a;www.ic-aim.net 官方邮箱&#xff1a;icaim2025163.com 会议时间&#xff1a;2025年3.21-24 会议地点&#xff1a;中国青岛 会议检索&#xff1a;EI检索 截稿时间&#xff1a;2月…...

BFS 解决 FloodFill 算法(典型算法思想)—— OJ例题算法解析思路

目录 一、733. 图像渲染 - 力扣&#xff08;LeetCode&#xff09; 算法代码&#xff1a; 算法思路 基础参数 函数入口 检查条件 初始化 BFS BFS 填充过程 返回结果 复杂度分析 总结 二、200. 岛屿数量 - 力扣&#xff08;LeetCode&#xff09; 算法代码&#xff1a;…...

纷析云开源版- Vue2-增加字典存储到localStorage

main.js //保存字典数据到LocalStorage Vue.prototype.$api.setting.SystemDictType.all().then(({data}) > {loadDictsToLocalStorage(data) })新增 dictionary.js 放在 Utils文件夹里面 // 获取字典数据 export function getDictByType(dictType) {const dicts JSON.par…...

Python 爬虫selenium

1.selenium自动化 selenium可以操作浏览器&#xff0c;在浏览器页面上实现&#xff1a;点击、输入、滑动 等操作。 不同于selenium自动化&#xff0c;逆向本质是&#xff1a; 分析请求&#xff0c;例如&#xff1a;请求方法、请求参数、加密方式等。用代码模拟请求去实现同等…...

前端导出word文件,并包含导出Echarts图表等

基础导出模板 const html <html><head><style>body {font-family: Times New Roman;}h1 {text-align: center;}table {border-collapse: collapse;width: 100%;color: #1118FF;font-weight: 600;}th,td {border: 1px solid black;padding: 8px;text-align: …...

【复现DeepSeek-R1之Open R1实战】系列8:混合精度训练、DeepSpeed、vLLM和LightEval介绍

这里写目录标题 1 混合精度训练1.1 FP16和FP321.2 优点1.3 存在的问题1.4 解决办法 2 DeepSpeed3 vLLM3.1 存在的问题3.2 解决方法3.2.1 PagedAttention3.2.2 KV Cache Manager3.2.3 其他解码场景 3.3 结论 4 LightEval4.1 主要功能4.2 使用方法4.3 应用场景 本文继续深入了解O…...

从面试中的“漏掉步骤”谈自我表达与思维方式的转变

在今天的面试中&#xff0c;我遇到了一个让我深刻反思自己思维方式的问题。当面试官问到如何应对用户量和请求量逐渐增加时&#xff0c;我的回答遗漏了一些基础步骤&#xff0c;导致我给出了“我暂时想不出更好的反思”的回答。这一经历让我意识到&#xff0c;在面对问题时&…...

大模型面经:SFT和RL如何影响模型的泛化或记忆能力?

监督微调 (SFT) 和强化学习 (RL)都是目前大模型的基础模型后训练技术&#xff0c;像DeepSeek-R1、kimi等的训练方法都将两种技术应用到了极致。 如何去设计训练步骤&#xff08;先SFT再RL&#xff0c;还是直接RL&#xff09;都需要对SFT和RL的能力有较深刻的了解。 本篇就以面…...

力扣-回溯-17 电话号码的字母组合

思路 和之前的回溯不同的是&#xff0c;要遍历完所有的数字&#xff0c;并且在单层递归逻辑里需要遍历一整个字符串 代码 class Solution { public:vector<string> letters {"", "", "abc", "def", "ghi", "…...

大模型幻觉

1.什么是大模型幻觉? 在语言模型的背景下,幻觉指的是一本正经的胡说八道:看似流畅自然的表述,实则不符合事实或者是错误的。 幻觉现象的存在严重影响LLM应用的可靠性,本文将探讨大型语言模型(LLMs)的幻觉问题,以及解决幻觉现象的一些常见方法。 2.为什么需要解决LLM的…...

2025-02-20 学习记录--C/C++-PTA 7-27 冒泡法排序

一、题目描述 ⭐️ 二、代码&#xff08;C语言&#xff09;⭐️ /** * 冒泡法实现升序 */#include <stdio.h>int main() {int N, // 整数个数 6K, // 扫描遍数 2num, // 待排序的整数 2 3 5 1 6 4numArr[100], // 待排序的整数合集 2 3 5 1…...

RK3588配置成为路由器

文章目录 前言一、配置netplan二、安装hostapd1.创建hostapd.conf文件2.安装软件3.修改启动文件4.修改/etc/default/hostapd 文件 三、安装dnsmasq服务四、配置NET及重启验证五、常见问题总结 前言 RK3588开发板有两个网口&#xff0c;一个无线网卡。我需要配置为家用路由器模…...

【数据挖掘】--算法

【数据挖掘】--算法 目录&#xff1a;1. 缺失值和数值属性处理1缺失值处理&#xff1a; 2. 用于文档分类的朴素贝叶斯3. 分治法&#xff1a;建立决策树4. 覆盖算法建立规则5. 挖掘关联规则6. 线性模型有效寻找最近邻暴力搜索&#xff08;Brute-Force Search&#xff09;kd树&am…...

Huatuo热更新--如何使用

在安装完huatuo热更新插件后就要开始学习如何使用了。 1.创建主框渐Main 新建文件夹Main&#xff08;可自定义&#xff09;&#xff0c;然后按下图创建文件&#xff0c;注意名称与文件夹名称保持一致 然后新建场景&#xff08;Init场景&#xff09;&#xff0c;添加3个空物体…...

基于Django快递物流管理可视化分析系统(完整系统源码+数据库+详细开发文档+万字详细论文+答辩PPT+详细部署教程等资料)

文章目录 基于Django快递物流管理可视化分析系统&#xff08;完整系统源码数据库详细开发文档万字详细论文答辩PPT详细部署教程等资料&#xff09;一、项目概述二、项目说明三、研究意义四、系统设计技术架构 五、功能实现六、完整系统源码数据库详细开发文档万字详细论文答辩P…...

基于射频开关选择的VNA校准设计

活动发起人小虚竹 想对你说&#xff1a; 这是一个以写作博客为目的的创作活动&#xff0c;旨在鼓励大学生博主们挖掘自己的创作潜能&#xff0c;展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴&#xff0c;那么&#xff0c;快来参加吧&#xff01…...

解决本地模拟IP的DHCP冲突问题

解决 DHCP 冲突导致的多 IP 绑定失效问题 前言 续接上一篇在本机上模拟IP地址。 在实际操作中&#xff0c;如果本机原有 IP&#xff08;如 192.168.2.7&#xff09;是通过 DHCP 自动获取的&#xff0c;直接添加新 IP&#xff08;如 10.0.11.11&#xff09;可能会导致 DHCP 服…...

ChromeDriver下载

平时为了下个驱动&#xff0c;到处找挺麻烦&#xff0c;收集了很多无偿分享给需要的人&#xff0c;仅供学习和交流。 ChromeDriver 102.0.5005.61 ChromeDriver 105.0.5195.102 ChromeDriver 108.0.5359.71 ChromeDriver 111.0.5563.64 ChromeDriver 116.0.5845.97 Chrom…...

springboot pagehelper分页插件封装

封装插件&#xff1a; 可自定义返回的Pages实体类参数 package com.wm.common;import com.github.pagehelper.ISelect; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import lombok.Data; import java.util.List;/*** 分页封装* param <…...