Manipulating Kuka-robot joint using Torque-control
Posted: Wed Apr 03, 2019 6:36 am
Hi everyone,
I am new to pybullet and thanks a lot to the developers for providing a nice simulation platform!
I recently tried to use pybullet's torque-control mode to manipulate the simulated kuka robot in the example code which can be found in the pybullet_envs directory. I am focusing on only controlling one joint of the robot for now, and although my script is able to run, the selected joint does not move in the GUI if the force passed into the setJointMotorCommand2-function is below a certain value (240). I have printed out some values and figured out the following so far:
=======
Forces below 240: The robot joint does not move. Passed force into setJointMotorCommand2-function and the value of appliedJointMotorTorque from the getJointState-function are approximately the same (with a minus sign in front)
Forces above 240: The robot arm moves. The appliedJointMotorTorque from the joint-sensor outputs maximally -240, regardless of what the desired torque value was.
=======
It seems to me that the robot arm only is able to move above this threshold, but I expected that the joint would start rotating at much lower values and that the force applied to the joint would be continuous (right now, it seems to be a sort of on/off situation). Is this behavior to be expected by the torque-control mode? Is my implementation of torque-control wrong or is it a bug?
I have made a github repo with my minimally changed code: https://github.com/pierrewuethrich/pybullet_envs
I would greatly appreciate some comments and advice from people who have experience using the torque-control mode. Thanks a lot in advance!
I am new to pybullet and thanks a lot to the developers for providing a nice simulation platform!
I recently tried to use pybullet's torque-control mode to manipulate the simulated kuka robot in the example code which can be found in the pybullet_envs directory. I am focusing on only controlling one joint of the robot for now, and although my script is able to run, the selected joint does not move in the GUI if the force passed into the setJointMotorCommand2-function is below a certain value (240). I have printed out some values and figured out the following so far:
=======
Forces below 240: The robot joint does not move. Passed force into setJointMotorCommand2-function and the value of appliedJointMotorTorque from the getJointState-function are approximately the same (with a minus sign in front)
Forces above 240: The robot arm moves. The appliedJointMotorTorque from the joint-sensor outputs maximally -240, regardless of what the desired torque value was.
=======
It seems to me that the robot arm only is able to move above this threshold, but I expected that the joint would start rotating at much lower values and that the force applied to the joint would be continuous (right now, it seems to be a sort of on/off situation). Is this behavior to be expected by the torque-control mode? Is my implementation of torque-control wrong or is it a bug?
I have made a github repo with my minimally changed code: https://github.com/pierrewuethrich/pybullet_envs
I would greatly appreciate some comments and advice from people who have experience using the torque-control mode. Thanks a lot in advance!