构建语音控制机器人 - 线性模型和机器学习

描述

2024-07-31 |Annabel Ng

在该项目的[上一篇博客文章]中,我介绍了运行机器人电机、处理音频信号和调节电压所需的电路的基础知识。然而,机器人还没有完全完成!尽管机器人可以正确移动轮子并识别音频信号,但它仍然无法通过语音命令控制或按预定义路径行驶。

线性控制模型

首先要解决的问题是实现直线驱动。为此,我们使用线性模型来控制提供给车轮的电压。使用线性模型适合对汽车系统进行建模,因为线性系统更容易分析,并且我们可以通过找到具有近似线性行为的工作点来估计真实系统。对于我们的每个车轮,我们使用以下模型,其中 v 代表速度,d 代表编码器测量的刻度数,u 代表 PWM 信号传递的电压,theta 代表输入电压的变化以改变速度变化,beta 代表一些常数。

语音控制

为了测试不同的数据收集速度,我们改变了脉宽调制信号 (PWM) 的占空比,这些信号是具有可变“开启”时间的方波。这些占空比代表信号所花费的时间百分比,使我们能够控制 PWM 信号的平均电压。这对于电机等系统特别有用,您可以[在此处]阅读有关 PWM 周期的更多信息!例如,占空比为 0.75 的 5V 信号会产生 3.75V 的平均电压,因此通过循环不同的占空比,我们可以轻松测试不同特定电压对汽车速度的影响。

最小二乘法

为了选择直线驱动机器人的运行速度,我们首先收集 50 到 250 个 PWM 周期的一些粗轮速度数据,然后查看数据图表以观察数据的近似线性范围。确定特定的 PWM 范围后,我们重新运行数据收集并对左右车轮速度应用最小二乘模型。最小二乘法的工作原理是找到一个线性方程,最小化到给定数据点的平方距离。这种最小二乘模型使我们能够控制输入 PWM 电压,从而线性控制速度。

语音控制

闭环反馈

然而,最小二乘法是一个开环系统,这意味着它不会响应外部反馈。这种开环系统使机器人沿圆周行驶,而不是沿所需的直线行驶。一旦我们将反馈变量纳入系统中,使其成为闭环系统,两个车轮就会以相等的速度驱动,从而使汽车直线行驶。我们的闭环系统必须是稳定的,这意味着系统特征值的大小必须小于 1。最后,为了实现转弯,我们必须采用圆弧的几何形状,并考虑到左圆弧之间行驶距离的差异。和右轮。

现在我们的机器人可以直行并左右转弯,下一步就是建立语音分类模型。由于不同的单词有不同的波形,我们选择了 4 个具有不同音节和声音的单词,以产生不同的波形。我们使用机器人上的麦克风将每个单词录制 50 次,预处理数据,然后将数据分成训练和测试部分。我们通过垂直堆叠数据、贬低数据并对该数据进行奇异值分解(SVD)来构建矩阵。

这是分解任意矩阵的 SVD 方程:

语音控制

对数据进行 SVD 使我们能够找到数据的“本质”,或者从头开始重建数据最重要的数据。我们可以通过选择前 3 个主成分作为新的矩阵基础来找到这些重要成分。将数据投影到这个新的基础上后,数据分裂成不同的簇,使我们能够找到每个簇的中心,也称为质心。然后,我们使用这些质心对我们的测试点进行分类:分类的工作原理是找到从测试点到质心的欧几里得距离并将其与阈值进行比较 - 如果距离小于阈值,则该点将被分类为相同的点类作为该特定质心。一旦我们有了很强的模型准确性,我们就在 Arduino 上使用这个模型来测试实时分类。

这是我们选择的四个单词的簇的图像:狗、拉布拉多、柯基犬、汽油。这些簇非常不同且分离,因此可以轻松创建基于欧几里德距离的准确分类模型。

语音控制

当机器人能够成功地直线行驶、转向不同方向以及对语音命令进行分类之后,就到了将所有内容组合在一起的时候了。集成涉及将运动命令添加到分类程序中,因此如果 Arduino 将某个词分类为“直”,则相应的运动将是直行。经过大量测试和调整响度和欧几里德阈值,我们的机器人终于工作了!这是整个学期学习电路、控制系统和 PCA 的成果,看到它的实际应用真是太酷了。

这是完成的机器人的图像!

语音控制

如果我再次做这个项目,我会尝试以更高层次的视角来研究它,而不是总是试图关注较小的细节。有时,我太沉迷于实际构建电路或编码算法,以至于忘记了电路在大局中的作用,直到最后我才对所有组件有了更好的欣赏。进入了这个项目。有几周我还害怕实验室,因为我知道这需要实验室的整整三个小时甚至更多,但我会提醒自己最终产品,并且我非常感激有机会将我所学到的知识应用到这个项目中!

特别感谢我的实验室合作伙伴 Eric Wen(他也是加州大学伯克利分校 EECS 的学生),以及使学习所有这些内容成为可能的课程工作人员!所有数据均来自官方网站[https://www.eecs16b.org/]。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分