GardenBot, RC controlled platform with tracks, need advise

Very awesome to see such a nice build!

On such a large machine, and when running only around 24V, you can add another 2 ohm 50W brake resistor in parallel. Hence update odrv0.config.brake_resistance = 1. This should give you double the brake power capacity.

Also having the velocity ramp rate limited is a good idea to prevent overloading the brake, even if you do the aforementioned doubling. The endpoint you need to map is odrv0.axis0.controller._remote_attributes['vel_ramp_target']. To configure the allowable ramp rate you would modify parameter odrv0.axis0.controller.config.vel_ramp_rate. Of course you need to set odrv0.axis0.controller.config.vel_ramp_enable = True.

Note that the gate drive chip is rated for 125C recommended and 150C absolute max.

ERROR_CURRENT_UNSTABLE is because the motor changed speed too fast for the controller to react. You can try to fix this by giving it a bit more margin by lowering the current limit a little bit, and then increasing motor.config.current_lim_tolerance slightly.

You can increase the calibration current to something like 45A, but then you need to be very careful that if it doesn’t succeed in the first couple of seconds that you put it into idle, so that the motors don’t overheat.

You can add blowers and air duct to cool the motors also. There are some thermistors (NTC 10k 1% 3435) that you can use to monitor the temperature. Please keep the winding temperature at 110C or below.

1 Like

Hi,
Since I use battery power I currently disabled the brake, found in the docs it will do the regen then, Should I put the brake resistor back? When it was there I have not seen ERROR_CURRENT_UNSTABLE less frequent.
I will try very gentle velocity ramps, My guessed syntax was wrong.

My motor.config.current_lim_tolerance is already @ 1.5 That seems high.

But the biggest problem I see with the setup is that it is unable to do the index find on the startup if the machine is under heavy load. Even at calibration current @ 45A (is callibration current relevant for the index find as well) Motors will start clacking and throw an error. If that fails, it looses main the motor calibration and even if it will find the index on the next startup (usualy by me helping the machine do that 3cm move so there is no tension on the tracks ) the motors just do not work ex start accelerating and slowly stop ( with temp motor skyrocketing) or just do half of the turn and stop.

I then need to do
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE

And that also sometimes fails unless I lift the tracks from the ground for the calibration process. After such a maintenance I can drive the tracks only fine. but with the scoop (50kg load it sometimes has problems ) and with additional 50 kg load it will fail after 50m drive.

So is there any way to avoid the index find on startup after precalibrationg the motors?
Does current control needs index find? ( I’d love to have this supper precise velocity control of odrive but if current control. would solve the problem I can live with just current control and some inequality in tracks speed)
Is there any way I can tune the motors for max torque in such a case use when there is heavy tension/resistance on rotation?

TIA

You would need absolute encoders to avoid the index search. Support for absolute encoders is not released yet, we are working on it.

A failed index search shouldn’t ruin the calibration after you restart. In that case it seems that the previous calibration that was saved had an issue.

I can live with the current encoders, if you say it is not crucial to have it pass that stage.
The problem is the calibration break under heavy load.
Is the calibration the same if I do it medium load (tracks on ground) or less load (tracks in the air) or heavy load (with cargo(that will most likely fail unless I help it by pushing the machine)) ?

Or calibration changes depending on the how much torque is required for motor turn?
Can I manually tweak it for higher load?
Also can tuning the motor increase my torque and help with the OD crashing under load?

TIA

The calibration is best done with as little load as possible. After it is complete, assuming you found the index first, it should hold for all loads.

Can you remind me what the crashing under load condition is now? Is it rebooting without an error, or what is the error code? (I know you specified earlier, but just making sure it’s still the same).