前言
科学家常会感到通过自己的研究工作在不断地认识自我,物理学家在工作中认识到了这一点,同样,心理学家和化学家也认识到了这一点。在机器人学的研究中,研究领域和研究者自身之间的关系尤为明显。同时,与一门仅追求分析的自然科学不同,当前机器人学所追求的是偏重于综合的工程学科。也许正是这个原因,这个领域才使我们当中的许多人着迷。 机器人学研究的是怎样综合运用机械、传感器、驱动器和计算机来实现人类某些方面的功能。现今,机器人学诸方面的研究工作都是由不同领域的专家们进行的。通常没有一个人能够完全掌握机器人领域的所有知识。因此,自然有必要对这个研究领域进行划分。在更高的层次上,可把机器人学划分为四个主要领域:机械操作、移动、计算机视觉和人工智能。 本书介绍机械操作的理论和工程知识,这是机器人学的分学科,它是建立在几个传统学科基础之上的。主要的相关学科有力学、控制理论、计算机科学。在本书中,第1章至第8章包括机械工程和数学的主题,第9章至第11章为控制理论的题材,第12章和第13章属于计算机科学的内容。另外,本书自始至终强调通过计算解决问题;例如,与力学密切相关的每一章都有一节简要介绍计算方面的问题。 本书源于斯坦福大学1983~1985年秋季学期的“机器人学导论”的讲义。第1版和第2版在1986~2002年间被许多大学采用。第3版得益于这些应用,并且根据多方面的反馈意见做了修改和改进。在此,向那些对本书作者提出修正意见的人表示感谢。 本书适用于高年级本科生或者低年级研究生课程。选修此课程的学生如果学过静力学和动力学这两门基础课程之一,同时学习过线性代数,并且能够使用计算机**语言编程,这将有助于他们的学习。此外,虽然不必先修控制理论方面的入门课程,但学过这门课程也是有益的。本书的目标之一是以简单、直观的方式介绍机器人学的知识。特别需要指出的是,虽然本书很多内容选自机械领域,但本书的读者不必是机械工程师。在斯坦福大学,很多电气工程师、计算机科学家、数学家都认为本书具有很强的可读性。 虽然本书直接由机器人系统的研发工程师使用,但是对于任何将要从事机器人研究工作的人,本书内容应当被看作是重要的背景资料。同样,至少从事过某种硬件的软件开发人员和不直接参与机器人的机械和控制的研究人员,应当具备一些本书提供的背景知识。 第3版和第2版相似,分为13章。本书的材料适合于一学期来讲授,如果要在半学期内讲授,需要略去一些章。即便如此,仍然无法深入讲解所有专题。本书在编写时从某些方面考虑了这一点;例如,多数章只采用一种方法解决常见的问题。编写本书的主要问题之一就是尽量在限定的教学时间内为每个主题合理地分配时间。为此,我的办法是只考虑那些直接影响机器人机械操作学习的材料。 在每章的*后都有一组习题。在每道习题题号后的方括号中给出习题的难度系数。难度系数在[00]到[50]之间。[00]是*简单的题目,[50]是尚未被解决的研究性问题。当然,一个人认为困难的问题,另一个人可能认为容易,因此,一些读者会发现那些难度系数在某些情况下会引起误解。不过,这种方法在某种程度上评价了这些习题的难度。 在每章的末尾,有一个编程作业,学生可以把相应章的知识应用到一个简单的三关节平面操作臂中。这个简单的操作臂足以用来证明大多数一般操作臂的所有原理,而不必使学生陷入过于复杂的问题中。每个编程作业都建立在前一个作业的基础上,到课程彝2吹谋甙?我已疲倦,我已颟顸,何处是我停泊的边岸?憧憬已渺,梦儿已残,何处是我避风的港湾?”P18-19緲??????裇??
?zjbk18?习题。这些习题由俄亥俄大学的Robert L. Williams II教授编写,我对他所做的贡献深表感谢。这些习题可以配合澳大利亚CSIRO**研究科学家Peter Corke编写的MATLAB机器人学工具箱使用。 第1章是机器人学的介绍,介绍一些背景资料、基本思想和本书所使用的符号,并预览后面各章的内容。 第2章包括描述三维空间中的位置与方法的数学知识。这是极为重要的内容:通过定义机械操作本身与周围空间的移动物体(部件、工具、机器人自身)联系起来。我们需要用一种易于理解并且尽可能直观的方式来描述这些动作。 第3章和第4章讨论机械操作臂的几何性质。介绍机械工程学科中的运动学分支,这个分支研究运动但不考虑引起这种运动的力。在这两章里,我们讨论操作臂运动学,但把研究范围限定在静态定位问题上。 第5章将运动学的研究范围扩展到速度和静力方面。 第6章开始研究引起操作臂运动的力和力矩。这就是操作臂动力学问题。 第7章描述操作臂在空间的运动轨迹。 第8章涉及到许多与操作臂机械设计有关的问题。例如,设计多少关节是适宜的,关节的类型应是什么,它们需如何布局。 第9章和第10章研究操作臂的控制方法(通常利用数字计算机),使其准确地经过预先设定的空间轨迹。第9章研究线性控制方法,第10章将研究拓展到非线性领域。 第11章讨论操作臂的主动力控制。这就是研究如何对操作臂控制力的运用,这种控制模式在操作臂接触周围环境的情况下非常重要,比如操作臂用海绵擦窗户。第12章概述机器人编程方法,特别是机器人编程系统中所需的基本成分以及与工业机器人编程相关的特殊问题。 第13章介绍离线仿真和编程系统,其中描述人与机器人接口的*新进展。 我非常感谢牺牲宝贵时间协助我完成这本书的许多人。首先,感谢斯坦福大学1983~1985届ME219班的同学们,他们学习了初稿,发现了不少错误,并提出了许多建议。Bernard Roth教授在多方面给予了帮助,不仅对草稿提出了建设性的意见,而且为我提供了完成第1版的环境。在SILMA公司,我得到了很好的仿真环境和资源,从而使我完成了第2版。Jeff Kerr博士写出第8章的初稿,Robert L. Williams II教授设计了每章*后的MATLAB习题。Peter Corke扩充了他的Robotics Toolbox(机器人学工具箱),以此支持本书采用的Denavit-Hartenberg符号体系。在此,我也深深地感谢我在机器人学方面的导师Marc Raibert、Carl Ruoff、Tom Binford 和Bernard Roth。 我还要感谢来自斯坦福大学、SILMA公司、Adept公司和其他地方的许多人,他们以各种方式对我提供了帮助,他们是John Mark Agosta、Mike Ali、Lynn Balling、Al Barr、Stephen Boyd、Chuck Bunkley、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 J奼er、 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。 斯坦福大学的Roth教授在给2002届的学生们讲授机器人课程时使用了本书第2版,并指出了许多错误,这些错误在第3版中做了修订。 *后,我还要感谢Prentice Hall出版社的Tom Robbins对第1版以及本版给予的指导帮助。 J. J. C