四足蜘蛛实验

时间:2019-12-25 23:19:12

标签: spring neural-network weka robotics pi4j

让我开始说我是神经网络,机器学习等的新手,到目前为止,我仅进行了一些非常简单的实验来学习,因此如果我问的是非常幼稚或冗长的问题,请也请耐心等待。 我最喜欢的编码语言是java,我正在与Weka一起玩。玩这个看起来像我的API 这次,我非常清楚和完整,不仅要拥有一组理想的数据来训练和检查成功率,我不仅从软件开始,还从我为自己创建的现实世界问题开始。 我创建的问题并希望通过神经网络解决,这是一个四脚蜘蛛状机器人,该机器人由具有一些ADC和伺服器帽的Raspberry PI控制。这种奇怪的机器人有4条腿,每条腿 在3个零件中,每个零件都由伺服电机移动。我总共有4条腿* 3条腿零件= 12台伺服电机。在每个伺服电机上,我都装有一个3轴模拟加速度计(总共12个),可以从Raspberry PI中读取。 我从这些加速度计中的每一个读取2条轴,以确定每个舵机的位置,即每条腿的每个腿段的位置。此外,“脚底”的4条腿各有一个按钮 确定腿是否已到达地板并支撑蜘蛛网。蜘蛛构建博客在这里,针对那些感兴趣的人:https://thestrangespider.blogspot.com/ 该实验的目的是使蜘蛛能够在任何条件下保持平衡并水平放置。 无论我将蜘蛛放在水平或倾斜的表面上,蜘蛛都应该能够用几句话将其身体水平调平。硬件平台已经准备就绪,我错过了一些细节,但让我们假设 我可以使用PI4J API从Java Spring Boot应用程序读取所需的所有信号来连接硬件(来自ADC的24个值(用于12个伺服器)和4个数字输入(对/错),通过按钮 蜘蛛脚底)。目的是解决使用Weka内置的神经网络移动腿部伺服电机的问题,读取各种输入信号,直到系统到达 成功条件(静态平衡,身体处于水平位置)。主要问题是如何以最佳方式使用所有数据来构建数据集,以及要使用的神经网络  自适应校正反馈,直到蜘蛛达到其身体最终水平并处于静态平衡的成功状态。

深入探讨该主题,让我提供我的分析。

每条腿应执行以下步骤:

从随机位置(在腿部允许的角度范围内)开始,每次可以独立移动一个伺服器

每次移动后重新读取所有腿段的位置,等待下一个静态条件

确定最后一步是对整个系统带来了好处还是不利。

如果由于最后一步而没有发生变化,请保持最新的变化/移动并继续

如果已达到最大角度,请下一步移动该角度的方向

现在检查系统成功与上一步是否接近,并确定下一个操作类型

对我来说,问题是一些悬而未决的问题的组合,其中一个是如何从数据的角度来表示这个系统:

来自加速度计的数据全部来自同一腿的伺服器,它们是数据集群或机器人子系统的候选对象?

每个伺服器及其位置测量可以改为是主系统的子系统吗?

这些不是真正的一个,而是多个问题吗?

从神经网络的角度来看,您将如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

研究了Weka的分类和回归后,我最终得出结论,该处理应为回归问题。这也结束了一个太复杂的问题,该问题需要使用多标签输出进行回归,而除了Weka之外,还需要在称为Meka之上的另一个框架。

最后我得出一个结论,现在我将尝试使用第一个Weka对数据进行分类并首先检测倾斜度的长度,从而最终解决使用另一种Weka模型作用于该腿的单个特定问题每次只能单腿工作。

解决问题的步骤如下:

首先使用腿部Weka分类模型来检测四个腿中哪个具有更大的倾斜度。

使用腿部特定的Weka分类来纠正上面第一步中检测到的腿部,这是三个腿部段要采取的措施,以纠正问题。

Stefano