写点什么

第 3 部分:连接您的无人驾驶车辆

  • 2019-11-06
  • 本文字数:3453 字

    阅读完需:约 11 分钟

第 3 部分:连接您的无人驾驶车辆

在我们无人驾驶车辆系列的第一篇博客文章中,您制作了一辆 Donkey 车并将导航服务器部署到 Amazon EC2 实例上。在第二篇博客文章中,您学习了如何驾驶 Donkey 车辆,Donkey 车辆也学习了如何自行驾驶。在这篇博客文章中,我们将介绍将 Donkey 车辆的遥测数据流式传输到 AWS 的过程。all 我们将使用 AWS IoT 服务,因为该服务提供了一组可扩展、可靠并且功能丰富的服务,这些服务可用于所有种类的互连设备,包括我们的互联车辆。




  1. 在 AWS 上制造一辆无人驾驶车辆,并参加 re:Invent 机器人车拉力赛

  2. 《制作无人驾驶车辆》第 2 部分:驾驶您的车辆

  3. 《制作无人驾驶车辆》第 3 部分:连接您的无人驾驶车辆

  4. 即将推出



AWS IoT 设置

无人驾驶车辆在驾驶过程中会生成持续的遥测数据流。车辆不在驾驶状态时,没有遥测数据可收集,所以我们不希望耗用任何资源,避免浪费。为适应工作负载的变化,我们计划依靠无服务器技术为整个架构提供支持。首先,我们将使用 AWS IoT 设计一项车队监控服务。它可以使用同一基础架构为任意数量的车辆提供服务。下图显示了该车队监控服务的架构。



此解决方案的组件按逻辑功能 (和 AWS 服务) 进行颜色编码,以展示解决方案每个组件的安全性、可扩展性和完全基于使用量的特点。这种运营模型适合很多业务模式,对任何规模的客户都有用。无论是要跟踪和比较圈速的无人驾驶车辆业余爱好者,还是希望开发其自己的互联车辆平台的无人驾驶汽车制造商,都可以使用 AWS IoT 提供的安全、可扩展且基于使用量的成本结构。


此解决方案以 Donkey 车辆 (绿色阴影所示) 开始。接下来数据通过 IoT 服务传递到粉色部分,在 DynamoDB 中进行短期存储,然后传递到蓝色部分,在 S3 中长期存储。此外,AWS IoT 主题中的数据也可以实时查询并 (如下所示) 用于驱动控制面板。


Donkey 车辆已连接 Internet,这意味着它能够将遥测数据流式传输到一个集中位置,本例中为 AWS IoT。为保证遥测数据的安全,我们将从 AWS IoT 生成证书并将证书部署到 Donkey 车辆。通过使用证书,Donkey 车辆可通过 MQTT 使用 TLSv1.2,与 AWS IoT 进行安全通信。MQTT 是一个极其轻量的协议,能够很好地应对低信号网络,因此可以解决连接可靠性难题。


保证安全的最简单方法是使用一键式证书创建方法。为此,请打开 AWS IoT 控制台。在左侧导航窗格中,选择“Security”。然后,选择 Create 按钮。

创建证书

可以使用 AWS IoT 控制台、AWS IoT API 创建证书,也可以像我们在上一篇博客文章中那样在 Raspberry Pi 上使用 Amazon EC2 Systems Manager Run Command 生成并传输证书。通过使用 EC2 Systems Manager 执行此过程,我们无需手动将证书复制到 Raspberry Pi。


为简便起见,我们将使用 AWS IoT 控制台完成此过程。


我们将创建一个新策略,通过它向我们的 Donkey 车辆授予对 AWS 服务的特定权限。这允许我们设置精细的车辆特定设置,如可以访问的 AWS IoT 主题和可以采取的 IoT 操作。


首先打开您的 AWS 管理控制台。转到 AWS IoT 控制台并选择“Security”,然后选择 Policies。然后选择 Create


我们将使用此策略来允许对 AWS IoT 服务执行所有操作,因为我们不需要阻止使用该服务的完整功能。此特权包括:iot:Publish、iot:Subscribe、iot:Connect、iot: Receive、iot:UpdateThingShadow、iot:GetThingShadow 和 iot:DeleteThingShadow。



除证书和策略外,AWS IoT 服务还需要创建一个事物来描述我们的 Donkey 车辆。为此,在左侧的导航窗格中,从注册表中选择“Things”。然后选择 Create,为您的事物提供一个名称并单击 Create thing



