Cinématique avec axes "redondants" (+présentation)

More
04 Feb 2015 22:47 #55687 by andypugh
I have lost track of what you are trying to do.

But you don't appear to be doing anything with the offset component offset input pin.

motor-position-command goes to offset in
offset feedback out goes to motion.motor-pos-feedback

offset out goes to pid as the offset command
encoder position goes to pid and to offset feedback in

then the offset offset moves the tool without the system knowing about it.
More
04 Feb 2015 23:55 #55689 by vincentECN

andypugh wrote: I have lost track of what you are trying to do.


Yes, it because i take some time between each posts... sorry for this...

andypugh wrote: motor-position-command goes to offset in
offset feedback out goes to motion.motor-pos-feedback

offset out goes to pid as the offset command
encoder position goes to pid and to offset feedback in


But, in core_sim.hal, i don't have :
- motion.motor-pos-feedback
- encoder position

(i try first with a xyz_sim configuration.)

And i don't understand "offset out goes to pid as the offset command".

All that i have is on the picture on figure. :/
More
04 Feb 2015 23:59 #55690 by vincentECN
I've just found that maybe i have to test on a servo_sim.hal rather than a core_sim.hal.
It's look like there is lot of more pins and signals...
More
05 Feb 2015 22:19 #55719 by vincentECN
So, I tried to use the configuration configs/sim/tklinuxcnc with servo_sim.ini
(because it seems that from the beginning i used a non servo sim config... so impossible to do what i want...)

But It doesn't work (no launch). And i don't why. I don't understand the debug file. There is a problem with EMCTASK ?
How can i fix this ?

Below, the message form terminal. And in attachment, debug files and servo_sim.ini.
kel@kel:~$ /home/kel/CPP-workspace/linuxcnc-kelmod251/scripts/linuxcnc
LINUXCNC - 2.5.1-Kelvin_FoFdation-2013.03.11
Machine configuration directory is '/home/kel/linuxcnc/configs/sim/tklinuxcnc'
Machine configuration file is 'servo_sim.ini'
Starting LinuxCNC...
io started
halcmd loadusr io started
task pid=8201
emcTrajSetJoints failing: joints=0
Error in startup script: can't find package Linuxcnc
    while executing
"package require Linuxcnc"
    (file "/home/kel/CPP-workspace/linuxcnc-kelmod251/tcl/tklinuxcnc.tcl" line 21)
Shutting down and cleaning up LinuxCNC...
emcTrajSetJoints failing: joints=0
/home/kel/CPP-workspace/linuxcnc-kelmod251/bin/milltask (pid 8201) died on signal 11, backtrace stored in /tmp/backtrace.8201
/home/kel/CPP-workspace/linuxcnc-kelmod251/bin/milltask exiting
/home/kel/CPP-workspace/linuxcnc-kelmod251/scripts/linuxcnc: line 396:  8201 Segmentation fault      $EMCTASK -ini "$INIFILE"
Cleanup done
LinuxCNC terminated with an error.  You can find more information in the log:
    /home/kel/linuxcnc_debug.txt
and
    /home/kel/linuxcnc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal

Thank you for your help.
Attachments:
More
06 Feb 2015 08:48 #55730 by andypugh
I have no idea what is wrong there.
Error in startup script: can't find package Linuxcnc

Just sounds strange.
More
06 Feb 2015 17:32 #55741 by vincentECN

andypugh wrote:

Error in startup script: can't find package Linuxcnc

Just sounds strange.


Oui. C'est bizarre.

With other version of LinuxCNC, i don't have the same error.
kel@kel:~$ /home/kel/Desktop/Launchers/test-release-251.run
LINUXCNC - 2.5.1
Machine configuration directory is '/home/kel/linuxcnc/configs/sim/tklinuxcnc'
Machine configuration file is 'servo_sim.ini'
Starting LinuxCNC...
servo_sim.hal:62: Pin 'joint.0.motor-pos-fb' does not exist
Shutting down and cleaning up LinuxCNC...
Cleanup done

or also
kel@kel:~$ /home/kel/Desktop/Launchers/test.run
LINUXCNC - master-2012.07.18 ARAIS ROBOT TECHNOLOGY
Machine configuration directory is '/home/kel/linuxcnc/configs/sim/tklinuxcnc'
Machine configuration file is 'servo_sim.ini'
Starting LinuxCNC...
io started
halcmd loadusr io started
servo_sim.hal:277: Pin 'motion.probe-input' does not exist
Shutting down and cleaning up LinuxCNC...
Cleanup done

Do you have a config servo_sim who work correctly ?
(It seems that there is several version. Some with "axis.N.motor-pos-fb" instead of "joint.N.motor-pos-fb" for example.)
More
06 Feb 2015 18:33 #55743 by andypugh

vincentECN wrote: Do you have a config servo_sim who work correctly ?

You could just write one, without all the stuff required to make a simulator look like the real thing there isn't that much to a config.
But a servo-sim is strange and difficult because there is no real encoder feedback to satisfy the PID.
There is also the issue that the sim configs won't show anything with the suggestions I have made, LinuxCNC is completely unaware of the second axis and so won't show anything happening on screen.
If you had actual motors connected then you would see the offset move things, but there won't be anything to see in a simulator.

(It seems that there is several version. Some with "axis.N.motor-pos-fb" instead of "joint.N.motor-pos-fb" for example.)

That is a further complication. It sounds like you have a number of different versions of LinuxCNC including some from the Joints_Axes branches which separate the concepts of joints (actuators) and Axes (XYZ directions)

I think you need to start at the beginning decide what you want to do, then do it.
More
06 Feb 2015 21:43 #55745 by vincentECN

andypugh wrote:

vincentECN wrote: Do you have a config servo_sim who work correctly ?

But a servo-sim is strange and difficult because there is no real encoder feedback to satisfy the PID.
There is also the issue that the sim configs won't show anything with the suggestions I have made, LinuxCNC is completely unaware of the second axis and so won't show anything happening on screen.
If you had actual motors connected then you would see the offset move things, but there won't be anything to see in a simulator.


Yes. But the problem is that i need to test first on a simulated machine. Because my real machine is a industrial size one. So it's too dangerous and test directly on this one. It's for this taht i'm looking for a 3 axis sim config near of my machine to do the modification of hal.
And, in real test, i will not an motor, but only one encoder on a cross table (taht i can moove manually).

andypugh wrote: That is a further complication. It sounds like you have a number of different versions of LinuxCNC including some from the Joints_Axes branches which separate the concepts of joints (actuators) and Axes (XYZ directions)

I think you need to start at the beginning decide what you want to do, then do it.


Yes, in fact, there was a project before me. An engineer did a lot of work and developement on Linuxcnc. So I picked up his final virtuel box with these Linuxcnc version. It will be difficult to start from the beginning.

Si, if i understand, i have to try to simplify the servo_sim config ? (i want to test to add the offset component like you said). But maybe i will not see anything ? (I just want to disturb the feedback of position, and see if the machine go to the same goal. For exmple, if the machine have to stay on X0, if i had a distrubance with a suplemntary encoder on axis X (of 1 mm for example), i want taht the machine come back on 0. I hope that is possible on simulation. The "normal encoder" will be at 0 at the beginning, but will compensate with the orther encoder on the same axe, so activate the motor and do a displacement of 1 (and have a sum of 0, on feedback... )
More
07 Feb 2015 03:28 #55756 by andypugh

vincentECN wrote: For exmple, if the machine have to stay on X0, if i had a distrubance with a suplemntary encoder on axis X (of 1 mm for example), i want taht the machine come back on 0. I hope that is possible on simulation. The "normal encoder" will be at 0 at the beginning, but will compensate with the orther encoder on the same axe, so activate the motor and do a displacement of 1 (and have a sum of 0, on feedback... )


If that is what you want then you don't need the offset component.

All you need to do is to have two encoder counters, one as normal on the motor for axis control. The other goes on your hand-operated leadscrew and has the correct scale for the motion, but with a negative scale.

You then need to add the two encoder positions together before passing them to the PID.feedback pin _and_ the axis.0.motor-pos-fb pin.

It would be possible to set up a simulator to deomonstrate this, but the HAL that makes the simulation work would be at least as complicated as the machine-control HAL. Possibly more so as it is trying to simulate a machine.

Even if you did simulate it, all you would see in the simulation would be the pid output increasing then going to zero when you operate the second encoder.
More
10 Feb 2015 18:30 #55855 by vincentECN

andypugh wrote:
If that is what you want then you don't need the offset component.

All you need to do is to have two encoder counters, one as normal on the motor for axis control. The other goes on your hand-operated leadscrew and has the correct scale for the motion, but with a negative scale.

You then need to add the two encoder positions together before passing them to the PID.feedback pin _and_ the axis.0.motor-pos-fb pin.


Yes ! It's exactly what I want to do ! :)

andypugh wrote: It would be possible to set up a simulator to deomonstrate this, but the HAL that makes the simulation work would be at least as complicated as the machine-control HAL. Possibly more so as it is trying to simulate a machine.


It's that i begin to understand now... but as i said, i'm affraid to do a wrong change and damage the machine (like one joint will diverge and go very fast on limits).
Maybe I can try to change the HAL file, and i will send on this forum, to know if there is a risk.

andypugh wrote: Even if you did simulate it, all you would see in the simulation would be the pid output increasing then going to zero when you operate the second encoder.[/quote

I don't understand this part.
I want to know if you think it's possible to see the case 3 on the pictures in attachment. (we can imagine the encoder counter, as normal on the motor, stay at 0, and a manual shift that i add to hal file (to simulate an other encounder) to simulate a +1 on X. I will see a light shift on screen (X go to one and come back to 0) ?

In any case, thx for all your responses. ;)

Attachments:
Moderators: darty367
Time to create page: 0.166 seconds
Powered by Kunena Forum