Are you confident that the three points lie on a circle and not an ellipse? That has been an issue I have seen in the past, when I did not have the points on an actual circle it did some funny stuff. Have you tried just teaching 3 known points that lie on a circle and see if the issue remains?
matthewd92
Basically, no it would not try to follow the green line, it would try to follow the black line, maintaining tangency to the 3 points. I recommend reading this UR support site topic about using a circle move to create a 360 degree circle, maybe it will provide some clarification.
https://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/circle-using-movec-16270/
I wrote a program that has a MoveP with a CircleMove with three waypoints.
The three points are variable waypoints that are defined by dimensional inputs, some math, and a pose_trans function from a manually define starting waypoint. I have no problem moving between these waypoints with a MoveL command, so I know my math is correct. However, I run into two issues when I try to use the MoveP with the CircleMove:
- The TCP does not pass through the second waypoint (cornern1_mid) as I intend. Also, it seems to deviate more noticeably when the corner radius decreases. I do not have this issue with MoveL commands. What could be causing this issue?
- Wrist 3 over-rotates a consistent amount. As part of the pose_trans function, I specify a 90 degree (1.5708 radian) turn (e.g. p[x,y,0,0,0,-1.5708]). However, it will over-rotate about 10 degrees, so I have to set the last value to -1.4 radians to compensate for the over-rotation.
Again, I have no issues hitting those three way-points with a MoveL command, so I am highly confident that there is nothing wrong with the math. There must be something that I don't understand about the MoveP function that I am missing.