光电,差速转弯
刚开始做小车,采用差速转弯,求助{:3_60:} 你的问题都没提出来,咋弄? 楼主是想大家靠意念交流么? sgzzour 发表于 2014-3-11 22:51楼主是想大家靠意念交流么?
我在找相关资料 sgzzour 发表于 2014-3-11 22:51
楼主是想大家靠意念交流么?
等我有进一步动作在说吧 今年的光电不是用B车模吗,只有一个电机,转弯靠舵机,哪来的差速转弯 我是自己做车玩
谢冲 发表于 2014-3-28 13:06
今年的光电不是用B车模吗,只有一个电机,转弯靠舵机,哪来的差速转弯
我是自己做车玩
那楼主是不用舵机,靠两个驱动轮不同速度导致的速度差来转向咯? 路过路过 帮楼主赞 FSL_TICS_Robin 发表于 2014-4-2 15:01
那楼主是不用舵机,靠两个驱动轮不同速度导致的速度差来转向咯?
是的,现在基本解决了,就是还不稳定,走着走着转弯的幅度会越来越大 wgjn123 发表于 2014-4-29 11:47
是的,现在基本解决了,就是还不稳定,走着走着转弯的幅度会越来越大
请问你是开环控制吗?
是否两边轮子都有编码器反馈呢? 用速度差进行转向,没有闭环控制,误差肯定大! FSL_TICS_Robin 发表于 2014-4-29 13:51
请问你是开环控制吗?
是否两边轮子都有编码器反馈呢?
是开环,没有用编码器,一定要用编码器吗? FSL_TICS_Robin 发表于 2014-4-29 13:51
请问你是开环控制吗?
是否两边轮子都有编码器反馈呢?
就是简单检测小车是否靠墙,靠墙时就让小车不靠墙一侧的轮子减速,让小车离开墙体,离开后恢复基准速度,基准速度是让小车缓慢靠墙的,所以会有蛇形行走,这就是没有速度反馈的原因么?
wangpengcheng 发表于 2014-5-9 12:45
用速度差进行转向,没有闭环控制,误差肯定大!
是不是要去网上买个带编码器的电机,这样可以反馈电机速度,然后采用PID控制让其稳定。。。? wgjn123 发表于 2014-5-10 12:58
是不是要去网上买个带编码器的电机,这样可以反馈电机速度,然后采用PID控制让其稳定。。。? ...
是的,因为有许多误差累加,控制的时候确定不了真正的速度,闭环才会确定真实的速度 wgjn123 发表于 2014-5-10 12:58
是不是要去网上买个带编码器的电机,这样可以反馈电机速度,然后采用PID控制让其稳定。。。? ...
为了准确,肯定要闭环控制啦!开环控制误差太大! wgjn123 发表于 2014-5-10 12:53
就是简单检测小车是否靠墙,靠墙时就让小车不靠墙一侧的轮子减速,让小车离开墙体,离开后恢复基准速度, ...
你的系统如果不闭环,那么就非常难实现控制。
除非你的轮子不打滑、轮子大小一致、齿轮比一致等等,就算你两边给同样占空比也不一定笔直前进因为你的电机也不能那么完全一致吧? 时光倒退 发表于 2014-5-12 21:43
你的系统如果不闭环,那么就非常难实现控制。
除非你的轮子不打滑、轮子大小一致、齿轮比一致等等,就算 ...
恩,又搞了两天,基本成型了,能加减速,能转弯,但是角度不大,而且,我知道我现在能实现是因为我对速度的要求不高,这位所说确实是对的,速度快了后这些都很重要,等两天打算升级一下,现在在研究PID,之后打算将电机换成两个自带编码器的电机继续搞,多谢各位的支持 xuexueaibeibei 发表于 2014-5-12 17:14
为了准确,肯定要闭环控制啦!开环控制误差太大!
我发现在低速下可以不用反馈,但是我还是打算升级,多谢
这是arduino的基本PID程序
unsigned long lastTime;
double Input, Output, Setpoint;
double errSum, lastErr;
double kp, ki, kd;
void Compute()
{
/*How long since we last calculated*/
unsigned long now = millis();
double timeChange = (double)(now - lastTime);
/*Compute all the working error variables*/
double error = Setpoint - Input;
errSum += (error * timeChange);
double dErr = (error - lastErr) / timeChange;
/*Compute PID Output*/
Output = kp * error + ki * errSum + kd * dErr;
/*Remember some variables for next time*/
lastErr = error;
lastTime = now;
}
void SetTunings(double Kp, double Ki, double Kd)
{
kp = Kp;
ki = Ki;
kd = Kd;
}
output=Kpe(t)+Ki
这是一个PID的基本程序,我看了一下,一知半解,如果用到我的这种小车里,
input:编码器检测小车速度值,
output:输出小车速度:
setpoint:设置小车直线标准速度
unsigned long now = millis();//这是arduino中计时的一个函数,即now为从程序执行到此的时间
我不太了解timechange计算是从哪开始到哪结束???????
调节差速器会有意想不到的效果 lanzhe1991 发表于 2014-7-5 23:19
调节差速器会有意想不到的效果
这位楼主不是在玩飞思卡尔智能车大赛的车,他只是用两电机控制速度差达到转弯效果的。
有差速器的模型车对于差速器的调教的确很重要{:biggrin:}
页:
[1]