找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 20939|回复: 17

ev3机器人如何走直线?

[复制链接]
发表于 2013-11-14 23:08:06 | 显示全部楼层 |阅读模式
悬赏1乐币未解决
新到手的几套ev3,都遇到了一个问题,安上两个马达,写一个最简单的一个模块的直行程序,机器人启动的时候,两个马达不同步,会摆动一个小的角度,之后就会直线前行,如何解决这个问题?NXT貌似没有这个问题,有也没有我这ev3这么严重。

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-11-14 23:33:10 | 显示全部楼层
这是正常的。你需要加上传感器,自动调整偏差
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-11-14 23:40:12 | 显示全部楼层
kyllor 发表于 2013-11-14 23:33
这是正常的。你需要加上传感器,自动调整偏差

如何操作?请赐教!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-11-14 23:53:25 | 显示全部楼层
两个方案:
1、ev3的电机自带角动传感
2、加上陀螺仪传感器。根据偏差信号进行曲线贴合。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-11-15 01:21:46 | 显示全部楼层
kyllor 发表于 2013-11-14 23:53
两个方案:
1、ev3的电机自带角动传感
2、加上陀螺仪传感器。根据偏差信号进行曲线贴合。

就是做个最简单的直行,用这些传感器,是不是有点儿。。。我感觉就是ev3给两个马达供电的时间不同,一个早一点一个晚一点儿。不过ev3比nxt明显!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-11-15 10:23:05 | 显示全部楼层
nxt的马达模块里是有默认的pid自动纠偏的,如果你用过brickcc就可以知道驱动马达有不同的模式。ev3按道理来说也肯定有pid自动纠偏,既然现在brcik cc支持ev3 楼主可以试试看用指定函数来控制马达。如果还是不行,估计是马达本身坏了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-11-15 21:28:45 | 显示全部楼层
是用移动转向模块吗?坦克移动不行。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-11-16 10:01:44 来自手机 | 显示全部楼层
robotloop 发表于 2013-11-15 21:28
是用移动转向模块吗?坦克移动不行。

嗯,移动模块,我觉得虽然是同时同功率驱动两个马达,但是ev3给两个马达供电时间有点差异!这个用角度传感器没法解决呀!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-11-16 19:22:00 | 显示全部楼层
本帖最后由 冰之谷 于 2013-11-16 19:24 编辑

每个马达的转速,从刚出厂的时候,就一定会存在一些误差,这些误差是不可能避免,6楼的朋友也说了,在移动模块中已经有了pid帮助马达使马达的,转速,角度尽可能准确,但那样的话,依然也会存在偏差,论坛上有一段pid的程序,比较复杂,而且是基于nxt的IDE进行编写的,那个程序是专门校正在机器人跑直线时的准确性,也就是边跑边测电机的角度值,使他们尽可能保持一致,但那样依然做不到完全的直线,在此之外你可以减慢速度,来增加跑直线的准确度。
如果你想玩的专业点,就可以像4楼朋友所说,利用各种传感器和计算机软件,建立一个虚拟空间,让机器人知道自己在这个虚拟空间的位置,来走直线
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-11-18 09:24:42 | 显示全部楼层
冰之谷 发表于 2013-11-16 19:22
每个马达的转速,从刚出厂的时候,就一定会存在一些误差,这些误差是不可能避免,6楼的朋友也说了,在移动 ...

谢谢指导,但是我的问题并不是不走直线,而是刚启动的时候不走直线,貌似是ev3给两个马达供电的时间不同,刚一启动会有抖动,后边儿就没事了。一个直行模块,假如是10圈,那么前半圈可能走的不是直线,后边儿就是直线了。这问题不好解决啊,那个pid的算法我也试了,不能纠正。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-11-25 18:00:39 | 显示全部楼层
ev3马达刚出厂时就这样,我就编了一个永远循环的马达重置,给每个马达都运行上10多次,然后就好了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-11-25 19:29:12 | 显示全部楼层
惊鸿_gz 发表于 2013-11-18 09:24
谢谢指导,但是我的问题并不是不走直线,而是刚启动的时候不走直线,貌似是ev3给两个马达供电的时间不同 ...

LZ所讲的问题其实在NXT中也有,只是并不明显罢了。有可能LZ的机器人负重大引起的,还有,如果用ev3软件中移动模块,它有默认电机之间的主从关系,这样肯定有前后之分。建议LZ不要用这个,用单独电机转动的试试。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-11-30 15:04:15 | 显示全部楼层
惊鸿_gz 发表于 2013-11-18 09:24
谢谢指导,但是我的问题并不是不走直线,而是刚启动的时候不走直线,貌似是ev3给两个马达供电的时间不同 ...

不客气,看看需不需要一个稳压模块
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-12-2 22:00:43 | 显示全部楼层
gomomo 发表于 2013-11-25 18:00
ev3马达刚出厂时就这样,我就编了一个永远循环的马达重置,给每个马达都运行上10多次,然后就好了

真的有效吗?明天试试,才看到消息,最近很忙。谢谢你的提议!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-12-2 22:02:22 | 显示全部楼层
lmd 发表于 2013-11-25 19:29
LZ所讲的问题其实在NXT中也有,只是并不明显罢了。有可能LZ的机器人负重大引起的,还有,如果用ev3软件中 ...

经过改进,我发现好像是跟结构也有关系,应该不是负重过大,相反是负重轻,改了改结构,稍微好点儿了。不过这个问题还是有,用单独电机也尝试了,ev3确实这个问题比nxt严重很多。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-5-12 01:56 , Processed in 0.102823 second(s), 20 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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