机器人操作中的力学原理(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-11 09:11:56

点击下载

作者:(美)马修T.梅森(Matthew T.Mason)

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

机器人操作中的力学原理

机器人操作中的力学原理试读:

前言

本书是为所有被操作的神秘魅力而吸引的读者所写。从其广义形式来看,“操作”是指我们周边世界里的各种物理变化:移动物体,使用焊接、胶合或紧固等方式来连接两个或多个物体,使用切割、研磨或弯曲等方式改变物体的形状以及其他各种过程。然而,与绝大部分涉及操作研究的书刊一样,本书仅解决上述各种操作中的第一种方式:移动物体。即使在这一限制条件下,我们仍有许多不同的过程需要考虑:抓取(grasping)、携带(carrying)、推动(pushing)、丢放(dropping)、投掷(throwing)、击打(striking)以及其他过程。

同样,我们仅解决机器人操作中的问题,而忽略人类或其他动物的操作(除了从中获取某些灵感以及偶尔的哲学思考之外)。但是“机器人”操作不应被限制得过于狭隘——或许“机器操作”是一个更好的表述。我们将涵盖任何形式的机器操作,从门挡(门塞)到自动化工厂。

本书借鉴了两个领域的内容:经典力学和经典规划。本书大部分内容致力于经典力学及其在操作过程中的应用。为了深入理解操作过程,我们需要从一个不同寻常的视角来审视经典力学,这将驱使我们解决一些在其他书籍中没有解决过的特殊问题。

本书的第二部分内容是经典规划。我们将使用基于状态空间的方法,即利用可能动作行为的显式模型使规划算法能够搜索各种序列,从而获得一个令人满意的解答。这方面有两个难点亟待解决。第一,经典力学的结果通常对应于连续状态空间,而非更适合于搜索算法的离散状态空间。第二,机器人通常无法获取完美的信息,并且机器人也许无法获知任务的实际状态。有时,规划算法需要能够处理机器人所预测的任务状态和实际状态之间的差异。这两个因素——高维的连续状态空间以及不确定性均增加了操作规划的复杂度。

本书与以往大多数书籍的不同之处在于侧重于操作(过程)本身而非机械臂。这种对过程本身而非对设备的侧重,是一种更为基本的方法策略,所以其结果可以适用于更为广泛的设备,而不仅仅是机器人手臂。操作的真正问题在于如何移动物体,而不是如何移动手臂。对于操作这个问题,人类的解决方案是尽可能使用周围可以利用的资源,比如使用适宜的平面以便对齐物体,敲击或晃动不方便抓取的物体,使用廉价的物体作为工具来进行捅或推等操作。当人类使用自己的双手进行操作时,最容易观察到这种能力,不过这种能力在人类编程控制机器人手臂时也体现得相当明显。旨在解释操作的任何可信尝试都必须能够处理各种不同的操作技法。

在机器人中,任何理论在达到某种成熟程度之后,都应该经得起检验。如果一个理论是完备的、建设性的,我们可以结合此理论建造一个机器人,而后通过相关实验来验证该理论的正确性以及有效范围。从原则上讲,结合经典力学和经典规划来建造机器人是个相对简单的任务。我们所建造的机器人系统中包含任务的计算模型,其中包括场景中对象的形状以及其他相关物理参数。采用经典力学,机器人还能够预测它想要执行的各种行为可能造成的对应结果。如果给机器人指定一些目标,它可以模拟各种动作序列,从中搜索出一个规划以实现指定目标。

这样的机器人是极端理性主义的——它严格遵循牛顿(亚里士多德或其他)力学,并且基于第一性原理来推导出能够满足其目标的动作模式。它是理论和实验之间近似完美的结合。为了解决理论问题,我们可以按照力学模型和搜索算法来设计机器人,从而得到一个可以接受理论验证的正式实体。我们可以根据机器人的表现证明与之相关的理论,我们也有规则的显式假说来评价其正确性。为了解决实验问题,我们可以将设计思路赋予实践,从而得到一个可通过实验检测的物理系统。当理论和实验相对应时,我们可以证明理论的有效性及其在实施中的高保真度。当理论和实验无法对应时,这提示我们需要对理论或实施方案进行合理的修正。

或许更重要的是此种方法在建立有效的建设性理论方面所具有的价值。有时候,“应该可行”的理论和“实际有效”的理论之间存在着巨大差异。如何减少这种差异是推进该领域前进以解决重要问题的一个重要动力。

我们应该试图建立什么样的理论呢?会不会有一个简洁的解决方案——能够使我们建造具有类人行为能力的机器人的一些简单想法?相关的工程实践表明此法并不可行,没人期望一个简洁的理论就可以解决如何建造汽车或火箭这样复杂的问题。只有依赖大量的科学和工程方面的成果,我们才能够建造十分复杂的人造物体。而可以与人类相提并论的机器人,它将比人们先前建造的任何东西都更为复杂。本书并不想提出解决方案,亦不想提出解决方案的大纲。相反,本书试图勾勒出一条科学探究的具体线路,从而使我们有希望解决机器人操作中的某些核心问题。

本书起初是作为“操作的力学原理”(Mechanics of Manipulation)这一研究生课程的课堂笔记使用的,该课程是卡内基梅隆大学机器人博士项目培养计划的一部分。选修本课程的学生来自不同的背景,但他们大部分都有工程、科学或数学方向的本科学位。偶尔会有高年级的本科生选修本课程,大多数学生表现还不错。在选修本课之前,大多数但并非全部学生已经修过一门有关机器人运动学、动力学和控制的课程。学期项目是本课程的一个重要组成部分,每个学生(有时组成小队)都将选择和探索一个操作问题,可选题目包括用卡片建造房屋、挥鞭子、扔飞盘、建造具有最大悬垂的多米诺塔牌、弹响指、扔陀螺、玩悠悠球(yoyo)、求解球在杯中(ball-in-cup)游戏、不同形式的杂耍等。一个典型的学期项目可能会分析这些问题的简化版本,制作一个简单的规划系统,或者侧重于操作过程中某些定义明确的方面。在《科学美国人》(Scientific American)和《美国物理杂志》(American Journal of Physics)上或许能找到与上述问题相关的论文。某些学期项目解决更像样的操作问题,这些问题可以在《机器人研究国际期刊》(International Journal of Robotics Research)、《机器人及自动化国际会议》(Proceedings of the IEEE International Conference on Robotics and Automation)或者其他文献中找到参考。

为了照顾那些使用本书进行教学或者解决问题的学者,我在个人网页(http://www.cs.cmu.edu/~mason)上给出了本书中的插图,或许还有用于教学的附加资料或者习题解答。

我十分感谢我的导师和同事:Berthold Horn、Tomas Lozano-Pérez、Marc Raibert、Mike Erdmann、Randy Brost、Yu Wang、Ken Goldberg、Alan Christiansen、Kevin Lynch、Srinivas Akella、Wes Huang、Garth Zeglin、Devin Balkcom、Siddh Srinivasa、John Hollerbach、Russ Taylor、Ken Salisbury、Dan Koditschek、Bruce Donald、Illah Nourbakhsh、Ben Brown、Tom Mitchell、Dinesh Pai、Al Rizzi、Takeo Kanade以及Allen Newell(人工智能先驱,图灵奖获得者)。

一些研究同仁阅读了本书草稿、使用本书教学或是通过其他方式表达了协助和鼓励,包括Anil Rao、Howard Moraff、Carl Harris、Charlie Smith、Ian Walker、Mike McCarthy、Zexiang Li、Richard Voyles、Yan-Bin Jia、Terry Fong、Kristie Seymore、Elisha Sacks以及选修16-741课程《操作的力学原理》的学生们。Jean Harpley和Mark Moll帮助我准备了最终的手稿,Sean McBride绘制了本书第1章的插图。

感谢Mary、Timm和Kate的鼓励和付出。

感谢自然科学基金的资助(IRI-9114208、IRI-9318496、IIS-9900322和IIS-0082339)。

感谢我所借鉴和参考的每一位研究者。某些时候,他们的贡献远比文献和索引中所罗列的要大得多。第1章 操作

操作是指动手重新布置周围环境的过程。操作牵扯到很多方面。操作是一门艺术,因为我们每个人都可以实践,即使是在对操作过程没有任何系统性了解或缺乏基本了解的前提下。操作也是一门工程学科,这是因为存在一些系统性的工具使我们可以用机器人操作来解决各种问题。最后,操作也是一门科学,因为这个过程能够培养我们的好奇心,从而利用科学手段来进行探索。

操作可以通过多种不同的方式来完成。在本章的起始部分,我们将考虑两个操作系统的实例。据此,我们建立本书的研究主题——由一系列亟待探讨和解释的现象所组成的集合。本章的剩余部分,根据其底层力学机制的不同,我们对多样化的操作技术进行分类。在本章结尾处,我们会给出本书的提纲概要。1.1 实例1:人工操作

我们所举的第一个例子,其形式虽然类似于思维实验,但它源于我们日常生活中所熟悉的场景,如果感兴趣的话,读者可以亲自尝试图1-1中所示的过程。我们考虑扑克牌游戏中发牌者的一系列操作过程:把扑克牌集中起来,整理成整齐的一摞,然后洗牌和发牌,收手并进行整理。尽管任何试图对上述过程的精确分析最终都会变得十分困难,不过浅显的分析有时也会发人深省。发牌者首先将扑克牌围成一堆,然后通过挤压,同时将扑克牌堆在桌面上磕碰,直至形成整齐的一摞。最常见的洗牌方式是将这摞扑克牌分为两半,再把它们掰弯,然后将这两半摞扑克牌按顺序释放使得它们能够相互交错,最后通过挤压叩击,直至重新形成整齐的一摞扑克牌。

现在,发牌者的左手被塑造成一种机构,该机构依次递出已被隔离好的扑克牌,供右手抓取和抛掷。发牌者在抛掷扑克牌时,可以施加一定的旋转以稳定扑克牌的姿态。

现在,所有的玩家抓取并整理他们手中的扑克牌。他们通过抓取扑克牌并将其重新插入其他牌中,来排列和布置手中的扑克牌。再次挤压扑克牌使其变得整齐,然后使用有控制的滑移手法小心地将扑克牌展开。

上述过程中有几个特点耐人寻味。对于单张扑克牌的处理被保持在最低限度,除了在发牌时,有些扑克牌根本没有被当作个体而独立处理过。其次,没有任何一张扑克牌是以单独固定在胳膊和手上的方式,从一个静止位置移动到另一个位置。相反,在该过程中,发牌者使用了难以通过简单语言来描述的技巧,包括打扫(sweeping)、叩击(tapping)、挤压(squeezing)、抛掷(throwing)、有控制的滑移(controlled slip)以及其他一些技术。图1-1 熟练人工操作的一个例子:收集、校直、洗牌和发放扑克牌

上述过程需要玩家拥有相当程度的技能。小孩子要生疏很多,而且学习该技术需要花费时间进行大量练习。

上述技术对扑克牌和桌子的特性较为敏感。新牌因为太滑太硬而难以处理,脏的扑克牌却又太粘,此外,扑克牌的尺寸和硬度要高度一致。对于采用普通手写纸进行人工切割而制成的扑克牌,在发牌时需要使用十分不同的手法来进行处理。

从某些方面来讲,发牌操作中具有很强的传感器驱动,比如当转动一叠扑克牌中还没对齐的牌或是聚拢散落在桌面上的扑克牌时。不过,有时候传感器发挥的作用则很小。例如,在最后整理这摞牌时,发牌者不需要使用视觉来辨认还没被对齐的扑克牌。相反,通过挤压和对着桌面叩击即可完成对扑克牌的整理,此时,玩家并不需要(使用视觉来)辨别它们。

上述过程中有两件事情尤其值得关注:一个是操作中所体现的效率和技能,另一个则是适应性。虽然装置中的变化可能会极大地影响效率,但人类能够适应这些变换,退而使用更加保守的技术。1.2 实例2:一种自动装配系统

我们举的第二个例子是如图1-2中所示的自动装配线,其中集成了工业机器臂以及各种用来运输、定向以及给机器人供给零件的设备。虽然我们以索尼的SMART系统作为例子,但是该系统中的基本元素与其他很多工业系统是相通的。图1-2 索尼的SMART系统

索尼的SMART系统需要解决的问题是:组装小型的消费电子机械产品,如磁带录音机或照相机。装配在一个工作夹具上进行。该夹具用于夹持设备,并将其从一个工作站准确地运送到下一个工作站。在每个工作站,机器人会进行一系列相应的操作。为了尽量减少工作站的数量,每个机器人装备有多达6个不同的末端执行器,所有这些执行器都被安装在一个转塔刀架(也称转塔头,turret head)上。因此,通过需求来选择合适的末端执行器,每个机器人便可以执行6个或更多不同步骤的操作。

各个部件通过托盘上料供给机器人。每个托盘都有窝(nest)阵列,其中的每个窝可以容纳单个部件,并且这些部件处于适合机械手抓取的方向上。这些托盘依次被输送到另一个传送带系统,该传送带系统可以根据需要从库存中取出一个托盘,并将该托盘输送到有需求的机器人处。

这些托盘上的部件填装则由一个APOS机器来完成。该机器将托盘托起一个微小的倾斜角度,并将部件铲送到托盘上。然后,机器振动托盘从而使部件沿托盘平面滑下,其中有些零件落入托盘窝中,其余部件则落入一个溢流桶(overflow bin)中。通过合理设计托盘窝形状以及振动方式,可以使部件只能静止地停留在期望方向上。在一段预定时间之后,托盘会填满已定向的部件。然后APOS机器将托盘卸下并将其传送到机器人处或者储存库中。

通过优化最终产品的设计可以简化组装程序,这被称为面向装配的设计(design for assembly)。具体来讲,产品被设计成如下形式:每次只组装一个部件,并且几乎所有的装配动作都在垂直方向上进行。其次,部件被设计得易为处理。例如,可以用具有复杂形状的单个塑料零件来同时替换几个形状较为简单的零件,还可用部件的柔性单元来替代弹簧。最后,可以通过合理的部件设计来降低进料和定向时的难度,同时也可降低装配时的难度,使得相匹配的特征实际上可引导装配到位。

类似地,末端执行器和托盘窝用来加快装配过程。实际上,经过一些反思我们可知:这一过程中充满了组装操作。各部件的定向可以通过其与托盘窝的装配来完成。每个部件的抓取可以通过将该部件装配在机械手爪上而完成。而将部件与组装中的工件装配在一起,实际上是该过程中的第三个装配步骤。

在该系统中,形状之间的相互作用占据主导地位。其中的关键步骤是:1)通过部件与APOS系统中托盘窝的相互作用来实现部件定位;2)通过将特殊用途的执行器与部件上的特征元素进行配对来实现部件抓取;3)部件安装,其中可能会涉及部件与组装中的工件之间的相互作用。在上述过程中,传感器的作用虽小但很重要,它使得机器人可以检测到无效抓取(grasp failure),并通过继续抓取托盘中的下一个部件来继续该装配过程。上述过程中,机械臂工作在最简单的状态,它被当作用来完成拾取及放置(pick and place)操作的一个装置。1.3 操作中亟待解决的问题

人工扑克牌游戏和自动化工厂这两个例子之间存在着显著差异。人类具有成千上万个传感器和执行器,还有将它们协调起来用于处理当前任务的智能。单个机器人只有很少的传感器和执行器,并且缺乏在没有人工帮助的前提下将这些传感器和执行器用于处理新任务所需的智能。即使我们将工厂(拥有成百上千的传感器和执行器)作为一个整体来考虑,人们仍然是相对于单个任务或密切相关的一组任务,来对这些传感器和执行器进行配置和编程。

但是,我们可以透过这些差异,而专注于这两个系统所做出的决策。其中有些决策是在线的:快速做出决策并立即执行,或许仅利用刚获得的信息。有些决策则是离线的:从实践中学到的技术可以不经重新发明而直接使用。还有一些决策也可认为是离线的:设计时所做出的决策,例如使用多少个手指、如何配置传感器等。

当我们将注意力专注于决策时,会看到前一小节中两个系统之间的主要区别:人类在做出在线决策方面具有极为强大的能力。相比之下,机器人系统则很少做出在线决策。其动作中的唯一变化要么是由于检测到错误条件而引发的,要么是根据特定托盘的到达而做出的。其他的所有决策,则是系统设计人员在设计和编程期间通过离线方式做出的。对于人类,很难判断一项决策是通过在线方式还是离线方式而做出的。可以确定的是:相比于工厂系统,人类会做出更多的在线决策。但是人类系统仍涉及很多离线决策,这一点毋庸置疑。至少,良好技能的养成需要长期实践,其中包括长时间的决策训练。当然,人类系统中更基本的方面则是随物种演化而来的。

