Can a 3 wheeled robot move straight?

Ok my question is simple. I am currently undertaking a project where I make a robot move a set path based on distance and angle. So this requires the robot moving a certain distance and then turning a specified angle and moving another distance, etc. I am using a gyroscope and wheel encoders to accomplish this part of it. but now what I noticed is that the robot doesnt move straight, especially after making the angled turns as this rotates the rear castor wheel and causes the robot to move in a curved path. The pic of the robot chassis im using is shown below:

|500x500

My question is this. would using a 4 wheeled chassis give better control in the robot moving straight? or a tank chassis such as this one shown below. Or will they make no difference at all?

|500x375

Without feedback, the track vehicle will go straighter.

It's "hard" to turn a tracked vehicle.

The 3-wheeled vehicle with separate motors on each drive wheel and no turning/steering wheel will tend go NOT go straight because the motors will turn at different speeds. It will go straighter with both wheels on the same axle so both wheels turn at the exact same speed. But, you'll need a way to steer it.

However if your gyro is working, you should be able to keep the 3-wheeled vehicle on track by using feedback. Negative feedback (corrective feedback) is what keeps a car or bicycle on the road. It's the difference between a guided missile and an unguided rocket...

If you're driving and you start drifting left or right, your eyes & brain provide the feedback to keep the car on the road. If you tried to set the car pointing straight with "perfect" alignment, you'd never make it a mile down the (straight) road without feedback.

Replace the angled castor with an omni directional wheel. http://www.mhobbies.com/4-x-dagu-robot-bovine-eye-castor-wheels-robot-omni-directional-wheel.html

You will probably still need to compensate for the positioning errors caused by the frictional drag of the wheel with respect to turn radius and speed.

If your wheels include encoders you can use the encoders to make the robot go straight. You only need to count and compare the revolution of each wheel and compensate to ensure each moves the same amount.

"If your wheels include encoders you can use the encoders to make the robot go straight. You only need to count and compare the revolution of each wheel and compensate to ensure each moves the same amount."

I agree. But if the robot is light, and wheels lose traction, then that will skew the calculations. Try providing weight/traction to the robot.