I am building a Stanford Doggo and finally I can stand up the Doggo and I can move its legs.
I observed that when I give DC to the ODrive, that’s position is going to be “0” where legs stood in “DC giving” moment.
So I write down the process:
I set the legs, that tehese are the 0 pozitions after DC.
I plug in the power supply. (I check the legs positions. They will be 0.)
I take out the woods and I run the calibration sequence.
I run the Closed Loop.
I run this:
Serial1 << "p 0 0.0 1.0 10.0" << '\n';
(it’s same like this: serial_ << "p " << motor_number << " " << position << " " << velocity_feedforward << " " << current_feedforward << “\n”; )
This is the first problame
Second problame: we suppose that I move to motor1 to 1000, motor2 to -1000. Ok, go.
It moved. Ok.
After this, go to 0 with both motors. It can’t do this nicely, like the ODrive forgotten the positions values…
Do you have any solution?
ODrive parameters is same.
I changed these:
axis.motor.config.current_lim = 60
axis.motor.config.requested_current_range = 90
axis.controller.config.vel_limit = 50000
axis.motor.config.calibration_current = 30
config.brake_resistance = 0
axis.motor.config.pole_pairs = 11
axis.motor.config.motor_type = 0
axis.encoder.config.cpr = 2007
axis.controller.config.pos_gain = 100.0
axis.controller.config.vel_gain = 0.0005
axis.controller.config.vel_limit = 50000.0
axis.controller.config.vel_integrator_gain = 0
This is my encoder: https://hu.mouser.com/new/ams/ams-AS5047D-adapterboard/
These are my motors: https://store-en.tmotor.com/goods.php?id=377