尽管人类与机器人在决策的时间(time)方面有很大区别,但在决策的其他方面则非常相似:如何配置传感器、执行器和机械结构;如何将传感信息和执行器的神经支配(actuator innervation)组织和协调起来;使用什么样的形状、运动和力来产生所需结果。我们要研究的操作理论应该提供一种能够为解决操作问题而做出这些决策的方法,不论决策是离线还是在线的。

那么,什么才是必须要解决的操作问题呢?操作系统的一些特性是由该问题的固有特性所决定的,并且这些特性是所有能够解决该问题的方案所共有的。这一观察结果可用于指导我们的研究,帮助我们脱离任何特定技术细节的羁绊,而将重点放在与操作相关的基础现象和方法上。前一小节中的两个实例提出了一些相当基本的问题,我们可将它们作为一般操作的代表。例如:

·证明一个物体或一组物体处于稳定位形。例如,当机器人在放入下一个零件时,组装的各个阶段必须是稳定的。

·证明一个物体并非处于稳态位形。我们可以通过寻找一组手指运动,它能够使得所有不满足放置要求的扑克牌都是不稳定的,从而设计出一种对齐扑克牌的策略。类似地,APOS系统托盘窝的设计应该具有同样的性质,即所有不满足放置要求的部件都是不稳定的。

·给定一个固定物体、一个移动物体以及所施加的力,证明该移动物体可以局部收敛到相对于该固定物体的某个特定位置。例如,这种方法可用于分析手爪以可预测的方式抓取特定物体的能力。

·给定一个固定物体和一个移动物体,设计一种振动方式,使得移动物体能够全局收敛到相对于该固定物体的某个特定位置。

·构建一种投掷动作来准确地递送一个物体,并尽量减少碰撞后物体的能量。这可能是生成投掷扑克牌动作同时满足牌面朝上这一额外约束的一种好方法。

此类问题处于力学(mechanics)和规划(planning)之间,并且可以表述为分析型(analysis)问题或综合型(synthesis)问题[1]。当把这类问题作为分析形式表述时,我们得到一个力学问题。不幸的是,对于许多诸如此类的问题,我们还没有一个通用的解决方案,特别是当用于解答的信息受到限制的时候。当把这类问题作为综合形式表述时,我们得到一个规划问题。这样做使我们可以做出一些选择来限制问题的范围,从而有可能得出解决方案。

我们将“机器人如何将目标转化为行动”这一问题作为压倒一切的问题。为了稍微缩小范围,我们假定机器人要完成一些既定目标,这通常需要重新布置其周围的物体。我们不必担心更高层次的问题,例如机器人如何将更高层次的目标(如利润)转为低层次的目标(如抓取扳手)。

[1] 分析和综合是哲学家康德引入的逻辑思维的两种方式,指在认识中把整体分解为部分和把部分重新结合为整体的过程和方法。分析是把事物分解为各个部分、侧面、属性,分别加以研究。综合是把事物各个部分、侧面、属性按内在联系有机地统一为整体,以掌握事物的本质和规律。——译者注1.4 操作技术的分类

我们将专注于一种被称为分析型操作(analytical manipulation)的方法。为了决定要做什么,机器人需要使用任务力学(task mechanics)的分析模型。在尝试某动作之前,机器人可以使用该模型来预测行动的后果。我们没有根据物理结构或者计算架构来对机器人进行分类,而是根据它们的任务力学模型来对机器人进行分类。因此,我们可以得到下述分类:牛顿型(Newtonian)机器人,它使用牛顿定律来推导得出其运动;亚里士多德型(Aristotelian)机器人,该型机器人认为物体只有在受到某些物体的推动时才能够运动。我们还可以得出一个经验型(empirical)机器人,这种机器人使用基于观察而建立的模型,而非基于公理系统的模型。

我们在这里将要探讨的所有机器人都是牛顿型机器人的变种,虽然其中的一些也可看作是亚里士多德型机器人。所有这些机器人都是依据经典力学中我们熟悉的技术而做出决策。经典力学通常按照下述顺序而讲述:起初是运动学,然后是静力学,最后是动力学。我们可以使用同样的顺序来建立一个关于操作技术的分层结构(hierarchy):

·运动学操作(kinematic manipulation)。可以单独由运动学而推出的一个动作或动作序列。例如,如果任务规范是末端执行器的特定运动,那么机械臂结构的运动可以通过运动学而得到确定。

·静态操作(static manipulation)。可以根据静力学和运动学而推出的一个动作或动作序列。例如,为了将一个物体放置在桌子上,有必要确定该物体一个稳定的静止姿态(静力学),同时有必要确定将该物体移动到目标位置所需的运动(运动学)。

·准静态操作(quasistatic manipulation)。在该操作任务中,与惯性力相比,摩擦力和冲击力通常占据主导地位。忽略惯性力而进行的分析,通常被称为准静力学分析(quasistatic analysis,也称准静态分析)。例如,通过挤压而整理一副扑克牌时,作用在扑克牌上的惯性力可以忽略。

·动态操作(dynamic manipulation)。最后,当惯性力成为操作过程中的一个重要组成部分时,我们便有了动态操作。例如,投掷扑克牌使其合理着地且不翻转,这取决于纸牌的惯性性质。

在使用这种分类方法时需要留心。这种分类方法指的是动作是如何导出的,而不是指动作本身。而且在大多数情况下,我们并不知道动作是如何导出的,这是因为推导过程是在人脑中进行的。这种分类方法实际上比较主观,它取决于观察者自己采用的操作模型。

我们主要用这种分类方法来组织本书。我们可以按照从运动学到动力学这一传统进展思路,抱着理解操作过程这一目的来探索其中的力学原理。本书的起始部分为运动学(第2章和第3章),紧接着是运动学操作。然后是静力学章节、摩擦力章节和紧随其后的准静态操作章节。最后是动力学章节、刚体碰撞章节和动态操作章节。1.5 文献注释

要想对操作以及人手的作用有深入理解,阅读文献(Bronowski,1976)是必不可少的。此外,我们强烈推荐(Napier,1993)和(Wilson,1998)这两篇文献。

尽管人类的操作技能看起来是最强的,但是许多动物也都拥有给人留下深刻印象的操作技能。(Savage-Rumbaugh和Lewin,1994)给出了猿和人类之间的一些有趣对比。(Collias和Collias,1984)给出了关于鸟类筑巢的一个非常有意义的描述。

文献(Fujimori,1990)描述了索尼的SMART系统。操作的分类由Kevin Lynch和Matt Mason(本书作者)于1993年首先提出。对于自动装配的更广泛的处理可参见文献(Boothroyd,1992)。习题

1.1:操作技术的分类是指机器人的任务力学(task mechanics)模型。机器人必须要有任务力学模型吗?蚂蚁有任务力学模型吗?构建对这一问题的正反两方论点。

1.2:假设给你一个机器人,你想知道它是否使用“分析型操作”。允许你对该机器人进行任何实验,包括将它拆开等。你如何判断该机器人是否属于分析型?

1.3:你使用“分析型操作”或“经验型操作”吗?两者兼而有之或两者都不使用?也许有时候使用其中一个,有时候使用另一个?对于进化过程,考虑经验如何在大脑中编码和访问,以及如何使用过去的经验来处理眼下的问题。

1.4:分析诸如打牌之类的操作任务。确认操作中的不同阶段,并且对于其中的每个阶段描述其机械过程、控制及决策过程、执行动作所需的信息以及信息源。第2章 运动学

运动学是指对运动的研究,其中并不考虑引起运动的原因。我们有很多理由以运动学作为开始。首先,操作通常旨在将物体移来移去,因此运动学原理几乎与任何操作过程都是相关的。其次,许多操作过程在本质上完全是运动学式的,这些过程在第1章中被称作运动学操作,我们将在第4章对其进行研究。最后,运动学也是经典力学处理中传统的第一步,它在这里也起同样的作用。

本章中对于运动学的处理,与常用的处理方法有所不同,这是因为我们的目标是理解操作过程。本章将介绍刚体运动的基本原理,同时通过将这些原理用于操作来对其进行说明和诱导。对于本章中的很多概念,例如移动和转动,你可能已经很熟悉了。我们的目标是使用更精确的基础知识,来增强你的工作认识。但我们并不追求完备严谨,因为这可能会不必要地模糊和混淆对于重要概念的理解这一目标。2.1 基础知识

在将精力专注于刚体之前,我们离题来简要考虑更广义的系统。我们将系统(system)考虑为处于某背景(ambient)空间中的一个2点集。该背景空间对于平面运动学来讲是二维欧氏平面E,对于空3间运动学来讲是三维欧氏空间E,对于球面运动学来讲是一个球体2的表面S。在一般情况下,每个点可以做独立运动。那么,一般情232况下,令X表示背景空间——E、E或S。

定义2.1:一个系统(system)是空间X中的一个点集。

定义2.2:一个系统的位形(configuration)是指系统中各点的位置。

定义2.3:位形空间(configuration space)是由给定系统的全部位形组成的一个度量空间。

对于全部位形组成的空间来讲,我们如何知道其中是否存在一个度量?我们可以通过如下方式在任何系统的位形空间上定义一个度量:在系统中选择一些点{x},然后将两个位形之间的距离d(D,D)i12定义为两点之间的最大距离,即d(D,D)=max{d(D(x),121iD(x))}。但是请注意,该度量涉及关于x的任意选择。事实上,2ii对于我们接下来将要考虑的很多位形空间,特别是刚体的位形空间,每一个度量都会涉及任意选择。

定义2.4:一个系统的自由度(degrees of freedom)是指其位形空间的维度。(一个不太精确但大致相当的定义是:用于确定一个位形所需的最少实数数目)。

现在我们将目光转移到刚体以及刚体运动的概念上。

定义2.5:位移(displacement)是指位形的变化,该变化并不会改变系统中任意两点之间的距离,也不会改变系统的手性。(我们使用“手性”(handedness)这一术语,而非“方向”(orientation)这一常用术语。)

定义2.6:刚体(rigid body)是指仅会产生位移的一个系统。

均匀地改变物体大小的变换称为缩放变换(scale transformation),或称为扩张(dilation)。改变物体手性的变换被称为反射(reflection)。图2-1 刚体变换和其他变换

为方便起见,考虑作用于空间中所有点上的一个位移,而不仅仅是作用于某些刚体上的点的位移。例如,考虑平面中可做刚性运动的一个三角形(如图2-2)。我们可以想象该三角形被绘制在一个运动平面(moving plane)上,我们将参考基准平面当作固定平面(fixed plane)。三角形的任何运动决定了整个运动平面的运动。因此,我们可以谈论任意一点的运动,而对于该点实际上是否属于物体的一部分并无所谓。此外,我们可以研究平面的位移,并将其作为研究平面中任何刚体的位移的一种方法。

定义2.7:转动(也称旋转,rotation)是指具有至少一个固定点的位移。

对以下两个相似概念加以区分特别重要:关于某些给定点(诸如原点或质心)的旋转,以及关于某个未确定点的旋转。对于一般的旋转,固定点可以处于空间中的任何地方。图2-2 运动平面和固定平面

定义2.8:平移(translation)是所有点沿平行线移动相同距离的一个位移。

有时候,在对位移的讨论中使用代数概念和表示方法会很方便。每个位移都可被描述为在基础空间中的一个操作符,它将每个点x映射到某个新的点D(x)=x'。两个位移的积对应操作符的组合叠加,即。一个位移的逆即是将每个点映射回其原始位置的一个操作符。其中的恒等元素(identity)便是空位移,它将每个点映射到自身。这些结果可以概括如下:

定理2.1:带有函数组合(functional composition)的位移,构成[1]一个群(group)。

这些群有自己的名字。对于欧氏空间,我们有特殊欧式群(special Euclidean groups)SE(2)和SE(3);对于球,我们有特殊正交群(special orthogonal group)SO(3)。“特殊”是指这些群能保持左右手性不变,“正交”是指这些群与正交矩阵之间的联系,这将在第3章中讲解。图2-3 不同的旋转中心

下一个问题是“位移是否服从交换律?”也就是说,对于任意两个位移D和D来讲,D(D(.))=D(D(.))这一关系是否成122112立?答案是否定的。图2-4给出了一个反例——两个空间旋转以不同顺序叠加组合时会得到不同的结果。图2-4 空间旋转一般情况下并不服从交换律

有多种不同的方法用来描述位移,但最常用的方法是将位移分解成旋转加平移。23

定理2.2:对于欧氏空间E或E中的任何位移D以及任意一点O,该位移D均可表述为一个平移和一个关于点O的旋转的叠加。

注:定理2.2是最常见位移表示方式的基础;该分解并不唯一,它取决于点O的选取。另外,该定理备注中的另一种方案有错误:改变分解的顺序会得到相同的平移外加不同的旋转,即,这里R和S指代不同的旋转。正确的表述应该是:改变分解的顺序会得到相同的旋转外加不同的平移,即,这里T和U通常指代不同的平移,这是因为平面位移并不满足交换律。详细解释实例请参照作者给出的勘误表和电子教案。——译者注

证明:令为O'点O经过位移映射D后所对应的象。令T表示从点O-1到点O'的平移,令T表示它的逆。那么,位移组合将使点O保持不动,因此它是一个旋转,记为R。那么,即为期望的分解。另外一种方案是我们可以定义一个旋转。因此,有两种方法可将D分解为旋转加平移:或者。

从很多方面来讲,将位移分解为旋转加平移这种操作是描述位移的一个好方法,但要注意它并不是一个规范(canonical)描述——这种分解取决于参考点O。

推论2.1:给定任意一点O,任何微分运动或速度都可被分解为一个平移部分以及一个关于点O的旋转部分。

[1] 群是指一个集合以及定义该集合上的一个二元运算,该运算需要满足封闭性、结合律、单位元和逆元这些群公理条件。如果我们可以证明某数学构造是一个群,我们便可对其进行代数运算。群并不需要满足交换律,满足交换律的群被称为阿贝尔群。——译者注2.2 平面运动学

为了进一步探索基本的运动学,我们必须将潜在的背景空间分开来考虑。本节重点介绍平面运动学。主要议题是如何将旋转和平移这些特殊情况与一般位移联系起来。定理2.2表明,任何位移都可被描述为平移和旋转的叠加。但是对于平面运动,我们可以走得更远——任何一个位移都可被描述为单个平移或单个旋转。事实上,如果我们在数学方面使用小的便利,平移可被看作是关于无穷远处的点的旋转,那么每一个平面位移都可被看作是一个旋转。首先,我们必须制定出一些关于平面中位移、旋转和平移的基本属性(注:我们为3什么关注平面运动学?平面运动在三维欧氏空间E中非常常见,很多手爪和连杆机构使用平面运动,在平整地面中的多数移动机器人也使用平面运动。所有的空间运动可以分解为包含平面运动的多个元素,空间旋转与平面运动紧密相关。——译者注)。

定理2.3:一个平面位移可以由任意两点的运动来完全确定。

证明:如果平面中每个点的运动都是确定的,一个平面位移可以被完全确定。给定两个点的运动,将其中的一个点选作原点,另一点处于x轴的正方向,选择y轴来组成一个右手坐标系。那么,这两点的运动决定了该坐标系的运动。给定平面上任何其他点P的坐标,我们可以使用坐标系来构建它所对应的象P'。

回想一下,任意一个位移可被分解为旋转和平移的组合乘积(定理2.2)。不幸的是,该分解依赖于参考点的选择,所以它不是一个规范描述。我们将要介绍的下一个结果给出了一种描述平面运动学的方法,通常具有更好的效果。

定理2.4:任何一个平面位移要么是平移,要么是旋转。

证明:令D表示一个任意平面位移,令A表示平面中的任意一点,令A'表示A经过操作D之后所对应的象。如果A=A',那么根据定义,D是一个旋转。因此我们从今以后假设A'与A不同。令B表示线段AA'的中点,令B'表示B的象。

如果B'与A、A'以及B共线,那么B'只有两种选择能够使其到A'的距离保持不变。其中一个选项是B固定,这将给出一个旋转结果。另一个选项给出了一个与向量AA'对应的平移。

剩下的唯一一种情况是B被映射到一个不同的B'点,如图2-5所示,B'并不处于穿过A、B和A'的直线上。在点B处构造一个垂直于AB的垂线,在B'处构造一个垂直于A'B'的垂线。这两条垂线并不平行,这是因为AB和A'B'不平行。令M表示两条垂线的交点。我们将证明M是固定的。考虑如下位移,它将A映射到A',同时将M映射到自身。这个位移将会把B映射到哪里呢?由于它必须要保持与A和M之间的距离不变,我们可以通过相交的圆确定两个候选项。其中一个候选项是B自身,由于它对应恒等元素所以将其排除。另一个候选项是B'。这便证明了我们“关于M的旋转便是原始位移D”这一假设。图2-5 构造定理2.4的证明

平面旋转中的固定点可以很容易从A和B这两个点的运动中构造出来。我们构造AA'和BB'的垂直平分线,并令它们相交。图2-6a展示出了一般情形,即两条垂直平分线之间只有单个交点。我们还必须考虑其他两种可能性。如果两条垂直平分线重合,在使用任意不与A和B共线的点替代A或B之后,我们必须重复构造过程。最后一种情况是平移,此时两条垂直平分线平行,我们可以把这种情况当作绕无穷远点的旋转来处理(附录A中给出了关于无穷远点的简单介绍)。因此,我们重述定理2.4如下:

每个平面位移都是关于投影平面中一点的旋转。图2-6 构建旋转中心和瞬时中心的一般情况

推论2.2:将其推广到微分运动(即速度),每个平面速度都是关于投影平面内一个中心点的角速度。为了构建该中心点,我们画出dA和dB的垂线,并令它们相交。

这些结果引出了一些术语,对这些术语的使用并没有严格的约定。旋转中心(rotation center)和旋转极点(rotation pole)通常是对有限旋转而言;瞬心(Instantaneous Center,IC)、速度中心(velocity center)和速度极点(velocity pole)则是对速度而言相关的。

瞬心极迹

在此之前,我们都将注意力集中在单个位移上。现在我们考虑连续的运动,即对于一个物体,其位形按照一个关于时间的连续函数而变化。当将一个运动相对于时间参数化,我们使用轨迹(trajectory)这一术语,它可用位形空间中的一条曲线q(t)来描述。在本节中,我们将忽略时间因素,而考虑运动的路径(path),它可通过位形空间中的一条曲线q(s)来描述,这一参数化可被视为是任意的。

主要结果是:任何平面运动的路径都可通过平面内的两条曲线来描述,这些曲线被称为瞬心极迹(centrode)。其中的一条曲线,被称为运动瞬心极迹,它沿着另一条被称为固定瞬心极迹的曲线做无滑动的纯滚动。瞬心极迹提供了一种对平面运动的规范描述,它还有容易理解的优点。

固定瞬心极迹是指旋转极点在固定平面内的轨迹图(locus)。运动瞬心极迹则是指旋转极点在运动平面内的轨迹图。有一点很明确:随着运动瞬心极迹在固定瞬心极迹上做无滑动的纯滚动,两条曲线的接触点即为瞬心。

使用手绘方法构建瞬心极迹,其主要难点在于在运动平面内绘制一系列中心点。最简单的方法是先建立固定瞬心极迹,然后使用透明塑料片作为运动平面,在此运动平面内绘制中心点,这样我们便可再现问题中的运动。

我们将采用图2-7中的平面四杆机构来说明这种方法。每个四杆机构包括:一个固定连杆;另外两个连杆,其运动是围绕固定点的旋转或沿固定轴线的平移;以及第四个连杆——耦合连杆(coupler link),其运动相当复杂。在给定的任何瞬间时刻,根据A和B这两点的运动所受到的约束,我们可以描述作用在耦合连杆上的约束。耦合连杆的转动中心(瞬心)必须处于dA的垂线上,同时该转动中心还必须处于dB的垂线上。这样可以完全确定耦合连杆的瞬心,除非该连杆机构的运动此时正在通过某些退化(degenerate)位形。图2-7 构建两个四杆机构的瞬心

该方法可总结如下:

1)将约束还原为点-速度约束。

2)在各点处构建垂直于允许速度的垂线。

3)如果所有垂线有一个共同的交点,那么该点即为瞬心。如果所有垂线平行,我们假设交点(瞬心)处于无限远处。如果存在三个或更多的垂线,那么可能并不存在交点,这意味着所有运动都不可行。

通过对一个机构的几种位形重复进行上述分析,我们便可构建固定瞬心极迹和运动瞬心极迹。图2-8中展示出了关于瞬心极迹的例子,这些瞬心极迹对应于图2-7中四杆机构的耦合连杆的运动。这是一个特别有意思的机构:两个瞬心极迹是圆形的,处于耦合连杆中心线上的点扫描出了椭圆形轨迹,耦合连杆的运动扫描出了一个星形线(astroid)。图2-8 构建固定瞬心极迹和运动瞬心极迹[1]图2-9 一个假的瞬心:任何刚体运动都不可行

不过需要指出,这种方法的确有其局限性。该方法会识别出所有可行的瞬心,但它也可能识别出一个并不可行的中心——产生一个假阳性结果(false positive)。图2-9展示出了一个固定的五杆机构,[2]在我们的一阶分析中它似乎存在一个旋转中心。

[1] 图中的五杆机构中的耦合连杆是一个三角形,它通过另外三个连杆与固定连杆相连。在该机构内,任何形式的刚体运动都不可行。因而,上述分析方法给出了一个假阳性结果。——译者注

[2] 更多关于平面运动机构以及瞬心极迹的动画实例,参见作者电子教案第3讲。——译者注2.3 球面运动学

球面运动学是指在一个球面上所有可能的运动。我们为什么要关心此类运动呢?让我们回想一下旋转的定义:其中具有一个固定点的位移。对于三维空间,这等同于一个球面上的所有可能运动,其中球心为固定点。传统上,这被称为球面运动学,但是我们更倾向于使用另一种名称,即空间旋转运动学(spatial rotation kinematics)。

球面运动学与平面运动学之间有着令人惊异的密切关系。如果我们将平面看作球面,其半径可达到无穷大,那么平面运动学类似与球面运动学。因此,本节中的结果类似于前一小节中的结果。

定理2.5:给定球面上的两个点,如果它们不是对极点(antipodal),那么球面上的位移可以通过这两点的运动而完全确定。

证明:与平面情形类似,我们使用两个点来定义一个坐标系,从而使任意一点的运动可以通过使用其坐标而确定。

定理2.6(欧拉定理):对于每个空间旋转,存在一条由固定点组成的直线。换言之,关于一点的任何旋转都是关于一条直线的旋转,该直线被称为旋转轴线(rotation axis)。图2-10 构建欧拉定理的证明

证明:我们将证明,对于任何一个球面位移而言,其在球面上永远存在一个固定点,由此便可证明上述定理。令O表示球面的球心,D为球面上的一个给定位移。令A为球面上的一点,A'为其在D映射下的象。如果A=A',那么我们便可得到想要的固定点,因此我们只考虑A不同于A'这种情形。令⊥AA'表示球面上与A和A'等距的大圆,令B为⊥AA'上的任意一点,B'为其在D映射下的象。如果B=B',那么我们再次得到固定点,因此我们只考虑B和B'不同这种情形。定义⊥BB'为球面上与B和B'等距的大圆。大圆⊥AA'与大圆⊥BB'不同,这是因为B∈⊥AA'、并且。因此,它们相交于两个对极点。令C表示其中任何一个对极点。

令R表示一个旋转,它将A映射到A',同时将C映射到自身。如果我们能够证明R能将B映射到B',那么D=R,证明结束。

