#emc-devel | Logs for 2007-07-01

[00:24:16] <alex_joni> jmkasunich: managed to finish mowing?
[00:24:32] <jmkasunich> yes
[00:24:36] <jmkasunich> just now in fact
[00:25:59] <alex_joni>
[00:26:19] <alex_joni>
[00:27:16] <alex_joni> on the last one, P=25, I=100, D=0, FF*=0
[00:27:42] <jmkasunich> what was the commanded move?
[00:27:48] <alex_joni> a jog..
[00:27:57] <jmkasunich> how long?
[00:28:04] <alex_joni> very short
[00:28:04] <jmkasunich> looks like only 2mm or so
[00:28:16] <alex_joni> something like that
[00:28:41] <alex_joni> hmm.. I'll try steps, not continuous
[00:28:46] <jmkasunich> you should offset your position command and fb traces, so the scaling doesn't have to be so huge
[00:29:04] <jmkasunich> (200mm/div doesn't let you see much when you are making <5mm moves)
[00:29:12] <alex_joni> offset how?
[00:29:22] <jmkasunich> the offset button under the vertical sliders
[00:29:35] <jmkasunich> note the level, (use the cursor)
[00:29:35] <alex_joni> now he tells me :)
[00:29:41] <jmkasunich> then click that button and enter -thevalue
[00:30:20] <jmkasunich> anyway, judging from the ferror trace, EMC actually completed the move before the motor even started
[00:30:56] <alex_joni> I think it's ok for pid to reduce output for the move to happen
[00:31:05] <jmkasunich> what?
[00:31:21] <jmkasunich> I'm trying to understand the traces you posted
[00:31:22] <alex_joni> payload > friction
[00:31:38] <alex_joni> let me try to get some clearer ones
[00:31:49] <alex_joni> and we'll try to understand them together
[00:31:55] <alex_joni> right now I want to command a jog of 10mm
[00:32:03] <alex_joni> need to add jog steps to the ini
[00:32:03] <jmkasunich> it looks like you jogged once (from 3 to 3.5 divs on the time axis) and never got enough error to make it break loose,
[00:32:18] <jmkasunich> the I gain was starting to get somewhere, and at 4.2 divs it moved one count
[00:32:32] <jmkasunich> then at 4.3 divs or so you started another jog
[00:32:43] <jmkasunich> that one got enough error that the P term started the motor moving
[00:34:07] <alex_joni> might be so..
[00:34:13] <alex_joni> maybe a 10mm step shows it better
[00:34:21] <jmkasunich> yes
[00:34:29] <jmkasunich> a 2mm step is only 6-7 counts
[00:39:21] <alex_joni>
[00:39:59] <jmkasunich> I think you got it tuned
[00:40:15] <alex_joni> ok, so it won't work any better.. right?
[00:40:29] <jmkasunich> I suspect you can inprove it some
[00:40:32] <alex_joni> it shaking all over the place..
[00:40:40] <jmkasunich> even when stopped?
[00:40:45] <alex_joni> no
[00:40:48] <alex_joni> only when moving
[00:40:56] <alex_joni> I suspect friction
[00:41:09] <jmkasunich> and coarse encoder counts
[00:41:14] <jmkasunich> nasty combination
[00:41:25] <alex_joni> and PID jumping from +20% to -20%
[00:41:41] <jmkasunich> because between -20 and +20 nothing happens (thanks to friction)
[00:42:19] <alex_joni> right
[00:42:29] <jmkasunich> your max following error during that move seems to be 4-5 counts
[00:42:56] <alex_joni> it's about 1mm
[00:43:04] <alex_joni> so roughly under 5 counts
[00:43:09] <jmkasunich> yeah
[00:43:25] <alex_joni> ferror in the ini is about 50 mm right now :P
[00:43:34] <jmkasunich> good
[00:43:38] <alex_joni> 20
[00:43:42] <jmkasunich> ferror should be totally out of the picture during tuning
[00:44:00] <alex_joni> yeah, I thought so
[00:44:11] <jmkasunich> I'd keep increasing I gain until bad things happen
[00:44:20] <jmkasunich> not sure how much it will help
[00:44:23] <alex_joni> at around 300 bad things happen
[00:44:27] <jmkasunich> ok
[00:44:35] <alex_joni> from 100 to 300 not much of a change
[00:45:10] <alex_joni> anyways.. I call it a wonder
[00:45:20] <jmkasunich> call it bedtime
[00:45:23] <alex_joni> that it's moving somehow semicoordinated
[00:45:37] <jmkasunich> your friend owes you beers
[00:45:35] <alex_joni> encoders are homebuilt
[00:45:55] <alex_joni> he knows I don't drink any
[00:45:57] <jmkasunich> I'm surprized the encoder resolution is so low
[00:46:05] <jmkasunich> I thought they were based on mouse parts?
[00:46:05] <alex_joni> it's mouse wheels
[00:46:16] <jmkasunich> mouses have a couple hundred counts per inch
[00:46:19] <alex_joni> yeah
[00:46:29] <jmkasunich> duh, I guess thats only about 10 per mm
[00:46:29] <alex_joni> but the problem here is the drum the wire goes over
[00:46:49] <jmkasunich> why a drum, it should go over the bare naked mouse encoder shaft
[00:46:59] <alex_joni> the shaft is not part of this
[00:47:06] <alex_joni> we only took the wheels
[00:47:12] <jmkasunich> why?
[00:47:18] <alex_joni> mounting issues
[00:47:22] <jmkasunich> oh
[00:47:50] <alex_joni> the 3rd version of this machine would actually be sane
[00:48:08] <alex_joni> but since it's the first attempt..
[02:30:56] <jmkasunich> cradek: you around?
[02:31:03] <jmkasunich> I have "index only homing" coded up
[02:31:15] <jmkasunich> but no good way to test it
[02:44:37] <cradek> yep
[02:44:46] <jmkasunich> can you test?
[02:44:52] <cradek> nope
[02:44:57] <jmkasunich> no index pulses on the lathe?
[02:45:07] <cradek> no, I wish
[02:45:16] <jmkasunich> should I just commit and hope it works?
[02:45:25] <cradek> yes IMO
[02:46:04] <cradek> was it pretty simple or did it touch a lot of the logic?
[02:46:18] <jmkasunich> one new state, and some changes to the start state logic
[02:46:26] <jmkasunich> I'd appreciate it if you could review the diff
[02:46:36] <cradek> certainly
[02:46:45] <jmkasunich> its up to you whether you review it after I commit, or I can pastebin it
[02:48:04] <alex_joni> * alex_joni cries silently
[02:48:10] <jmkasunich> alex_joni should be sleeping
[02:48:19] <alex_joni> * alex_joni agrees
[02:48:19] <cradek> oh no, still awake.
[02:48:22] <cradek> not a good sign
[02:48:46] <jmkasunich> cradek: committed
[02:48:49] <cradek> jmkasunich: go ahead and commit, that's easiest
[02:49:00] <jmkasunich> ;-)
[02:49:54] <cradek> alex_joni: anything we can do to help?
[02:52:39] <cradek> jmkasunich: did you review my doc changes to make sure we both had the same ideas?
[02:52:52] <jmkasunich> yes, I read the doc before I started coding
[02:52:55] <cradek> ah good :-)
[02:52:56] <alex_joni> cradek: no, not really
[02:53:06] <cradek> I figured it was dangerous to do it separately
[02:53:27] <jmkasunich> the only minor issue I had is that we no longer clearly say what happens if both search and latch vel are zero (the "home it right here" case)
[02:54:08] <alex_joni> this index only homing is very similar to the homing on my robots
[02:54:20] <jmkasunich> good, you can test it ;-)
[02:54:26] <cradek> :-)
[02:54:30] <alex_joni> jmkasunich: on resolvers?
[02:54:39] <jmkasunich> uh, no
[02:54:45] <alex_joni> I said similar ..
[02:54:56] <jmkasunich> you said VERY similar
[02:55:00] <alex_joni> yeah .. very
[02:55:01] <alex_joni> :P
[02:55:27] <alex_joni> anyways.. the older control had a board which converted a resolver signal to quadrature + inde
[02:55:30] <alex_joni> x
[02:56:06] <alex_joni> the only difference to index homing in emc2, is that on the robot controls you don't usually do it (homing)
[02:56:32] <cradek> this 'non-zero SEARCH_VEL needs LATCH_VEL' was always an error but you added a better message?
[02:56:54] <alex_joni> when the control powers down it saves the position of all joints (position from last index pulse)
[02:57:15] <cradek> oh I see now that you just moved it
[02:57:46] <alex_joni> when it starts up it checks to see if the distance is the same
[02:57:51] <alex_joni> cradek: I see 2 new messages
[02:58:17] <jmkasunich> yeah, instead of starting the process and then complaining midstream, I don't start
[02:58:32] <cradek> good
[03:07:30] <cradek> I can ask stuart to test this, or I will do it when I go back, probably in a few weeks
[03:07:37] <jmkasunich> ok
[03:07:54] <jmkasunich> as long as it doesn't break things for people who don't use it, theres not much to worry about
[03:07:58] <jmkasunich> and I'm pretty sure it doesn't
[03:08:16] <cradek> I don't see any obvious problems but I'm not confident about all the details
[03:08:52] <cradek> yeah I doubt anyone had that particular combination of stuff (although I think it was allowed)
[03:09:17] <jmkasunich> with search_vel = 0, it would do the "home right here" thing
[03:09:34] <jmkasunich> now, you need search AND latch = 0 to get that behavior
[03:09:42] <jmkasunich> but latch defaults to zero anyway
[03:09:53] <cradek> ok
[03:10:04] <cradek> I agree nobody will run into it accidentally
[03:18:19] <cradek> jmkasunich: thanks for writing that
[03:48:29] <alex_joni> good night all
[03:48:32] <alex_joni> * alex_joni heads home
[03:49:03] <cradek> goodnight alex
[03:52:06] <cradek> * cradek grumbles about the fireworks
[10:02:39] <anonimasu> hi
[14:50:21] <SWPadnos_> SWPadnos_ is now known as SWPadnos
[15:09:19] <SWPadnos_> SWPadnos_ is now known as SWPadnos
[17:51:39] <alex_joni> hello all
[17:59:56] <Skullworks-PGAB> don't you ever sleep?
[18:00:20] <alex_joni> not lately
[18:00:44] <alex_joni> :P
[18:09:14] <anonimasu> hey
[18:09:15] <anonimasu> :)
[18:09:33] <alex_joni> who said I know anything about mono?
[18:10:14] <anonimasu> eh? did I ask you about it?
[18:10:23] <alex_joni> anonimasu: :P
[18:10:39] <alex_joni> just pulling your leg
[18:10:48] <anonimasu> do you think it's a bad idea?
[18:11:31] <alex_joni> * alex_joni doesn't think
[18:11:55] <anonimasu> I like controls that acts/looks like machine controls..
[18:11:56] <anonimasu> :)
[18:12:09] <alex_joni> feel free to improve it then
[18:12:14] <anonimasu> axis is great though
[18:12:46] <anonimasu> and mono is very easy to develop with/in..
[18:13:18] <anonimasu> and it's cross-platform..
[18:13:25] <alex_joni> jeff & chris wrote AXIS because they felt the other GUIs were lacking..
[18:13:31] <anonimasu> yeah
[18:13:37] <alex_joni> I see no reason for you not to be able to do the same thing
[18:13:42] <anonimasu> that's the same thing I feel about axis..
[18:13:49] <anonimasu> im looking for jepler though
[18:13:58] <anonimasu> :)
[18:14:03] <anonimasu> got some questions for him
[18:14:47] <anonimasu> maybe you can even run the ui on a windows box..
[18:14:58] <anonimasu> and run the cam program on the same system..(longshot)
[18:44:34] <Skullworks-PGAB> I also will take a shot at moding tkemc to be closer to a FANUC 0 type display, but I allready see potential problems. (It will be a no priority project)
[18:48:12] <anonimasu> hehe
[18:48:28] <anonimasu> Skullworks-PGAB: mono is my bet because it's extendable..
[18:48:40] <anonimasu> Skullworks-PGAB: plugin style features and such,,
[18:49:03] <anonimasu> Skullworks-PGAB: and well, the fact that the gui stuff can be done with a editor for one..
[18:49:10] <anonimasu> *lazy bastard*
[18:50:08] <anonimasu> Skullworks-PGAB: I've never used a fanuc
[18:50:08] <anonimasu> 99
[18:50:10] <anonimasu> err 0
[18:50:12] <anonimasu> err any fanuc..
[18:59:32] <cradek> I would like someone (not me) to write a gui that's just for touch screens
[18:59:53] <cradek> it could (maybe should?) rely heavily on real buttons
[19:00:02] <anonimasu> cradek: yeah..
[19:00:03] <cradek> maybe a touchscreen isn't even necessary
[19:00:05] <anonimasu> that's the idea I have..
[19:00:15] <anonimasu> cradek: both.. you end up with tabs for the softkeys..
[19:00:20] <anonimasu> on the screen nevertheless..
[19:00:31] <anonimasu> and you can have thoose pushable..
[19:00:32] <cradek> a screen with buttons next to it?
[19:00:39] <anonimasu> yeah..
[19:00:44] <anonimasu> http://www.gefanuc.com/Downloads/en/series0i_brochure_gfa633.pdf
[19:00:49] <cradek> it would be nice if the screen didn't have to be a touchscreen - they get greasy fast
[19:00:50] <anonimasu> like on the fanucs.. or heidenhains..
[19:00:53] <anonimasu> yeah..
[19:00:58] <anonimasu> they have the keys besides..
[19:01:16] <awallin> extend pyvcp to be able to issue NML commands?
[19:01:55] <anonimasu> awallin: I want a gui editor ;)(partial reason why I like the mono approach)
[19:02:09] <anonimasu> and that it's crossplatform..
[19:02:19] <anonimasu> awallin: and that I'd be able to do work on it..
[19:02:25] <cradek> heck maybe start with keystick and use only 80x25 text and all hard controls
[19:02:38] <cradek> keystick actually works pretty well
[19:02:50] <anonimasu> cradek: there comes the preview bit also..
[19:03:16] <anonimasu> cradek: though im only looking yet..
[19:03:32] <anonimasu> cradek: need to write/get more information on the nml/hal stuff first..
[19:03:38] <cradek> preview at the machine is a gimmick
[19:03:41] <cradek> :-)
[19:03:47] <Skullworks-PGAB> EXACTLY
[19:03:49] <anonimasu> cradek: it saves me from crashes ;)
[19:03:58] <anonimasu> I love the axis preview..
[19:03:57] <cradek> anonimasu: then use AXIS
[19:04:22] <cradek> maybe I don't understand your goals
[19:04:42] <anonimasu> cradek: I want a control that acts more like real cnc controls..(
[19:04:55] <cradek> but also has all the features of AXIS?
[19:04:58] <anonimasu> and dosent rely very heavily on mouse interaction..
[19:05:10] <cradek> that's maybe gonna be a tall order
[19:05:31] <cradek> AXIS can be used totally by keyboard
[19:05:46] <cradek> it has very good keyboard shortcuts
[19:06:00] <anonimasu> look at a fanuc or at a heidenhain, and we can discuss it more :
[19:06:00] <anonimasu> :)
[19:06:04] <cradek> the only thing you can't do is pan or rotate the display
[19:06:05] <Roguish> HURCOs run with touchscreens. seem to be pretty robust....
[19:06:26] <anonimasu> cradek: actually the thing with the preview is not nescessary..
[19:06:59] <cradek> brb
[19:07:04] <anonimasu> cradek: it's kind of hard to explain.. :)
[19:07:11] <cradek> apparently
[19:07:18] <anonimasu> cradek: I want a cnc control to act like most cnc controls do I guess..
[19:33:53] <jepler> anonimasu: if you want to get the basics of emc "user interface" with NML, you could do worse than by starting with two simple python programs that use NML. mdi.py from the source distribution, and jdi.py from http://axis.unpy.net/01167419757
[19:35:28] <jepler> the "xemc" user interface is also very easy to follow, as it is not very complex (xemc.cc in the source distribution)
[19:35:37] <anonimasu> I've used nml/hal before with python..
[19:35:52] <anonimasu> im more interested in how hard it would be to write a mono library for use with them..
[19:36:00] <jepler> first you'd need someone who knows mono
[19:36:05] <anonimasu> I know mono..
[19:36:24] <anonimasu> but I dont know anything about how to interface nml..
[19:36:44] <jepler> you'd have to read the mono documentation about how to interface to new C++ libraries
[19:36:44] <anonimasu> except how to use the python modules.. ;)
[19:36:55] <anonimasu> oh.. then it's piece of cake :)
[19:36:59] <jepler> so read emcmodule.cc and see how the python->C++ interface is implemented
[19:37:42] <anonimasu> yeah I'm going to do that
[19:38:45] <jepler> mostly it's just tedious implementing each command (in emcmodule, methods of a 'command' object) and each status (in emcmodule, attributes of a 'status' object)
[19:39:24] <jepler> EMC_SET_DEBUG d;
[19:39:24] <anonimasu> jepler: im kind of curious about the overhead if I would just wrap the python stuff.
[19:39:28] <jepler> if(!PyArg_ParseTuple(o, "i", &d.debug)) return NULL;
[19:39:33] <anonimasu> though that's f-ugly
[19:39:35] <jepler> s->c->write(d);
[19:39:53] <jepler> you have a C++ object of some type, write some of the fields (d.debug in this case), then call the 'write' method
[19:40:29] <jepler> with python I've only strugged with efficiency in a few places, mostly related to loading the preview plot quickly
[19:40:36] <anonimasu> python libraries can be compiled to CIL.. too
[19:41:02] <anonimasu> with ironpythin
[19:41:04] <anonimasu> python..
[19:41:16] <anonimasu> http://pythonnet.sourceforge.net/readme.html#getting_started
[19:42:29] <anonimasu> atleast to depend on it for a start.
[19:43:31] <anonimasu> jepler: please have a look :)
[19:49:27] <jepler> I looked around a bit, have failed so far to find out how to write an interface to an existing C++ library to mono
[19:49:31] <jepler> oh well
[19:49:32] <jepler> bbl
[19:49:45] <anonimasu> jepler: "mono + c++ interop"
[19:49:58] <anonimasu> http://www.mono-project.com/Interop_with_Native_Libraries
[19:51:51] <skunkworks> still would like to go over this http://www.electronicsam.com/images/KandT/servostart/tune/
[19:52:02] <skunkworks> but I have been too busy goofing off this weekend.
[20:00:04] <anonimasu> oh sweet.
[20:00:25] <anonimasu> mono will run on windows or linux.. with the same binaries..
[21:28:10] <alex_joni> good night all
[21:28:15] <anonimasu> nigh
[21:28:16] <anonimasu> t
[21:28:44] <anonimasu> hm
[21:28:53] <anonimasu> I just made the first custom control of the mono ui..
[21:30:18] <anonimasu> it still needs work but it's a start
[23:00:07] <cradek> jmkasunich: I was able to test index only homing a bit in servo_sim, nothing jumps out at me as wrong