Spring 四足蜘蛛实验

Spring 四足蜘蛛实验,spring,neural-network,weka,robotics,pi4j,Spring,Neural Network,Weka,Robotics,Pi4j,让我开始说,我是神经网络、机器学习等方面的新手,到目前为止,我只做了一些非常简单的实验来学习,所以如果我问一些非常幼稚或冗长的问题,请耐心等待。 我最喜欢的编码语言是java,我正在考虑使用Weka。来使用我觉得很像的API 这一次,由于非常清楚和完整,为了获得比一组理想数据更多的数据来培训和检查成功率,我不仅从软件开始,而且从我为自己创建的一个现实世界问题开始。 我创造的问题,我想用神经网络来解决,是一个四足蜘蛛形状的机器人,由一个树莓PI控制,带有一些ADC和伺服帽。这种奇怪的机器人有四条腿

让我开始说,我是神经网络、机器学习等方面的新手,到目前为止,我只做了一些非常简单的实验来学习,所以如果我问一些非常幼稚或冗长的问题,请耐心等待。 我最喜欢的编码语言是java,我正在考虑使用Weka。来使用我觉得很像的API 这一次,由于非常清楚和完整,为了获得比一组理想数据更多的数据来培训和检查成功率,我不仅从软件开始,而且从我为自己创建的一个现实世界问题开始。 我创造的问题,我想用神经网络来解决,是一个四足蜘蛛形状的机器人,由一个树莓PI控制,带有一些ADC和伺服帽。这种奇怪的机器人有四条腿,每条腿都是由机器人制造的 在3个部件中,每个部件由伺服电机移动。我总共有4个支腿*3个支腿部分=12个伺服电机。在每个伺服电机上,我都连接了一个3轴模拟加速度计(总共12个),我可以从Raspberry PI读取数据。 从每个加速度计中,我读取2轴以确定每个伺服的位置,即每个腿的每个腿段的位置。此外,4条腿中每一条腿的“脚底”都有一个按钮 确定支腿是否已到达地板并支撑着十字轴。spider construction博客位于此处,供感兴趣的人使用: 本实验的目的是使蜘蛛能够使自己处于平衡状态,并从任何条件开始将自己水平放置。 蜘蛛应该能够在几句话,水平水平地水平它的身体,不管事实上,我已经把蜘蛛放在一个水平或倾斜的表面上。硬件平台已经准备好了,我遗漏了一些细节,但让我们假设 我可以使用PI4J API从java Spring启动应用程序读取所有需要的信号,以接口硬件(12个伺服的24个ADC值和4个数字输入(真/假)的按钮) 蜘蛛脚掌)。其目的是解决使用Weka构建的神经网络移动腿伺服电机的问题,读取各种输入信号,直到系统达到目标 成功条件(静态平衡和身体处于水平位置)。主要的问题是如何使用我所有的数据以最好的方式建立一个数据集,使用什么样的神经网络来建立数据集 自适应校正反馈,直到蜘蛛达到身体最终水平并处于静态平衡的成功状态

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

各支腿应执行以下步骤:

每次可从任意位置独立移动一个伺服(在腿部允许的角度范围内)

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

确定最后一步对整个系统是有利还是不利

如果由于上次移动而未发生任何更改,请保留最新的更改/移动并继续

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

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

我面临的问题是一系列开放性问题,其中一个问题是如何从数据角度表示该系统:

来自加速度计的数据都来自同一腿上的伺服系统,这些数据是数据集群或机器人子系统的候选数据吗

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

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


你如何从神经网络的角度来处理这个问题?

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

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

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

首先使用legs-Weka分类模型来检测四条腿中哪一条具有更高的倾斜度

使用特定于腿部的Weka分类来纠正上述第一步中检测到的腿部,即三个腿部分段为纠正问题而采取的措施


Stefano

请尽量提高您文章的可读性。这将使其他人更容易帮助你。回答我自己的问题:在机器人和电子设备上花费了大量时间后,它似乎终于起作用了: