首页

四足机器人使用Arduino |蜘蛛机器人

四足机器人-它是一种四足行走的机器人,是蜘蛛(蛛形纲物种)的仿生学复制品,使用它们的腿来运动,可以通过人类的互动或自己完成一些任务。

简介

移动到有腿机器人的主要目的是,与轮式机器人相比,它们可以轻松应对不规则地形。它可以通过实现来实现爬行步态(运动模式)即一条腿在空中,其余三条腿在运动时与地面接触。

爬行步态(也称为四足步态)可以转换成程序,嵌入到微控制器中,指令伺服电机在所需的位置移动。

四足机器人部件

  • Arduino Uno单片机
  • Arduino传感器屏蔽V5.0
  • mePed Robot V2 -基础套件
    • 包含所有组成主要结构的部件的木套件
    • MG90S金属齿轮伺服电机- 8台
    • SG90塑料齿轮伺服电机1台
    • 螺丝、螺母、垫片
  • 传感器和模块
    • 红外传感器2
    • 带支架的超声传感器
    • HC-05蓝牙模块
  • 电力供应
    • Arduino 2000毫安时的充电宝
    • 1.2V 4*AA 1300毫安可充电电池和4*AA电池支架传感器屏蔽
  • 连接器和电缆
    • 微型电路试验板
    • 跳线
    • USB电缆

组装

  • 四足动物的身体可以在mePed v2装配手册的帮助下组装。链接到手册- > "mePedAssemblyManual”。
  • 本手册包括装配伺服电机的腿,身体装配,最后所有四条腿都连接到四足动物的身体。

四足机器人装配图像

传感器的盾牌

一旦完成,可以安装Arduino微控制器,传感器屏蔽插入Arduino。

没有传感器屏蔽,连接看起来很混乱,当某些东西不工作时,将很难调试。

装配无传感器屏蔽的四足机器人

传感器屏蔽简化了电线连接,因此所有的传感器,伺服电机和模块都可以连接到它。

  • 前端安装有一个带有超声波传感器的伺服电机,红外传感器面朝下。
  • 然后蓝牙模块连接到传感器屏蔽。
  • 跳线用于将传感器连接到Arduino盾
  • 电池座放置在机身底部。

四足机器人装配传感器屏蔽

传感器屏蔽连接

  • 8个用作腿的伺服连接到数字IO端口D0到D7(D0 -D3 x轴伺服,D4-D7 y轴伺服)
  • D11连接单伺服,用于转动超声传感器
  • 红外传感器连接到D9和D12
  • 超声波trigPin连接D8, echoPin连接D10。
  • Hc-05连接蓝牙接口(Tx连接D0, Rx连接D1)
  • 电池座连接到传感器屏蔽电源(GND, 5V)
  • 充电宝连接Arduino。

四足机器人传感器屏蔽连接

全装配四足机器人与所有的传感器和马达。

四足机器人完全组装

工作及其功能

体系结构

四足机器人的体系结构

示例场景:用户要求机器人左转并行走

  • 用户输入“你能转身和走路吗?”在Android应用程序中
  • 在API的帮助下,对dialogflow agent进行API请求。ai Android SDK
  • Agent将检查输入文本是否与任何训练短语(intents)匹配,然后提取所需的参数(@directions:left,right),并提示用户在输入文本中缺少这些参数时提供这些参数。(输入中缺少方向,完整输入:“你能左转走吗?””)
  • 然后提取的参数(左)作为响应发送给app, app又通过蓝牙将该参数传递给Arduino微控制器
  • 根据接收到的参数,由单片机调用相应的函数,借助超声传感器检测其是否能左转。
  • 然后结果(距离= 6厘米)作为响应传递给android应用程序,它决定不可能转弯,因为附近有一个物体,并通知用户相同。

构建聊天机器人

  • Chabot是一种计算机程序,用来与人类进行对话,以帮助人类执行某些功能。
  • NLP(自然语言处理)算法用于聊天机器人从自然语言中获得有用的意义。

Dialogflow-它是谷歌旗下的一个自然语言处理引擎,用于创建一个会话机器人,解析用户查询并提取相关参数。

代理

  • 代理是自然语言理解模块,它在意图和实体的帮助下将用户请求转换为可操作的数据
  • 创建代理“NewAgent-1”。

四足机器人对话流

意图

  • 代理包含负责将用户查询与适当响应映射的意图。它是在……的帮助下实现的训练短语,动作和参数
  • 创建新的意图' Navigation '。

4 .四足机器人

培训的短语

  • 训练短语充当示例用户输入。
  • 为了提高代理的效率,创建了多个训练短语。

4 .四足机器人

实体

  • 每个训练短语都可以包含实体。实体是从用户输入中提取的有用参数。

实体-用户定义和系统定义

系统实体

Dialogflow包含一些可以在训练短语中使用的预定义实体。

例如:@sys。date—今天、明天、星期一等

四足机器人

4 .四足机器人

用户/开发人员定义的实体

  • 它允许我们创建自己的实体,这些实体不在Dialogflow的系统实体中。

你能向右转然后走吗?

  • 用户请求四足动物转弯和行走,它需要知道应该向哪个方向转,是向右还是向左,这作为输入中的一个实体。

@direction:方向-左,右

4 .四足机器人

创建用户定义的实体“direction”。

4 .四足机器人

行动和参数

提示和反应

4 .四足机器人

提示

提示用于确保从用户处获得完整的信息。

你能转身走吗?

缺少信息:方向(左,右)

机器人的反应:左还是右?

4 .四足机器人

反应

然后为将显示给用户的查询定义相应的响应。

4 .四足机器人

类似地,其他意图也会飞起来,迷宫也会被创造出来。

目的:飞

培训的短语:你能飞吗?

回应:哈哈不,不可能。

构建Android应用程序

设计蓝牙布局

当点击@+id/按钮时,这个布局使用ListView列出配对的蓝牙设备


连接成对的设备
  • Android平台支持蓝牙框架,帮助Android设备和Arduino之间无线传输数据。
  • Android提供蓝牙适配器类与蓝牙通信
  • 检索配对的蓝牙设备列表并在列表视图中显示,并选择需要进行通信的设备。
  • 一旦连接成功,它将打开聊天布局,在那里用户和机器人之间的对话发生。
  • 添加以下权限到AndroidManifest.xml,以允许应用程序访问蓝牙和互联网。

< uses-permission android: name = " android.permission。蓝牙" / >

< uses-permission android: name = " android.permission。BLUETOOTH_ADMIN " / >

< uses-permission android: name = " android.permission。互联网" / >

四足机器人蓝牙活动图 四足机器人蓝牙活动图片

设计聊天页面布局

这个布局包含列表视图来显示用户和机器人之间的对话,并在底部编辑用户进行对话的文本。

四足机器人聊天布局

创建两个单独的布局,一个用于用户,另一个用于机器人,然后在适配器类的帮助下,相应的布局相应地绑定到对话列表。

UserMessage布局

用户消息出现在屏幕的右侧。

四足机器人用户信息布局

BotMessage布局

机器人信息出现在屏幕左侧。

四足机器人机器人信息布局

