机器人学中经典教材 《Introduction to Robotics: Mechanics and Control》,也就是John Craig的中文版《机器人学导论》,刚来实验室的时候,就发现师兄们人手一本了,某些章节自己啃也是有点难度的,之前在 Youtube 上看完了斯坦福 Oussama Khatib 教授的视频Introduction to Robotics,他们上课使用的教材就是这本,一共十六篇lecture,讲解也是很通俗易懂,涵盖了机器人坐标变化、D-H参数建模、动力学、运动学、PD、PID控制、力控制等基本理论。

上交大佬曾今说过:" 如果你把这本书的内容掌握了,就已经超过实验室绝大多数师兄师姐了。然而,真正把教材啃下来的并不多。所以,我在这里要换个说法了,如果你把这本书的内容掌握了,就可以胜任国内绝大多数机器人公司的开发工作了。" https://qiu6401.gitbook.io/how-to-learn-robotics/gettingstarted

这里对十六篇讲座的基本内容做了个简单的概括,可以根据需求快速的找到对应的内容。

The first lecture:

  • [40:50]:So if you have a velocity and omega at the center of mass,and you can write the energy,the kinetic energy,associated with this moving mass and inertia associated with the rigid.And simply by adding the kinetic energy of these different link,you have the total kinetic energy of the system.So the mass matrix will become a very simple form of the Jacobian,so that's why I'm going to insist on your understanding of the Jacobian,once you understand the Jacobian,,you can scale the Jacobian with the masses and the inetials get your dynamics.So going to dynamics is going to be very simple if after you really undertand the Jacobian.
  • [43:54]:Task-Oriented Control: Described as how to move the hand to this location without really focusing on how each of the joint is going to move.And this concept can be captured by simply thinking about total robot as if the robot was attracted to move the goal position.This is similiar to the way a human operate just like you are not thinking about how the joints of the body are moving,you are just moving the hand by applying these forces to move the hand to the goal position.So it's like holding the hand and pulling it down to the goal.第一篇lecture就是对课程的一个总结,其实就是这十六篇的学习重点:一个是雅可比矩阵的理解和计算;另一个就是机器人的控制问题,包括PD control和force control等等话题。出现在视频中的时间为[40:50]和[43:54]。

The second lecture:

通篇介绍的就是机器人不同坐标系之间变换的方法,即旋转矩阵R和变换矩阵T。

Rotation matrix:是在乘以一个向量的时候改变向量的方向但不改变大小的效果并保持了手性的矩阵。其实旋转矩阵可以直接写出来,其值为中单位矩阵  在中的坐标,如式,旋转矩阵的转置就是从相反的方向观察,因此。对于坐标系原点重合的情况下:设坐标系中的点,那么它在参考坐标系中的点表示为 。 对于坐标系原点不重合的情况下,例如对于坐标系中的向量在参考坐标系中的表示为:。因此,这里涉及到加法等操作对于高纬度空间运用是比较复杂的,但是写成矩阵的形式就是,这就是从传说中的 其中就是原点在坐标系中的坐标。

对于变换矩阵T,它没有和旋转矩阵R相同的转置求逆等同的特性,也就是,而是。这里的

The third lecture:

旋转矩阵用9个参数来定义三维度的旋转,这意味着有六个参数其实是冗余的,对于一个旋转矩阵来说有如下关系:

对于欧拉角定义的旋转ZYX,有个特定的昵称rpy,也就是使用广泛的roll-pitch-yaw ,其中ZYX欧拉角和旋转矩阵的对应关系为:

。即为:.

当beta角度为90的时候,会导致机器人空间的奇异性,在该点的时候,无论如何改变其余两个角度的大小度无法影响该方向的运动。也就是说三个参数会有奇异性,九个参数会有冗余,因此引出使用四个参数定义旋转的四元数。(有点多,没记录了)

The fourth lecture:

配置D-H参数理论部分,由于之前已经了解过D-H参数配置的方法,这节比较快速过的。老师讲的也是不错的,但是英文理解肯定难受一点,所以也就没记录了。

The fifth lecture:

D-H参数配置案例:RPRR机器人,根据配置的D-H参数和公式,对于RPRR机器人,有:

其中第三列表示的就是在frame0中坐标,同理前两列分别对应在在frame0中的坐标,最后一列就是frame3的原点在frame1中的坐标。

其中第三列表示的就是在frame0中坐标,同理。。。。。这里需要重点关注的就是向量,因为后面可以看到Jacobian的一半就是通过向量定义的, in the frame0。

The sixth lecture:

6.1 雅可比矩阵计算

Jacobian参数配置:设各个关节运动的矢量为,对于旋转关节和滑块关节有所不同,通常会给定一个参数为0或1来代表prismatic还是revolute(旋转关节还是滑动关节),也就是后面提到的 。Jacobian的其含义就是将Cartesian space和joint space联系起来的方法。通过对依次逐个求偏导,可以导出的关系如下:

也就是,下面通过一个简单的例子来呈现如何计算机器人的Jacobian矩阵:

事实上,这个矩阵在机器人当中的应用十分广泛,当想要控制机器人末端进行微小的位移的时候,我们就可以利用Jacobian的逆来计算.

6.2 利用D-H计算雅可比矩阵

对于变换矩阵T来说,它具有两个部分,一部分是最后一列的表示的坐标,另一部分是旋转矩阵R,因此对于Jacobian来说也有两部分,一部分是Position,另一部分是Orientation,通过下例来进行分析:如图所示是机器人的D-H 参数,和我们自己设计的球手腕型机器人很类似(仅仅多了一个d):

根据D-H参数可以得到机器人的变换矩阵,结合前面的知识,变换矩阵  的每列所代表的意思,将矩阵写成,因此将Jacobian的待求式准备为:

对于Position部分和Orientation部分的计算结果如下,这里的第一列求偏导计算之后就是,不用纠结。

看到最后应该就能理解为什么Jacobian和有关并通过上面的这些方法来计算了!,写成矩阵形式即:

.

6.3 雅可比和速度角度的联系

当完全了解了Jacobian的组成之后,就可以通过Jacobian将各个关节的角度和末端执行器中心的速度角速度联系起来,如下图所示,将替换:

这里提到的很重要的一点是,角速度是instantaneous,如果我们采用欧拉角或是,它们和是不相等的。而是通过一个3x3的矩阵与联系起来的。如上图所示,对于用欧拉角表示的  我们用一个3x3的矩阵将它和  联系起来。对于笛卡尔坐标系的坐标表示的  ,我们用一个3x3的矩阵 将它和  联系起来。因此我们能得到末端和  之间的转换关系。

虽然之间不是线性的关系,但是在笛卡尔坐标系下是线性的关系,所以很容易就得到了。视频中直接给了,省的以后自己算了:

一般笛卡尔坐标系的雅可比和坐标有关,所以将这里的Jacobian命名为,其和速度空间的雅可比矩阵(我自己的理解不知道准不准确)的关系如下所示:,总结如下:

对于笛卡尔坐标系,根据前面提到的可用知道 ,当使用的不是笛卡尔坐标的时候,需要如下转换关系,方便的是,只需要记住该公式即可,不需要重复的去计算:

可以看出,当使用三个参数来描述旋转的欧拉角,当处于某些值的时候,就会导致奇异性。

