# Turn a tank a specific number of degrees

I don't have a gyro sensor so that's not a possible solution (until I purchase one). I figured I'd just do the math on this one. What I'd really like to know are:

1. The circumference of the caterpillar track that comes in the Ev3 set. (I was hoping it would be etched into it, but I didn't see anything besides 1-01 in the rubber on the inner part of the belt).
2. The circumference of the rims that come in the Ev3 set.
3. The driving "gear" for this is the rim attached to the large motor(s), there are two followers that support the belt. Correct me if I'm wrong, but the only two things I should be factoring into the math are the rim driving the belt and the belt itself correct?

1. If this is correct the length is 14cm.
2. If this is correct, the circumference is 3cm.

The math you're suggesting may work for going straight forward or backward where slipping is limited. For a turn, it will not come close. Even getting the center of rotation of the turning robot will be difficult. The tracks will have to slip. A tracked robot can not turn without those tracks slipping. Differences in friction will alter the turn. More weight on the left or right, front or back of the robot will alter the turn.

Even abandoning the tracks for wheels is not guarantee that the math of how much the robot should turn will match reality. This is not to say abandon the math, just a hint that it will only give an approximation.

• I haven't noticed any slippage (yet, I've been testing on hard surfaces with lots of traction), but what I did notice is that the bearing value in beacon mode for the infrared sensor isn't a value I can base my calculations on. It's not degrees. I'm not sure what type of measurement it is. Mar 25, 2014 at 1:02
• As dfrevert said, tracks MUST slip to turn, it's impossible otherwise. The IR sensor returns an indication of the difference of illumination received by the two internal receivers, this is by no way an angle. Same of thing when used as a distance sensor, it gives an indication based on strength of IR echoed to the sensor, so it is not linear and repends on reflectivity of target. Mar 25, 2014 at 8:58

A 360 degree turn takes: (width of robot/circumference of wheel) turns, neglecting track thickness, assuming the tracks are at sides if the robot.

The length of track doesn't matter. Your robots non-slipping part of the track is traversing a circle of diameter=width of robot. The other parts of the track are sliding across the surface. A longer robot / track only affects the efficiency of turning not the rate.

If the surface is rough, there may be jumping and movement of the center of rotation. Calculations are good but don't be afraid to calibrate to the surface after testing.

Not sure why you are using IR sensors for turning. the ev3 motors have encoders and can be told to turn fractional rotations or by degrees.

• One possible reason for using something other than the motor encoder is to account for the slippage - if you don't know how much your tracks are slipping, telling the motor to turn 20 degrees isn't going to result in a 20 degree output. Mar 28, 2014 at 10:06
• agreed, but the constraint on the question was encoders only. and since tank drive is a inherently a skid drive, accounting for the slippage correctly is not really possible without something like a gyro or external reference. In any case in practice, slippage of the pivot points on smooth regular surfaces is not an issue unless pushing something. Apr 1, 2014 at 2:07