Skip Encoder Calibration and set Closed Loop Velocity Control

I’m building a 4-wheel mobile robot. I’m using 2 ODrives for the two couples of wheels (the front wheels are on one board, and the back wheels on the other one).
The motors are equipped with encoders without an index signal, so before being able to set the closed loop I need to perform an encoder offset calibration for each of the 4 wheels.
The only way I found is to lift the robot during the startup, to perform the calibration, than to put it back on the ground.
I’m using only the Velocity Control Loop (never position or current control loop), so I guess that I am only interested in the wheels’ velocities and never in their actual positions.
Is there a possibility to enable velocity control loop without performing the offset calibration?
Any suggestion on how to proceed for avoiding to lift the robot at each startup?

Thank You

I’m afraid that there is no way to skip offset calibration. I would recommend upgrading your encoders with index or absolute encoders.

Thank you for your reply.

As I understood, in order to start motors equipped with encoders with index, it is mandatory to perform index search.
So, do you confirm that the only way to set closed loop control without the need of moving the wheels is to have absolute encoders?

Thank you

Sorry for the late reply, but yes encoders with index will need an index search. This will be always less than one turn. If you use gears the rotation at the wheel can be very little.

Absolute encoders should work with moving wheels. But I have not yet tried them.

Hi Marco,

I have a two wheel drive robot that uses 170mm wheels with encoders (Deck Donkey Project). I have to calibrate the encoders each time I power up. The robot which weighs about 30 lbs does so on a level floor without any problem…
exception is if one of my encoder wires comes loose …

When I calibrate I do both motors at once and the robot pivots 90 degrees and then back to original position.

With 4 wheels going at once there may be friction. Some creative coding might be possible.

Since the above post I have changed the wiring set up on one of my motors.
I had both axis’s M0 and M1 wired (A)Blu-(B)Yel-(C)Grn. This caused my DD to pivot during encoder calibration.
Now I have changed just M0 to (A)Grn-(B)Yel-(C)Blu. This causes my DD to just back-up and return to original position during encoder calibration

I see this as a plus for 4 wheel drive calibration.

I think what you want is similar to me.

The bottom line is that you should use an absolute encoder or a motor with a hole sensor.

Please refer to my article that I posted a while ago.

1 Like

“The bottom line is that you should use an absolute encoder or a motor with a hole sensor.”

Did you mean hall sensor, if you did I am looking into making my hall sensors less prone to noise.
I did look at your topic and yes I am also looking at using absolute encoder; biggest hurdle will
be the installation on a hoverboard wheel.

1 Like

The hoverboard wheel motor has a hall sensor. You can use this hall sensor, but for noise issues, it is very helpful to filter 22nF to 47nF capacitors on the encoder signal line.
If more precise control was needed, it was inevitable to put on an encoder, but it was quite difficult to put it on mechanically.So I recently found a motor with a hall sensor and a high-precision encoder.But I’m thinking about it because it’s too expensive.

I would like to find a USA source for a hub motor with an optical encoder:
Wheel diameter 13-15" tread design (tiller or mud) inner tube versus solid.

Price less than $150

Another option would be hub motor with encoder that would accept a lawn tractor wheel.

I couldn’t find it at that price.
So I bought a motor and an encoder respectively.
There was a problem that the AMT encoder was used for the convenience of designing the instrument, and then calibration was required at the initial startup.
So I found out that I had to use a hall sensor or an absolute encoder that could pinpoint the motor’s stimulation position.