发送和接收消息
  • 为了在我们的应用程序中实现自然语言处理功能,我们必须添加API。AI SDK库到我们的项目。
  • 需要添加依赖性build.gradle文件。(OurApplication / build.gradle

编译的ai.api: sdk: 2.0.7@aar

  • 一旦用户进行对话,输入文本作为请求发送到对话流引擎,在那里进行处理,并将响应发送回应用程序。基于收到的响应,它将要求四足执行任务(waveHello)或它将请求提供一些数据(checkDistance)。
  • dialogflow请求是一个asynctask,它将在后台执行。

模型类

  • 该类是控制器和视图之间的桥梁。
  • 因此,当用户通过视图(UI)请求信息时,视图转到控制器,控制器通知模型。然后模型把信息给控制器控制器通知视图以便用户能看到那个信息。
  • java作为保存的模型类对话文本而且belongsToCurrentUser(它属于用户或机器人)属性

将消息绑定到列表视图

在Android中,Adapter是UI组件和数据源之间的桥梁,帮助我们在UI组件中填充数据。

  • UI组件表示用于列出对话的列表视图
  • 数据源表示数组列表消息,从中将数据填充到列表视图中

Android AsyncTask

Android AsyncTask是Android提供的一个抽象类,用于在后台执行繁重的任务,保持UI线程轻,从而使应用程序响应更快。

四足机器人Android应用程序最终版

Arduino聊天交互代码
  • 处理app从dialogflow获得的响应,并通过蓝牙与arduino进行串行通信,指示四足执行任务(waveHello(), tellNo())。
  • 如果app需要任何额外的数据来做决定,那么它会请求arduino来帮助(checkDistace() -四足需要检查附近是否有物体)
  • 超声波传感器是用来计算物体在它前面的距离。

建造迷宫求解器

它是在直线跟随和避障技术的帮助下完成的

行追随者

四足机器人使用红外传感器,该传感器具有探测黑线的能力,并引导机器人沿着特定的路径前进。

工作原理

  • 使用红外传感器(发射器和接收器)通过发射红外辐射来感知线路
  • 传感器的输出是一个模拟信号,它取决于从表面反射回来的光的数量。
  • 当从表面反射的光量较少时(因为黑色吸收红外辐射),它返回0,当反射的光量较多时返回1。

障碍回避型的人

四足动物使用超声波传感器来探测前方的障碍物

工作原理

  • 由发射器和接收器组成,发射器发射声波,接收器等待回波信号。
  • 计算信号传输和接收回波之间的时间间隔,并确定物体与传感器的距离
  • 伺服电机是一种高扭矩电机,它有一个齿轮输出轴,可以用Arduino编程控制,使其每次旋转一定程度。它用于机器人运动。
行追随者原则

四足机器人跟随线原理

情况1:当两个传感器都感知到黑线时,则应该向前移动(左传感器=0,右传感器=0)

情况2:当左侧传感器感知到黑线,右侧传感器感知到白线时,应左转

情况3:当右传感器感应到黑线,左传感器感应到白线时,应右转

情况4:当两个传感器都感知到白色,那么它应该停止。

四足动物向前运动的步态
  • 步态被定义为一种为了到达目的地的腿的运动模式。四足步态是一种身体每次抬起一条腿,其他三条腿形成一个支撑三脚架的步态。
  • 为了实现四足步态,我们所需要知道的就是我们需要在什么时候以及在什么位置移动腿,这被称为逆运动学。
  • 逆运动学有助于确定伺服电机的值,以便使腿移动到所需的位置。
  • 下图为四足动物前进步态。
  • L(x,y)其中L代表腿,x代表x轴(水平)运动,y代表y轴(垂直)运动。
  • 稳定位置为90度。

四足机器人前进步态

迷宫

四足机器人迷宫

任务:四足动物需要沿着黑线前进,它需要避开障碍物

迷宫求解器的Arduino代码
  • 结合线跟随和避障技术,将四足步态转化为算法,构建了一个迷宫求解器。
  • 向前运动的步态稍作修改,以便在四足动物偏离直线或检测到任何障碍时转弯。

结论

因此,一个四足机器人被设计成这样一种方式,人类可以使用机器人聊天机器人与它进行交互来执行一些任务。采用逆运动学算法实现伺服系统的运动。

Arduino四足机器人将能够在感应黑线的引导路径上移动,其自动避障功能使其高效地到达任何目的地。

一个回应

留下一个回复

您的电邮地址将不会公布。必填项已标记

Electronicshub图标
Baidu
map