I have builded a Bolt robot, and the hardware part is finished. However, in terms of software control, I encountered some problems.
The position control and speed control of the joint motor could not well achieve and follow the motion trajectory I requested.
There are obvious position steps, speed oscillation phenomenon. Does the PID control parameters in the udrive2 need to be adjusted according to the actual situation of the robot?
the postion trajectory firgure:
the velocity trajectory firgure:
What control gains are you currently using? Increasing the D-gain might help to reduce the oscillation of the velocity.
For reference, in some example applications we are using
kp = 3.0
kd = 0.05
I’m not sure how good these gains are, though (the examples just do simple things like moving on a sine curve), but they may serve as a reasonable starting point.
I guess it could also improve overall performance to use different gains in different situations, but I don’t have any experience with that myself.
Thank you for quick replies!
My control gains is
kp = 6.0
kd = 0.05,
there are a little of numerical value different for different joint.
yes, you are right. Increasing the D-gain can help to reduce the oscillation of the velocity.
I have added gravity compensation as a feedforward term, as @thomas.flayols says in link Significance of feed forward torque term in motor control loop?, or else, high gain easily make the joint controller diverge.
I ran dozens of tests to adjust the gains, kp be in range of [3~10], kd in range of [0.02~0.2] . that position trajectory plot is one of my best result, but maybe not good enough yet. So I don’t know if I need to adjust the PID parameters on the udriver2？