Does the Motor Controller 29 change the speed of the motor in any way?
The **purpose **of the Model 29 is to set the speed of the motor, which includes changing the speed. Is this really your question, or are you trying to get at something else?
I’m sorry, I should have been a bit clearer.
Say I have one side of a drivetrain connected to 2-wire motor ports and the other side connected through motor controller 29s. Would the robot move straight?
If you’re asking whether the speed of a motor will be different when using a motor controller in a three wire port instead of plugging it directly into the two wire port, then no, the speed will not change. However, some analysis done by jpearman here shows that the responsiveness might change. But it probably wont be enough to affect your drivetrain under normal circumstances.
Okay, thanks. Our drivetrain seems to be affected by this… So I’ll have to do a bit more testing. I’ll show those threads to my teammates.
I think you will see a bigger speed variation between two motors chosen at random (spec says 20% tolerance for torque rating) than the difference between the internal motor controller and an external motor controller 29. Many forum members have also commented that motors run at different speeds in forward and reverse so (assuming one side of your drive has a motor running the opposite direction) that may also affect how straight your robot drives. When you also include all the various sources of friction in the drive, axles through bearing blocks etc. , it’s almost impossible to predict what will happen but most of the time it will be good enough. For perfection you will need sensors.
We were typing at the same time.
One thing that may is the length of any extension wires you have between cortex and motor controller. Long extension cables and poor connections can cause small voltage drops that would effect motor speed. Does swapping left and right controllers cause the deviation in driving to go the other way?
The most common reason for differing speeds from left to right is a difference in friction on each side. If you can, disconnect your wheels from the motors and then give each of the wheels a good spin. If your friction is good they will spin a LONG time, and every wheel will spin for the same time.
I could say that as well. By sensors I guess you mean quadrature encoders? We have those, but we’re working on perfecting the code.
In summary, for standard independent motor drive on left and right wheels,
it is unreasonable to expect that a robot will drive straight without feedback by humans or sensors to close the loop.
Before going to electronic components, make sure that there is minimum friction on both sides of the drivetrain.