购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 熟悉嵌入式硬件

还记得哪种硬件适用于哪种场景吗?GoPiGo3板用于连接传感器和执行器,而Raspberry Pi用于计算任务。在这里详细介绍这些内容。

1.2.1 GoPiGo3开发板

这种定制板(https://www.dexterindustries.com/GoPiGo/learning/hardware-port-description/)满足控制器所预期的一般需求:

简要解释一下前面的要点列表中提到的输入/输出接口协议。SPI是一种总线,用于在微控制器和外部设备(此时为传感器)之间发送数据。它使用独立的时钟和数据线,以及一条选择线来选择要与之通信的设备。产生时钟的连接端称为主机,在本例中为Raspberry Pi,另一端称为从机,即GoPiGo3板。这样,两块板是同步的,因此通信形式比异步串行要快,而异步串行是异步电路板(如Arduino)中的典型通信协议。

可以在网址https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi找到更多关于SPI协议的简易教程。GoPiGo3在SPI上与Raspberry Pi的通信是通过接口进行的,可以在图1-4的GoPiGo3板的顶部看到。这种接口只需要40个GPIO引脚中的5个即可。

008-01

图 1-4

图片来自Dexter Industries:https://32414320wji53mwwch1u68ce-wpengine.netdna-ssl.com/wp-content/uploads/2014/07/GoPiGo3-Bottom_annotated-600x441.jpg

为了与设备连接,GoPiGo3板提供了以下功能(图1-5是该板的俯视图):

008-02

图 1-5

图片来自Dexter Industries:https://32414320wji53mwwch1u68ce-wpengine.netdna-ssl.com/wp-content/uploads/2014/07/GoPiGo3-Top-768x565.jpg

让我们解释一下这些新概念:

1.2.2 Raspberry Pi 3B+

对教育和工业界而言,Raspberry Pi拥有最大的社区,使其成为开发用于机器人或 物联网 (Internet of Things,IoT)设备嵌入式软件的最好单板计算机。图1-6显示了Raspberry Pi 3B+,它是为GoPiGo3供电的最常见型号。

009-01

图 1-6

图片来自https://en.wikipedia.org/wiki/File:Raspberry_Pi_3_B%2B_(39906369025).png,许可证CC BY-SA 2.0

Raspberry Pi 3B+的主要特征如下:

看一下每个组件的功能:

Raspberry Pi运行操作系统,通常是基于Linux的发行版,例如Debian或Ubuntu。

虽然Raspbian——基于Debian的发行版是Raspberry Pi基金会的官方发布版,但我们将使用Ubuntu(由Canonical支持),因为它是开放式机器人(https://www.openrobotics.org)使用的平台,用来每年发布ROS版本,并与Ubuntu的年度版本同步。

1.2.3 为什么机器人需要CPU

除了本书的目的是让你实践一些与ROS相关的经验(对于这点而言,需要在Linux操作系统上安装软件)之外,如果你真的想创建一个智能机器人,则需要能够运行计算密集型算法的处理能力,这就是Raspberry Pi等CPU提供的功能。

为什么需要这种计算?因为智能机器人必须将来自环境的信息与当前任务的逻辑进行集成,才能成功完成任务。以一个对象从其当前位置行驶到目标位置为例。为了完成此任务,如激光测距传感器、3D摄像头或GPS之类的设备向机器人提供了来自环境的信息。这些数据源必须组合在一起,以便机器人能够在环境中定位自己。通过提供目标位置,它还必须计算出本体的最佳路径,这称为 路径规划 。在执行这样的路径规划时,它必须检测可能出现在路径上的障碍,并在不失去重点目标的情况下避障。因此,任务的每个步骤都涉及在机器人的CPU中执行算法。

下面将学习使用ROS,作为解决此问题的诸多实际方案之一,ROS是目前开发机器人应用程序的 实际 行业标准。 nEL1sI8lGaKmLqYt4GmZ1bsEI4Qt9thF8bbwjssbOX8ACkjxkA5ZJzLlX7Y/hHXy

点击中间区域
呼出菜单
上一章
目录
下一章
×