机器人技术基础实验报告2(机器人空间位姿描述)

合集下载

机器人实训报告

机器人实训报告

机器人实训报告在当今科技飞速发展的时代,机器人技术已经成为了备受关注的前沿领域。

为了更深入地了解机器人的工作原理和操作技能,我参加了一次机器人实训。

本次实训让我受益匪浅,不仅拓宽了我的知识面,还提升了我的实践能力和解决问题的思维方式。

实训开始时,我们首先对机器人的基本概念和发展历程进行了学习。

机器人并非是一蹴而就的产物,而是经过了多年的研究和创新才逐渐发展到今天的模样。

从最初简单的机械装置,到如今能够执行复杂任务、具备感知和决策能力的智能机器人,这其中蕴含着无数科学家和工程师的智慧与努力。

在理论学习之后,我们迎来了实际操作环节。

实训中使用的机器人是一款具有多种功能和应用场景的先进设备。

它的外形酷似一个小型的机械手臂,但其内部却集成了复杂的传感器、控制系统和执行机构。

我们的第一个任务是熟悉机器人的操作界面和基本指令。

这看似简单,实际上却需要耐心和细心。

操作界面上的各种参数和按钮让人眼花缭乱,如果不认真理解和记忆,很容易出现操作失误。

通过反复的练习和向老师请教,我逐渐掌握了机器人的启动、停止、运动控制等基本指令。

接下来是编程环节。

编程是让机器人按照我们的意愿执行任务的关键。

我们使用了一种专门为机器人开发的编程语言,通过编写代码来控制机器人的动作、速度、精度等参数。

这对于我这个编程新手来说是一个巨大的挑战。

一开始,我总是出现语法错误或者逻辑漏洞,导致机器人无法正常运行。

但是,在老师和同学们的帮助下,我不断地修改和优化代码,终于让机器人成功地完成了一系列指定的动作,如抓取物品、搬运货物、精确装配等。

在完成了基础任务之后,我们开始进行更具挑战性的项目——机器人路径规划。

这要求我们考虑机器人的工作环境、障碍物的分布以及任务的目标位置,从而为机器人规划出一条最优的运动路径。

这个过程中,我们需要运用数学算法和逻辑思维,同时结合实际情况进行灵活调整。

有时候,我们设计的路径在理论上是最优的,但在实际运行中却因为各种意外因素而出现问题。

机器人实验室实训报告范文

机器人实验室实训报告范文

一、实训目的本次实训旨在通过实际操作和理论学习,加深对机器人基本原理、组成结构以及控制方法的理解,提高动手实践能力和创新意识。

通过本次实训,我们希望达到以下目标:1. 掌握机器人基本组成及工作原理。

2. 熟悉机器人编程与控制方法。

3. 了解机器人应用领域及其发展趋势。

4. 培养团队合作精神与问题解决能力。

二、实训内容本次实训主要分为以下几个部分:1. 机器人基础知识学习通过学习机器人发展历程、分类、组成结构以及工作原理,为后续实训打下理论基础。

2. 机器人硬件认识了解机器人各部件的功能、性能及连接方式,包括传感器、执行器、控制器等。

3. 机器人编程与控制学习机器人编程语言及控制方法,如Arduino、Python等,实现机器人基本动作和功能。

4. 机器人组装与调试根据设计要求,组装机器人,并进行调试,使其能够完成预定任务。

5. 机器人应用项目实践选择一个实际应用项目,运用所学知识,设计并实现机器人解决方案。

三、实训过程1. 基础知识学习我们通过查阅资料、课堂讲解等方式,了解了机器人基础知识,包括机器人的定义、分类、发展历程等。

同时,学习了机器人各组成部分的功能和作用,如传感器、执行器、控制器等。

2. 机器人硬件认识在实验室老师的指导下,我们对机器人硬件进行了详细的了解,包括传感器、执行器、控制器等。

通过实际操作,掌握了各部件的连接方式和使用方法。

3. 机器人编程与控制我们学习了Arduino和Python两种编程语言,并掌握了机器人编程与控制方法。

通过编写程序,实现了机器人的基本动作,如移动、旋转、抓取等。

4. 机器人组装与调试根据设计要求,我们组装了一个简单的机器人。

在组装过程中,我们遇到了许多问题,如传感器连接错误、程序编写错误等。

在老师和同学的指导下,我们逐一解决了这些问题,使机器人能够完成预定任务。

5. 机器人应用项目实践我们选择了“自动跟随机器人”项目。

通过学习相关知识,我们设计了机器人硬件和软件方案。

制作机器人实验报告二心得[精品]

制作机器人实验报告二心得[精品]

机器人实验报告二仿生机器人、人形机器人运动控制[实验目的]熟悉仿生机器人、人形机器人运动控制方法。

制作仿生机器人取物品的动作,制作人形机器人行走动作。

【实验方法】1.首先观察机器人行走的每一个动作,并记录动作是怎么样执行的,并且记录舵机的位置。

2.打开robot软件接入机器人,进行对人形机器人调节每一个动作,达到行走的目的。

【实验器材】电脑、人形机器人、下载线、电源。

【实验步骤】一.检测仿生机器人设备能不能正常运行。

二.启动仿生机器人控制软件,并且连接机器人。

三.编辑人形机器人的动作。

1.添加人形机器人的初始位置。

2.添加人形机器人的动作。

3.添加人形机器人的循环动作。

4.设置人形机器人的结束动作。

5.保存和尚在编辑完的动作。

6.演示人形机器人所编辑的动作。

7.对不符合的动作进行修正。

【注意事项】1.在用人形机器人时,首先要充满电。

2.在下载程序时不要动机器人。

3.在编辑时两个动作不能跨度过大。

4.在演示时以防机器人摔倒。

【实验结论】用控制软件的编程可以使机器人达到行走的目的。

【实验体会和心得】通过本实验加深我们对机器人的了解,更进一步的掌握了各部件之间的功能特性。

让我们在以后更多的实验中能灵活应用探究方法和操作能力。

除此,我们在机器人教学中培养了我们的兴趣,创新能力,分析能力和动手操作能力,激发了我们学习、探索、掌握和运用智能机器人技术的兴趣,提高我们爱科学、学科学、用科学的积极性,丰富我们的课余文化生活,增强我们的探究意识、进取意识、团队意识和竞争意识。

特别是在机器人的编程和调试方面,我们通过亲手装配、实验、编程和实施机器人项目、直至达到我们所需要的结果。

这过程使们们获得发自内心的快乐,同时也培养了我们的动手实践能力、创新思维能力、综合应用能力和团结协作能力。

通过机器人实验我们觉得自己变得更从容、更自信、更具有成就感。

通过实验操作,我们的能力在动手操作和探究方面都得到较大的提升。

同时我们也体会到了团队合作的重要性。

机器人技术基础实验报告

机器人技术基础实验报告

机器人技术基础实验报告
1、实验目的
实验的目的是熟悉机器人技术的基础实验,包括机器人的结构特性、传动原理、机械构
件、机器人轨迹规划等方面的基础概念和知识。

2、实验内容
本实验结合相关书籍和课程,涵盖六个主要方面:
(1)机器人结构特性:包括机器人极其关节的结构特征,如关节的中心距、CAD模型的结构图、几何变换以及机器人控制体系等。

(2)传动原理:传动原理是机器人技术的核心,主要涉及传动机构的驱动原理和工作原理,包括动力学分析、轴向力和紧定力的计算、变速箱的类型及其拓扑、传动系统性能的评价以及机器人的控制技术。

(3)机械构件:机械构件是构建机器人的基础,主要包括机械构件的特性分析及应用,如凸轮轴、滚珠丝杆、电机及带轮等。

(4)机器人轨迹规划:机器人的轨迹规划是重点内容,主要涉及机器人轨迹的编程、运动学分析、示教编程、轨迹压缩、张量标定以及DSP
技术等。

(5)夹具设计:夹具设计是机器人应用中重要内容,主要涉及气压夹具结构设计及其应用,以及夹具装配技术、理论模型分析、夹紧结构动力学建模及物理实验室中用机器人进行夹具设计的实践应用。

(6)机器原理:机器原理涉及机器人控制体系的基本结构、编程思想、控制理论及应用技术,包括计算机硬件、软件架构、机器人控制技术和其他控制技术等。

3、实验结果
本实验的执行有序,基本实验项目全部完成,实验结果可按照预期得到一个有效的机器人模型,熟悉机器人技术的基础知识,具有较强的实践能力,能够应用机器人技术进行实际工程应用。

机器人操作实习报告

机器人操作实习报告

实习报告一、实习背景与目的随着科技的飞速发展,机器人技术在各个领域得到了广泛的应用。

为了提高自己的实践能力和对机器人技术的深入了解,我参加了为期一个月的机器人操作实习。

本次实习旨在通过实际操作,掌握机器人的基本操作技巧,了解机器人的工作原理和应用场景,培养自己在机器人操作和编程方面的能力。

二、实习内容与过程实习期间,我主要进行了以下几个方面的学习和实践:1. 机器人基本操作:在导师的指导下,我学习了机器人的基本操作,包括启动、停止、移动、旋转等。

通过实际操作,我掌握了机器人操作的基本技巧,并能够熟练地完成简单的任务。

2. 机器人编程:我学习了机器人编程的基本语言和指令,包括运动控制、传感器读取、逻辑判断等。

通过编写程序,我了解了机器人如何根据指令完成特定的任务,并深入了解了编程逻辑和算法。

3. 机器人应用案例分析:我研究了机器人在工业、医疗、农业等领域的应用案例,了解了机器人技术在不同行业中的具体应用和优势。

这使我对机器人技术的应用前景有了更深刻的认识。

4. 机器人故障排除:在实习过程中,我遇到了一些机器人操作和编程方面的问题。

通过与导师和其他同学的讨论和解决,我学会了如何分析问题、寻找解决方案并排除故障。

三、实习成果与反思通过本次实习,我取得了以下成果:1. 掌握了机器人基本操作技巧,能够熟练地完成简单的任务。

2. 学习了机器人编程的基本知识和指令,能够编写简单的程序,实现机器人的特定功能。

3. 对机器人技术在各个领域的应用有了更深入的了解,认识到机器人技术的发展潜力和前景。

4. 学会了如何分析问题、寻找解决方案并排除机器人操作和编程中的故障。

然而,在实习过程中,我也发现了自己的一些不足之处:1. 在机器人操作方面,我对一些高级技巧和功能还不够熟悉,需要进一步学习和练习。

2. 在编程方面,我的逻辑思维和算法能力还有待提高,需要加强学习和实践。

3. 在解决问题时,我有时会过于依赖导师和同学,需要培养自己独立思考和解决问题的能力。

机器人科技培训实习报告

机器人科技培训实习报告

实习报告一、实习背景及目的作为一名机器人科技专业的学生,我深知理论知识的重要性,同时也清楚实践操作能力的必要性。

为了提高自己的综合素质,我利用暑假时间参加了一次机器人科技培训实习。

此次实习旨在加深我对机器人科技的理解,提升实际操作能力,培养创新思维和团队协作精神。

二、实习内容与过程实习期间,我参加了机器人组装、编程、操控和竞赛等一系列实践活动。

以下是实习的主要内容与过程:1. 机器人组装:在指导老师的帮助下,我们学习了机器人的基本构造,了解了各种零部件的功能。

通过动手组装机器人,我深刻理解了机器人各部分之间的协同工作原理。

2. 编程学习:我们学习了机器人编程的基础知识,掌握了常用编程语言和编程工具。

在实际操作中,我们学会了如何为机器人编写程序,实现特定的功能。

3. 操控实践:在指导老师的指导下,我们进行了机器人操控实践。

通过操控机器人完成各种任务,我提高了自己的动手能力和应变能力。

4. 竞赛活动:实习期间,我们参加了一场机器人竞赛。

在竞赛中,我们充分发挥团队协作精神,最终取得了优异的成绩。

三、实习收获与反思1. 实践能力提高:通过实习,我在机器人组装、编程、操控等方面取得了很大的进步,提高了自己的实践能力。

2. 创新思维培养:在实习过程中,我们不断面对挑战,思考解决问题的新方法。

这有助于培养我的创新思维。

3. 团队协作精神:在实习过程中,我们学会了如何与他人合作,共同完成任务。

这对我今后的工作和生活具有很大的启示。

4. 理论知识与实践相结合:实习使我认识到理论知识与实践操作的紧密联系,激发了我对机器人科技的学习兴趣。

5. 拓宽视野:通过实习,我了解了机器人科技领域的最新动态,拓宽了自己的视野。

四、总结参加这次机器人科技培训实习,使我受益匪浅。

我不仅提高了自己的实践能力和创新思维,还学会了与他人协作。

这次实习让我更加坚定了从事机器人科技事业的决心,也为我今后的学习和工作打下了坚实的基础。

在今后的学习和工作中,我将继续努力,将自己所学知识运用到实际中,为我国的机器人科技事业贡献自己的力量。

机器人技术基础实验报告

机器人技术基础实验报告

实验一、Matlab 验证斯坦福机械手雅可比矩阵 一、实验目的1.加深对雅可比矩阵的认识,熟练其计算原理;2.熟练掌握D-H 连杆坐标系的确定方法和过程及各种变换矩阵;3.熟悉Matlab 的操作与运用。

二、实验原理对机械手的操作和控制,除了需要确定机械手操作空间与关节空间之间静态位资的映射转换关系以外,还需要对某一时刻机械手运动速度和关节速度之间的关系进行转换和分析,也就是机械手瞬时速度分析。

而我们利用雅可比矩阵来对机械手的速度进行了分析。

其中雅可比矩阵包括了两个方面:1.雅可比矩阵平移速度部分的分析;2.雅可比矩阵旋转速度部分的分析。

T 矩阵由以下公式计算可得:1111111111s 0001iii i i i i i i i i ii i i i i i c a s c c c s s d T s s c s c c d θθθαθαααθαθααα-----------⎡⎤⎢⎥--⎢⎥=⎢⎥⎢⎥⎣⎦三、实验步骤1、已知计算各级T 矩阵665544445436546655221132210321220000000010001000000000100001000100011000000000100101000001001---⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥===⎢⎥⎢⎥⎢⎥--⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦--⎡⎤⎡⎤⎢⎥⎢⎥--⎢⎥⎢⎥===⎢⎥⎢⎥-⎢⎥⎢⎥⎣⎦⎣⎦-c s c s c s s c T T T s c s c c s c s d d T T T s c 1100001001⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦s c 2、计算出各连杆坐标系到基坐标系0的变换矩阵:11110111212112112121121022221211213212121121321203222000000001010010000000100-⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦----⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥==⎢⎥⎢⎥-⎢⎥⎢⎥⎣⎦⎣⎦---+++=-可知可知c s s c T z c c c s s s d s s c s s c c d c T z s c c c s c s c d s s d s c c s s s d s c d T s c c d 12123320010⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦可知c s s s z c 1241412414121231212414124141212312042424223124141251241451251241412312124145050001()()()----⎡⎤⎢⎥+-++⎢⎥=⎢⎥-⎢⎥⎣⎦--------+-=++c c c s s c c s s c c s c s d s d s c c c s s c s c c s s s s d c d T s c s s c c d c c c s s c s s c c c s s s c s c c c s s c c s d s d s c c c s c s T 12512414512512414123122423124514512512312124514512512312062455223()2452524525000112345600⎡⎤⎢⎥-+--+--+++⎢⎥⎢⎥-⎢⎥⎣⎦-+-++++=-s s s c c c s s s s c s c s c c s s d c d s c c c s s c s c c s s c d X X c c c s s s s c s c c s d s d X X s c c s c s s s s c s s d c d T X X s c s c c c d 01⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦Matlab 计算过程如下:>> clear>> syms c1 s1 c2 s2 c3 s3 c4 s4 c5 s5 c6 s6 d1 d2 d3 d4 d5 d6 a1 a2 a3 a4 a5 a6>> T10=[c1 -s1 0 0;s1 c1 0 0;0 0 1 0;0 0 0 1]>> T21=[c2 -s2 0 0;0 0 1 d2;-s2 -c2 0 0;0 0 0 1] >> T32=[1 0 0 0;0 0 -1 -d3;0 1 0 0;0 0 0 1] >> T43=[c4 -s4 0 0;s4 c4 0 0;0 0 1 0;0 0 0 1] >> T54=[c5 -s5 0 0;0 0 1 0; -s5 -c5 0 0;0 0 0 1] >> T65=[c6 -s6 0 0;0 0 -1 0;s6 c6 0 0;0 0 0 1]>> T20=T10*T21; >> T30=T20*T32; >> T40=T30*T43; >> T50=T40*T54; >> T60=T50*T65;>> T60=simplify(T60)3、用速度矢量合成的方法计算雅可比矩阵Jv 部分:356124123456102040506016263465666124561020162631245600000⎡⎤=⎢⎥⎢⎥⎣⎦⎡⎤⨯⨯⨯⨯⨯=⎢⎥⎣⎦⎡⎤⨯⨯=⎢⎥⎣⎦v v v v v v J J J J J J J J J J J J J z p z p z z p z p z p z z z z z z p z p z z z z z z ωωωωωω 1) 计算1016⨯z p1z 为连杆1坐标系的z 轴单位向量在基坐标系0中的描述;16p 为连杆1坐标系原点到连杆6坐标系原点连线矢量16O O,在基坐标系0中的描述,计算过程为:计算矩阵T61,T61的第四列即为16O O,由于坐标系1相对于坐标系0有绕Z 轴的转动,故需要对其进行转换,转换方法为;0116O O ⋅ R ,01R为T10中旋转部分注:Matlab 中向量叉积方法:e=cross (a,b)>> T61=T21*T32*T43*T54*T65 %计算出16O O在坐标系1中的描述>> P161=[s2*d3;d2;c2*d3]>> Rot10=[c1 -s1 0;s1 c1 0;0 0 1] %由T10知道旋转部分变换3*3矩阵 >> P160= Rot10* P161 % 与P60最后一列比较 >> z1=[0;0;1]>> e=cross(z1,P160) %可得到Jv 第一列: e =[ -s1*s2*d3-c1*d2; c1*s2*d3-s1*d2;0]2) 计算2026⨯z p2z 为连杆2坐标系的z 轴单位向量在基坐标系0中的描述;206p 为连杆2坐标系原点到连杆6坐标系原点连线矢量26O O,在基坐标系0中的描述,计算过程为:计算矩阵P62,P62的第四列即为26O O,由于坐标系2相对于坐标系0有姿态变化,故需要对其进行转换,转换方法为;0226O O ⋅ R ,02R为T20中旋转部分注:Matlab 中向量叉积方法:e=cross (a,b)>> T62= T32*T43*T54*T65 %计算出26O O在坐标系2中的描述>> P262=[0;-d3;0]>> Rot20=[c1*c2 -c1*s2 -s1;s1*c2 -s1*s2 c1;-s2 -c2 0] %由T20知旋转部分变换3*3矩阵>> P260= Rot20* P262 >> z2=[-s1;c1;0]>> e=cross(z2, P260) %可得到Jv 第一列:e =[c1*c2*d3; s1*c2*d3; -s1^2*s2*d3-c1^2*s2*d3]3) 由于连杆3坐标系为移动坐标系,故起对连杆6的速度贡献不能计算为3036⨯z p ,而应该为Z3的单位向量在基坐标系0中的表示;故由T30直接可得Jv 第三列为:1212320⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦c s s s z c4)由于坐标系4、5、6和坐标系6的坐标原点重合故对应6066)=⨯=⨯ i i ()q(q i i O i i i v z O O z p 的计算结果均为0 ,于是可得 35612412345612123123121212312312232112414124141245145125112414124141245000000000000⎡⎤=⎢⎥⎢⎥⎣⎦---+-=------+-+-++v v v v v v J J J J J J J J J J J J J c d s s d c c d c s s d c s d s c d s s s d c s c c s s c c c s s c c c c s s s s c s c c s c s c c s c s c c s c c s c ωωωωωω14512524242455210⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥-+⎢⎥⎣⎦s s s s c s s s s s c s c c 5) 用直接求导的方法验证上面Jv 的计算的正确性:在matlab 中用B=jacobian(f,v)方法直接求导可以获取雅可比矩阵四、实验总结机器人雅可比矩阵能够很好地反映出操作空间与关节空间的速度映射关系,而Matlab 则很好的简化了这种关系求导手段。

