Pid for maze

i want to tune pid for maze. so should i tune to a line following track or a maze, because in maze all lines are straight, then how should be maze for tunning , too many short turns or long straight path or mixture of both

please suggest example maze for tunning, i think the tuning on actual maze is time consuming and waiting robot to learn the maze

one more thing

are tunned pid values are for specific to robot or track ?

The same PID constants that work on a curving track will also work on the straight segments of a maze. You can usually tell how good your PID is within a few inches, anyway, so there is no need to run it through the whole maze each time you try a new set of constants!

There are a lot of differences between maze solving and line following, however - in maze solving you probably can’t go at full speed, for example. A big problem that I have encountered is that when the robot begins to enter an intersection with, say, possible exits forward and to the the left, the PID will cause it to turn sharply left before it even detects the intersection. There are a number of ways to try to solve that problem…


so i should make a curved maze or right angle maze for tunning ?

i have noticed that problem because robot every time slows or confuses a bit on any type of intersection.

One more thing

do u have example code for measuring time and timing the full speed on long part of maze, i cant make it to code.

If i want to use smooth turns should i trigger them as sharp in place rotate

I am asking this question because i still have to get 3pi
I am very exited and need to finish all research before it came.

I am having trouble understanding why you are particularly worried about tuning your PID. What is wrong with just trying out your robot on the maze or on a straight line? I could imagine that if you were doing some very technical testing, you would want to run it on a curved track, but I do not expect you need that, and I do not know what you mean by a “curved maze”.

We use a stopwatch for measuring the time. You could use the get_ms() function supplied by the Pololu AVR library for your own reference.

Turning smoothly generally involves starting to turn before you reach the intersection, with, say,


This is different from turning in place.

Good luck, and I think it will make a lot more sense to you once you get the 3pi!