现在已经创建了策略和事务,我们可以将它们与之前创建的证书相关联。为此,请在左侧导航窗格中选择“Security”、“Certificates”。找到并选中您之前创建的证书。从 Actions 菜单中,选择 Attach Policy。然后从 Actions 菜单中,选择 Attach Thing


AWS IoT 规则

现在我们有了生成和传输遥测数据的方法,可以专心构建该解决方案的其余功能了。我们的解决方案需要两个规则,一个用于控制面板要访问的 Amazon DynamoDB,另一个用于 Amazon Kinesis Firehose,它将所有遥测数据分发给 Amazon S3 和 Amazon Kinesis Analytics 以便进行实时遥测数据分析。

DynamoDB 规则

首先,我们将创建用于 DynamoDB 的规则。在 AWS IoT 控制台左侧的导航窗格中,选择“Rules”。然后选择 Create 按钮。


Create a rule 页面上,为规则输入名称并添加描述,描述要能轻松标识数据的类型和使用这些记录的 AWS 服务。



然后选择 Add actionSplit message into multiple columns of a database table (DynamoDBv2)



然后选择 Configure action


接下来,您可以创建新表或使用现有表。我们将选择 Create a new resource 创建一个新表。


现在我们按照 Create DynamoDB table 向导操作。我们调用 Table name AutonomousVehicles,将 Primary key (分区键) 设为 vehicleID 属性,该属性在该车队中的所有车辆中是唯一的。我们将对属性时间添加一个排序键,从而提高 DynamoDB 查询效率。其他设置保留默认值。对于处理一辆车的遥测数据来说,这些已经足够了。



在 DynamoDB 创建表的同时,我们可以设置 TTL 属性以将 DynamoDB 的运行成本保持在非常低的水平。如果您保留默认的 5 个读取容量单位 (RCU) 和 5 个写入容量单位 (WCU),月度账单大约为 2.50 USD。RCU 和 WCU 可以手动上下调整,或者,您也可以选择使用 Auto Scaling。为了降低成本,我们还将允许 DynamoDB 根据用户定义的属性自动让项目过期。在这里,我们将向遥测添加 TTL 时间戳。在我们在 Donkey 车辆上运行的程序中,我们将把 dynamodb_ttl 属性设置为当前 Unix 时间戳加上 2592000 (30 天),然后将其存储在 DynamoDB 中。30 天后,DynamoDB 会知道 TTL 属性已过期并自动删除这些项目。



选择 Continue 以启用 TTL。返回您执行 AWS IoT 配置操作时离开的页面,从 Table name 下拉列表中选择您的表。如果看不到您的表,请单击刷新箭头。然后,选择 Create a new role 并将其命名为 AutonomousVehiclesDynamoDB 或类似名称。选择 Update role,然后选择 Add action


接下来我们可以检查一下我们的所有选择。准备好后,选择 Create rule

Kinesis Firehose 规则

现在我们可以按照类似的步骤创建另一个规则以将所有遥测数据发送到 Kinesis Firehose。在左侧导航窗格中,选择“Rules”。然后选择 Create 按钮。


Create a rule 页面上,为规则输入名称和描述,描述要能轻松标识数据的类型和使用这些记录的 AWS 服务。



然后选择 Add action,再选择 Send messages to an Amazon Kinesis Firehose stream



然后选择 Configure action


现在需要做一个选择:创建新流还是使用现有流。我们将选择 Create a new resource 以创建一个新流。


我们现在按照 Create delivery stream 向导操作并为传输流提供一个名称。选择 Next




选择 Next



确保选中了 Amazon S3。选择要将遥测数据存储到其中的相应 S3 存储桶和前缀。



为 IAM 角色选择 Create new 或选择。 从下拉列表中,选择“Create a new IAM Role”并为其提供一个角色名称。选择 Allow。然后选择 Next




最后,确认一切正确无误并选择 Create delivery stream



返回 Configure action 屏幕并选择所创建的新流。


然后选择 Create a new role,AWS IoT 将用该角色访问 Amazon Kinesis Firehose 流。为角色命名后,选择 Update role,然后选择 Add action



最后,确认所有选择,准备就绪后选择 Create rule



AWS IoT 服务现已就绪,正在等待遥测数据的流入。由于 AWS IoT 是无服务器并基于使用量的服务,所以其部署和保持开启不会产生任何费用。Amazon Kinesis Firehose 和 Amazon S3 也是根据数据摄入量计费的。现在,我们可以生成遥测数据,然后使用 AWS IoT 控制台检查它是否发送到正确的主题。



或者,我们也可以构建一个控制面板来直接连接到 AWS IoT,使它可以近乎实时地使用这些遥测数据。下面是一个控制面板的示例,它托管在 Amazon S3 上,因此完全无服务器并且无需管理底层 Web 服务器。在下面的教程中可找到可视化 IoT 遥测数据的示例:


