第1章 究竟什么是机器人 1
1.1定义机器人的7个标准 1
1.1.1标准1:感知环境 2
1.1.2标准2:可编程的动作和行为 2
1.1.3标准3:改变环境、与环境交互或作用于环境 2
1.1.4标准4:具备电源 2
1.1.5标准5:适用于表示指令和数据的语言 3
1.1.6标准6:无需外部干预的自主性 3
1.1.7标准7:一个没有生命的机器 4
1.1.8机器人分类 4
1.1.9传感器 6
1.1.10执行器 7
1.1.11末端作用器 8
1.1.12控制器 8
1.1.13机器人所在的场景 12
1.2给机器人指令 14
1.2.1每个机器人都有一种语言 14
1.2.2迁就机器人的语言 16
1.2.3在可视化编程环境中表示机器人场景 18
1.2.4 Midamba的困境 18
1.3下文预告 20
第2章 机器人词汇 21
2.1为什么需要更多努力 22
2.2确定动作 25
2.3自主机器人的ROLL模型 26
2.3.1机器人的能力 27
2.3.2场景和态势中的机器人角色 28
2.4下文预告 30
第3章 机器人场景图形规划 31
3.1建立场景地图 31
3.1.1创建平面图 32
3.1.2机器人的世界 34
3.1.3 RSVP READ设置 36
3.2伪代码和绘制RSVP流程图 38
3.2.1控制流程和控制结构 39
3.2.2子程序 43
3.3目标和机器人状态图 46
3.4下文预告 50
第4章 检验机器人的实际能力 51
4.1微控制器的实际检验 53
4.2传感器的实际检验 56
4.3执行器和末端作用器的检验 60
4.4 REQUIRE机器人效能 62
4.5下文预告 64
第5章 详解传感器 65
5.1传感器感知 66
5.1.1模拟和数字传感器 68
5.1.2读取模拟和数字信号 69
5.1.3传感器输出 71
5.1.4读数存储 72
5.1.5有源和无源传感器 72
5.1.6传感器与微控制器的连接 74
5.1.7传感器属性 77
5.1.8范围和分辨率 78
5.1.9精度和准确度 78
5.1.10线性度 79
5.1.11传感器校准 80
5.1.12传感器相关问题 81
5.1.13终端用户校准过程 81
5.1.14校准方法 82
5.2下文预告 83
第6章 通过编程控制机器人的传感器 84
6.1使用颜色传感器 84
6.1.1颜色传感器模式 86
6.1.2探测距离 87
6.1.3机器人环境的照明 87
6.1.4校准颜色传感器 88
6.1.5编程颜色传感器 89
6.2用于检测和跟踪颜色目标的数码相机 92
6.3利用RS Media跟踪颜色目标 92
6.4使用Pixy Vision传感器跟踪颜色目标 95
6.4.1训练Pixy以检测目标 96
6.4.2编程Pixy 98
6.4.3详解属性 101
6.5超声波传感器 101
6.5.1超声波传感器的局限性和准确性 102
6.5.2超声波传感器的模式 106
6.5.3采样读数 106
6.5.4传感器读数的数据类型 107
6.5.5校准超声波传感器 107
6.5.6编程超声波传感器 108
6.6罗盘传感器计算机器人的航向 117
6.7下文预告 121
第7章 电动机和伺服机构编程 122
7.1执行器是输出转换器 122
7.1.1电动机特性 123
7.1.2电压 123
7.1.3电流 123
7.1.4转速 123
7.1.5扭矩 123
7.1.6电阻 123
7.2不同类型的直流电动机 124
7.2.1直流电动机 124
7.2.2转速和扭矩 126
7.2.3齿轮电动机 127
7.3电动机配置:直接和间接动力传动系统 134
7.4室内和室外机器人的地形挑战 134
7.4.1应对地形挑战 135
7.4.2机器人手臂和末端作用器的扭矩挑战 138
7.4.3计算扭矩和转速需求 138
7.4.4电动机和REQUIRE 139
7.5通过编程使机器人移动 140
7.5.1一个电动机,还是两个、三个、更多个电动机 140
7.5.2执行动作 140
7.5.3编程动作 141
7.5.4通过编程使电动机移动到指定位置 145
7.5.5使用Arduino实现电动机编程 151
7.6机器人手臂和末端作用器 154
7.6.1不同类型的机器人手臂 154
7.6.2机器人手臂的扭矩 155
7.6.3不同类型的末端作用器 157
7.6.4为机器人的手臂进行编程 159
7.6.5计算运动学 163
7.7下文预告 166
第8章 开始自主:构建机器人所对应的软件机器人 167
8.1初探软件机器人 169
8.1.1部件部分 171
8.1.2动作部分 171
8.1.3任务部分 171
8.1.4场景(态势)部分 171
8.2机器人的ROLL模型和软件机器人框架 172
8.2.1 BURT把软件机器人框架转换为类 173
8.2.2第一次实现自主机器人程序设计 184
8.3下文预告 185
第9章 机器人SPACES 186
9.1机器人需要自身的SPACES 187
9.1.1扩展的机器人场景 187
9.1.2 REQUIRE检查表 188
9.1.3前提或后置条件不满足时会发生的情况 190
9.1.4前提或后置条件不满足时的行动选择 191
9.2详解机器人初始化后置条件 192
9.2.1启动前提条件和后置条件 194
9.2.2编码前提条件和后置条件 195
9.2.3前提和后置条件的出处 200
9.3 SPACES检查和RSVP状态图 204
9.4下文预告 206
第10章 自主机器人需要STORIES 207
10.1不只是动作 208
10.1.1 Birthday Robot Take 2 208
10.1.2机器人STORIES 209
10.1.3扩展的机器人场景 210
10.1.4将Unit 1的场景转换为STORIES 210
10.1.5详解场景的本体 210
10.1.6关注机器人的意图 220
10.1.7面向对象的机器人代码和效能问题 243
10.2下文预告 244
第11章 系统整合:Midamba的第一个自主机器人编程 245
11.1 Midamba的初始场景 245
11.1.1 Midamba一夜之间成为机器人程序员 245
11.1.2步骤1:机器人在仓库场景中 247
11.1.3步骤2:设施场景1的机器人词汇和ROLL模型 249
11.1.4步骤3:设施场景1的RSVP 250
11.1.5机器人POV图的布局图 251
11.1.6 Midamba的设施场景1(精简) 252
11.1.7 RSVP的图形化流程图 252
11.1.8 RSVP的状态图 258
11.2 Midamba关于机器人Unit 1和Unit2的STORIES 258
11.3下文预告 270
第12章 开源SARAA机器人总结 274
12.1低成本、开源、入门级机器人 274
12.1.1基于场景的编程有助于确保机器人的安全 276
12.1.2 SARAA机器人总结 276
12.1.3对机器人编程新手的建议 278
12.1.4 Midamba场景的完整RSVP、 STORIES和源代码 278
术语表 279