GPS Guided Vehicles: Motor Quadrature Encoders vs ESC?

 

Hi all, I'm very new to electronics, R/C mechanics or anything related to robotics but I know programming.

I've read many good articles by people here regarding GPS guided vehicles and I noticed one of the most important thing is the precise control of motor speeds and steering servo.

If I understand correctly, both ESC and quadrature encoders can control motor speed with precision but I noticed all of the GPS guided vehicle articles uses ESCs and no encoders so my question is

 

Are quadrature encoders (with proper code and motor driver) suitable for GPS guided robots and if so, what is the advantage and disadvantage of using quadrature encoders(with programming and motor driver ) over ESC to control a robot's speed? Is there a point of putting both on a robot?

 

Edit:

changed somethings to make my intent more clearer.

If you do go with ESC’s

Get ones that give full power for reverse.  Many ESC’s have less power in reverse and this can cause issues with tank style steering.

I would go with an h-bridge like the rover 5 HB or a mini-driver

See: https://www.robotshop.com/letsmakerobots/node/39098

Wheels and steering

The steering mechanism plays also a good role. If you have a motor to spin the rear wheels and a servo to steer, you can get an almost straight travel, but with two wheels with differential drive and a castor wheel encoder or/and a compass are needed.

ESC can correct differential drive drifting by making a motor to spin slower than the other but needs a feedback to work. I’ve still to try encoders anyway:)

Yes, I did read about some

Yes, I did read about some ESC have less power in reverse but I did not realised its effect on tracked vehicles until you mentioned it, thanks.

I never knew about encoder

I just googled what castor wheel encoder and I never knew about encoder in the castor wheel is a good way to determine if a robot is stuck. I learned something new again :slight_smile:

"but needs a feedback to work"

I’ve always assumed every motor under the control of ESC runs at the same speed automatically. Please correct me if I’m wrong?

If you go with two motors, a

If you go with two motors, a castor and differential drive, you need an encoder on each motor to get data about how each motor it’s spinning. If it’s going forward and the encoders say different values, it means the robot is steering left if the right encoder gets an higher value, or it’s steering right if left motor spin faster. Then you have to code the micro controller to raise or lower pwm until you get same value from both encoders.

An encoder on the castor wheel can say the speed of the robot, but not the direction. An encoder on the castor pivot can provide information about the direction(with some latency), but not the speed.

A digital compass it’s just another board wired to the micro controller, which can give data about orientation. It needs to be far from the electromagnetic interference to get reliable readings(a pc near 1m can make it point toward the pc).

Anyway motor drivers are blind about how it’s going the robot, the micro controller needs to have the code to understand sensors to get navigation data and then gives instructions to the motor driver

If you are going to build a tracked robot

for dead reckoning, you will probably be diving into a game of frustration. Slippage and encoders are not friendly. I won’t go so far as to say you can’t do it. I will just say it will be difficult to make everything work reliably.

Two of the same type of
Two of the same type of motors will have minor errors such that they won’t respond to voltage in the exact same way. That’s is, one will be faster than the other.

For RV vehicles where the human is controlling them, this doesn’t matter much because we can automatically correct the difference by sight.

An autonomous robot needs some feedback to make sure that the motor is going the proper speed.