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

EGM moves joints different than the commanded value #85

Open
farshbafdoustar opened this issue Feb 17, 2023 · 1 comment
Open

EGM moves joints different than the commanded value #85

farshbafdoustar opened this issue Feb 17, 2023 · 1 comment

Comments

@farshbafdoustar
Copy link

I'm using the driver in conjunction with pos_vel_controllers/JointTrajectoryController that uses PosVelJointInterface adapter in the lower level that Forwards desired positions with velocities as commands .
During the process I'm commanding smooth and slow movements to robot and it follows. I have notices visually some sudden changes in the tcp position that is finally very visible in the result of my process. These sudden movements are always happening in the exactly same (Cartesian ) place of the process. So I started to dig in more.

After some investigations I found out the following evidences in the joints data that confirms visual sudden changes.
The blue line in the graph is the command position from my side and the purple line is the joint position reported by the robot.
image
Then I have monitored the commanded and actual velocities and found out that exactly at this point of joint position deviation, the robot does not follow the speed command any more and reset the joint speed to zero as it is visible in the following graph: (Green is the commanded velocity and blue is the joint position :
image

This kind of deviation is not limited to joint2 and just this position in world, I can see them on other joints (except joint 1) at some points of the process.
For example here is the difference between desired and actual joint positions for joint2 and joint3:
image

I'm using ABB IRB2600 with a payload of 15KG that is overloaded based on the COG in load diagram graph.
I have disabled the safe move but no change. I have also played around a little with EGM Motion Parameters. The Gain value for the above graphs is 10, changing to higher values just make the difference smaller (robot converge to the position a little faster) but any how this sudden position changes are still in.
The utilization_rate is also around 50% in this region (pink line in the following graph)
image

Has any body any idea, clue or similar experience?

@farshbafdoustar
Copy link
Author

I think now I know where is the problem. After enabling logs in egm_lilb I found out small velocities from upper levels are rounded to zero somewhere and sent to egm_lib:
image
and this small velocities means sth less than 0.5.
Then I found out inside the driver the velocities less than a fixed threshold are cut off. And this threshold is hardcoded to be 0.5 :-)

I will try to update the README by adding some comments around these magic numbers inside the code.
Any other idea or plan to improve the documentation for this driver? I will be happy to contribute.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant