# 5.4 机器人 (Robots)

## 5.4.1 robot

机器人是由计算机控制，可以自动执行一系列动作的机器。

外观并不重要，工厂的机械臂 (industrial arms)、无人机 (drones that fly)、辅助外科医生的蛇状机器人(snake-like medical robots)、以及人形机器人(robotic assistants)，都可以是机器人 (robot)。

有时我们会将虚拟人物称为 “robot”，但将其称作 “bot” 甚至是 “agent” 会更加合适，因为 “robot” 的潜在含义是存在于现实世界中的机器。

robot (机器人) 一词首次出现在 1920 年的一部捷克戏剧，代表人造的类人角色。该词源于斯拉夫语词汇 robota，代表农民在十九世纪欧洲封建社会的强迫劳动。

在持续了一个世纪的称呼中，机器人都是大规模生产、高效不知疲倦、看起来像人的东西，但毫无情感，不会保护自己，没有创造力。

## 5.4.2 发展简史

![机器人发展简史](https://275040345-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FycDQGvckh16RY095vh62%2Fuploads%2Fff8vWryAAiZ5wYBJCKox%2F0.jpeg?alt=media)

## 5.4.3 控制原理

### 简单控制回路

用于像是用机器爪子在轨道上来回移动这类简单的运动，可以通过 “简单控制回路” (simple control loop) 来完成，下图是一个判断当前位置和目标位置的「负反馈回路」(negative feedback loop) 示例。

![负反馈回路](https://275040345-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FycDQGvckh16RY095vh62%2Fuploads%2FTKZQMHeWq26vLG1f95Nr%2F1.png?alt=media)

一个基本的负反馈回路由以下 3 部分组成：

1. 传感器 (sensor)：测量现实中想要控制的东西，如水压、马达位置、气温。
2. error：通过传感器来计算与目标值相差的多少。
3. 控制器 (controller)：决定怎么减小 error，控制泵/电机/加热元件或其他物理组件来做出动作。

简单控制回路适用于严格控制的环境，但现实世界中 robot 会受摩擦力、惯性力、风阻力等外力影响，比如上例中爪子如果过重则在惯性力的作用下可能会使得爪子在目标处不断来回移动。

### PID 控制器

PID 控制器的全称是 “proportional–integral–derivative controller” (比例-积分-微分 控制器)，早期是机械设备，现在由纯软件控制。

![PID](https://275040345-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FycDQGvckh16RY095vh62%2Fuploads%2FyCH9TAncPo31T7JAM5m0%2F2.png?alt=media)

以餐厅内递送食物的机器人为例，其设计目标是以 2m/s 的理想速度进行穿行，需要根据环境中的变化（风阻、地形 etc.）来控制马达动力的大小从而保持理想速度。

PID 控制器会根据当前速度和目标速度的数据，计算以下 3 个值：

1. 比例值 (proportional value)：实际值 (actual value) 和理想值 (desired value) 之差。
   * 实际值可能是实时的，也可能存在滞后。
   * “实际值”和”理想值”的差距 (比例值) 越大则约用力。
   * 实行 “比例控制” (proportional control)。
2. 积分值 (integral value)：一段时间内的误差总和，辅助弥补误差。
   * 如上坡可能产生误差，值过大可能比例控制得不够，需更用力
3. 导数值 (derivative value)：理想值与实际值之间的变化率。
   * 有助于解决未来可能出现的错误。
   * 又名 “预期控制” (anticipatory control)。

这三个值会拥有各自权重，组合使用来控制系统。PID 控制器应用广泛，比如汽车里的巡航控制、无人机用来保持水平得螺旋桨速度控制等。

## 5.4.4 机器人的发展现状

控制回路负责将机器人的物理属性 (e.g. 当前位置) 变成期望值，这些期望值由更高层软件来负责确定，其做出计划让机器人执行。

利用技术，机器人已经取得了很多成就，比如潜入深海、探索火星。但有趣的是，许多对人类来说很简单的任务，比如双腿直立行走、开门、穿衣服、摸狗等人类无需刻意做的举动，有超级计算机能力的机器人却做不到。

这些问题最有可能通过 5.1 小节讨论过的 “人工智能” 来解决，机器人无需休息且可以多个手臂同时练习，通过数千小时的训练来变得擅长。

近年最大的突破之一是无人驾驶汽车，汽车的输入（转弯 or 变速）很简单，难得是应对路况——判断车道、理解路标、预测车流、车流中穿行、留心行人和骑自行车的以及各种障碍。

无人驾驶汽车非常依赖 5.2 节 p35 集讨论的 “计算机视觉算法”，现在也出现了外貌和行为像人类的 “类人计算机” (primitive androids)。

因可替换且力量、耐力、注意力和准确性远超人类，军队也对机器人很有兴趣。拆弹机器人和无人侦察机如今很常见，完全自主决定且全副武装的机器人也在慢慢出现。

比如韩国的三星 SGR-A1 哨兵炮，这种有智力并且可以杀人的机器人，称为「致命自主武器」(lethal autonomous weapons)。这是一个复杂又棘手的问题，一方面它可以将士兵带离战场挽救生命甚至阻止战争，但另一方面它没有人类般的判断力和同情心，会让战争更加黑暗和复杂。

## 5.4.5 机器人三定律

科幻作家艾萨克·阿西莫夫 (Isaac Asimov) 早预见了类似于 “致命自主武器” 所带来的危险，他在 1942 年短篇小说 Runaround 中写了 “机器人三定律” (Three Laws of Robotics)，之后在 1985 年的《机器人与帝国》（Robots and Empire）又加了 “定律 0”。

![机器人定律](https://275040345-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FycDQGvckh16RY095vh62%2Fuploads%2Foxk5yH5qK9JzX1vOLzJW%2F3.png?alt=media)

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

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

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

这种技术的两面性值得我们思考，我们要认真思考计算机的潜力和危害，从而改善这个世界，而机器人最能提醒我们这一点了。
