目录
●译者序
前言
作者简介
第1章 概览 1
1.1 传感 3
1.2 感知 4
1.3 定位 5
1.4 规划和控制 5
1.5 机器人应用中的FPGA 6
1.6 深度处理流水线 7
1.7 小结 8
第2章 FPGA技术 10
2.1 FPGA技术简介 10
2.1.1 FPGA的类型 11
2.1.2 FPGA的架构 11
2.1.3 FPGA的商业应用 13
2.2 部分重配置 14
2.2.1 什么是部分重配置 14
2.2.2 如何使用部分重配置 15
2.2.3 实现高性能 17
2.2.4 实际案例研究 21
2.3 在FPGA上运行ROS 21
2.3.1 ROS 21
2.3.2 ROS兼容的FPGA 23
2.3.3 优化ROS兼容的FPGA的通信延迟 25
2.4 小结 26
第3章 感知—深度学习 27
3.1 为什么选择FPGA用于深度学习 28
3.2 基础:深度神经网络 29
3.3 设计方法和标准 30
3.4 面向硬件的模型压缩 32
3.4.1 数据量化 32
3.4.2 权重缩减 34
3.5 硬件设计:高效架构 35
3.5.1 计算单元设计 35
3.5.2 循环展开策略 38
3.5.3 系统设计 40
3.6 评估 43
3.7 小结 46
第4章 感知—立体视觉 47
4.1 机器人的感知 47
4.2 机器人的立体视觉 49
4.3 FPGA上的局部立体匹配 50
4.3.1 算法框架 50
4.3.2 FPGA设计 52
4.4 FPGA上的全局立体匹配 52
4.4.1 算法框架 52
4.4.2 FPGA设计 53
4.5 FPGA上的半全局匹配 53
4.5.1 算法框架 53
4.5.2 FPGA设计 53
4.6 FPGA上的高效大规模立体匹配 56
4.6.1 ELAS算法框架 56
4.6.2 FPGA设计 57
4.7 评估和讨论 58
4.7.1 数据集和准确性 58
4.7.2 功率和性能 61
4.8 小结 62
第5章 定位 63
5.1 预备知识 63
5.1.1 背景 63
5.1.2 算法概述 65
5.2 算法框架 67
5.3 前端FPGA设计 71
5.3.1 概述 71
5.3.2 利用任务级并行性 72
5.4 后端FPGA设计 73
5.5 评估 74
5.5.1 实验设置 74
5.5.2 资源消耗 75
5.5.3 性能 76
5.6 小结 77
第6章 规划 78
6.1 运动规划背景概述 78
6.1.1 概率路线图 79
6.1.2 快速探索随机树 80
6.2 利用FPGA实现碰撞检测 81
6.2.1 运动规划计算时间剖析 81
6.2.2 基于通用处理器的解决方案 82
6.2.3 基于专用硬件加速器的解决方案 83
6.2.4 评估和讨论 89
6.3 利用FPGA实现图搜索 91
6.4 小结 93
第7章 多机器人协作 95
7.1 多机器人探索 95
7.2 基于FPGA多任务的INCAME框架 98
7.2.1 ROS中的硬件资源冲突 99
7.2.2 带ROS的可中断加速器(INCAME) 100
7.3 基于虚拟指令的加速器中断 102
7.3.1 指令驱动加速器 103
7.3.2 如何中断:虚拟指令 105
7.3.3 何处中断:在SAVE/CALC_F后 105
7.3.4 延迟分析 106
7.3.5 虚拟指令ISA 108
7.3.6 指令编排单元 109
7.3.7 虚拟指令示例 110
7.4 评估和结果 110
7.4.1 实验设置 110
7.4.2 基于虚拟指令的中断 113
7.4.3 基于ROS的多机器人探索 115
7.5 小结 115
第8章 自动驾驶汽车 116
8.1 PerceptIn案例研究 116
8.2 设计约束 117
8.2.1 车辆概览 117
8.2.2 性能要求 118
8.2.3 能耗和成本因素 119
8.3 软件流水线 121
8.4 车载处理系统 122
8.4.1 硬件设计空间探索 122
8.4.2 硬件架构 124
8.4.3 传感器同步 126
8.4.4 性能特征 128
8.5 小结 129
第9章 太空机器人 130
9.1 太空计算的辐射容错 130
9.2 基于FPGA的太空机器人算法加速 132
9.2.1 特征检测和匹配 133
9.2.2 立体视觉 133
9.2.3 深度学习 134
9.3 FPGA在太空机器人任务中的应用 135
9.3.1 火星探测车的任务 135
9.3.2 火星科学实验室的任务 136
9.3.3 火星2020的任务 137
9.4 小结 138
第10章 总结 139
10.1 本书主要内容回顾 139
10.2 展望未来 140
参考文献 142
内容介绍
本书由PerceptIn公司的技术专家与清华大学等高校的学者联袂撰写,提出FPGA是机器人应用的很好计算基板,原因包括:基于ASIC的加速器通常落后于新的算法,而FPGA可以根据需要进行动态更新;在基于ASIC的加速器能够达到规模经济之前,FPGA是一种具有成本效益和能耗效益的替代方案;与已实现规模经济的片上系统相比,FPGA具有显著的性能优势;部分重配置允许多个机器人工作负载分时共享 FPGA,从而降低成本和能耗。
本书首先对FPGA技术的背景进行介绍,然后深入介绍基于FPGA的机器人感知神经网络加速器设计,并对机器人感知中的各种立体视觉算法及其FPGA加速器设计进行讨论,验证了FPGA是加速神经网络的理想选择。接着,介绍在FPGA中实现并集成现有算法的关键原语的通用定位框架,并讨论运动规划模块,证明了FPGA是加速运动规划内核的理想选择。之后,探讨如何在多机器人探索任务中使......