返回信息流我是计算机学院的,原来对控制系统没有什么理论基础。
实验室里的机器人是两轮驱动的,当然还有一个万向轮。
demo里提供有速度闭环和位置闭环。
先要实现一个简单的任务,就是让机器人原地转身面向目标,然后直线前进到目标附近。
于是我发现让机器人很慢速地原地转身的话,可以让机器人在接收到停止命令后几乎同时就停了下来。当然,接着的想法就是让其在位置闭环的前提下前进一段设置好的位移。
接着就是问题了。
我发现机器人原地转身停止后,在接到直线前进命令的时候,它会继续原来转身的方向再拐一小段然后再直线前进。
我分析它的速度曲线发现,例如,机器人向左转,那么左轮后退,右轮前进。接收到停止命令并停止下来后,接收到前进命令,左轮的速度是先慢后快地增速,但是右轮会突然有个很快的前进速度然后才降至设定的速度。机器人向右转时就刚好反过来。
请问这是为什么呢?
请问有什么可能的方法可以解决这个问题呢?
求解!十分感谢!
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #8561同步于 2010/5/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
【求助】我的毕设是移动机器人的运动模块设计,有些问题没懂
zzh
2010/5/19镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
没太做过运动控制的东东,随便说说,错了轻拍
你现在遇到的问题是两个运动模式切换的时候,两个轮子的速度不一样吧?不知道理解的对不对
那么你有什么手段可以改动它的运行方式呢?是有代码改代码还是从硬件方面着手(比如改控制电路?)。
如果是改代码的话,可能是有几个模式决定了车轮的加速情况?或者看看代码到底怎么实现的。
退一步讲,是不是有其他办法把这个问题绕过去,例如切换到直线前进的模式时,先别实际走(总有个距离或者时间设定什么的吧),只是想办法把两个轮子的速度调成一致的,然后再走?
暂时我知道的方法是,退出程序,重新运行,就可以让机器人完全停下来
【 在 ericyosho 的大作中提到: 】
: 你可以让机器人完全停下来,再进入下一个运动模式么?
: --
嗯,运动模式切换时两个轮子速度不一样,应该。也就是说没完全停止下来。
硬件应该不能改了,我这种外行,不敢随便动这样的机器,呵呵。代码,嗯,这个应该是突破口了,谢谢你提供的思路,我研究一下它的驱动代码看看
【 在 hobby 的大作中提到: 】
: 没太做过运动控制的东东,随便说说,错了轻拍
: 你现在遇到的问题是两个运动模式切换的时候,两个轮子的速度不一样吧?不知道理解的对不对
: 那么你有什么手段可以改动它的运行方式呢?是有代码改代码还是从硬件方面着手(比如改控制电路?)。
: ...................
嗯 欢迎进一步讨论~
PS:是本科毕设?自动化院的?
【 在 zzh 的大作中提到: 】
: 嗯,运动模式切换时两个轮子速度不一样,应该。也就是说没完全停止下来。
: 硬件应该不能改了,我这种外行,不敢随便动这样的机器,呵呵。代码,嗯,这个应该是突破口了,谢谢你提供的思路,我研究一下它的驱动代码看看
这现象是正常的啊,前后两轮在变速的时候本来就会有一个加速时间,如果在小车转到直行的方向上再发送直行指令,肯定在加速时间内,小车的方向又转了。如果想将这个转换过程加快,可以在程序中增加PID调节的过程,加速收敛,试着调试PID的参数,效果好的话转换的时间几乎可以忽略。
【 在 zzh 的大作中提到: 】
: 我是计算机学院的,原来对控制系统没有什么理论基础。
: 实验室里的机器人是两轮驱动的,当然还有一个万向轮。
: demo里提供有速度闭环和位置闭环。
: ...................
赞专业人士!
【 在 kingy 的大作中提到: 】
: 这现象是正常的啊,前后两轮在变速的时候本来就会有一个加速时间,如果在小车转到直行的方向上再发送直行指令,肯定在加速时间内,小车的方向又转了。如果想将这个转换过程加快,可以在程序中增加PID调节的过程,加速收敛,试着调试PID的参数,效果好的话转换的时间几乎可以忽略。