Skip to content

计算机科学入门

今天我们要讨论机器人,你脑中冒出来的第一个印象估计是类人机器人,经常在电视剧和电影里看到。

有时候它们是朋友和同事,但更常见的是阴险无情,身经百战。

我们经常把机器人看成未来科技,但事实是:机器人时代 已经 来临了。

它们是同事,帮我们把困难的工作,做得更快更好。

image-20231105160638744

机器人的定义有很多种,但总的来说,机器人由计算机控制,可以 自动 执行一系列动作的机器。

外观并不重要,可以是给汽车喷漆的机械臂,无人机,或辅助外科医生的蛇状机器人,以及人形机器人。

image-20231105160709953

机器人

有时我们叫虚拟人物 "机器人" ,但叫 bot 甚至 agent 会更合适,因为 机器人 (robot)的潜在含义是存在于现实世界中的 **机器 ** 。

robot 一词,首次出现在 1920 年的一部捷克戏剧,代表人造的 类人 角色。

robot 源于斯拉夫语词汇 robota ,代表 强迫劳动 ,代表农民在十九世纪,欧洲封建社会的强迫劳动。

戏剧没讲太多技术细节,但即使一个世纪后,这种描述依然很普遍: 机器人都是大规模生产,高效不知疲倦,看起来像人的东西,但毫无情感,不会保护自己,没有创造力

image-20231105160807554

自动机

更广义的自动运行机器,早在 1920 年代前就有了,很多古代发明家,发明了能自动运行的机械装置,比如计时和定时敲钟,有很多装置有动物和人类的形象,能跳舞,唱歌,打鼓等,这些不用电,而且肯定 没有电子部件 的机器,叫 自动机 (automatons)。

image-20231105160838781

举个例子,1739 年法国人 Jacques de Vaucans 做了个自动机,法语叫 Canard Digerateur ,翻译过来是 吃饭鸭 ,一个像鸭子的机器,能吃东西然后排便。

如果没有吃饭鸭的声音,还有什么能提醒你法国的荣光呢?——伏尔泰

一个名声很臭的例子是 土耳其行棋傀儡 ,一个能下国际象棋的人形机器人,在 1770 年建造完成后,就在欧洲各地展览,好棋艺惊叹观众,像某种机械人工智能,不幸的是,这是个骗局,机器里有人控制。

image-20231105160942315

CNC 机器

第一台计算机控制的机器,出现在 1940 年代晚期,这些计算机数控的机器,简称 CNC 机器,可以执行 一连串 程序指定的操作,精细的控制让我们能生产之前很难做的物品,比如从一整块铝加工出复杂的螺旋桨,这用普通机械工具很难做到,并且误差容忍度很小,无法手工加工,CNC 机器大大推进了制造业,不仅提高了制造能力和精确度还降低了生产成本。

image-20231105161113854

Unimate

第一个商业贩卖的 可编程 工业机器人叫 Unimate ,于 1960 年卖给通用汽车公司,它可以把压铸机做出来的热金属成品提起来,然后堆起来,机器人行业由此开始。

image-20231105161155094

很快,机器人开始堆叠货盘,焊接,给汽车喷漆等等,对于简单运动,比如机器爪子在轨道上来回移动,可以指示它移动到特定位置,它会一直朝那个方向移动,直到到达,然后停下来,这种行为可以用简单控制回路做。

首先,判断机器人的位置,我们到了吗?没有。那么继续前进。

再次判断位置,我们到了吗?没有,所以继续前进。

我们到了吗?是的!现在可以停下来了。

image-20231105161219927

因为我们在不断缩小当前位置和目标位置的距离,这个控制回路更准确的叫"负反馈回路"。

负反馈回路有三个重要部分,首先是一个 传感器 ,可以测量现实中的东西,比如水压,马达位置,气温,或任何你想控制的东西,根据传感器,计算和目标值相差多大,得到一个 "错误" ,然后 控制器 会处理这个"错误",决定怎么减小错误,然后用泵,电机,加热元件,或其他物理组件来做出动作。

image-20231105161249919

在严格控制的环境中,这种简单控制回路也够用了,但在很多现实应用中,情况复杂得多,假设爪子很重,哪怕控制回路叫停了, 惯性 让爪子超过了预期位置,然后控制回路又开始运行,叫爪子移动回去,一个糟糕的控制回路可能会让爪子不断来回移动,甚至永远循环。

更糟糕的是,现实世界中机器人会受到各种 外力 影响,比如摩擦力,风,等等,为了处理这些外力,我们需要更复杂的控制逻辑。

比例-积分-微分控制器

一个使用广泛的机制,有控制回路和反馈机制,叫 比例-积分-微分控制器 (proportional–integral–derivative controller),这个有点绕口,所以一般简称 PID控制器

它以前是机械设备,现在全是 纯软件 了。

想象有一个机器人,端咖啡给客人,设计目标是每秒两米的速度在顾客间穿行,这个速度是理想速度,安全又合适。

当然,环境是会变化的,有时候有风,有时候有上坡下坡,以及其他影响机器人速度的因素。

所以,给马达的动力要加大或减少,以保持目标速度,用机器人的速度传感器,我们可以把当前速度和目标速度画张图,PID 控制器 根据这些数据,算出 3 个值。

首先是 比例值 ,就是 实际值理想值 差多少,实际值 可能有一定滞后,或者是实时的,之前的简单控制回路,用的就是这个值。

实际值理想值 的差距越大,就越用力,换句话说,它是 比例控制 的。

image-20231105161343766

接下来,算 积分值 ,就是一段时间内误差的总和,比如最近几秒,帮助弥补误差,比如上坡时可能就会产生误差,如果这个值很大,说明比例控制不够,要继续用力前进。

image-20231105161400392

最后有 导数值 ,是期望值与实际值之间的变化率,有助于解决未来可能出现的错误,有时也叫 预期控制 ,比如前进的太快,要稍微放松一点,避免冲过头。

image-20231105161420283

这三个值会一起使用,它们有不同权重,然后用来控制系统。

image-20231105161433612

PID 控制器 到处都是,比如汽车里的巡航控制,无人机调整螺旋桨速度,以保持水平,以及一些更奇怪的机器人,比如这个用球来平衡和移动的机器人。

高级机器人

更高级的机器人一般需要多个控制回路同时运行,来保持机器人平衡,调整肢体位置,等等。

之前说过,控制回路负责把机器人的属性(比如当前位置)变成期望值,你可能好奇这些值是哪里来的,这是更高层 软件 的责任。

软件负责做出计划并让机器人执行动作,比如制定一条路线来绕过障碍物,或者把任务分成一步步,比如把拿起一个球,分解成一个个简单连续动作,用这些技术,机器人已经取得不少令人印象深刻的成就。

它们潜到了海洋最深处,在火星上跑了十几年。

但有趣的是,许多对人类来说很简单的任务,对机器人很困难,比如两条腿走路,开门,拿东西时不要捏碎了,或是穿T恤,或是摸狗,这些你可能想都不用想,但有超级计算机能力的机器人却做不到。

机器人研究领域在全力解决这些问题,我们聊过的 人工智能 最有可能解决这些问题。

例如,谷歌在进行一项实验,让一堆机器人手臂把各种东西,从一个盒子拿到另一个盒子,不断试错学习,经过数千小时的练习,机器人把错误率降低了一半。

image-20231105161457633

不像人类,机器人可以 24 小时全天运行,而且多个手臂同时练习,所以机器人擅长抓东西只是时间问题,但现在,小婴儿都比机器人更会抓东西。

近年最大的突破之一是无人驾驶汽车,如果你仔细想想,汽车没几个输入,只是加速减速,左转右转。

难的问题是判断车道,理解路标,预测车流,车流中穿行,留心行人和骑自行车的,以及各种障碍。

车上布满了 传感器 ,无人驾驶汽车非常依赖 计算机视觉算法

image-20231105161521661

现在也开始出现类人机器人,外貌和行为像人类的机器人,不过现在两个目标都没接近(外貌和行为),因为看起来一般怪怪的,行为也怪怪的。

无论如何,对机器人研究者来说,把各种技术结合起来,比如人工智能,计算机视觉和自然语言处理来让机器人越来越像人,是个诱人的目标,在未来好一段时间里,和人类一样的机器人依然只能存在科幻小说里。

军队也对机器人很有兴趣,因为机器人可以替换,而且力量,耐力,注意力,准确性可以远超人类。

拆弹机器人和无人侦察机如今很常见,但完全自主决定,全副武装的机器人也在慢慢出现,比如韩国的三星SGR-A1哨兵炮。

有智力并且可以杀人的机器人叫 致命自主武器 (lethal autonomous weapons),这种武器是复杂又棘手的问题。

毫无疑问,它们可以把士兵从战场带离挽救生命,甚至阻止战争的发生,值得注意的是人们对炸药和核弹也说过一样的话。

机器人三定律

另一方面,我们可能会不小心创造出,无情又高效的杀人机器,没有人类般的判断力和同情心,战争的硝烟会变得更加黑暗和复杂,机器人会接受命令并高效执行,但有时人类的命令是错的。

而且随着机器人技术的进步,两边的辩论会越来越激烈,这也是个老话题了。

科幻作家 艾萨克·阿西莫夫 早预见了这种危险,他在 1942 年短篇小说 Runaround 中写了 机器人三定律 ,之后又加了 定律0

第零定律:机器人必须保护人类的整体利益不受伤害,其它三条定律都是在这一前提下才能成立

第一定律:机器人不得伤害人类个体,或者目睹人类个体将遭受危险而袖手不管。

第二定律:机器人必须服从人给予它的命令,当该命令与第一定律冲突时例外。

第三定律:机器人在不违反第一、第二定律的情况下要尽可能保护自己的生存。

简单说这些定律指导机器人的行为准则或者说道德指南,让机器人不要伤害,特别是不要伤害人类。

这些规则实践起来相当不足,并且有很多模糊的地方,但 阿西莫夫三定律 激发了大量科幻小说讨论和学术讨论,如今有专门讨论机器人伦理的会议。

重要的是,阿西莫夫写这些虚构规则是为了反对 机器人都很邪恶 这种常见描述,他童年读的小说里,这样的场景很常见,机器人脱离控制,然后伤害甚至毁灭创造者,阿西莫夫认为机器人有用,可靠,甚至可以让人喜爱。

我们讨论过的许多技术,有好的一面也有坏的一面,我们要认真思考计算机的潜力和危害,来改善这个世界。

用心去做高质量的编程学习内容网站,欢迎star ⭐让更多人发现!