部署端到端 IoT 应用程序 (pdf)


以下博客文章中也有相关内容:


使用 Amazon Kinesis Analytics 和 Amazon QuickSight 为 IoT 数据构建可视化和监控控制面板



在下一篇博客文章中,我们将回顾到目前为止我们做过的所有工作,并讨论关于无人驾驶车辆的下一步行动。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/building-an-autonomous-vehicle-part-3-connecting-your-autonomous-vehicle/


2019-11-06 08:00591

评论

发布
暂无评论
发现更多内容

2024-06-19:用go语言,给定一个起始下标为 0 的整数数组 nums 和一个整数 k, 可以执行一个操作将相邻两个元素按位AND后替换为结果。 要求在最多执行 k 次操作的情况下, 计算数组

福大大架构师每日一题

福大大架构师每日一题

AR巡点检系统:慧眼智巡,未来视界

AR玩家

AR Rokid Vision pro 炬目AR AR巡点检

今日分享丨点亮这四个技能,你也可以成为可视化专家

inBuilder低代码平台

设计 设计开发

3种方式自动化控制APP

快乐非自愿限量之名

运维 自动化

SD-WAN远程监控异地组网方案

Ogcloud

SD-WAN 远程监控 企业组网 SD-WAN组网 异地组网

为什么选择SD-WAN进行企业异地组网?

Ogcloud

SD-WAN 企业组网 SD-WAN组网 异地组网 SDWAN

MES系统适用于哪些行业?MES系统具体功能有哪些?

万界星空科技

mes 万界星空科技 离散型制造业 流程型制造业

云原生技术实践营 · 深圳站:Serverless + AI 专场开启报名!

阿里巴巴云原生

阿里云 Serverless AI 云原生

IPQ8074 vs. IPQ8064 SOC: A Technical Comparison

wifi6-yiyi

cpu wifi SOC

淘宝、1688海外站与外贸站搭建:全面解析与代购系统源码探讨

技术冰糖葫芦

API 安全 API 开发 API 策略 pinduoduo API

解决 JMeter 返回内容中文乱码问题的详细指南

霍格沃兹测试开发学社

淘宝商品详情API接口:商品属性与评论数据综合获取,助力市场研究

技术冰糖葫芦

API 安全 API 开发 API 策略 pinduoduo API

Allavsoft for Mac(视频下载工具) v3.27.2.8935版

Mac相关知识分享

Mac软件 mac下载 视频下载软件 多媒体下载软件

小程序与小组件技术和场景介绍解析

Onegun

小程序 finclip 小程序组件

AI 克隆声音,只需 3 分钟(附最全教程)

阿里巴巴云原生

阿里云 AI 云原生 函数计算

Artstudio Pro for mac(绘图和编辑工具)

Mac相关知识分享

Mac软件 照片编辑软件 数字绘画软件 mac下载

Microsoft Remote Desktop for Mac(微软远程连接软件)

Mac相关知识分享

远程软件 Mac软件 远程桌面 mac下载

电竞体育直播APP源码开发费用,以及搭建所需的各种资料和服务

软件开发-梦幻运营部

网络程序通信的流程

EquatorCoco

php 网络 开发语言

【解决方案】Java 互联网项目中消息通知系统的设计与实现

EquatorCoco

Java 数据库 消息通知

京东商品详情API:解锁电商数据的金钥匙

Noah

分享一些关于2024下半年AI发展的预测

澳鹏Appen

人工智能 预测 大模型 未来技术趋势 AI趋势

抑制告警风暴,我们可以做些什么

乘云数字DataBuff

云原生 可观测 告警风暴

中国首例!「DataKit」上架亚马逊云科技 Marketplace add-ons

观测云

AWS

如何使用JavaScript实现在线Excel附件的上传与下载?

不在线第一只蜗牛

JavaScript Excel

FabFilter Total Bundle 2024 for Mac(音频插件合集)

Mac相关知识分享

音频插件 mac插件下载 音乐插件

构建多模态模型,生成主机观测指标,欢迎来战丨2024天池云原生编程挑战赛

阿里巴巴云原生

阿里云 微服务 云原生

网络调试利器:Chrome Network工具的详细指南

霍格沃兹测试开发学社

Royal TSX for Mac(强大的远程管理软件)

Mac相关知识分享

服务器管理 mac软件下载 远程管理

技术加持、产品立身“商查利器”爱企查持续助力诚信社会建设

科技热闻

第 3 部分:连接您的无人驾驶车辆_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章