robotics - 如何将两种不同类型的数据“融合”在一起以获得最终结果?
问题描述
我正在建造一个机器人(2 个动力轮和一个滚珠轴承)。问题是我似乎无法让它直行。我真的觉得这是不可能的,我已经尝试了好几个星期。
目前我能够依靠(两个电机的)旋转或陀螺仪读数(我还有两个陀螺仪,每个都靠近两个轮胎)
有没有办法可以将它们融合在一起,给我一个更准确的方法来确定我需要加速哪个电机?
我的电机接受 0-900 的值(尽管速度应该由我决定,而不是固定的)。此外,如果存在算法,我想要一些关于如果我让电机倒退我需要交换的方向。
解决方案
机器人不能直行的问题是因为两个电机的转速可能不同。例如,一个可能每秒完成 30 次旋转,而另一个可能完成 31 次。这可以使用轮式编码器轻松解决。使用它,您可以获得两个轮子的旋转差异,然后相应地改变电机速度。陀螺仪可以给你单位时间的角度误差,例如如果机器人在 2 秒后向左移动 5 度,那么右侧的电机速度将被降低。但是它需要减少多少并不是一个小问题,因为最终它是由于硬件错误而发生的。所以你可以做的是收集一些陀螺角度的数据,也许每秒 10 个读数,然后分析数据,找出你需要多少来降低一个电机的速度。
推荐阅读
- ubuntu - 无法使用 anaconda 安装/加载 jupyter
- java - netbeans 8.1 无法从 Windows 10 创建新的卸载项目
- url - Rust (Bittorrent):宣布失败,响应“请求的下载未被授权用于此跟踪器”
- python - TensorFlow 训练损失值极高
- testing - 哪个先出现?使用 TDD 进行类、用例图或深入研究代码?
- python - Why does the func parameter of TransformedTargetRegressor need to return 2-dimensional array and not 1-dimensional?
- python - 如何使用 python 保存和恢复 selenium chrome 驱动程序(selenium.webdriver.chrome.webdriver.WebDriver)
- flutter - 如何制作函数列表/在颤振中调用函数的列表(飞镖)
- python - python xxx中的正则表达式
- python - 绘制 DataFrame x,y,z (数据透视表) - 切换轴