Jump to content
OMRON Forums

[hexapod] PVT


maslick

Recommended Posts

Hello!

 

I would like to control the hexapod platform using PVT mode. We have already implemented a system using LINEAR mode. Now, I have added into the inverse kinematics routine the computation of the motors' velocities.

 

Here is a piece of a motion program I have written so far:

 

close 
#include "macro_constants_def.pmc" 
open prog 1		; open buffer for program entry 

clear					; erase existing contents of buffer
&1


PVT200
;Move absolute
ABS



;Transform from uRad to deg.

UCSPoseA=UCSPoseAuRad/TouRad
UCSPoseB=UCSPoseBuRad/TouRad
UCSPoseC=UCSPoseCuRad/TouRad

X(UCSPoseX):(XVel)Y(UCSPoseY):(YVel)Z(UCSPoseZ):(ZVel)A(UCSPoseA):(AVel)B(UCSPoseB):(BVel)C(UCSPoseC):(CVel)

 

The only thing is that I use only one "X:(Vx)Y:(Vy):Z:..." statement. When I have to slice my entire move (contour) into pieces, so like the move will consist of 50 little jogs.

How can I implement this? By putting it in a loop? Or is there a better way?

 

Thanks in advance!

 

 

--

Best regards,

 

 

Pavel Maslov, MS

Controls Engineer at Pulsed power Lab

Efremov Institute for Electro-Physical Apparatus

St. Petersburg, Russia

 

Mobile: +7 (951) 672 22 19

Landline: +7 (812) 461 01 01

Link to comment
Share on other sites

  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

If you put them in a while loop, you have to make sure that the position and velocity updates are synchronized properly. In other words, and for each move, the new positions and velocities have to be sent before the end of the previous move. This allows PMAC to blend them together, otherwise it will stop the axes. An axis can not be stationary in one location while trying to achieve a constant (non-zero) velocity.

 

I suggest programming the entire contour explicitly in-line, i.e. 50 lines.

Link to comment
Share on other sites

If you put them in a while loop, you have to make sure that the position and velocity updates are synchronized properly. In other words, and for each move, the new positions and velocities have to be sent before the end of the previous move. This allows PMAC to blend them together, otherwise it will stop the axes. An axis can not be stationary in one location while trying to achieve a constant (non-zero) velocity.

 

I suggest programming the entire contour explicitly in-line, i.e. 50 lines.

 

Hey Richard!

 

The axes velocities (X,Y,Z,A,B,C) have to be constant in my case and are set by the user.

Do you mean something like (using abstract syntax notation):

 

while(1)
{
  (Xcurrent+dX):Xvel (Ycurrent+dY):Yvel (Zcurrent+dZ):Zvel (Acurrent+dA):Avel (Bcurrent+dB):Bvel (Ccurrent+dC):Cvel 
  if (CurrentPos==(CommandedPos-deltaPos)) 
     {
         X:0 Y:0 Z:0
         break
     }
}

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...