Closed sid-dey closed 2 years ago
Seeing as the gravity_compensation controller uses the setEffort interface, and your arm isn't falling during normal operation, I think the setEffort interface works. Are you sure that your torque commands are enough to actually move the joints?
As a side note, you probably want to keep the gravity_compensation running unless your controller implements gravity compensation.
Thank you for your reply.
As you said, it seemed the torque command I sent was small and so the arm did not respond. When I sent large open-loop torques to the continuous joints as a test, the joints would start rotating. So the setEffort interface is working for me!
I am guessing that the torque commands I sent were smaller than the static friction of the joints. However, I could not find friction values in the Fetch URDF. I guess this is why I did not face any issues when simulating in Gazebo?
Also, yep, our controller implements gravity compensation.
I am closing this issue as the original problem has been resolved. Thanks!
However, I could not find friction values in the Fetch URDF.
This is unfortunately not a value that the URDF is designed to encode
Hi, I have been trying to implement a custom effort/torque-based controller for the Fetch robot arm and have been unsuccessful.
I have added the torque controller to the fetch_bringup/config/default_controllers.yaml and restarted the robot service to load my controller. And from print debug statements, I can tell that I am able to stop the default
follow_joint_trajectory
andgravity_compensation
controllers and start the torque controller.However, the robot arm does not seem to respond to the
setEffort
commands within the controller. And so the arm remains stationary instead of tracking the trajectory. I have been able to check that my controller works in Gazebo and that the simulated robot follows the torque commands, but cannot get the hardware to comply.Are there some specific steps I have to follow or constraints I have to adhere to in order to send effort commands via setEffort from my controller?
Any and all comments are greatly appreciated!
p.s. the robot is running Ubuntu 14.04 if that information is helpful.