机器人实习报告

机器人实习报告

机器人实习报告机器人实习报告时间:2022年7月1日至2022年8月31日地点:XX公司机器人实习部门一、实习目的本次机器人实习旨在提高自己的机器人编程能力和实践经验,通过实际项目的参与,学习机器人的工作原理和应用技巧。

二、实习内容1. 学习机器人编程语言及相关知识在实习的开始阶段,我系统学习了机器人编程语言和相关知识,包括机器人控制系统、传感器原理、运动控制、路径规划等。

通过学习,我对机器人编程有了更深入的了解,并且掌握了机器人编程的基本技巧。

2. 参与实际项目并进行编程实践在实习期间,我有幸加入了一个机器人项目组,负责机器人自动导航系统的开发。

在项目组中,我和其他成员合作,通过对已有系统的分析和需求调研,确定了项目的功能和实现方式,并开始着手进行编程实践。

我主要负责机器人的路径规划和导航功能的开发。

在实践过程中,我运用了学到的机器人编程技巧,合理利用传感器数据完成路径规划算法的编写,并将其应用于机器人系统中。

通过不断调试和优化,我最终成功实现了机器人的自动导航功能。

3. 解决项目中遇到的问题在项目实践中,我遇到了一些问题,比如传感器数据异常、路径规划算法不准确等。

我通过仔细分析问题原因,查阅相关资料,并与同事讨论,最终找到解决方案,解决了这些问题。

三、实习收获通过这次机器人实习,我收获了很多。

首先,我对机器人编程有了更深入的理解。

通过实际项目的参与,我深入学习了机器人编程语言和相关知识,并将其应用于实践中。

这不仅提高了我的编程能力,还拓宽了我的知识视野。

其次,我提高了解决问题的能力。

在项目中,我遇到了一些困难和挑战,但通过不断努力和与同事的合作,我成功克服了这些问题。

这次实习锻炼了我的解决问题的能力和思维方式。

最后,我学会了与团队合作。

在项目组中,每个成员都有自己的分工和责任,在大家的共同努力下,项目得以顺利进行。

我学会了与其他同事协作,互相支持和帮助,这是我未来工作中必不可少的技能。

四、感想与建议这次机器人实习是我大学期间的一次重要经历,让我对机器人技术有了更深入的认识。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

机器人技术基础实验报告班级:学号:姓名:台号: 2 课程:2.机器人空间位姿描述成绩:批改日期:教师签字:实验目的:1、认识机器人位置与姿态的描述方式2、了解多种姿态的描述方法实验设备及软件:1、珞石XB4机器人2、MATLAB实验原理:位置描述:建立坐标系后可以用一个3×1的位置矢量对坐标系中的任何点进行定位。

用三个相互正交的带有箭头的单位矢量来表示一个坐标系{A}.用一个矢量来表示一个点P A ,并且可等价地被认为是空间的一个位置矢量,或者简单地用一组有序的三个数字来表示。

矢量的各个元素用下标x,y和z 来标明:姿态描述:为了描述物体的姿态,需要在物体上固定一个坐标系并且给出此坐标系相对于参考系的表达。

用X B 、Y B和Z B来表示坐标系{B}主轴方向的单位矢量。

在用坐标系{A}的坐标表达时,写成X B A、Y B A、Z B A。

这三个单位矢量按照顺序排列组成一个3×3的矩阵,称之为旋转矩阵。

记为:R B A= [X B A Y B A Z B A]分别绕X 轴,Y轴,Z轴的旋转变换为:坐标系变换是一个坐标系描述到另一个坐标系描述的变换。

被描述的空间点本身没有改变,只是它的描述改变了。

一般情况下坐标系{A}与坐标系{B}既存在位置差异又存在姿态差异。

则相对于坐标系{B}描述的点PB在坐标系{A}下的描述为:AP A=R B A P B+P BORG为了简化表达,可改写为:[P A1]=[R B A P BORG A 01][P B 1]=T B A[P B 1] 其中T B A =[RB A P BORGA01]为4×4矩阵,称为齐次变换矩阵。

描述了坐标系{B} 相对于坐标系{A}的变换。

姿态其他描述: X-Y-Z 固定角 等效转轴表示法 X-Y-Z 欧拉角 四元素法 1、X-Y-Z 固定角:坐标系{B}的方位规则如下:最初坐标系{B}与{A}重合,转动相对固定坐标系{A}来描述,先绕X A 轴转γ 角 ,再绕Y A 轴转β角,最后绕Z A 轴转α角。

按照从右向左原则,得到相应旋转矩阵R=rotz(α)*roty(β)*rotx(γ)= [cαcβcαsβsγ−sαcγcαsβcγ+sαsγsαcβsαsβsγ+cαcγsαsβcγ−cαsγ−sβcβsγcβcγ]为了求其逆问题,需要求解旋转矩阵到X-Y-Z 固定角的描述表达式。

设姿态矩阵将(1,1)与(2,1)平方相加再开方根,可得cos(β) , 再与 (3,1)相比得:tan β= 31√r 11+r 21即:β= atan 2(−r 31,√r 112+r 212)当cos β ≠ 0时,利用r 21/cos β 除以r 11/cos β 得:α = atan 2(r 21/cos β, r 11/cosβ);利用r 32/cos β 除以r 33/cos β 得:γ = atan 2(r 23/cos β, r 33/cos β) 当cos β = 0时,即β = ±90°,仅能求出 α与γ的和或差,一般取α = 0.0, 可解得: β = 90°α = 0.0 ,γ = atan 2(r 12, r 22) 或 β = −90°, α = 0.0, γ = −atan 2(r 12, r 22)。

2、X-Y-Z欧拉角坐标系{B}的方位规则如下:最初坐标系{B}与{A}重合,转动相对运动坐标系{B}来描述,先绕X B 轴转γ角,再绕Y B 轴转β 角,最后绕Z B 轴转α角。

按照从左向右原则,得到相应旋转矩阵R=rotx(γ)*roty(β)*rotz(α) =为了求其逆问题,需要求解旋转矩阵到X-Y-Z 欧拉角的描述表达式。

设姿态矩阵当r23,r33不同时等于零时,由其旋转矩阵可得:tanγ=−r23r33即:γ = atan 2(−r23,r33)cosγ∗ r33+sinγ * r23=cosβ,与r13相比得tanβ =r13cos γ∗ r33+sin γ ∗ r23即:β= atan 2(r13,cos γ∗ r33−sin γ ∗ r23)同样由其旋转矩阵可得:tanα=−r12r11即:γ = atan 2(−r12,r11)当r23= 0且r33=0时,cos β = 0,即β = ±90°,可解得:β = 90°,γ = 0.0 ,α = atan2(r21, r22)或β = −90°,γ = 0.0,α = atan2(r21, r22)。

3、等效转轴表示法坐标系{B}的方位规则如下:首先将坐标系{B}和一个已知参考坐标系{A}重合。

将{B}绕矢量K̂A按右手定则旋转θ角。

矢量K̂A被称为有限旋转的等效轴。

式中,cθ = cosθ,sθ = sinθ,vθ= 1−cosθ,并且单位矢量K̂A=[k x k y k z]T经常用旋转量θ乘以单位方向矢量K̂形成一个简单的3*1的矢量来 描述姿态,用K 表示。

对于逆问题,给定的旋转矩阵求出K ̂A 和θ,设:那么:且K ̂A =12sinθ[r 32−r 23r 13−r 31r 21−r12]4、四元数法单位四元数:可以被看作是绕单位向量n ̂旋转θ角,该旋转与四元数组 的关系为:S=cos(θ/2),v=sin(θ/2) n ̂参数表示为q = x ,y ,z ,w ,其中:x 2 +y 2 +z 2 +w 2 = 1 利用单位四元数参数表示的旋转矩阵为:单位四元数对姿态描述具有独特的优势,其避免了欧拉角大角度旋转时 奇异性的问题,同时数据描述表达式简单,可以被用于规划高阶连续姿态 运动以及在多姿态间插值。

为了求其逆问题,需要求解旋转矩阵到单位四元数的描述表达式。

设姿态矩阵:对应的单位四元数描述为: w =√1+r 11 +r 22 +r 332,x =r 32−r 234w,y =r 13−r 314w,z =r 21−r 124w,实验内容:1、 已知坐标系{B}相对于坐标系{A}的描述及坐标系{B}下的位置点P B =[1,2,3],分别计算旋转R B A ,位置矢量P BORG A ,齐次变换矩阵T B A 及位置点P B 在坐标系{A}下的位置P A 。

最初坐标系{B}与{A}重合,转动相对运动坐标系{B}来描述, 先绕Z B 轴转α角,再绕Y B 轴转β 角,最后绕X B 轴转γ角。

绕Z B 轴转α角的旋转矩阵为R Z (α)= [cosα−sinα0sinαcosα0001]绕X B 轴转β 角的旋转矩阵为R Y (β)= [cosβ0sinβ10−sinβ0cosβ] 绕Y B 轴转γ角的旋转矩阵为R X (γ)= [1000cosγ−sinγ0sinγcosγ]按照从左向右原则,得到相应旋转矩阵 R=R Z (α) R Y (β) R X (γ)=[cosαcosβcosαsinβsinγ−sinαcosγcosαsinβcosγ+sinαsinγsinαcosβsinαsinβsinγ+cosαcosγsinαsinβcosγ−cosαsinγ−sinβcosβsinγcosβcosγ] 三次绕固定轴旋转所得到的最终姿态与以相反顺序绕运动坐标轴(其本身)旋转的最终姿态相同。

X-Y-Z 固定角与Z-Y-X 欧拉角相同。

X-Y-Z固定角的旋转矩阵为:[cosαcosβcosαsinβsinγ−sinαcosγcosαsinβcosγ+sinαsinγsinαcosβsinαsinβsinγ+cosαcosγsinαsinβcosγ−cosαsinγ−sinβcosβsinγcosβcosγ]3、推导旋转矩阵到X-Y-Z欧拉角的变换表达式其旋转矩阵:R=rotx(γ)*roty(β)*rotz(α) =为了求其逆问题,需要求解旋转矩阵到X-Y-Z 欧拉角的描述表达式。

设姿态矩阵当r23,r33不同时等于零时,由其旋转矩阵可得:tan (γ)=−r23r33即:γ = atan 2(−r23,r33)cosγ∗ r33+sinγ * r23=cosβ,与r13相比得tan (β) =r13cos γ∗ r33+sin γ ∗ r23β= atan 2(r13,cos γ∗ r33+sin γ ∗ r23)同样由其旋转矩阵可得:tan (α)=−r12r11γ = atan 2(−r12,r11)当r23= 0且r33=0时,cos β = 0,即β = ±90°,可解得:β = 90°,γ = 0.0 ,α = atan2(r21, r22)或β = −90°,γ = 0.0,α = atan2(r21, r22)。

4、编写姿态变化代码,使用MATLAB软件打开\\东大机器人实验程序\,机器人空间位姿描述\sia002.slx文件,编写所有转换模块。

参见附件5、利用上述推动的姿态转换表达进行不同姿态描述的求取,并填表。

并利用机器人工具箱求出的结果进行比较。

真机实验步骤:1、操作珞石XB6机器人观察其位置与姿态的数据变化。

读取几组位置和姿态数据并在MATLAB中进行绘图,并于实际机器人末端进行对照。

依据表2-3中不同的构型值,修改模型输入,单击运行按钮,观看输出的旋转矩阵值,并填入到表2-3中。

注意事项:1、旋转矩阵描述法结果唯一,欧拉角、固定角、等效转轴、单位四元数等解不唯一2、手动示教机器人时无法精确到指定关节角,接近指定关节角即可。