Introduction to Robotics 总结1~6相关推荐

  1. 六自由度机器人逆向运动学_【课程笔记】Notes for Robotics/机器人学 (Part1)

    之前打ICRA2018的Tidy Up My Room challenge的时候就已经接触了一些机器人学的内容,不过以偏应用的ROS,轨迹规划,控制居多,对于机械臂和力学确实了解的不多,这学期选了ME ...

  2. Udacity机器人软件工程师课程笔记(十五)-运动学-正向运动学和反向运动学(其二)-DH参数等

    正向运动学和反向运动学 目录 2D中的旋转矩阵 sympy包 旋转的合成 旋转矩阵中的欧拉角 平移 齐次变换及其逆变换 齐次变换的合成 Denavit-Hartenberg 参数 DH参数分配算法 正 ...

  3. 干货!谷歌推荐的技术能力提升指南

    打好扎实的计算机科学基础对于成为一个成功的软件工程师是非常重要的.本指南主要关于如何提升自己的技术能力,非常适合学生用于制定教学课程,当然这里提供的网络资源,并不意味着就可以完全取代现有的课程,正式的 ...

  4. 机器人学习--University of Alberta自主机器人导航课

    官网链接:https://webdocs.cs.ualberta.ca/~zhang/c631/ 资料下载链接(整理好了打包下载):https://download.csdn.net/download ...

  5. 机器人中的轨迹规划(Trajectory Planning )

    Figure. Several possible path shapes for a single joint 五次多项式曲线(quintic polynomial) $$\theta(t)=a_0+ ...

  6. orocod_kdl学习(一):坐标系变换

    KDL中提供了点(point).坐标系(frame).刚体速度(twist),以及6维力/力矩(wrench)等基本几何元素,具体可以参考 Geometric primitives 文档. Creat ...

  7. kcl计算机通信专业,KCL伦敦国王学院计算机和电子工程介绍

    原标题:KCL伦敦国王学院计算机和电子工程介绍 KCL国王学院本科很多学生都会选择计算机科学,但是这门课程竞争十分激烈,如果本身条件不是十分突出的话,立思辰留学360建议申请电子与信息工程学士取代!能 ...

  8. 个人网页、博客、课程--不断更新

    论文和相关代码 :https://paperswithcode.com/ Caiming Xiong http://www.stat.ucla.edu/~caiming/ 论文,代码,博客 肖小粤的啵 ...

  9. 刚体质量分布与牛顿-欧拉方程

    惯性矩.惯性积.转动惯量.惯性张量 惯性矩是一个几何量,通常被用作描述截面抵抗弯曲的性质.惯性矩的国际单位为(m4).即面积二次矩,也称面积惯性矩,而这个概念与质量惯性矩(即转动惯量)是不同概念. 面 ...

  10. 机器人专业需要学习那些理论知识

    专业与产业 我认为,机器人是一门应用性比较强的专业,如果脱离应用背景,那么就不容易理解和把握机器人的发展.所以我开篇先不谈"专业"而要谈"产业","专 ...

最新文章

  1. python的for语句条件_Python中的条件选择和循环语句
  2. Linux下怎么确定Nginx安装目录
  3. Java黑皮书课后题第10章:**10.27(实现StringBuffer类)在Java库中提供了StringBuffer类,给胡你自己对下面方法的实现(将新类命名为MyStringBuilder1)
  4. 使用asp.net改变图片颜色
  5. opencv-api minAreaRect
  6. 觉得Win 10不如WP好?微软确认可以降级
  7. HCIE理论-IPV6
  8. 机器学习第六回(完结篇)
  9. 程序员的超大文件下载方法
  10. 中职计算机教学随笔800字,职高教育工作随笔
  11. 用JQuery实现简单计时答题游戏
  12. 减持奈飞增持京东健康,“贝莱德们”为何开始偏爱中国企业?
  13. protobuf中repeated类型变量与C++ vector类型变量的相互赋值方法
  14. 计算机测试的论文,软件测试毕业论文-软件工程论文-计算机论文.docx
  15. k8s对接smb/cifs存储
  16. 写给Krpano小白们的最最最入门级教程(二)
  17. 关于抓包的一些常用软件
  18. python如何获取传感器数据_连接获取传感器数据的几大方法
  19. 来自一个入行三年半的大数据练习生自述
  20. Matlab2017b C++编译器配置

热门文章

  1. python模拟登录163邮箱_python模拟登陆163邮箱并获取通讯录 | 学步园
  2. 一个心理医生和一个心理不正常的小孩的冷笑话
  3. 力扣994:腐烂的橘子(BFS)
  4. 库克将在斯坦福大学2019年毕业典礼上发表演讲:6月16日举行
  5. android Rect
  6. Low rank 论文
  7. 迪赛智慧数——其他图表(盒须图):员工离职率分析
  8. 安装 dpdk-ans 时的编译问题:librte_ans.a(ans_init.o): unrecognized relocation (0x2a) in section `.text'
  9. 电子商务电子商务| 第2部分
  10. 精美的手机WEB网页欣赏