The reason why I need to store joint data is the following:
the whole trajectory is generated automatically from an image of the object to be painted. Working in the joint space is convenient because it guarantees full control of the configuration, with no ambiguities. The generated trajectory is composed of many points (sequence of joint angles) close to each other (roughly 1 cm apart) and takes into account joint ranges and other constraints, thus is feasible by construction. What I need is simply a way to follow the sequence of joint angles smoothly, at a specified speed.
Posts by philip1974
-
-
An additional issue with that is that is that the joint speeds are based on how far they need to go to meet the linear speed requirements, which means that large joint angle changes over short linear distances are very violent and frequently overspeed the joints, causing emergency stop behavior. Hard to identify after the fact because the move SAYS it was relatively slow.Thank you for pointing out that issue.
So, assuming that the wrist angles changes are sufficiently small that the joint speed are not exceeded during the linear movement for the given linear speed, a solution to my original request could be:
L P[1] 1000mm/sec CNT100 Wjntwhere P[1] is expressed as J1...J6 ?
Otherwise I must use joint movements, and find a way to calculate the percentage speed in order to get the required linear speed... -
If it is a one time thing, i would drive the robot to the desired joint position, then record it in cartesian, and do the linear move that way.If this is a repeated thing you want to do programatically, short of writing the kinematic equations yourself, i am not sure if you might be able to do something clever with LPOS, JPOS, or PR's. Since a PR can represent a point in both Joint and Cartesian, you may be able to perform a linear move to a joint representation PR[]. I have never tried this, but it would be my first experiment. Then you could set up a single move L PR[x] 50mm/s Fine (or whatever), with a set of lines before performing a PR[x] = JPOS to set to Joint representation, then PR[x:1] = R[1], PR[x:2] = R[2], etc...
Kinematic equations would be the most difficult way, but basically guaranteed to work, and can be easily shifted by user and tool frames once created. (i have not touched a kinematic equation in 3 years, and i was not great at them then, so good luck)
What is the application, maybe there is a better way?
thank you
The application is painting.
I have the kinematics and generate a sequence of joint angles (very close to each other). The reason why I would like to use linear movement to joint position is to specify the speed in mm/sec referred to the tool (instead of a percentage, as it seems mandatory for joint movements) -
I have recently talked with Fanuc about this in depth. The short answer to your question is yes. You can use joint position data and move to it in a linear move. The controller first calculations the XYZWPR data for the point with the given tool. Then it calculates the linear move from the location it is at before the move.Thank you very much
As far as I understand, there is no guarantee that the robot will move to the exact joint angles I want, right? I can only be sure that the final *cartesian* position is the one corresponding to the joint angles I want.
The reason why I want to use joint position is avoiding the exact problem mentioned by Nation, that the robot will end with + or -360 degrees with respect to the J6 value I specify. If there is no guarantee that the final angles are those specified, I could use cartesian in the first place. -
Hi, I'm new with Fanuc robots although I have some experience with other robots.
Here is my question: suppose I have a target position expressed in terms of the 6 values of the joint angles. Can I specify a *linear* movement to that target position, along with a speed in mm/s?
Something likeL P[1] 500mm/sec CNT100
where
P[1]{
GP1:
UF : 1, UT : 1,
J1= 0.000 deg, J2= -1.908 deg, J3= -14.270 deg,
J4= -0.000 deg, J5= -27.007 deg, J6= 0.000 deg
};Thanks,
Philip