0

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

深入探讨这个话题,让我提供我的分析。

每条腿都应执行以下步骤:

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

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

确定最后一步是否给整个系统带来了优势或劣势。

如果由于上次移动而没有发生变化,请保留最新的更改/移动并继续

如果已达到任何最大角度,请更改该角度的方向,以便下一步移动

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

对我来说,问题是一系列开放性问题,其中一个是如何从数据角度表示这个系统:

来自加速度计的数据都属于同一条腿上的伺服系统,是数据集群或机器人子系统的候选者?

每个舵机及其位置测量是否可以成为主系统的子系统?

这些问题真的可以是多个问题而不是一个吗?

你会如何从神经网络的角度来解决这个问题?

4

1 回答 1

0

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

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

问题解决如此,将有以下步骤:

首先使用腿 Weka 分类模型来检测四条腿中哪条腿的倾斜度更高。

使用特定于腿的 Weka 分类来纠正上面在第一步中检测到的腿,三个腿段为纠正问题而要采取的行动。

斯特凡诺

于 2020-05-17T13:13:58.920 回答