-
Notifications
You must be signed in to change notification settings - Fork 50
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
Torque control not working #232
Comments
hi @Hydran00 , no worries. Quick question, did you set the
Also make sure to
There is currently an issue with forwarding the joint states in |
Thank you for you reply. |
okay I see, this is a bug then introduced in #225. Seems also wrong for
thanks for sharing @Hydran00. If you could open a PR that adds the mentioned line, would be great! Ideally this PR would target Add
command_.torque = command_target_.torque;
command_.wrench = command_target_.wrench; |
Ok, I will do it soon 👍 |
Solves issue lbr-stack#232 Co-autohred with @Hydran00
Solves issue lbr-stack#232 Co-autohred with @Hydran00
By the way, we were trying to implement our own cartesian impedance controller to be able to change the stiffness achieving variable impedance control by using the robot in gravity compensation. To achieve gravity compensation, we set every stiffness gains to zero in the In gravity compensation we were facing an issue on the pendant called The problem we were facing when sending zero torque to this hardware interface is that the robot has a strange behaviour: it seems to drift a bit even when no external forces are applied. Do you think know other way to achieve gravity compensation? You can check our repository if you are interested in the implementation of the controller. |
happy to try the controller. I haven't encountered The drift on the KUKAs is common since the inverse dynamics model isn't perfect. Adding a threshold somewhere can help |
Ok, I will update the readme so that you can replicate as soon as I can. 👌 What do you mean by "the inverse dynamics model isn't perfect"? You mean that the FRI does not provide an accurate dynamics model? Also, you mentioned that we should calibrate the load data, how can we achieve that? Do you mean by using the robot mastering button on the teach pendant? We do not have tools attached, but maybe we can try calibrating the sensors anyway. |
We created a repository to implement the Cartesian impedance control, with a small guide on how to make it work. As I told you, I cannot test it on the hardware, but it was working last week, even if with poor perfomances. |
(cherry picked from commit 2cc7ae8)
great, will check this out. Thank you again for raising the issue and fixing it! Going to add some doc for calibrating load data soon. Closing this issue for now |
Hi @Hydran00, I am also trying to implement a Cartesian Impedance controller on top of this project.
I have made a similar observation to above in that executing a position hold command in (joint or Cartesian) impedance mode with zero stiffness and no external forces applied causes the robot drift away from the initial position. In fact, it will accelerate away from the initial position, triggering the safety system to initiate a safety stop. For our robot, I think it is due to the actuator A1, and to a minor extent A4, having some sort of bias to always apply enough torque to cause motion in the negative direction relative to the rotation axis. I do not think it is because of the robot performing gravity compensation with an imperfect dynamics model because the drifting also occurs when the robot starts in the mechanical zero position. I do not expect actuator A1 to apply any significant compensatory torques in the mechanical zero position. Perhaps this is an issue specifically with our robot due to wear-and-tear, or if it is something others have experienced. I wonder if this aligns with your observations, and how you were able to overcome this issue, if you have. Apologies @mhubii if this off-topic. I wasn't sure where else I could share this observation. |
no worries @anselmo-parnada, I think it is important to have this discussion and I can confirm that the LBR, when controlled with zero stiffness, drifts and potentially overshoots. Two issues (imho):
|
Hi @anselmo-parnada, me and my team tried the gravity compensation with the robot in its mechanical zero position and our robot does not drift, however as soon as we move it, it starts drifting. You can easily check this by trying moving the robot base ( |
Hey @mhubii, thanks for the response.
By calibrating the load data, are you referring to the tool load calibration program accessible via the SmartPad? I have so far only been testing the robot without a tool attached to it's mounting flange, so there is no load to calibrate, in principle. Are you suggesting calibrating the load of an empty tool to "correct" the dynamics model? I tried this before and gotten very strange values from calibration program. At best, I think this would "correct" the dynamics model only for joint configuration that you start the calibration process. However, this will not solve the underlying issue.
Perhaps they do not calibrate the dynamics for each unique robot they produce, so the dynamics model will always be inaccurate. Perhaps they do, and the dynamic properties of the robot gradually deviates from the model over time due to wear-and-tear. How old are the robots you guys are using? |
Hi @Hydran00,
Just tried this 3 times. The first time, it remained stationary and only began to drift when I moved it, similar to you. The next 2 times, it began drifting immediately after the position hold command was initiated. Does your robot like to drift in a particular direction? Our robot's
I am already using |
Our robot tends to have strange unwanted motion for joints However, we solved the stiction problem: it was due to the fact that we commented these lines in our fork. lbr_fri_ros2_stack/lbr_fri_ros2/src/interfaces/torque_command.cpp Lines 34 to 37 in d6aee14
We tried again our cartesian impedance control and this time the behaviour was much better. Even though the gravity compensation (i.e. stiffness set to zero) is not good, this errors are compensated by the torque contributes generated by the position error. If you want, you can give it a try. 🦾 |
yes, been referring to that @anselmo-parnada.
The robot that we are using is about 5 years old @anselmo-parnada.
When this line is removed, the target position remains unchanged, maybe that stops the observed drifting @Hydran00. Could there somehow be a bug in the demo code, so that the commanded position changes?
Will try out this controller over the weekend @Hydran00. Hopefully I can replicate the issues. |
Hi,
thank you for your work!
We managed to install everything smoothly and the position control demo worked fine (Humble branch), but encountered an issue during the torque control demos: the robot (LBR IIWA 14 R820) did not move.
After some trials, we managed to make the torque demo work by adding the following line here
It is very strange, since there are no open or closed issues reporting this problem. Do you have any suggestion?
The text was updated successfully, but these errors were encountered: