第一章

按现在对机器人的分类,以第1代机器人应该属于工业机器人。其他机器人分类还包括服务机器人——能提供诸如清洁、 个人护理或医疗康复等服务,野外机器人——能在户外作业,以及人形机器人——具有 人类的外形特征,工业机器人最典型的就是一台安装于固定基座上的机械臂,它能在其工位上重复执行某个动作任务。被加工零件要按一定顺序 呈现在机器人面前,这样就能最大限度地发挥机器人高速和高精度的特点。高速运动的机器人是非常危险的,为了安全工作人员必须要被阻隔在机器人的工作范围之外。野外和服务机器人的开发面临着些特殊而意 义重大的挑战。第一项挑战就是机器人必须要在复杂、混乱且变化的环境中作业和移动。医院中送货的机器人必须要面对拥挤的人群以及不断改变停放位置的各种推车。火星探测机器人则要在事先没有探测环境精确地图的情况下,在各种岩石和队石坑之间自主导航。机器人车,如那些参加美国国防部无人驾驶车挑战赛(DARPA Grand Callenges)( Buehler et al.2007 ]的汽车,必须要准确沿道路行驶,还要遵守道路上的交通信号灯及交通法规。

       机器人感知其环境,再利用这些信息,并结合它的工作目标,去规划它的运动。这里的运动可以是移动机器人手臂上的工具去抓个物体,或者是驱动一个移动机器人到达某个地方。感知能力对机器人是至关重要的。本体感觉传感器可以测量机器人自身的状态,如机器人手臂上的关节转角,移动机器人上车轮转过的圈数,或一个电机转 动形成的电流。体外感觉传感器则测量机器人外部世界的状态。这种传感器可以是真空吸尘机器人上简单的触碰开关,用于检测机器人是否碰到墙面;它也可以是一个用于检测机器人到在轨卫星之间距离的GPS接收器,或是个用于检测机器人朝向与地磁场方向夹角的磁罗盘。

      摄像机是种被动捕获外界环境反射光线的传感器,根据我们自己的感受,眼睛在用于识别、导航、避障及操作时是最有效的传感器,因此视觉对于机器人研究人员来说一直备受关注。图展示了怎样从一幅原始图像重构出一个三维线框模型的早期研究工作,也体现了其中涉及的难点问题。仅用一个相机的突出问题是三维的结构只能从二维图像推测出来。三维重构的另一个方法是采用立体视觉,即用两个或多个相机的图像去计算外界的三维结构,火星探测机器人就在它的桅杆上安装了一台立体相机。

       如果机器人所处的环境根本没有变化,那机器人完全可以依靠一张精确的环境地图去完成作业,它仅需确定自己在地图中的位置,而不需要去感知外界的状态。可以想象一下你驾驶辆前挡风玻璃完全被遮挡住的车, 面仅依靠GPS系统进行导航。 如果路上仅有你辆车,你或许能非常成功地从A点开到B点,即使速度很慢。然而如果路上还存在其他车辆、行人、信号灯或施工等复杂状况时,你可能就寸步难行了。为了能在复杂的道路环境中驾驶,你必须观察车外的情况,即感知外界并采取相应的行动。对于人类来说,上述行为非常简单,甚至不假思索就能做,但想要通过编程让一个机器 去做就很难了。遥操作机器人是依靠人类操作员远距离遥控的像机器人的机器。或许最早的遥操作机器人是1898年尼古拉.特斯拉( Nikola Tesla)展示的一款无线电遥控船,特斯拉也将它称作远程自动装置”(teleutomaton)。根据上述定义,这些遥控船还不能算是真正的机器人,但它们是机器人的重要祖先之一,而且至今对于那些人不能去,而机器自身又不能单独完成的很多复杂任务,它们仍然很重要[ Goldberg and Siegwart 2001 ; Goldberg 2001]。例如,在海底探测泰坦尼克号残骸的水下机器人就是远程遥操作航行器(ROV)。美国的火星探测器“勇气号”(Spirit)和“机遇号”(Opportunity)虽然能在火星表面自主导航,但还是需要人类操作员向它们发出高级目标指令。

    MATLAB是一 种交互式的数学软件编程环境,能较容易地完成线性代数计算、数据分析以及高质量图形绘制。MATLAB也是一款流行的软件包, 多数学生和研究人员对它都很熟悉。该软件还支持一种特有的编程语言,能够编写出复杂的算法。MATLAB的另一特长是支持工具箱,工具箱中集合了针对某一特定题目的函数。 工具箱可以从MathWorks公司、第三方公司以及私人处获得。有的工具箱是需要付钱的商品,有的则是开源免费的。机器人工具箱和机器视觉工具箱,应用这两个MATLAB工具箱就能将一台现代个人计算机变成为一个功能强大和使用方便的环境,用以探索机器人、机器视觉以及视觉控制中的复杂问题。这两个工具箱都是免费的,通过GNU宽通用公共许可证( GNU LCPL发布。机器人工具箱(RTB)中包含了用于模拟移动机器人和机械臂的各种不同的函数。最初的机器人工具箱可以追溯到20世纪90年代早期,那时只针对机械臂式的机器人,而且只支持一种非常普通的用矩阵以及后来的MATLAB对象来表示串联机械臂结构的方法。在这个工具箱中,可以创建任意的串联式机械臂,并提供了计算机械臂正向和逆向运动学及动力学的函数。工具箱中还包含了对诸如向量的数据类型进行操作及转换的函数、齐次变换函数、三角度表示函数,以及单位四元数函数,它们对于描述刚体三维位置和姿态非常有用。

        机器人工具箱版本增加了模拟移动机器人的新功能。目前的机器人工具箱包含了四轮移动机器人和四旋翼直升机的模型,以及上述机器人的控制器。它还提供了用于机器人路径规划、定位和地图绘制的标准算法。