作者 |
伯纳多·朗奎洛·贾蓬 卡梅伦·休斯 特雷西·休斯 |
丛书名 |
机器人设计与制作系列 |
出版社 |
机械工业出版社 |
ISBN |
9782108271022 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8083413 - ROS机器人编程实践--------------------------- 本书首先介绍GoPiGo3及其配备的传感器和执行器。然后,通过从零开始创建3D模型并使用Gazebo在ROS中运行模拟机器人来使用GoPiGo3的数字孪生模型。接下来展示如何使用GoPiGo3构建和运行一个了解周围环境的自主移动机器人。还探索了机器人如何学习尚未在代码中编程但通过观察其环境而获得的任务。本书甚至还涵盖深度学习和强化学习等主题。在本书的末尾,读者将熟悉在机器人技术中构建特定用途应用程序的基础知识,并具备从零起步开发高度智能自主机器人的能力。本书适合机器人技术人员和业余爱好者阅读。 ---------------------------6087791 - 机器人编程实战--------------------------- 本书以一位受困于荒岛的年轻人的视角带领读者进行一场冒险。他必须寻找到一种给机器人编程的方法才能得以逃离。本书作为一本控制自主机器人编程指南,介绍了编程机器人传感器、电动机以及将想法转换为机器人可以自主执行任务的实际方法和技术。对于硬、制造商、DIY项目,这些技术可以用于当今领先的机器人微控制器(ARM9和ARM7)和机器人平台(包括广泛流行的低成本Arduino平台,LEGOMindstormsEV3、NXT,以及WoweeRSMedia机器人)。 |
目录 |
[套装书具体书目] 6087791 - 机器人编程实战 - 9787111571568 - 机械工业出版社 - 定价 79 8083413 - ROS机器人编程实践 - 9787111689157 - 机械工业出版社 - 定价 89 ---------------------------8083413 - ROS机器人编程实践--------------------------- 译者序 前言 作者简介 审校者简介 第一部分 物理机器人组装与测试 第1章 组装机器人 2 1.1GoPiGo3机器人介绍 2 1.1.1机器人技术角度 3 1.1.2编程角度 3 1.1.3机器人套件和资源 4 1.2熟悉嵌入式硬件 7 1.2.1GoPiGo3开发板 7 1.2.2Raspberry Pi 3B+ 9 1.2.3为什么机器人需要CPU 10 1.3深入理解机电 10 1.4整合到一起 17 1.5快速硬件测试 18 1.5.1资源 18 1.5.2DexterOS入门 19 1.5.3用Bloxter编程 20 1.5.4校准机器人 20 1.5.5驱动机器人 22 1.5.6检查传感器 22 1.5.7关闭机器人 23 1.6总结 23 1.7习题 24 1.8进一步阅读 24 第2章 GoPiGo3的组件测试 25 2.1技术要求 25 2.2Python和JupyterLab入门 25 2.2.1为GoPiGo3启动JupyterLab 26 2.2.2硬件测试 29 2.3传感器和驱动的组件测试 32 2.3.1快速入门传感器和电动机 32 2.3.2机器人漫游 32 2.3.3距离传感器 35 2.3.4伺服软件包 40 2.3.5巡线跟随器 42 2.3.6IMU 43 2.3.7Raspberry Pi 43 2.3.8GoPiGo3项目 45 2.4总结 46 2.5习题 46 2.6进一步阅读 47 第3章 ROS入门 48 3.1技术要求 48 3.2ROS基本概念 49 3.2.1ROS图 50 3.2.2roscore 51 3.2.3工作空间和catkin 51 3.3配置ROS开发环境 52 3.3.1安装ROS 52 3.3.2集成开发环境 55 3.4ROS节点之间的通信—消息和主题 56 3.4.1创建工作空间 56 3.4.2设置ROS软件包 60 3.4.3发布主题的节点 62 3.4.4订阅主题的节点 65 3.4.5在同一节点中合并发布者和订阅者 67 3.5对ROS使用公开可用的软件包 69 3.6总结 69 3.7习题 70 3.8进一步阅读 70 第二部分 使用Gazebo进行 机器人仿真 第4章 创建虚拟两轮ROS机器人 72 4.1技术要求 72 4.2RViz机器人可视化入门 73 4.3使用URDF构建差动驱动机器人 74 4.3.1用于GoPiGo3的URDF概述 75 4.3.2机器人主体URDF 76 4.3.3左右轮的URDF模型 79 4.4使用RViz在ROS中查看GoPiGo3模型 81 4.4.1理解roslaunch命令 82 4.4.2通过RViz控制GoPiGo3机器人的车轮 84 4.5URDF模型中的机器人参考坐标系 86 4.6在构建时使用RViz查看模型 88 4.6.1在RViz窗口中更改模型的外观 88 4.6.2使用ROS工具进行检查 89 4.7总结 90 4.8习题 90 4.9进一步阅读 91 第5章 使用Gazebo进行机器人行为仿真 92 5.1技术要求 92 5.2Gazebo仿真器入门 93 5.3修改机器人URDF 96 5.3.1扩展URDF以生成SDF机器人定义 97 5.3.2碰撞和物理性质 97 5.3.3Gazebo标签 99 5.4验证Gazebo模型并查看URDF 99 5.5移动模型 102 5.6总结 105 5.7习题 105 5.8进一步阅读 106 第三部分 使用SLAM进行自主导航 第6章 在ROS中编程—命令和工具 108 6.1技术要求 109 6.2设置物理机器人 109 6.2.1下载并设置Ubuntu Mate 18.04 109 6.2.2访问自定义 110 6.2.3设置VNC服务器(x11vnc) 110 6.2.4Geany IDE 112 6.2.5安装GoPiGo3和DI传感器的驱动程序 112 6.2.6设置Pi Camera 114 6.2.7安装ROS Melodic 115 6.3ROS编程快速入门 116 6.3.1设置工作空间 116 6.3.2克隆ROS软件包 117 6.3.3第一次执行ROS节点 117 6.4案例研究1:编写ROS距离传感器软件包 118 6.4.1创建一个新软件包 119 6.4.2编写自己的源代码 119 6.5使用ROS命令 125 6.5.1Shell命令 125 6.5.2执行命令 126 6.5.3信息命令 127 6.5.4软件包和catkin工作空间 128 6.6创建并运行发布者和订阅者节点 129 6.7使用roslaunch自动执行节点 131 6.8案例研究2:ROS GUI开发工具—Pi Camera 133 6.8.1使用rqt_graph分析ROS图 134 6.8.2使用rqt_image_view显示图像数据 135 6.8.3用rqt_plot绘制传感器数据的时间序列 135 6.8.4使用rqt_bag播放录制的ROS会话 136 6.9使用ROS参数自定义机器人功能 138 6.10总结 140 6.11习题 140 6.12进一步阅读 141 第7章 机器人控制与仿真 142 7.1技术要求 142 7.2设置GoPiGo3开发环境 143 7.3案例研究3:使用键盘进行远程控制 146 7.3.1在机器人中运行gopigo3节点 146 7.3.2遥控软件包 149 7.3.3在笔记本电脑上运行远程操作 149 7.4使用ROS主题进行远程控制 151 7.4.1运动控制主题—/cmd_vel 151 7.4.2使用/cmd_vel直接驱动GoPiGo3 152 7.4.3检查GoPiGo3的X、Y和Z轴 154 7.4.4组合运动 154 7.5远程控制物理和虚拟机器人 155 7.5.1将ROS主节点还原到本地计算机 155 7.5.2用Gazebo仿真GoPiGo3 156 7.5.3同时在真实世界和仿真中运行 158 7.6总结 159 7.7习题 160 7.8进一步阅读 160 第8章 使用Gazebo进行虚拟SLAM和导航 162 8.1技术要求 162 8.1.1ROS导航软件包 163 8.1.2在本地计算机上运行ROS主节点 164 8.2使用Gazebo进行动态仿真 164 8.3导航组件 171 8.4机器人感知和SLAM 172 8.4.1添加LDS 172 8.4.2SLAM概念 176 8.5使用GoPiGo3练习SLAM和导航 178 8.5.1探索使用SLAM构建地图的环境 178 8.5.2使用导航沿着计划的轨迹行驶 180 8.6总结 182 8.7习题 182 8.8进一步阅读 183 第9章 用于机器人导航的SLAM 184 9.1技术要求 184 9.2为机器人准备LDS 186 9.2.1设置YDLIDAR 186 9.2.2与Raspberry Pi集成 188 9.2.3从远程笔记本电脑处理YDLIDAR数据 193 9.3在ROS中创建导航应用程序 195 9.4使用GoPiGo3练习导航 196 9.4.1绘制环境图 196 9.4.2在现实世界中导航GoPiGo3 198 9.5总结 199 9.6习题 199 9.7进一步阅读 199 第四部分 使用机器学习的 自适应机器人行为 第10章 在机器人技术中应用机器学习 202 10.1技术要求 202 10.2在系统中配置TensorFlow 203 10.2.1安装pip 203 10.2.2安装TensorFlow及其他依赖项 204 10.2.3使用GPU获得更好的性能 204 10.3机器人技术中的机器学习 205 10.3.1机器学习的核心概念 206 10.3.2机器学习线程 207 10.4从机器学习到深度学习 208 10.4.1机器学习算法 208 10.4.2深度学习和神经网络 210 10.5通过编程将机器学习应用于机器人技术的方法 213 10.5.1应用程序编程的一般方法 213 10.5.2集成机器学习任务 214 10.6深度学习应用于机器人技术—计算机视觉 215 10.6.1Gazebo中的目标识别 216 10.6.2现实世界中的目标识别 217 10.7总结 220 10.8习题 220 10.9进一步阅读 221 第11章 使用OpenAI Gym进行机器学习 222 11.1技术要求 223 11.2OpenAI Gym简介 224 11.2.1安装OpenAI Gym 224 11.2.2安装OpenAI ROS 226 11.2.3智能体、人工智能和机器学习 226 11.2.4倒立摆示例 227 11.2.5Q-learning说明—自动驾驶出租车示例 231 11.3运行环境 235 11.4配置环境文件 236 11.5运行仿真并绘制结果 237 11.6总结 240 11.7习题 240 11.8进一步阅读 241 第12章 通过强化学习实现目标 242 12.1技术要求 242 12.2使用TensorFlow、Keras和Anaconda配置环境 243 12.2.1TensorFlow后端 243 12.2.2使用Keras进行深度学习 244 12.2.3ROS依赖软件包 244 12.3了解ROS机器学习软件包 244 12.3.1训练场景 245 12.3.2用于运行强化学习任务的ROS软件包结构 245 12.4设置训练任务参数 246 12.5训练GoPiGo3避开障碍物到达目标位置 247 12.5.1如何运行仿真 249 12.5.2场景1—前往目标位置 249 12.5.3场景2—避开障碍物前往目标位置 251 12.6总结 255 12.7习题 256 12.8进一步阅读 256 附录 习题答案 257 ---------------------------6087791 - 机器人编程实战--------------------------- 译者序 前言 致谢 第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 将Unit1的场景转换为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关于机器人Unit1和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 |