为了确定R(B),我们求解满足“刚体上任意两点间的距离在位移中保持不变”这一性质的所有点。这些点与C之间的距离必须正好为|BC|,同时距离A'正好为|BA|。这两个约束正好各自定义了一个圆,其中一个圆以C为圆心,而另一个圆则以A'为圆心。由于圆心A'和C并不重合,它们亦非对极点,因此这两个圆的交点最多只有两个。根据圆的构建过程,B与C之间的距离正好。那么,根据在⊥BB'上构建C的过程,B'与C之间的距离也正好。类似的,根据在⊥AA'上构建B的过程,我们还可以得知B与A'之间的距离也正好。最后,B'与A'之间的距离也正好,这是因为A'B'是AB在位移映射D作用下的象。

因此,要么有R(B)=B,要么有R(B)=B'。前者可以被排除,因为这将意味着R是空位移(不发生任何位移)。由于R(A)=A'≠A,所以这种情形不可能发生。我们得到R(B)=B'这一结论,因此,关于固定点C的旋转R等同于给定位移D。

这表明,球面运动具有一个固定点。由于球心也是固定的,那么每个空间旋转有两个固定点。通过这两点的直线即是所期望的转轴。容易推导得出转轴上的每个点都是固定的。

上述构造中的M点类似于平面位移中的旋转中心,我们对欧拉定理(注:欧拉定理中的旋转轴线仅是一个巧合,这是因为我们生活在324三维空间E中。而在二维空间E和四维空间E中并不存在单个旋转n轴线。对于广义空间E而言,其中的每个旋转位移通常都是相对于一对轴线(a pair of axes)而言。——译者注)的证明类似于平面位移情形中对旋转中心存在性(定理2.4)的证明。

由于球面运动学类似于平面运动学,我们应该寻找与固定瞬心极迹和运动瞬心极迹相类似的东西。如图2-11所示,任何一个球面运动都等效于以下情况:一个运动锥面在一个固定锥面上做无滑动的纯滚动,其中,这两个锥面具有共同顶点。图2-11 任何球面运动都等同于一个移动锥面在一个固定锥面上做无滑动的纯滚动[1]2.4 空间运动学

我们现在考虑空间中的任意位移。回想一下:与平面情形类似,我们可以将位移描述为旋转与平移的叠加。这为我们提供了一种适用于空间位移的描述,但它并非一种规范描述,因为这种方法取决于参考点的选取。对于平面位移,通过使用旋转中心,我们找到了一种规范描述。同样的情况对于空间位移能否实现?不幸的是,并非所有的空间位移都是旋转。作为例子,考虑图2-12中所示的旋量位移(也称螺旋位移,screw displacement):绕空间中的某条轴线旋转,同时沿该条轴线平移。对于一般的螺旋运动,并不存在一个固定点,甚至在无穷远处也不存在固定点。处于旋量轴(screw axis)上的点沿着轴线运动,不在轴线上的点则沿螺旋线(helix)运动。由于没有固定点,所以旋量位移并不属于旋转。

不过,下一个定理将表明:所有的空间位移都属于旋量位移,并且旋量位移为空间位移提供了一种近似规范的几何描述。图2-12 旋量位移把具有共同轴线的平移和旋转叠加在一起

定理2.7(CHASLES定理):每个空间位移都是由关于某条轴线的旋转以及沿同一轴线的平移叠加而构成的。

证明:令D表示任意一个空间位移,使用定理2.2将其分解为旋转R和平移T——。现在将平移T分解为两个分量和,它们分别垂直和平行于R的转轴。因此,我们现在可以得到下列分解形式。现在是一个平面运动,因此它等效于关于一条轴线的某个旋转S,其旋转轴线平行于R的转轴。由此我们得到下列分解形式。该分解即可完成证明,这是因为我们可以选取S的旋转轴线作为的轴线。

上述证明过程表明:旋量轴有时可能在无限远处,如果我们喜欢的话,可以接受这种螺旋旋量,但这并不是必须的。只有在纯平面平移这种情形下,上述证明才会将旋量轴构建在无限远处。但是,一个纯的平移可以很简单地由一个旋转分量为零的旋量运动来表示,其轴线可以是与平移方向平行的任何直线。

旋量是一种具有强大功能的描述方法,以至于大量有关运动学的文献都用旋量理论的语言来表述,提供了无数令人浮想联翩的双关语[2]。我们不会很深入地去钻研旋量理论,同时我们尽量避开双关语,但适宜的时候我们将会使用旋量。

定义2.9:旋量(screw)是空间中带有相关旋距(pitch)的一条线。其中,旋距是指旋量的线性分量与角度分量之间的比率。

将旋量想做是一个用来表示运动的几何对象,就像现在这样。但它也可以表示其他事物,特别是力和扭矩。一个附加说明:我们一定要有意地去模糊旋距(是如何得到的),是用线性分量去除以角度分量,还是反过来进行计算。选用何种方式取决于应用场景,对于运动我们用线性分量去除以角度分量,而对于力我们用角度分量去除以线性分量。对于该点的深入讨论,参见5.1节。

定义2.10:运动旋量(twist)是指旋量外加一个标量幅值,它给出了关于旋量轴的一个旋转加上沿旋量轴的一个平移。旋转角度为运动旋量的幅值大小,而平移距离则等于该幅值与旋距的乘积。因此,旋距是平移与旋转之间的比率。

使用旋量语言,可以简述Chasles定理如下:每个空间位移都是关于某旋量的一个运动旋量。

对于无限小的运动,旋量有着极好的明确定义。因此,在给定时刻,任何运动都将会有一个旋量以及一个与之相关的运动旋量幅值,用以描述该运动的瞬时速度和角速度。这定义了瞬时旋量轴(instantaneous screw axis)。

正如平面运动可以通过使用瞬心极迹的运动来描述那样,空间运动可以通过一个运行在固定瞬轴面(fixed axode)上的一个运动瞬轴面(moving axode)的运动来描述。每个瞬轴面都是一个直纹面(ruled surface)。在任何特定时刻,瞬轴面与某些用于定义瞬时旋量轴的线相接触。根据旋距,运动瞬轴面随着自身的滚动还会沿这些线发生滑动。

但可惜的是,与瞬心极迹的运动相比,瞬轴面的运动难以可视化。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载