Hi everyone,
I’m Nicholas from Italy.
My first problem is to lower the
initial beep volume of the initial calibration.
my marriage is in danger. Help, how to limit it?
After you have done the AXIS_STATE_MOTOR_CALIBRATION, you can save it so you don’t have to do it again:
- If you are looking to start your machine as quickly as possible on bootup, also set
<axis>.motor.config.pre_calibrated
toTrue
to save the current motor calibration and avoid doing it again on bootup. - Save the configuration by typing
<odrv>.save_configuration()
Enter. - Reboot ODrive after saving:
<odrv>.reboot()
Enter.
hello and thank you for being so kind.
I would like python to make a series of angular positions through my_drive.axis0.controller.move_to_pos (N) to my engine but …
if I give the commands without a waiting time, the engine naturally gets confused.
I tried to calculate the precise execution time of the cycle (acceleration, linear motion and deceleration) but if the laps to do are few in number to make the calculation and therefore risk between one position and the other to see or the engine stopped or that does not end the movement
The best solution seemed to me to put a loop while the comparison between the encoder read and the angle position
while readingEncoder! = posAng:
my_drive.axis0.trap_traj.config.vel_limit = speed
my_drive.axis0.controller.move_to_pos (posAng)
readEncoder = round (my_drive.axis0.encoder.pos_estimate)
print (letturaEncoder)
but arrives well in the vicinity of the final reading then it takes a few seconds to ‘center’ it well.
How can I do? Thanks in advance
Use the Trapezoidal Trajectory planner, and look for it to change control modes after issuing a move. Use <odrv>.<axis>.controller.move_to_pos(<Float>)
and then
<odrv>.<axis>.controller.control_mode
. This will prevent it from needing a lot of time to settle, and is easy to look for.