I was having a chat with a robotic expert recently. The guy told me that for an arm with motor drives running at 5kHz your are to set the control so that someone can grasp the end effector and move it around (something like the usual teach mode for an arm).

Anyone knows what kind of control this expert was mentioning? What setup this involves? Any doc on this subject? Any input is welcome...


It sounds like you want to do gravity compensation for the arm with user feedback to allow changes. Basically makes the arm weightless but allows a user to move it. You need to measure arm position and arm torque (measured using current).

  • $\begingroup$ Ha, interesting! Do you have any relevant link giving details on how this works, and why you need 5kHz? $\endgroup$
    – arennuit
    Apr 7 '17 at 7:13
  • $\begingroup$ Here is a video showing gravity compensation on a 2 DOF arm (youtu.be/i8kOFICtueg). Your less likely to find a specific gravity compensation tutorial online but you can break the problem up. First just consider the physics involved by creating a FBD of the arm. Then calculate the torque requirements based on position/speed. Finally implement a current PID controller to set current/torque in the arm joints. The reason you want high speed controls like 5khz is because the faster your PID controller runs the better your ability to respond to small changes. $\endgroup$
    – user16549
    Apr 7 '17 at 9:18
  • $\begingroup$ Haha, I think you are pointing towards the right direction. Now I understand how you go from your desired angles positions and velocities towards torques. Now how does the system understands you want to change the desired position and speed (to change the arm config)? Is it that although you apply the right torque to get pos_old and vel_old, you observe a different state pos_teach and vel_teach? $\endgroup$
    – arennuit
    Apr 8 '17 at 2:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.