scarakins axis follow problem in -x and -y zone

More
2 years 9 months ago #289653 by bkt
Hi at all,

on Lcnc 2.9.1 and scarakins standard ....
not understand why but I observe these never test before now: when reach x-500 y+1 position trought x-500 y-1  position in world mode I have an estop event ... think because these row inside kins foward:
Code:
        *iflags = 0;            if (joint[1] < 90)                      *iflags = 1; than in Inverse: [code]    /* joint 1 angle needed to make arm length match sqrt(rsq) */     cc = (rsq - D2*D2 - D4*D4) / (2*D2*D4);     if(cc < -1) cc = -1;     if(cc > 1) cc = 1;     q1 = acos(cc);     if (*iflags)     q1 = -q1; but not understand why exactly seems x and c axis try to moove into undesired point (with estop obtain follow error on joint 0 and joint3 so X and C axis) ... these not happens in positive area +X and +Y or +X and -Y or -X and -Y ... only during moovement trought -Y to +Y if I'm on -X area ..... but is these logical?  a3 or C axis not change angle during these motion from -n to +n or inverse .... any suggestion is appreciate p.s.: axis limit for test is set to +6000mm and -6000 mm... but robot can reach only 900mm. joint limit is set to +720° and -720° so is not a limit problem ...
[/code]

Please Log in to join the conversation.

More
2 years 9 months ago #289891 by bkt
  seems a simply solution can be follow:
Code:
static int scaraKinematicsInverse(const EmcPose * world,                                   double * joint,                                   const KINEMATICS_INVERSE_FLAGS * iflags,                                   KINEMATICS_FORWARD_FLAGS * fflags) {     double a3;     double q0, q1;     double xt, yt, xt1, yt1, rsq, cc;     double x, y, z, c;     x = world->tran.x;     y = world->tran.y;     z = world->tran.z;     c = world->c;     /* convert degrees to radians */     a3 = c * ( PM_PI / 180 );     /* center of end effector (correct for D6) */     xt = x - D6*cos(a3);     yt = y - D6*sin(a3);     xt1 = xt;     yt1 = yt;     /* horizontal distance (squared) from end effector centerline         to main column centerline */     rsq = xt*xt + yt*yt;     /* joint 1 angle needed to make arm length match sqrt(rsq) */     cc = (rsq - D2*D2 - D4*D4) / (2*D2*D4);     if(cc < -1) cc = -1;     if(cc > 1) cc = 1;     q1 = acos(cc);     if (*iflags)         q1 = -q1;     /* angle to end effector */     q0 = atan2(yt, xt);     /* end effector coords in inner arm coord system */     xt = D2 + D4*cos(q1);     yt = D4*sin(q1);     /* inner arm angle */     //q0 = q0 - atan2(yt, xt);     if((xt1<0) && (yt1>=0)){q0 = q0 - atan2(yt, xt) - 2*M_PI;}     else{q0 = q0 - atan2(yt, xt);}     /* q0 and q1 are still in radians. convert them to degrees */     q0 = q0 * (180 / PM_PI);     q1 = q1 * (180 / PM_PI);     joint[0] = q0;     joint[1] = q1;     joint[2] = D1 + D3 - D5 - z;     joint[3] = c - ( q0 + q1);     joint[4] = world->a;     joint[5] = world->b;     *fflags = 0;     return (0); } // scaraKinematicsInverse()

not tested on real machine for now ... only on openGL test windows.

regards

Please Log in to join the conversation.

More
2 years 9 months ago #291224 by bkt
sorry seems I deleted the previous my answer by posting this new possible solution for -x & -y scara working zone, when end-point passes trought Y=0 ....

Please Log in to join the conversation.

More
2 years 9 months ago #291462 by bkt
 because i use reverse geometry of scara joint the file must be modify in these way:

(see txt file) 

Attachment not found



tested on my 950mm machine ... not tested on other machinery.

Please Log in to join the conversation.

More
2 years 2 months ago #308685 by DPFlex
Hello,
My system is:
- Debian Bookworm, LCNC 2.9.3
- Installed on Desktop PC with scripts: www.linuxcnc.org/linuxcnc-install.sh
I just revise SCARA dimensions:
Code:
#define DEFAULT_D1 490 #define DEFAULT_D2 340 #define DEFAULT_D3  50 #define DEFAULT_D4 250 #define DEFAULT_D5  50 #define DEFAULT_D6  50

My question is: after revising scarakins.c, how to let the installed LCNC know and run ?.
Thank you.

Please Log in to join the conversation.

More
2 years 2 months ago #308709 by Aciera
You can try compiling the modified 'scarakins.c' using 'halcompile'
Code:
sudo halcompile --install <your_path>/scarakins.c

You will need the dev package for halcompile to be available.
Code:
sudo apt install linuxcnc-dev

If that does not compile then you will need to build LinuxCNC locally on your computer:
linuxcnc.org/docs/master/html/code/building-linuxcnc.html

Please Log in to join the conversation.

More
2 years 2 months ago #308803 by DPFlex
Hi Aciera,
I could not do with halcompile, so I tried build from sources.
Building from source is faster than my expect. But it is LCNC version 2.10.xxx
I checked all branches on github, could not find stable version 2.9.3
Please advise. Thank you.

Please Log in to join the conversation.

More
2 years 2 months ago #308807 by Aciera
2.9.3 is a branch inside the git tree that you cloned to your local machine. Default branch is 'master' ie currently 2.10.xx.
To compile 2.9.3 you need to switch to the '2.9' branch
Code:
git checkout 2.9
and then recompile

Please Log in to join the conversation.

More
2 years 1 month ago #309774 by bkt
@DPFlex ... from 2.8 I'm unable to use halcompile .... AndyPugh suggest to use a rip install ..... you download on Lcnc_292_wharehouse ..... search on these new folder scarakins.c and change it with modify version .... than run process for make .... when obtain compilation file on rtai folder inside Lcnc_292_wharehouse folder of rip install, use sudo command for root permission, search for original one scarakins.c of your installation (if not use a rip install) and cancel these, copy with root permission your scarakins.c compiled from Lcnc_292_wharehouse  folder to system folder. Reboot ... all done.

Use these tryk for all modifications. Or learn you about customkins.c (never looses these time really) .....

If you have a rip istall .... use the same trick, but change modify scarakins.c from your "compiled Lcnc_292_wharehouse  folder" to your preferred rip install .... reboot and voilà.

regards

Please Log in to join the conversation.

Time to create page: 0.094 seconds
Powered by Kunena Forum