Clarify the differences between the supported control modes #3649
Replies: 6 comments
-
i also have these questions, thanks in advance. |
Beta Was this translation helpful? Give feedback.
-
I think it's evident from the switch case here that PD_CONTROL and POSITION_CONTROL should have identical behavior. I had an additional query. When using PD_CONTROL, the getJointState function seems to be returning zeros for the appliedJointMotorTorque return value. Is this intended behavior? I had imagined that this function would work for PD_CONTROL in the same way that it does for POSITION_CONTROL and VELOCITY_CONTROL. Not sure if this should be a separate issue. |
Beta Was this translation helpful? Give feedback.
-
Same questions here. |
Beta Was this translation helpful? Give feedback.
-
Same questions here. |
Beta Was this translation helpful? Give feedback.
-
same question. who is the maintainer of this repo? |
Beta Was this translation helpful? Give feedback.
-
Don't know why these important questions are not addressed yet. maybe based on this the default kp and kd is 0.1 and 1 in position control? |
Beta Was this translation helpful? Give feedback.
-
Reading the documentation, it is not entirely clear to me what are the differences of the joint control modes supported in pybullet.
I try to recap them here, please @erwincoumans feel free to jump in to add more details and address holes in my understanding.
Let's assume that in all cases (excluding torque), the reference error is the following:
VELOCITY_CONTROL
: This is a pure proportional control for velocity that by default haskp=0
andkd=1
. Gains should be in the range[0, 1]
.POSITION_CONTROL
(alias forCONTROL_MODE_POSITION_VELOCITY_PD
): Similar toVELOCITY_CONTROL
. By default it haskp=1
andkd=0
. It allows to optionally specify both the target position and target velocity.TORQUE_CONTROL
: It should be enabled by disabling the default motorized joints passing aforce=0
. Later calls using this mode will send directly the torque to the joint.PD_CONTROL
: Similar toPOSITION
control but it allows specifying not normalized gains.Questions:
kp
ignored inVELOCITY_CONTROL
?VELOCITY_CONTROL
andPOSITION_CONTROL
?kd=0
by default inPOSITION_CONTROL
?POSITION_CONTROL
ifkd=0
and a velocity reference is specified, it has no effect?PD_CONTROL
correct? There's not much information about it.PD_CONTROL
withkp=0
andkd=1
behave asVELOCITY_CONTROL
?I think that a big difference of
PD_CONTROL
with respect toPOSITION
andVELOCITY
is how the error is treated. I suspect that in the former case a joint force is generated, in the latter ones instead the error is minimized as constraint. Is this correct?Related issues #2152 #1026
Beta Was this translation helpful? Give feedback.
All reactions