-
Notifications
You must be signed in to change notification settings - Fork 126
Description
I am trying to implement meta-learning for RL that needs environment that can be applied with certain damages. I am trying to implement locked joint on the agent e.g. ant environment. I tried two options
self.robot.ordered_joints[idx].disable_motor() # first way
self.robot.ordered_joints[idx].power_coef = 0.0 # second way
Turns out, disable_motor() only makes the motor dead by applying no torque to the motor i.e. setJointMotorControl2(self.bodies[self.bodyIndex], self.jointIndex, controlMode=pybullet.POSITION_CONTROL, targetPosition=0, targetVelocity=0, positionGain=0.1, velocityGain=0.1, force=0). The joint is still moving due to other forces e.g. gravity. What I need is the joint to be locked at a certain degree.
For the power_coef, seems like that property is not being used by any of the methods in Joint class. Additionally, I found a typo(?). Joint has property power_coeff, but this line tries to change power_coef instead of power_coeff.
Back to the original question? Any suggestions on how to lock certain joints?