Kittenbot 小喵科技——专注人工智能编程教育

快捷导航
查看: 3574|回复: 1

[基础教程] 全向轮小车接线方法(基于Kittenblock)

[复制链接]

26

主题

69

帖子

415

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
415
发表于 2018-3-6 00:13:53 | 显示全部楼层 |阅读模式
运动理论:
一般小车只能前进后退,向左和向右转向:
omni_1.png
但是全向轮小车可以左右横向移动:
omni_2.png

全向轮小车通过四个轮子的差速运动实现速度矢量的相互抵消。
当向前运动时四个轮子的运动如下图:
omni_3.png
横向的速度矢量相互抵消后就只剩下前进速度了

同理,当我们需要向右横向移动时:
omni_4.png
(上图我只是将前进的图片旋转了90度,其实原理也就是这么简单)

知道轮子运动的模式,我们就可以反推接线的顺序了。
我们定义左上角电机为M1,右上角电机为M2,以此类推如下图
omni_5.png
并且定义从轮子看逆时针运动为正方向(右手螺旋法则)
这样我们就可以推算出前进的时候轮子的正反方向了
(横向移动的正反向请大家把脑袋扭90度看)
omni_6.png
那么接线应该如下图 全向轮小车接线图.png

(如果用rosbot主板的同学可以参考上图的接线顺序,其中M1A和M2A为黑红,M1B和M2B为红黑)(PS:后面我们会补上Microbit的全向轮接法)

计算四个轮子的速度是
0. 每个电机初始速度是0
1. 前进速度除以cos45°,M1A和M2B加上这个结果的正值,M2A和M1B为负值
2. 横向速度除以cos45°,M1A和M1B加上这个结果的正值,M2A和M2B为负值
3. 如果是顺时针旋转则每个电机都加上旋转速度,逆时针则减去这个速度

可能很多同学看到这里已经晕了,因此我们将速度映射已经封装在kittenblock底层了,如果用kittenblock编程只需要用下面这个方块就行了
omni_7.png
其中第一个参数是前进速度,第二个是横移速度,第三个参数旋转速度
接线完成后不要着急把车放在地板上跑,我们需要调试一下,看看接线到底有没有正确。八成以上的问题都出在接线上。
1. 连着usb线,打开kittenblock给Rosbot主板恢复默认固件。
2. 拖入上面Omni这个模块,将X设为100其他两个为0,单击方块
3. 应该可以看到小车四个轮子都像这个图这样向前运动(如果哪个电机反了就将对应的端子头正负反一下就行了)

4. 同理调试向右横向和旋转也是类似这样调试

确保所有电机运动方向都正确后,就可以插上wifi模块和电池愉快地玩耍了 ~

omni_9.png

最后,如果发现小车并不是特别稳定地走一个直线,这多半是因为某个轮子跟地面贴合不紧。这是因为钣金工艺的限制,只需要将对应的钣金片稍微弯一点点就行了(一般0.5~2度就够了)。当然更直接的解决方法是上悬挂系统,下图来自我们一个用户的DIY~

omni_10.png
后面我们会在另一篇教程中演示如何使用PS 2.4G手柄控制,也可以结合我们最新的APP用图形化程序做一个APP遥控的DEMO。


omni_8.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

全力为Stem教育行业提供新技术、新方案和新产品。

 

地址:广东省深圳市华丰互联网+创意园 419~420

© 2019 Kittenbot Inc. 深圳市小喵科技有限公司 ( 粤ICP备16110073号 )

GMT+8, 2020-7-13 08:37 , Processed in 0.027540 second(s), 38 queries , Gzip On.
Powered by Discuz! X3.2

快速回复 返回顶部 返回列表