新書推薦:
《
希腊人(伊恩·莫里斯文明史系列)
》
售價:HK$
185.9
《
亚马逊六页纸 如何高效开会、写作、完成工作
》
售價:HK$
76.8
《
世界巨变:严复的角色(王中江著作系列)
》
售價:HK$
110.0
《
塔西佗(全二册)(二十世纪人文译丛)
》
售價:HK$
396.0
《
(棱镜精装人文译丛)思想的假死
》
售價:HK$
63.8
《
当代精神分析新论
》
售價:HK$
94.6
《
宋初三先生集(中国思想史资料丛刊)
》
售價:HK$
217.8
《
定言命令式:康德道德哲学研究(政治哲学名著译丛)
》
售價:HK$
129.8
|
內容簡介: |
本书以一位受困于荒岛的年轻人的视角带领读者进行一场冒险。他必须寻找到一种给机器人编程的方法才能得以逃离。本书作为一本控制自主机器人编程指南,介绍了编程机器人传感器、电动机以及将想法转换为机器人可以自主执行任务的实际方法和技术。对于硬、制造商、DIY项目,这些技术可以用于当今领先的机器人微控制器(ARM9和ARM7)和机器人平台(包括广泛流行的低成本Arduino平台,LEGOMindstormsEV3、NXT,以及WoweeRSMedia机器人)。
|
目錄:
|
Contents目 录
译者序
前言
致谢
第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 编程Pixy98
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 电动机和REQUIRE139
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.1BURT把软件机器人框架转换为类173
8.2.2第一次实现自主机器人程序设计184
8.3 下文预告185
第9章 机器人SPACES186
9.1 机器人需要自身的SPACES187
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章 自主机器人需要STORIES207
10.1 不只是动作208
10.1.1 Birthday Robot Take 2208
10.1.2 机器人STORIES
|
內容試閱:
|
前 言Preface机器人新兵训练营警示作为机器人程序员,我们应确保所从事的编程对于公众和机器人自身都是安全的,这是我们的特殊责任。当对机器人进行编程时,首先要考虑机器人与人类、动物、其他机器人或资产互动时的安全。这对于所有类型机器人的编程都是适用的,尤其是可编程自主机器人,即本书所介绍的机器人类型。本书所涉及的机器人命令、指令、程序和软件仅用于展示,就安全性而言其不适合用于与人类、动物、其他机器人的互动。
对机器人安全的深入研究超出了本书的范围。虽然本书所给出的机器人示例和应用经过测试可以确保其正确性和恰当性,但是不能保证其中的命令、指令、程序和软件没有任何瑕疵和错误,与任何适售性的特定标准一致,或满足针对任何特别应用的要求。
机器人代码段、程序和示例仅用于阐述,在任何情形下当它们的使用会导致人身伤害、造成财产或时间损失,以及产生理念冲突时,都不应该再继续使用。对于因本书中呈现或在相应支持网站上的机器人、命令、指令、机器人程序和示例的使用所带来的直接或间接损害,作者和出版商不负任何责任。
机器人编程新兵训练营欢迎阅读本书。机器人编程新兵训练营将确保你着手开始前掌握所有必备的信息。我们已经构建了很多类型的机器人并对它们进行编程,从简单的单用途机器人到先进的多功能自主机器人组群,因而发现这个短期机器人编程训练营对于不熟悉机器人编程或想要学习新技术进行机器人编程的人来说是不可缺少的。
准备、设置、走起!无需繁琐接线图I-1给出了机器人控制和操作的两种基本分类。
图I-1 机器人操作的两种基本分类遥控机器人是由一名操作员用某种远程控制装置或木偶模式(puppet mode)远程控制机器人的操作。有些远程控制要求一条连线(某种类型的线)以物理方式连接于机器人,而其他远程控制类型则是无线的(如无线电控制或红外控制)。
自主机器人是一类不需要人类操作员控制的机器人。它们能自主地访问和执行一组指令,不需要远程控制的干预或中断。
本书主要关注自主机器人操作和编程。虽然我们常讨论、解释、比较遥控机器人和自主机器人,但是本书将重点介绍对能够自主运行和执行所分配任务的机器人进行编程的基本概念。
如第9章所述,为满足运行策略而进行不同混合并匹配,存在两种类型机器人控制或操作的混合物。我们将会介绍混合并匹配不同的机器人控制策略的技术。
警示虽然本书并未假定读者具有机器人编程的经验,但是全书假定读者在标准编程语言(如Java或C)方面具有一定基础,熟悉基本的编程技巧。同时,本书并非以Java或C呈现最终的机器人程序,而是先以图或通俗易懂的语言给出基本的机器人指令技巧和概念。本书将引导读者熟悉一些程序用于设计、规划和分析,比如机器人场景图形规划(Robot Scenario Visual Planning, RSVP)和实际环境中的机器人效能熵(Robot Effectiveness Quotient Used in Real Environments, REQUIRE)。
注释本书所有机器人指令、命令和程序已经在基于ARM7、ARM9微控制器的机器人以及流行并广泛使用的LEGO NXT、EV3机器人上进行了测试。本书中使用的所有其他机器人软件也均在Mac OS X和Linux环境下进行了测试与运行。
新兵训练营基础在试图对机器人进行编程前一定要回答五个基本问题:
1.?机器人属于哪种类型?2.?机器人将要做什么?3.?机器人将要在哪里执行任务?4.?机器人如何执行任务?5.?如何对机器人进行编程?许多新手和准机器人程序员不能回答这些基本问题,导致机器人项目不能成功实现。在令任意类型的机器人执行所分配任务的过程中,回答这些基本问题是第一步。本书演示了如何通过回答这些问题来形成一个分步的方法,从而成功指导一个机器人自主地执行一系列任务。
本书介绍的机器人编程核心技巧本书中,我们将在机器人新兵训练营中讲解的基本技巧如表I-1所示。
表I-1 机器人新兵训练营技能表技巧描述机器人运动规划与编程手臂运动夹持器编程末端作用器运动机器人导航利用不同类型的传感器对机器人编程红外传感器超声波传感器触碰传感器光传感器射频识别传感器摄像机传感器温度传感器声音传感器分析传感器使用电动机机器人导航中使用的电动机机器人手臂、夹持器和末端作用器中使用的电动机传感器定位中使用的电动机决策机器人动作选择机器人方向选择机器人路径选择指令转换将英文指令和命令转换成一种编程语言或一种机器人可以处理的指令形式上述技巧是让机器人执行几乎任何所分配任务必需的核心技巧。对上述五个方面做出标注是因为它们代表了夯实机器人编程基石的第二步。
基本的通用机器人转换器我们将在本书中使用两个助手以一种易于理解和快速参考的形式呈现机器人程序和常见的机器人编程问题。第一个助手,基本通用机器人转换器(Basic Universal Robot Translator,BURT),用于呈现本书中所有的代码段、命令和机器人程序。BURT给出了每个代码段、命令或机器人程序的两个版本:
纯英文版本机器人语言版本BURT用于将一组简单且易于理解的英文指令转换成相应的机
|
|