From: Spiderdab <77...@ti...> - 2011-11-29 17:52:30
|
Hallo! Do someone knows why into Joints-Axes3 branch the pin halui.jog-speed doesn't work? i linked that with the joystick slider, and i can see into 'show hal config' that it is linked and changing, but jog speed doesn't change. i can jog only at 'axis-n-teleop-vel-limit' set into [AXIS_N]MAX_VELOCITY. why? Davide. |
From: andy p. <bod...@gm...> - 2011-11-29 18:33:31
|
On 29 November 2011 17:52, Spiderdab <77...@ti...> wrote: > Do someone knows why into Joints-Axes3 branch the pin halui.jog-speed > doesn't work? I don't know, but if you are using ja3 then presumably you are building your own EMC2 from source? In that case, is it worth checking out 2.5 and seeing what happens if you comment-out the ZERO_EMC_POSE in line 1402 of src/emc/usr_intf/halui.cc ? (I _think_ that is the difference between the modes, though there is possibly a very good reason for it to be there….) -- atp The idea that there is no such thing as objective truth is, quite simply, wrong. |
From: Spiderdab <77...@ti...> - 2011-11-30 15:47:14
|
Il giorno mar, 29/11/2011 alle 18.32 +0000, andy pugh ha scritto: > On 29 November 2011 17:52, Spiderdab <77...@ti...> wrote: > > > Do someone knows why into Joints-Axes3 branch the pin halui.jog-speed > > doesn't work? > > I don't know, but if you are using ja3 then presumably you are > building your own EMC2 from source? > In that case, is it worth checking out 2.5 and seeing what happens if > you comment-out the > ZERO_EMC_POSE in line 1402 of src/emc/usr_intf/halui.cc ? > > (I _think_ that is the difference between the modes, though there is > possibly a very good reason for it to be there….) > I've tried commenting-out ZERO_EMC_POSE line as you suggested. nope. it seems it's not changing anything. the problem remains. i'm working on 2.5_branch now. i tried (just for curiosity) to comment out those break statements inside the sendJogCont int... i only gain weird movements, but still if i jog in two axes at the same time movement blocks. other suggestions? tell me, is it right what i'm doing: after any change in halui.cc i do 'make clean, then ./configure, make, sudo make setuid'? thanks, Davide. |
From: andy p. <bod...@gm...> - 2011-11-30 16:20:20
|
On 30 November 2011 15:46, Spiderdab <77...@ti...> wrote: > tell me, is it right what i'm doing: after any change in halui.cc i do > 'make clean, then ./configure, make, sudo make setuid'? No, that will take ages. You only need "make" for minor changes to a few files. -- atp The idea that there is no such thing as objective truth is, quite simply, wrong. |
From: Spiderdab <77...@ti...> - 2011-11-30 16:34:53
|
Il giorno mer, 30/11/2011 alle 16.19 +0000, andy pugh ha scritto: > On 30 November 2011 15:46, Spiderdab <77...@ti...> wrote: > > > tell me, is it right what i'm doing: after any change in halui.cc i do > > 'make clean, then ./configure, make, sudo make setuid'? > > No, that will take ages. You only need "make" for minor changes to a few files. > thanks, looks faster! any other idea? |
From: andy p. <bod...@gm...> - 2011-11-30 16:45:27
|
On 30 November 2011 16:33, Spiderdab <77...@ti...> wrote: > any other idea? No, it's a mystery to me. The "ABORT" sets all velocities to zero prior to setting the selected axis to the requested speed, so it makes sense that that would be the reason you can only jog one axis at a time (And if you try to job more than one, the highest-numbered should always "win". Is that what you see? -- atp The idea that there is no such thing as objective truth is, quite simply, wrong. |
From: Spiderdab <77...@ti...> - 2011-12-05 13:13:43
|
Il giorno mer, 30/11/2011 alle 16.44 +0000, andy pugh ha scritto: > On 30 November 2011 16:33, Spiderdab <77...@ti...> wrote: > > > any other idea? > > No, it's a mystery to me. The "ABORT" sets all velocities to zero > prior to setting the selected axis to the requested speed, so it makes > sense that that would be the reason you can only jog one axis at a > time (And if you try to job more than one, the highest-numbered should > always "win". Is that what you see? > Hi, again trying to solve the impossibility of jogging more than one axis in teleop.mode. i've foud this part into xemc.cc (emc 2.5): ....cut.... static int sendJogCont(int axis, double speed) { EMC_AXIS_JOG emc_axis_jog_msg; if (axis < 0 || axis >= XEMC_NUM_AXES) { return -1; } if (axisJogging != -1) { // ignore request to jog, if an axis is already jogging return 0; } if (0 == jogPol[axis]) { speed = -speed; } emc_axis_jog_msg.serial_number = ++emcCommandSerialNumber; emc_axis_jog_msg.axis = axis; emc_axis_jog_msg.vel = speed / 60.0; emcCommandBuffer->write(emc_axis_jog_msg); axisJogging = axis; return 0; } ...cut... do you think it can be implicated on the issue? |
From: andy p. <bod...@gm...> - 2011-12-05 13:42:01
|
On 5 December 2011 13:13, Spiderdab <77...@ti...> wrote: > if (axisJogging != -1) { > // ignore request to jog, if an axis is already jogging > return 0; ... > do you think it can be implicated on the issue? Possibly. I wonder what happens if you comment-out the "return 0" and re-compile? I am sure that somebody understands this part of EMC2, I am equally sure i am not this person. -- atp The idea that there is no such thing as objective truth is, quite simply, wrong. |
From: Spiderdab <77...@ti...> - 2011-12-05 14:27:28
|
Il giorno lun, 05/12/2011 alle 13.41 +0000, andy pugh ha scritto: > On 5 December 2011 13:13, Spiderdab <77...@ti...> wrote: > > > if (axisJogging != -1) { > > // ignore request to jog, if an axis is already jogging > > return 0; > ... > > do you think it can be implicated on the issue? > > Possibly. I wonder what happens if you comment-out the "return 0" and > re-compile? > > I am sure that somebody understands this part of EMC2, I am equally > sure i am not this person. > commented, then Make, but result is always the same.. |
From: Spiderdab <77...@ti...> - 2011-12-05 14:48:37
|
what about this part? > static int sendJogStop(int axis) > { > EMC_AXIS_ABORT emc_axis_abort_msg; > > // in case of TELEOP mode we really need to send an TELEOP_VECTOR message > // not a simple AXIS_ABORT, as more than one axis would be moving > // (hint TELEOP mode is for nontrivial kinematics) > EMC_TRAJ_SET_TELEOP_VECTOR emc_set_teleop_vector; > > if ((emcStatus->task.state != EMC_TASK_STATE_ON) || (emcStatus->task.mode != EMC_TASK_MODE_MANUAL)) > return -1; > > if (axis < 0 || axis >= EMC_AXIS_MAX) { > return -1; > } > > if (emcStatus->motion.traj.mode != EMC_TRAJ_MODE_TELEOP) { > emc_axis_abort_msg.serial_number = ++emcCommandSerialNumber; > emc_axis_abort_msg.axis = axis; > emcCommandBuffer->write(emc_axis_abort_msg); > > return emcCommandWaitReceived(emcCommandSerialNumber); > } else { > emc_set_teleop_vector.serial_number = ++emcCommandSerialNumber; > ZERO_EMC_POSE(emc_set_teleop_vector.vector); > emcCommandBuffer->write(emc_set_teleop_vector); > > return emcCommandWaitReceived(emcCommandSerialNumber); > } > } > > static int sendJogCont(int axis, double speed) > { > EMC_AXIS_JOG emc_axis_jog_msg; > EMC_TRAJ_SET_TELEOP_VECTOR emc_set_teleop_vector; > > if ((emcStatus->task.state != EMC_TASK_STATE_ON) || (emcStatus->task.mode != EMC_TASK_MODE_MANUAL)) > return -1; > > if (axis < 0 || axis >= EMC_AXIS_MAX) { > return -1; > } > > if (emcStatus->motion.traj.mode != EMC_TRAJ_MODE_TELEOP) { > emc_axis_jog_msg.serial_number = ++emcCommandSerialNumber; > emc_axis_jog_msg.axis = axis; > emc_axis_jog_msg.vel = speed / 60.0; > emcCommandBuffer->write(emc_axis_jog_msg); > } else { > emc_set_teleop_vector.serial_number = ++emcCommandSerialNumber; > ZERO_EMC_POSE(emc_set_teleop_vector.vector); > > switch (axis) { > case 0: > emc_set_teleop_vector.vector.tran.x = speed / 60.0; > break; > case 1: > emc_set_teleop_vector.vector.tran.y = speed / 60.0; > break; > case 2: > emc_set_teleop_vector.vector.tran.z = speed / 60.0; > break; > case 3: > emc_set_teleop_vector.vector.a = speed / 60.0; > break; > case 4: > emc_set_teleop_vector.vector.b = speed / 60.0; > break; > case 5: > emc_set_teleop_vector.vector.c = speed / 60.0; > break; > } > emcCommandBuffer->write(emc_set_teleop_vector); > } > > return emcCommandWaitReceived(emcCommandSerialNumber); > } Can't understand perfectly what it says at the beginning, can you try to see if there's a problem here? some suggestion? |
From: Spiderdab <77...@ti...> - 2011-12-05 14:51:43
|
what about this part? ..... forgot to say it is in the halui.cc file, line 1352, emc 2.5. I saw the same file into joint_axes3 branch, and there's not this part. (there i can jog two or more axis at a time..) |
From: andy p. <bod...@gm...> - 2011-12-05 15:28:47
|
On 5 December 2011 14:51, Spiderdab <77...@ti...> wrote: > what about this part? That's the ZERO_EMC_POSE which you already tried killing. I guess you could try doing it in both places? -- atp The idea that there is no such thing as objective truth is, quite simply, wrong. |
From: Spiderdab <77...@ti...> - 2011-12-05 15:48:33
|
Il giorno lun, 05/12/2011 alle 15.28 +0000, andy pugh ha scritto: > On 5 December 2011 14:51, Spiderdab <77...@ti...> wrote: > > what about this part? > > That's the ZERO_EMC_POSE which you already tried killing. > I guess you could try doing it in both places? > ah, yes. but the lines were different because i tried to comment-out from 2.4.6, i think.. tried to comment-out, but only one at a time, now i'll try to comment both. but i cannot find in which file ZERO_EMC_POSE is created. can you help me? in the meantime i'm trying changes into other files but into JA3, so i'm not posting here not to mix the two paths.. thanks Andy. Is there any other developer who can say something to help? at the end i'm doing some debugging to help an important improvement into EMC2, which, i think, should interest all developers.But i'm not a real programmer, i only know a little C and Python, which is not so much on such a Software! Thanks, Davide. |
From: andy p. <bod...@gm...> - 2011-12-05 16:33:21
|
On 5 December 2011 15:48, Spiderdab <77...@ti...> wrote: > but i cannot find in which file ZERO_EMC_POSE is created. can you help > me? http://git.linuxcnc.org/gitweb?p=emc2.git;a=blob;f=src/emc/nml_intf/emcpos.h -- atp The idea that there is no such thing as objective truth is, quite simply, wrong. |
From: Michał G. <mi...@wp...> - 2011-12-05 18:01:57
|
If you want to make halui.jog-speed pin working in ja3 branch, comment line 1223 (axis->teleop_tp.max_vel = axis->vel_limit;) in file /src/emc/motion/control.c and recompile regards, Michael W dniu 05.12.2011 17:32, andy pugh pisze: > On 5 December 2011 15:48, Spiderdab<77...@ti...> wrote: > >> but i cannot find in which file ZERO_EMC_POSE is created. can you help >> me? > > http://git.linuxcnc.org/gitweb?p=emc2.git;a=blob;f=src/emc/nml_intf/emcpos.h > |
From: Spiderdab <77...@ti...> - 2011-12-05 18:45:11
|
Il giorno lun, 05/12/2011 alle 19.01 +0100, Michał Geszkiewicz ha scritto: > If you want to make halui.jog-speed pin working in ja3 branch, comment > line 1223 (axis->teleop_tp.max_vel = axis->vel_limit;) in file > /src/emc/motion/control.c and recompile > > regards, > Michael YYYYYYYEEEEEEEEEEEESSSSSSSSSSSSSSSS!!!!!!!!!!!!!!! Hi and thank you Michael. It worked. (was it so simple!?) Just for knowledge, what's the reason of that line? |
From: Spiderdab <77...@ti...> - 2011-12-05 21:41:00
|
Il giorno lun, 05/12/2011 alle 21.38 +0200, Viesturs Lācis ha scritto: > 2011/12/5 Spiderdab <77...@ti...>: > > What i see, trying to change values, is that i can now change with the > > Joystick-Slider the speed set in halui.jog-speed, but it doesn't go > > further than [JOINT_n]MAX_VELOCITY. > > It perfectly makes sense to me - You cannot jog than the slowest > joint, because that is the velocity that can be achieved in any > direction. EMC does not know, which joint You will jog after a minute > or two, so it does not know, if it will affect the slowest joint or > no. > > Viesturs You're right, Viesturs, but i misexplained,sorry. I wanted to say that if i set axis max vel lower than joint max vel, teleop-mode max vel should be axis max vel! it is not like that. i.e. i set Slider speed range from 0 to 5000 mm/s My 4 joints max vel is 4000 mm/s I want my X,Y and Z axes max vel to be 3500 mm/s Logically it should be like that, but is not. but i think that's the issue michael was talking about. thank you, again. Davide. |
From: Spiderdab <77...@ti...> - 2011-12-05 14:35:05
|
..in the meantime, i've also found another user having the same issue: www.you*ube.com/watch?v=FgnxBaFFDi8 he confirmed me on e-mail. in fact in the video, he's jogging only one axis at a time. |
From: Spiderdab <77...@ti...> - 2011-12-05 14:53:56
|
..in the meantime, i've also found another user having the same issue: http://www.youtube.com/watch?v=FgnxBaFFDi8 he confirmed me on e-mail. in fact in the video, he's jogging only one axis at a time. |
From: Spiderdab <77...@ti...> - 2011-11-29 19:04:34
|
Il giorno mar, 29/11/2011 alle 18.32 +0000, andy pugh ha scritto: > On 29 November 2011 17:52, Spiderdab <77...@ti...> wrote: > > > Do someone knows why into Joints-Axes3 branch the pin halui.jog-speed > > doesn't work? > > I don't know, but if you are using ja3 then presumably you are > building your own EMC2 from source? > In that case, is it worth checking out 2.5 and seeing what happens if > you comment-out the > ZERO_EMC_POSE in line 1402 of src/emc/usr_intf/halui.cc ? > > (I _think_ that is the difference between the modes, though there is > possibly a very good reason for it to be there….) > mmmh,the thruth is that i'm using (and of course compiled) JA3 because in 2.5 i couldn't jog simultaneously 2 axis together with the joystick (teleop-mode, with non-trivial kins). but in 2.5 the jog speed for each axis was correctly adjusted pushing more or less the joy stick for that axis. tried to look inside halui.cc into 2.5 and 2.4JA3 sources, and i've found out that the section ZERO_EMC_POSE isn't there into JA3... are you suggesting it's more simple to make joystick work as expected into 2.5 than into JA3? The think is that i liked more the concept of JA3 of separating totally Joints from Axes. But is still there anyone developing JA3? |
From: andy p. <bod...@gm...> - 2011-11-29 19:27:36
|
On 29 November 2011 19:04, Spiderdab <77...@ti...> wrote: > are you suggesting it's more simple to make joystick work as expected > into 2.5 than into JA3? It might be. But I was thinking it might be a nice, simple, experiment. > The think is that i liked more the concept of JA3 of separating totally > Joints from Axes. But is still there anyone developing JA3? I agree, and I think that most people do. Certainly for a machine like yours, about as non-cartesian as possible, it makes sense. The last new commit to JA3 was about a month ago, so it is certainly still being developed. It will probably see more action when 2.5 is pushed out the door. -- atp The idea that there is no such thing as objective truth is, quite simply, wrong. |
From: Spiderdab <77...@ti...> - 2011-11-29 19:37:08
|
Il giorno mar, 29/11/2011 alle 19.27 +0000, andy pugh ha scritto: > On 29 November 2011 19:04, Spiderdab <77...@ti...> wrote: > > > are you suggesting it's more simple to make joystick work as expected > > into 2.5 than into JA3? > > It might be. But I was thinking it might be a nice, simple, experiment. > > > The think is that i liked more the concept of JA3 of separating totally > > Joints from Axes. But is still there anyone developing JA3? > > I agree, and I think that most people do. Certainly for a machine like > yours, about as non-cartesian as possible, it makes sense. > The last new commit to JA3 was about a month ago, so it is certainly > still being developed. It will probably see more action when 2.5 is > pushed out the door. > Ok, cleaned and now compiling master. then i'll try to change someting. |
From: Spiderdab <77...@ti...> - 2011-11-30 17:04:36
|
Il giorno mer, 30/11/2011 alle 16.44 +0000, andy pugh ha scritto: > On 30 November 2011 16:33, Spiderdab <77...@ti...> wrote: > > > any other idea? > > No, it's a mystery to me. The "ABORT" sets all velocities to zero > prior to setting the selected axis to the requested speed, so it makes > sense that that would be the reason you can only jog one axis at a > time (And if you try to job more than one, the highest-numbered should > always "win". Is that what you see? > do you mean axis_2 win on 1 and 0? so if i jog two axes togheter 0 shold never move? i try.. |
From: Spiderdab <77...@ti...> - 2011-11-30 17:34:43
|
Il giorno mer, 30/11/2011 alle 18.04 +0100, Spiderdab ha scritto: > Il giorno mer, 30/11/2011 alle 16.44 +0000, andy pugh ha scritto: > > On 30 November 2011 16:33, Spiderdab <77...@ti...> wrote: > > > > > any other idea? > > > > No, it's a mystery to me. The "ABORT" sets all velocities to zero > > prior to setting the selected axis to the requested speed, so it makes > > sense that that would be the reason you can only jog one axis at a > > time (And if you try to job more than one, the highest-numbered should > > always "win". Is that what you see? > > > do you mean axis_2 win on 1 and 0? > so if i jog two axes togheter 0 shold never move? > > i try.. no, it seems random, i mean the 'winning axis'. and also sometime one axis wins, sometime none wins, it just doesn't move anymore. |
From: Spiderdab <77...@ti...> - 2011-11-30 17:49:49
|
a question: please, what's the best text editor to edit emc2 src files? |