acarder Posted November 8, 2012 Share Posted November 8, 2012 Is there a built in function to determine the X-Y-Z components of the systems current trajectory without doing the calculation myself in kinematics? I have a set of kinematics that command a 5-axis head based on a few external parameters, the trajectory, and a normal to this. Thanks, Adam Link to comment Share on other sites More sharing options...
Sina.Sattari Posted November 8, 2012 Share Posted November 8, 2012 Adam, In Turbo PMAC, you have to calculate these using a background PLC which runs a copy version of your forward kinematics, with Mx61 or Mx62 as motor position inputs instead of Pn variables. In Power PMAC, reporting of Position, Velocity, Following Error, Distance to Go for each of the "Axis" has been automated. Regards, Link to comment Share on other sites More sharing options...
acarder Posted November 9, 2012 Author Share Posted November 9, 2012 Sina, If I am running trajectory calcs in a background PLC and I have a lookahead buffer, can I am assume my calculations on trajectory will be behind by the lookahead amount? I had originally planned on using the inverse kinematics Q variables and a last known axis location (stored during the last iteration of inverse kinematics) to compute a point to point trajectory in which to calculate path normals from and ultimately command some motors. Obviously there are some special exceptions when you first start running and after pmatch etc. Is there a better way to do this without running into problems with lookahead? Thanks, Adam Link to comment Share on other sites More sharing options...
Sina.Sattari Posted November 9, 2012 Share Posted November 9, 2012 Adam, If you do the calculations in the kinematics and using the Q-variables, as you mentioned, we will have the lookahead issue and the fact that there is a time-advance on our calculations and actual motion on the machine. However, if we do the calculations in a background PLC, with a code which is a copy of your forward kinematics routine with the following modifications: - replace all the Px variables (which are the motor position inputs in forward kinematics) with (Mx62+Mx64)/(32*Ix08) - replace all the Qy variables (which are the axis position outputs in forward kinematics) with your choice of P variables where your want to store the actual real-time axis position data. Based upon the actual real-time axis position data and a previous value of them, you can calculate real-time velocity, real-time tangent angle, normal angle and anything else you need. Please notice that if you want to calculate the speed you either have to time stamp your data such that you know the time difference between the calculated positions or you have to use an RTI PLC to repeat the calculations at constant intervals. Link to comment Share on other sites More sharing options...
Recommended Posts