Help correcting veer on track based robot

jremington:
I certainly agree, but a beginner has to start somewhere. Early on, many are surprised that "identical" motors and wheels or tracks behave differently.

I agree. Controlling motors with encoder feedback is really cool but your method will likely get the bot up and running (straight) sooner.

jremington:
Sad about the "Let's Make Robots" guy. He should be encouraged to post the material elsewhere.

For those of us who were active on the site it was a disaster. Hackaday called it a "kerfuffle". Their article on it didn't provide much information but the comments fill in some of the details.

Russell Cameron (aka OddBot) now participates with RobotRebels.org and still has lot of cool robot videos on his YouTube channel.

I also had a lot of projects and posts on Let's Make Robots. These have all been deleted.

TomGeorge:
Are you aware that not all the PWM outputs are at the same frequency.
For the UNo.

pins 5 and 6 PWM Frequency = 62500Hz
pins 3, 9, 10, 11 PWM Frequency = 31250Hz

I believe those figures are the fastest possible frequencies. According to this page the default frequencies are 976.5625Hz and 490.20Hz.

A lot of h-bridges have trouble with high PWM frequencies. It would be a good idea to experiment a bit with various frequencies to see which frequencies get the best results. Of course it's always a good idea to see what the datasheet on the h-bridge suggests.

I use 200Hz on my Rover 5 bots. The 200Hz growl is much less annoying than the higher pitched whines some frequencies produce.

If an h-bridge supports ultrasonic frequencies then ultrasonic frequencies can be used. I'm almost certain the board used by the OP doesn't work well with ultrasonic frequencies. Russell Cameron also designed the 4-channel h-bridge.

The treads between the two motors on each side will do a lot towards synchronizing these motors. I personally monitor all four encoders on both my Rover 5 bots but I don't think monitoring only one set per side would reduce performance much. I should try this sometime and compare the performance against monitoring all four encoders.

I know the encoder version of the Wild Thumper only uses one set of encoders per side. All three motors are controlled based on the feedback from this single encoder.