让我开始说我是神经网络、机器学习等方面的新手,到目前为止,我只做了一些非常简单的实验来学习,所以如果我提出非常幼稚或冗长的问题,请耐心等待。我最喜欢的编码语言是 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 构建的神经网络解决移动腿伺服电机的问题,读取各种输入信号,直到系统达到成功条件(静态平衡和身体处于水平位置)。
深入探讨这个话题,让我提供我的分析。
每条腿都应执行以下步骤:
每次可以独立移动一个舵机,从任意位置开始(在腿部允许的角度范围内)
每次移动后重新读取,所有腿段位置,等待下一个静态条件
确定最后一步是否给整个系统带来了优势或劣势。
如果由于上次移动而没有发生变化,请保留最新的更改/移动并继续
如果已达到任何最大角度,请更改该角度的方向,以便下一步移动
检查系统成功现在是否更接近上一步并确定下一个操作类型
对我来说,问题是一系列开放性问题,其中一个是如何从数据角度表示这个系统:
来自加速度计的数据都属于同一条腿上的伺服系统,是数据集群或机器人子系统的候选者?
每个舵机及其位置测量是否可以成为主系统的子系统?
这些问题真的可以是多个问题而不是一个吗?
你会如何从神经网络的角度来解决这个问题?