gpt4 book ai didi

algorithm - PID算法在巡线机器人中的实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:56:50 26 4
gpt4 key购买 nike

我正在做一个带有 NXT 头脑 Storm 集的小项目。我的意图是制造一个机器人,它可以非常顺畅且尽可能快地沿着一条线行驶。因此,经过一些小的研究,我找到了 PID 算法,并且能够理解该算法并将其实现为 NXC 代码。机器人刚刚根据算法正确地完成了所有操作,但是当线路中断(间隙)时,机器人失去了线路并且无法返回。问题是,当差距达到 9 厘米时,他可以回来,但在 10 厘米时,他就失去了线。我正在使用一个光传感器。有什么方法可以调整 PID 代码来解决这个问题吗?

我的代码:

    // kd ,ki kp are also defined 
task main()
{
int error = 0;
float previous_error = 0;
float setpoint = 0;
float actual_position = 0;
int integral = 0;
float derivative = 0;
float speed=50;
float lasterror = 0
float correction = 0
float fahrenA = 0
float fahrenC = 0
SetSensorLight(IN_2);

SENSOR_TYPE_LIGHT_ACTIVE;


while(true)
{
actual_position = LIGHTSENSOR;
error = setpoit - actual_position ;
integral = error + intergral ;
derivative = error - previous_error;
correction = (kp * error )+ (ki * intergral) + (kd * derivative );
turn = correction / 100;
fahrenA = Tp + turn;
fahrenC = Tp – turn;
OnFwd(OUT_A,fahrenA);
OnFwd(OUT_C,fahrenC);
previous_error = error ;

最佳答案

所谓正弦波模式,我们的意思是机器人可能会遵循以下路径以增加丢失线后重新捕获线的机会。您可以使用简单的 if-else 和计时器/转速计读数对路径进行编码。 (感谢@Spektre 的建议!):

enter image description here

关于algorithm - PID算法在巡线机器人中的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40939967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com