四足机器人-它是一种四足行走的机器人,是蜘蛛(蛛形纲物种)的仿生学复制品,使用它们的腿来运动,可以通过人类的互动或自己完成一些任务。
简介
移动到有腿机器人的主要目的是,与轮式机器人相比,它们可以轻松应对不规则地形。它可以通过实现来实现爬行步态(运动模式)即一条腿在空中,其余三条腿在运动时与地面接触。
爬行步态(也称为四足步态)可以转换成程序,嵌入到微控制器中,指令伺服电机在所需的位置移动。
四足机器人部件
- 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。
没有传感器屏蔽,连接看起来很混乱,当某些东西不工作时,将很难调试。
传感器屏蔽简化了电线连接,因此所有的传感器,伺服电机和模块都可以连接到它。
传感器屏蔽连接
- 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 '。
培训的短语
- 训练短语充当示例用户输入。
- 为了提高代理的效率,创建了多个训练短语。
实体
- 每个训练短语都可以包含实体。实体是从用户输入中提取的有用参数。
实体-用户定义和系统定义
系统实体
Dialogflow包含一些可以在训练短语中使用的预定义实体。
例如:@sys。date—今天、明天、星期一等
用户/开发人员定义的实体
- 它允许我们创建自己的实体,这些实体不在Dialogflow的系统实体中。
如你能向右转然后走吗?
- 用户请求四足动物转弯和行走,它需要知道应该向哪个方向转,是向右还是向左,这作为输入中的一个实体。
@direction:方向-左,右
创建用户定义的实体“direction”。
行动和参数
提示和反应
提示
提示用于确保从用户处获得完整的信息。
如你能转身走吗?
缺少信息:方向(左,右)
机器人的反应:左还是右?
反应
然后为将显示给用户的查询定义相应的响应。
类似地,其他意图也会飞起来,迷宫也会被创造出来。
目的:飞
培训的短语:你能飞吗?
回应:哈哈.不,不可能。
构建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线程轻,从而使应用程序响应更快。
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四足机器人将能够在感应黑线的引导路径上移动,其自动避障功能使其高效地到达任何目的地。
一个回应
一切都好,爸爸?