Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About the real robot application of the joint torque controller #17

Open
Luminary-S opened this issue Nov 29, 2022 · 4 comments
Open

About the real robot application of the joint torque controller #17

Luminary-S opened this issue Nov 29, 2022 · 4 comments
Labels
Further Development Something for further development question Further information is requested

Comments

@Luminary-S
Copy link

Luminary-S commented Nov 29, 2022

I tried to apply the code to my real UR3 robot.
The followings have been done:

  1. change the ur_robot_driver/config/ur3_controller.yaml
  2. change the bringup launch file
  3. change the load_ur3.launch "hardware_interface/PositionJointInterface" to EffortJointInterface

It gives the following ERROR for the joint torque controller

This controller requires a hardware interface of type 'hardware_interface::EffortJointInterface'. Make sure this is registered in the hardware_interface::RobotHW class.

I have reviewed the ur_robot_driver, and find no place to define a RobotHW for joint torque controller, Can you tell us the details of applying the controller to a real UR robot?

@MingshanHe
Copy link
Owner

Hi, @Luminary-S, Thanks for your work on the real robot and focus on this project.
For the joint torque controller which is used as the PID controller, I am not sure if it is working well in the real robot.
I have tested the admittance controller which is used the position interface of the joint. Both the simulation and the real robot are working well. Thus I hope you could simulate it before using the real robot and be careful with your examination.
For the error, it is mainly caused by the file in the robot_controller, and you used joint torque controller. Thus I hope you could check the file in the folder.
Best,
Mingshan He

@MingshanHe MingshanHe added question Further information is requested Further Development Something for further development labels Dec 5, 2022
@Luminary-S
Copy link
Author

Luminary-S commented Dec 6, 2022

Hi, @MingshanHe.
Great to get your response.
Actually, I have checked the joint_torque_controller, and it is completely the same as your repository.
In the .xml file, it defines the joint_torque_controller as controller_interface::ControllerBase. I think in the ros_control package, this is defined, but at the UR hardware level, no signal outputs for this interface, so the self-defined joint_torque_controller didn't work.
I have reviewed the UR forum. From the post: https://forum.universal-robots.com/t/joint-torque-control/7104, UR+ Development Support Ebbe said "There is no method for setting the joint torques."

Maybe this is the problem. What's your idea?

Go back to the admittance,
I have tested the admittance controller which is used the position interface of the joint. Both the simulation and the real robot are working well.
does it mean that after the twist is calculated, you resolve it into joint space, and time integrate it to get the next joint position, and put the joint position into the position controller? If it works like this, why don't you directly use the twist controller provided by the UR? Is it the reason of singularity?

Thanks,
SGL

@MingshanHe
Copy link
Owner

Actually, it is sure that the official document and hardware have not provided the joint torque control interface, and you just can simulate it in the ROS. About this, you can define the joint interface type and use the torque controller with it.
Yeah, the whole control structure you said is right. And the reason I am not used the twist controller is that this project is recording my study in the compliant control and some ROS packages including the ros controller and KDL. I hope I could get this, thus I have not used that.

@zbj165
Copy link

zbj165 commented Sep 20, 2023

Have you completed it? I also want to implement admittance control on my UR3 robotic arm now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Further Development Something for further development question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants