《机器人学导论》(原书第4版)系统讲解机器人学的理论知识,主要内容包括机器人操作臂的几何性质、引起操作臂运动的力和力矩、与操作臂机械设计有关的问题和控制方法、机器人编程方法等。《机器人学导论》(原书第4版)曾作为美国斯坦福大学机器人学导论的教材,已经过3次修订。本书配有大量的编程习题和MATLAB作业,可作为高等院校相关专业的教材或参考书,也可供相关技术人员参考。
美国斯坦福大学机器人专业经典教材
机器人学是一门年轻的、日新月异的交叉学科。在新知识、新技术层出不穷的年代,哪些知识被沉淀下来,进而构成了机器人学的基本框架呢?这本书深入浅出地讲解了机器人学的基本概念和基本原理,是国内外众多高校机器人相关专业推荐使用的教材,如国外的斯坦福大学、不列颠哥伦比亚大学等,以及国内的北京航空航天大学、北京邮电大学、上海交通大学、南开大学等。
本书特色
本书源于作者在斯坦福大学教授“机器人学导论”课程的讲义,是当今机器人学研究领域的经典之作。
Craig教授将数学、力学和控制理论等与机器人应用实践密切结合,对机器人运动学、动力学、控制和编程中的原理进行了严谨的阐述,并使用典型例题解释原理。
每章附不同难度的习题,供读者训练,有利于加深读者对机器人基本概念的理解。
每章还设置有MATLAB编程作业,对于读者提升机器人知识的应用能力大有帮助。
机器人技术是一项机械、电子、自动控制、计算机以及人工智能等多学科交叉的综合性应用技术。
本书将数学、力学和控制理论等与机器人应用实践密切结合,按照刚体力学、分析力学、机构学和控制理论中的原理和定义对机器人运动学、动力学、控制和编程中的原理进行了严谨的阐述,语言精练,内容深入浅出,例题简单易懂且具有代表性,体现出Craig教授在机器人学方面高深的造诣。
本书以力学、控制理论、计算机科学为基础,介绍机械操作的理论和工程知识。其中,第1~8章涉及机械工程和数学的主题,第9~11章为控制理论的题材,第12和13章属于计算机科学的内容。另外,本书从始至终强调通过计算解决问题。
John J. Craig 美国斯坦福大学荣誉教授,机器人研究领域顶级专家,长期工作于斯坦福大学机器人专业教学一线。本书是他在机器人学和机器人技术方面多年研究和教学工作的积累,也是当今机器人学研究领域的经典之作,曾被美国多所大学选为教材。
译者介绍
贠超 博士,北京航空航天大学机械工程及自动化学院教授,博士生导师,现任全国工业自动化系统与集成标准化技术委员会(CSBTS/TC159)委员和机器人标准化分技术委员会(CSBTS/TC159/SC2)委员,中国机械工程学会高级会员。主要研究方向为机器人技术和机器人控制、机械系统动力学。
王伟 博士,北京航空航天大学机械工程及自动化学院副教授,主要研究方向为机器人动力学和物流机器人。先后发表学术论文20余篇(其中10篇被SCI收录,8篇被EI收录),获批国家发明专利10项,曾承担国家自然科学基金、国家重点研发计划和国家科技支撑计划等科研课题。
科学家常会感到通过自己的研究工作在不断地认识自我。物理学家在他们的工作中认识到了这一点,同样,心理学家和化学家也认识到了这一点。在机器人学的研究中,研究领域和研究者自身之间的关系尤为明显。与仅追求分析的自然科学不同,当前机器人学所追求的是偏重于综合的工程学科。也许正是这个原因,这个领域才使我们当中的许多人着迷。
机器人学研究的是怎样综合运用机械装置、传感器、驱动器和计算机来实现人类某些方面的功能。显然,这是一项庞大的任务,它必然需要运用各种“传统”领域的研究思想。
现今,机器人学诸方面的研究工作都是由不同领域的专家进行的。通常没有一个人能够完全掌握机器人领域的所有知识。因此,自然有必要对这个研究领域进行划分。在更高的层次上,可把机器人学划分为4个主要领域:机械操作、移动、计算机视觉和人工智能。
本书介绍机械操作的理论和工程知识。机械操作这一机器人学分学科是建立在几个传统学科基础之上的。主要的相关学科有力学、控制理论、计算机科学。在本书中,第1~8章包括机械工程和数学的主题,第9~11章为控制理论的题材,第12~13章属于计算机科学的内容。另外,本书从始至终强调通过计算解决问题,例如,与力学密切相关的每一章都有一节简要介绍计算方面的问题。
本书源于斯坦福大学1983~1985秋季学期的“机器人学导论”的讲稿。前3版在1986~2016年被许多大学采用。第4版得益于这一广泛应用,并且根据多方面的反馈意见做了修改和改进。在此,向对本书作者提出修正意见的所有人表示感谢。
本书适用于高年级本科生或者低年级研究生课程。选修此课程的学生如果学过静力学和动力学这两门基础课程,同时学习过线性代数,并且能够使用计算机高级语言编程,将是有帮助的。此外,虽然不必先修控制理论的入门课程,但学过这门课程也是有益的。本书的目标之一是以简单、直观的方式介绍机器人学的知识。特别需要指出的是,虽然本书很多内容选自机械工程领域,但本书的读者不必是机械工程师。在斯坦福大学,很多电气工程师、计算机科学家、数学家都认为本书具有很强的可读性。
虽然本书直观上适合机器人系统的研发工程师使用,但是对于任何将要从事机器人研究工作的人,本书内容都是重要的背景资料。就像软件开发人员通常要了解一些硬件知识一样,不直接从事机器人的机械和控制研究的人员,也应当具备一些本书提供的背景知识。
与第3版一样,第4版分为13章。本书的材料适合一学期讲授,如果要在半学期内讲授,教师需要略去一些章节。即便如此,仍然无法深入讲解所有专题。本书在编写时从某些方面考虑了这一点,例如,多数章只采用一种方法去解决常见的问题。编写本书的主要挑战之一就是尽量在限定的教学时间内为每个主题合理地分配时间。为此,我的办法是只考虑那些直接影响机器人机械操作的材料。
在每章的最后都有一组习题。在每道习题题号后的方括号中给出习题的难度系数。难度系数在[00]到[50]之间。[00]是最简单的题目,[50]是尚未解决的研究性问题。
我采用了与DKnuth所著《The Art of Computer Programming》(AddisonWesley出版)同样的难度等级。
当然,一个人认为困难的问题,另一个人可能认为容易,因此,一些读者会发现那些难度系数在某些情况下会引起误解。不过,我们尽力评估了这些习题的难度。
在每章的末尾,布置了编程作业,学生可以把相应章的知识应用到一个简单的三关节平面操作臂中。这个简单的操作臂足以用来证明大多数一般操作臂的所有原理,而不会使学生陷入过于复杂的问题中。每个编程作业都建立在前一个作业的基础上,到课程结束时,学生就会得到一个完整的操作臂软件程序库。
另外,第1~9章共有12道MATLAB练习。这些练习由俄亥俄大学的Robert L Williams Ⅱ教授编写,我对他所做的贡献深表感谢。这些练习可以配合澳大利亚CSIRO首席研究科学家Peter Corke编写的MATLAB机器人工具箱(Robotics Toolbox)使用。
关于MATLAB机器人工具箱,请访问http://petercorkecom/Robotics_Toolboxhtml。
第1章是机器人学的介绍,介绍一些背景资料、基本思想和本书所使用的符号,并概述后面各章的内容。
第2章包括描述三维空间中的位置与姿态的数学知识。这是极为重要的内容:通过定义,机械操作本身与周围空间的移动物体(工件、工具、机器人自身)联系起来。我们需要用一种易于理解并且尽可能直观的方式来描述这些动作。
第3章和第4章讨论机械操作臂的几何问题,介绍机械工程学科中的运动学分支,这个分支研究运动但不考虑引起这种运动的力。在这两章里,我们讨论操作臂运动学,但把研究范围限定在静态定位问题上。
第5章我们将运动学的研究范围扩展到速度和静力方面。
第6章我们开始研究引起操作臂运动的力和力矩。这就是操作臂动力学问题。
第7章描述操作臂在空间的运动轨迹。
第8章涉及许多与操作臂的机构设计有关的问题。例如,设计多少关节是适宜的,关节的类型应是什么,它们需如何布局。
第9章和第10章研究操作臂的控制方法(通常利用计算机),使其准确地跟踪预先设定的空间轨迹。第9章研究线性控制方法,第10章将研究拓展到非线性领域。
第11章讨论操作臂的力控制,即研究如何控制由操作臂施加力,这种控制模式在操作臂接触周围环境的情况下非常重要,比如操作臂用海绵擦窗户。
第12章概述机器人编程方法,特别是机器人编程系统中所需的基本元素以及与工业机器人编程相关的特殊问题。
第13章介绍离线仿真和编程系统,其中描述人与机器人接口的最新进展。
第4版新增内容
每章增加了若干习题
89节(光学编码器)
109节(自适应控制)
由于技术进步更新了文献材料和参考文献
更新或新增了插图
改正了100多个录入错误和其他小错误
非常感谢牺牲宝贵时间协助我完成这本书的许多人。首先,感谢斯坦福大学1983~1985秋季 ME219班的学生,他们学习了初稿,发现了不少错误,并提出了许多建议。Bernard Roth教授在多方面给予了帮助,不仅对草稿提出了建设性的意见,而且为我完成第1版提供了环境。在SILMA公司,我得到了很好的仿真环境和资源,这些条件帮助我完成了第2版。Jeff Kerr博士写了第8章的初稿,Robert L Williams Ⅱ教授设计了每章最后的MATLAB练习。Peter Corke扩充了他的机器人工具箱,以支持本书采用的DenavitHartenberg符号体系。在此,我也深深地感谢我在机器人学方面的导师Marc Raibert、Carl Ruoff、Tom Binford 和Bernard Roth。
我还要感谢来自斯坦福大学、SILMA公司、Adept公司和其他地方的许多人,他们以各种方式对我提供过帮助。他们是John Mark Agosta、Mike Ali、Lynn Balling、Al Barr、Stephen Boyd、Chuck Buckley、Joel Burdick、 Jim Callan、Brian Carlisle、Monique Craig、Subas Desa、Tri Dai Do、Karl Garcia、Ashitava Ghosal、Chris Goad、Ron Goldman、Bill Hamilton、Steve Holland、Peter Jackcon、Eric Jacobs、Johann Jger、 Paul James、Jeff Kerr、Oussama Khatib、Jim Kramer、Dave Lowe、Jim Maples、Dave Marimont、Dave Meer、Kent Ohlund、Madhusudan Raghavan、Richard Roy、Ken Salisbury、Bruce Shimano、Donalda Speight、Bob Tilove、Sandy Wells 和Dave Williams。
我还要感谢Pearson公司的Tom Robbins为前两版提供了指导。
斯坦福大学的Roth教授在给2002级的学生讲授机器人课程时使用了本书第2版,并指出了许多遗留的错误,这些错误在第4版中做了修订。
最后,我还要感谢那些帮助我完成第4版的人:Matt Marshall(为每章新增习题并收集有用的反馈),Pearson公司的Julie Bai和Michelle Bayman。
人工智能/机器人
美国斯坦福大学机器人专业经典教材。
机器人学是一门年轻的、日新月异的交叉学科。在新知识、新技术层出不穷的年代,哪些知识被沉淀下来,进而构成了机器人学的基本框架呢?这本书深入浅出地讲解了机器人学的基本概念和基本原理。本书也是国内外众多高校机器人相关专业推荐使用的教材,如国外的斯坦福大学、不列颠哥伦比亚大学等,以及国内北京航空航天大学、北京邮电大学、上海交通大学、南开大学等。
本书特色
·本书源于原著者在斯坦福大学教授“机器人学导论”课程的讲义,是当今机器人学研究领域的经典之作。
·Craig教授将数学、力学和控制论等与机器人应用实践密切结合,对机器人运动学、动力学、控制和编程中的原理进行了严谨的阐述,并使用典型例题解释原理。
·每章附不同难度值的习题,供读者训练,有利于加深读者对机器人基本概念的理解。
·每章还设置有MATLAB编程作业,对于读者提升机器人知识的应用能力大有帮助。
机器人技术是一项机械、电子、自动控制、计算机以及人工智能等多学科交叉的综合性应用技术。
人类利用自然力代替人力劳动创造了许多自动工具和自动机械,这已有几千年的历史了。例如,中国西周时代的歌舞伶人,春秋后期木匠鲁班制造的木鸟,东汉时期张衡发明的记里鼓车,三国时期诸葛亮发明的木牛流马。国外公元前2世纪古希腊人发明了一种自动机,1738年法国人发明了一种机器鸭,1773年瑞士钟表匠杰克·道罗斯发明了能自动书写和演奏的玩偶,18世纪日本人发明了端茶玩偶等。机器人这一概念的提出源自约100年前的科幻剧本《罗素姆万能机器人》。但是真正按照现代机器人的定义研究、制造和使用机器人的历史距今只有几十年。实际上,真正意义上的机器人是随着计算机的出现而诞生的。1961年美国Unimate公司生产了第一台商用工业机器人。1980年日本等国家迅速普及工业机器人,国际上称这一年为“机器人元年”。随着机构学、控制理论和计算机技术的发展,传统的机器人已发展到冗余操作臂、移动机器人、人形机器人和多机器人协作等多种形式。随着大数据和深度学习技术的发展,近两年出现的围棋脑和驾驶脑,在特定领域的智能程度已经接近于人类。另一方面,随着机械和电子器件的成本降低,特别是视觉和语音能够实现低成本的高速输入和提取,极大地提高了机器人外设的性能,扩大了机器人的应用场景。
本书是美国斯坦福大学的John J Craig教授在机器人学和机器人技术方面多年的研究和教学工作的积累。Craig教授根据机器人学的特点,将数学、力学和控制理论等与机器人应用实践密切结合。本书按照刚体力学、分析力学、机构学和控制理论中的原理和定义对机器人运动学、动力学、控制和编程中的原理进行了严谨的阐述,语言精练,内容深入浅出,例题简单易懂且具有代表性,体现出Craig教授在机器人学方面高深的造诣。本书是当今机器人学研究领域的经典之作。
本书是在第3版中文翻译的基础上核对整理后完成的。参与第3版翻译的人员包括贠超、高志慧、李成群、陈心颐、宁凤艳和王伟等。第4版全书由王伟校对整理,并对第3版中的翻译错误和第4版英文原书中的错误做了修正,特别是对第4版中新增的章节和习题进行了翻译和校对。
首先要感谢国内的同行在使用本书第3版作为教材期间发现的问题,以及提出的宝贵意见。特别要感谢南开大学的刘景泰教授将本书第3版的错误逐条列出来,发给译者,使得我们有机会将这些错误在第4版中逐一消除。
本书可作为机械电子工程专业、自动控制专业和计算机专业高年级本科生、硕士生或博士生的教学参考书,也可供从事机器人和自动化装备等应用开发工作的技术人员参考。
限于译者的经验和水平,书中难免存在缺点和错误,欢迎读者批评指正。
译者
2017年12月11日
译者序
前言
第1章概述
11背景
12操作臂的力学与控制
13符号
参考文献
习题
编程练习
MATLAB练习
第2章空间描述和变换
21引言
22描述:位置、姿态与位姿
23映射:从一个坐标系到另一坐标系的变换
24算子:平移、旋转和变换
25总结和说明
26变换的计算
27变换方程
28其他姿态描述
29自由矢量的变换
210计算问题
参考文献
习题
编程练习
MATLAB练习
第3章操作臂运动学
31引言
32连杆的描述
33连杆连接的描述
34连杆坐标系的定义
35操作臂运动学
36驱动器空间、关节空间和笛卡儿空间
37实例:两种工业机器人的运动学问题
38坐标系的标准命名
39工具的位置
310计算问题
参考文献
习题
编程练习
MATLAB练习
第4章操作臂逆运动学
41引言
42解的存在性
43当n<6时操作臂子空间的描述
44代数解法和几何解法
45简化成多项式的代数解法
46三轴相交的Pieper解法
47操作臂逆运动学实例
48标准坐标系
49操作臂求解
410重复精度和精度
411计算问题
参考文献
习题
编程练习
MATLAB练习
第5章雅可比:速度和静力
51引言
52时变位置和姿态的符号表示
53刚体的线速度和角速度
54对角速度的进一步研究
55机器人连杆的运动
56连杆之间的速度“传递”
57雅可比
58奇异性
59操作臂的静力
510力域中的雅可比
511速度和静力的笛卡儿变换
参考文献
习题
编程练习
MATLAB练习
第6章操作臂动力学
61引言
62刚体的加速度
63质量分布
64牛顿方程和欧拉方程
65牛顿欧拉递推动力学方程
66迭代形式与封闭形式
67封闭形式的动力学方程应用举例
68操作臂动力学方程的结构
69操作臂动力学的拉格朗日方程
610笛卡儿空间中的操作臂动力学
611考虑非刚体影响
612动力学仿真
613计算问题
参考文献
习题
编程练习
MATLAB练习
第7章轨迹生成
71引言
72关于路径描述和路径生成的综述
73关节空间的规划方法
74笛卡儿空间规划方法
75笛卡儿路径的几何问题
76路径的实时生成
77使用机器人编程语言描述路径
78使用动力学模型的路径规划
79无碰撞路径规划
参考文献
习题
编程练习
MATLAB练习
第8章操作臂的机构设计
81引言
82基于任务需求的设计
83运动学构型
84工作空间属性的定量方法
85冗余结构与闭链结构
86驱动方案
87刚度与变形
88位置检测
89光学编码器
810力传感
参考文献
习题
编程练习
MATLAB练习
第9章操作臂的线性控制
91引言
92反馈与闭环控制
93二阶线性系统
94二阶系统的控制
95控制规律的分解
96轨迹跟踪控制
97抑制干扰
98连续控制与离散时间控制
99单关节的建模和控制
910工业机器人控制器的结构
参考文献
习题
编程练习
MATLAB练习
第10章操作臂的非线性控制
101引言
102非线性系统和时变系统
103多输入多输出控制系统
104操作臂的控制问题
105实际问题
106当前工业机器人控制系统
107李雅普诺夫稳定性分析
108基于笛卡儿坐标的控制系统
109自适应控制
参考文献
习题
编程练习
第11章操作臂的力控制
111引言
112工业机器人在装配作业中的应用
113部分约束任务中的控制坐标系
114力/位混合控制问题
115质量弹簧系统的力控制
116力/位混合控制方法
117当前工业机器人控制方法
参考文献
习题
编程练习
第12章机器人编程语言及编程系统
121引言
122可编程机器人的三个发展水平
123应用实例
124机器人编程语言的必要条件
125机器人编程语言的特殊问题
参考文献
习题
编程练习
第13章离线编程系统
131引言
132离线编程系统的要点
133PILOT仿真器
134离线编程系统的自动子任务
参考文献
习题
编程练习
附录A三角恒等式
附录B24种转角排列设定法
附录C逆运动学公式
部分习题答案
索引