具体程序:①XYZ欧拉角至旋转矩阵:function R = ITF(rpy)R = zeros(3,3);rpy = rpy/180*pi;sx = sin(rpy(1));cx = cos(rpy(1));sy = sin(rpy(2));cy = cos(rpy(2));sz = sin(rpy(3));cz = cos(rpy(3));R(1,1) = cy*cz; R(1,2) = -cy*sz; R(1,3) = sy;R(2,1) = cx*sz + cz*sx*sy; R(2,2) = cx*cz - sx*sy*sz; R(2,3) = -cy*sx;R(3,1) = sx*sz - cx*cz*sy; R(3,2) = cz*sx + cx*sy*sz; R(3,3) = cx*cy;end②旋转矩阵到XYZ欧拉角function rpy = TF(R)%% outputrpy = zeros(1,3);%% function descriptionif (R(2,3)==0)||( R(3,3) == 0 )rpy(3)=atan2(R(2,1),R(2,2))*180/pi;rpy(2)=90; %rpy(2)=-90;rpy(1)=0;elserpy(1)=atan2(-R(2,3),R(3,3))*180/pi;rpy(2)=atan2(R(1,3),(cos(rpy(3))*R(3,3)-sin(rpy(3))*R(2,3)))*180/pi;rpy(3)=atan2(-R(1,2),R(1,1))*180/pi;endend③ ZYX欧拉角到旋转矩阵function R = ITF(rpy)R = zeros(3,3);rpy=rpy/180*pisx = sin(rpy(1));cx = cos(rpy(1));sy = sin(rpy(2));cy = cos(rpy(2));sz = sin(rpy(3));cz = cos(rpy(3));R(1,1) = cy*cz; R(1,2) =cz*sy*sx-sz*cx ; R(1,3) = cz*sy*cx+sz*sx;R(2,1) = cy*sz; R(2,2) =sz*sy*sx+cz*cy; R(2,3)=sz*sy*cx-cz*sx;R(3,1) = -sy; R(3,2) =cy*sx; R(3,3) = cy*cx;end使用系统库函数function R = ITF(rpy)%% outputR = zeros(3,3);%% function descriptioneul=[rpy(1)*pi/180 rpy(2)*pi/180 rpy(3)*pi/180];R=eul2rotm(eul,'ZYX');end④旋转矩阵到ZYX欧拉角function rpy = TF(R)%% outputrpy = zeros(1,3);%% function description%rpy=(rotm2eul(R,'ZYX'))*180/pi; 使用库函数进行计算rpy(2)=atan2(-R(3,1),sqrt(R(1,1)^2+R(2,1)^2));if cos(rpy(2))==0rpy(1)=0;rpy(3)=atan2(R(1,2),R(2,2));rpy(2)=90;elsecb=cos(rpy(2));rpy(1)=atan2(R(2,1)/cb,R(1,1)/cb);rpy(3)=atan2(R(3,2)/cb,R(3,3)/cb);endrpy=rpy*180/pi;end⑤XYZ固定角到旋转矩阵function R = ITF(rpy)%% outputR = zeros(3,3);%% function descriptionrpy = rpy/180*pi;sx = sin(rpy(1));cx = cos(rpy(1));sy = sin(rpy(2));cy = cos(rpy(2));sz = sin(rpy(3));cz = cos(rpy(3));R(1,1) = cy*cx; R(1,2) =cx*sy*sz-cz*sx; R(1,3) = sz*sx+cz*cx*sy; R(2,1) = cy*sx; R(2,2) = cx*cz + sx*sy*sz; R(2,3) =cz*sx*sy -cx*sz;R(3,1) = -sy; R(3,2) = cy*sz; R(3,3) = cy*cz;end⑥旋转矩阵到XYZ固定角function rpy = TF(R)%% outputrpy = zeros(1,3);%% function descriptionrpy(2)=atan2(-R(3,1),sqrt(R(1,1)^2+R(2,1)^2));if cos(rpy(2))==0rpy(1)=0;rpy(3)=atan2(R(1,2),R(2,2));rpy(2)=90;elsecb=cos(rpy(2));rpy(1)=atan2(R(2,1)/cb,R(1,1)/cb);rpy(3)=atan2(R(3,2)/cb,R(3,3)/cb);endrpy=rpy*180/pi;end⑦等效转轴到旋转矩阵function R = ITF(rpy)%% outputR = zeros(3,3);%% function descriptionth=norm(rpy*pi/180);ct=cos(th);st=sin(th);vt=1-cos(th);kx=rpy(1)/norm(rpy);ky=rpy(2)/norm(rpy);kz=rpy(3)/norm(rpy);R(1,1)=kx*kx*vt+ct;R(1,2)=kx*ky*vt-kz*st;R(1,3)=kx*kz*vt+ky*st;R(2,1)=kx*ky*vt+ky*st;R(2,2)=ky*ky*vt+ct;R(2,3)=ky*kz*vt-kx*st;R(3,1)=kx*kz*vt-ky*st;R(3,2)=kz*ky*vt+kx*st;R(3,3)=kz*kz*vt+ct;end⑧旋转矩阵到等效转轴function rpy = TF(R)%% outputrpy = zeros(1,3);%% function descriptionth= acosd((R(1,1)+R(2,2)+R(3,3)-1)/2);rpy=[(R(3,2)-R(2,3)) (R(1,3)-R(3,1)) (R(2,1)-R(1,2))]; if sind(th) ~= 0rpy=rpy/(2*sind(th))*th;endend⑨四元素到旋转矩阵function R = ITF(rpy)%% outputR = zeros(3,3);%% function descriptionx=rpy(1)/norm(rpy);y=rpy(2)/norm(rpy);z=rpy(3)/norm(rpy);w=rpy(4)/norm(rpy);R(1,1)=1-2*y*y-2*z*z;R(1,2)=2*(x*y-z*w);R(1,3)=2*(x*z+y*w);R(2,1)=2*(x*y+z*w);R(2,2)=1-2*x*x-2*z*z;R(2,3)=2*(z*y-x*w);R(3,1)=2*(x*z-y*w);R(3,3)=1-2*x*x-2*y*y;R(3,2)=2*(z*y+x*w);end⑩旋转矩阵到四元素function rpy = TF(R)%% outputrpy = zeros(1,4);rpy(4)=sqrt(1+R(1,1)+R(2,2)+R(3,3))*0.5;rpy(1)=(R(3,2)-R(2,3))/(4*rpy(4));rpy(2)=(R(1,3)-R(3,1))/(4*rpy(4));rpy(3)=(R(2,1)-R(1,2))/(4*rpy(4)); end。

相关文档
最新文档