×

基于Jetson NANO的助手机器人

消耗积分:0 | 格式:zip | 大小:0.63 MB | 2023-07-06

分享资料个

描述

杰森姐妹

Jetson姐妹是两款基于Jetson Nano开发系统的辅助机器人。这些机器人被设计为老年人或独居者的助手机器人。每个机器人都具有彼此不同的特征,因此每个机器人都可以提供可以更好地与用户交互的技能。大姐姐是专为户外工作而设计的机器人。它更坚固,非常适合在家外工作。作为专为户外工作而设计的机器人,大姐姐可以承载更多的重量,这可以让用户将其用作去超市购物的工具或作为伴侣(该机器人具有差分运动学)。

另一方面,小姐姐是一种更小、更不坚固的机器人,专为小公寓等室内设计而设计(该机器人具有全向运动学)。由于这些机器人的可能用途,每个机器人都包含人工智能 (AI) 算法,使它们能够识别人、情绪并识别家中的不同位置。由于 Jetson 姐妹的主要想法是与人互动,因此我们加入了与语音助手 Alexa 的联系。这样,用户可以通过自然语言(语音)控制姐妹们,允许下达诸如“你可以去厨房”之类的命令。

姐姐嵌入了回声输入(图 2)。而妹妹可以通过 Alexa 生态系统中的任何其他设备进行控制。

poYBAGOIOVSAMzaQAABS8JwmYwQ794.png
图 2,回声输入
 

而妹妹可以通过 Alexa 生态系统中的任何其他设备进行控制。

然而,用如此强大的开发工具构建了一个抢劫并能够使用语音连接到 Alexa,我想到了......为什么不让大姐通过低功耗蓝牙 (BLE) 进行通信,从而连接可穿戴设备并将这些信息显示在 LCD 屏幕上?好吧,从这次叛乱中,大姐姐整合了一个BLE通信系统,它允许通过alexa,知道你的每分钟节拍,步数等。所有这些信息都是从TTGO T-Watch获得的(虽然这个项目没有考虑这种可能性使用深度学习分析信号,同时我正在这样做,但由于时间问题,它们没有显示)。

Alexa 技能

为了为 Alexa 创建技能,我们在 Alexa Amazon 中注册了一个帐户。

pYYBAGOIOVuAZYf1AABfK0H60PA913.png
图 6,Alexa 控制台
 

在这一步之后,我们通过单击“创建技能”按钮来创建我们的技能:

pYYBAGOIOV2ANu87AAAueVa9SUc027.png
图 7,创建 Alexa 技能
 

创建技能后,将向用户提供调用词以开始与其交互。例如,如果技能名称是“robot one”,用户需要说“Alexa start the robot one”。由于这个项目不是关于如何做一个alexa技能,而是关于实现深度学习、机器人和jetson nano,你可以查看这个教程。

以下是对杰森姐妹各部分的介绍。这两个系统可以具有相同的视觉硬件,因为分类算法独立于机器人。出于预算原因,我不得不进行硬件分发,这意味着一个姐妹将拥有一个 360º 相机,另一个姐妹将拥有一个深度相机 :'(。

实感相机

英特尔® 实感™ 深度摄像头 D435 是一种立体跟踪解决方案,可为各种应用提供优质深度。其广阔的视野非常适合机器人或增强现实和虚拟现实等应用,在这些应用中,尽可能多地看到场景至关重要。这款相机的范围可达 10 米,其小巧的尺寸使其可以轻松集成到任何硬件中。它配备了英特尔实感 SDK 2.0 和多平台支持。

实感相机

英特尔® 实感™ 深度摄像头 D435 是一种立体跟踪解决方案,可为各种应用提供优质深度。它的宽视野非常适合机器人或增强现实和虚拟现实等应用,在这些应用中,尽可能多地看到场景至关重要。这款小型相机的范围可达 10 米,可以轻松集成到任何解决方案中,并配备了我们的英特尔实感 SDK 2.0 和跨平台支持。

 
 
 
pYYBAGOIOWCAUUSUAAB14MtxWCU021.png
 
1 / 2图 8,RealSense™ D435
 

理光THETA V

这个机器人有一个单广角镜头相机,这是理光在RICOH THETA Dream and Build Contest中给我颁发的相机的技术特性可以在以下链接中看到

只需按下快门按钮,您就可以捕捉到整个周围的环境。享受您从未体验过的全新影像世界。

poYBAGOIOWWAedPLAABTv0VvxJE675.png
图 10,理光 Camera 360
 

最引起我注意的功能之一是它的处理器 Snapdragon 625。

所以,我想知道我能用这台相机做什么,用它来拍照,将它们发送到网络服务,分析它们并返回分析后的信息……嗯,对我来说这是一种浪费。这就是为什么我想到将我的想法分为两部分,第一部分(简单的东西)我的机器人以简单的方式使用相机。将它用作另一个摄像头,这样我的机器人就可以对其环境有全局视野。

硬件说明

在本节中,我将描述构成 Jetson 的两个姐妹的不同部分。

大姐

至此我们已经完成了系统的第一部分,接下来就是大姐的搭建了。为了制作这种结构,我使用了铝结构(图 12):

poYBAGOIOWmAfayrAAA-OP_b8Fg404.png
图 12,SWMAKER 全黑/银色超立方体 3D 打印
 

图 13 显示了使用 SolidWorks 工具制作的 3D 设计,这是机器人可以拥有的众多形状之一。因为,在使用模块化系统时,机器人可以有任何形状。

poYBAGOIOWuAZMHsAAAeerWZkVg140.png
图 13,3D 机器人模型
 

下面的图 14 [A 到 D] 显示了用于控制机器人轮子的组件。

pYYBAGOIOW6ARylbAACHGKuJDtM437.png
图 14 A
 
pYYBAGOIOXGAaOoiAAB31p7TV_o099.png
图 14 B
 
poYBAGOIOXOAOoDQAABnf_Q8Q3k310.png
图 14 C
 
pYYBAGOIOXWAL9auAABfzpaPAfg478.png
图 14D
 

大姐分为两个部分帮助控制机器人,第一部分负责 Arduino Mega 2560,第二部分使用 Jetson Nano(图 10)。Arduino负责控制与机器人底层相关的一切,即它控制电机和一些Sharp GP2Y0A2YK0F距离传感器。这些传感器用于在检测到一定距离内的物体时为机器人提供反应控制。为了控制电机机器人,Jetson Nano 发送一个 JSON 命令。发送到 Arduino 的消息被序列化,Arduino 提取不同的元素对其进行反序列化。发送给Arduino的消息如下:

"Stop_robot": "False", "direction": "True", "linear_speed": "0.2", "angular_speed": "0.0"}

"Stop_robot": "False", "direction": "True", "linear_speed": "0.2", "angular_speed": "0.0"}

此消息由 4 个字段组成,两个布尔值和两个浮点值,布尔字段允许电机的方向控制(CW 或 CCW)和电机的停止。另外两个字段是线速度和角速度。出于安全原因,最大速度被限制为 0.2,这在 PWM 中相当于总速度的 20%。

机器人使用的电机是两个吸尘板电机。

霍尔编码器连接和电机电源线的配置如图 16 所示。

pYYBAGOIOXqAT_-SAAAaCMMCXkk320.png
图 16. 电机连接。
 

要控制这些电机,需要为每个电机配备一个 ESC 控制器。该控制器必须支持 36V 的电压,因此我们使用了带有 MODET 晶体管的 ESC,该控制器如下所示(图 17)。

pYYBAGOIOXyAJ4-cAABHlC3kGn4490.png
图 17,发动机 ESC 控制器
 

图 18 显示了为控制电机而进行的不同连接(控制电机和编码器的电缆颜色是所有电机的标准颜色)。

pYYBAGOIOX-AJYWMAACq5gS4fj8126.png
图 18,电机与控制器的连接图
 

然而,这些电机的一个问题是编码器,用于控制机器人的 ESC 具有输入和输出。arduino 中断使用此输出来计算电机的旋转,唯一的问题是如果轮子改变旋转,通过中断引脚的信号不会改变。

为此需要添加一个外部编码器,这个编码器可以帮助机器人知道轮子的旋转角度和行进的距离。用于执行此操作的编码器是AS5048B-TS_EK_AB

 
 
 
poYBAGOIOYaABX4uAAjMr2bJS1w642.jpg
 
1 / 2图 19,磁性编码器
 

妹妹

妹妹是使用全向轮式平台建造的(图 20 和 21)。

poYBAGOIOYmAXpq-AAFopRK2GgQ039.png
图 21,年轻的系统部件
 
pYYBAGOIOYyAUeeJAADNNKVkQsc381.png
图 21,Younger syster 机器人底座。
 

 

pYYBAGOIOY-ATSqIAAB5vY1DocI166.png
图 22,小系统
 

软件说明

在本节中,我将描述所使用的软件工具的不同部分,以便 Jetson 工具执行不同的交互和多分类任务。重要的是确定姐妹们使用了三个训练好的模型。其中两个是静态的(情感分类和房子里的地方分类),也就是说只训练一次,第三个模型可以是动态的。由于用户可以动态增加分类的数量。最后一个模型被称为“Things of the house”。

 

pYYBAGOIOZGAdIX8AAFOdviaDXA483.png
图 25,建议的系统
 

 

 

深度学习部分

这个庞大项目最重要的部分之一是技术的应用和使用 Jetson Nano 的深度学习工具。重要的是要指出这些机器人的想法是它们可以在房子里或街道上工作,最后一个可能是最复杂的,因为我没有在户外工作的激光雷达:' (。我的机器人当时使用不同的模型来分类,也就是说机器人使用相同的图像来确定它所在的位置,人的情绪(如果它检测到人脸)和检测家里的物品。

注意:此项目仅适用于此软件版本:

蟒蛇版本:3.6.9

张量流版本:2.0.0

喀拉斯版本:2.3.1

居所分类

为了使之可行,机器人必须能够识别家中的各个地方。为此,机器人需要一些预先的过程,即机器人需要了解它们将展开的位置。为此,需要将机器人放置在家里的每个房间、厨房、客厅、走廊、房间等。每个地方大约拍摄 200 张图像。这些图像是使用360º Ricoh Theta V 相机骗取的。

这些图 26 被调整为 224x224 的大小,一旦调整大小,数据集就被创建,将用于训练网络。

pYYBAGOIOZSAUui6AACvW0nLIE0180.png
图 26,House Place 数据集
 

图 27 显示了在验证阶段从房屋中的地点分类获得的矩阵。从该图中可以确定,系统正确识别了机器人所在的位置。

pYYBAGOIOZaALuCOAABVWNYY35E343.png
图 27,House Place 混淆矩阵
 

情绪分类

情绪分类是机器人的一个重要方面,因为情绪会影响人类行为并影响您的健康。正是出于这个原因,我引入了一个情绪分类模型,它可以对 7 种情绪进行分类:AF = 害怕,AN = 愤怒,DI = 厌恶,HA = 快乐,NE = 中性,SA = 悲伤和 SU = 惊讶。

poYBAGOIOZmAb8UvAACETLOh3Qw067.png
图 28,混淆矩阵情绪分类
 
pYYBAGOIOZuADfOIAACPIp0E89s225.png
图 29,情绪分类测试
 

 

家里的东西

这是一个负责对房屋内的物品进行分类的模型,这是一个动态模型。这意味着用户可以修改它,在模型中添加类。这个模型的活力,主要是因为并不是所有的房子都有相同的对象。

 

poYBAGOIOZ6AfJ4OAACjID3DMtk067.png
图 30,家庭事物混淆矩阵
 

 

附录

机器人要与alexa skill进行通信,需要用到ngrok工具。这允许在 alexa 和机器人之间创建一个通信隧道。

端口:3000

sudo ./ngrok http 3000

NVIDIA 开发用户:Jaime Andres Rincon Arango

 

poYBAGOIOaGAPx1ZAAF0riaKx6I154.png
图 31,HTML 界面。
 

 

结论和未来的工作

已展示的项目是我正在做的个人项目的一小部分,主要目标是将深度学习算法集成到 Jetson Nano 中。与此同时,我一直在尝试将这些机器人与亚马逊的 Alexa 语音助手相结合。然而,由于机器人需要时间来整理情绪、房子的位置和房子里的东西,所以这种整合并不成功。作为未来的工作,我希望与 Nvidia Isaac 集成,以减少语音交互时的延迟。除了改进导航算法外,对内部(小姐姐)和外部(大姐姐)使用激光雷达,并通过强化使机器人融入学习。集成基于多代理系统的系统,使两姐妹相互协作,

 

可能的错误

如果您在使用 Flask、Keras 和 Tensorflow 时遇到此错误,可以在此链接中查看解决方案。

AttributeError: '_thread._local' 对象没有属性 'value'

注意:已描述的项目不是周末项目。这是一个复杂的项目,其中集成了不同的 AI 技术以及不同级别的编程。

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !