#emc-devel | Logs for 2008-03-06

[05:33:43] <fenn> SWPadnos: any users that aren't already potty-trained on STEPGEN_MAX_* will be using stepconf anyway
[06:07:55] <Roguish> hey, do you guys use an IDE (integrated development environment) to program? like Anjuta?
[06:08:35] <Roguish> or something else? and what is 'cruft'???
[06:14:05] <SWPadnos> I use Anjuta, just because it's kinda pretty. It has annoying bugs though
[06:14:46] <SWPadnos> "cruft" is generally ugly code, which is usually also unnecessary (such as code that's still there, even though the feature it was needed for has been removed)
[07:55:31] <fenn> Roguish: kate (kde advanced text editor) has a lot of ide-like features, but if you want even more on top of kate then there's kdevelop
[07:59:08] <fenn> i can only think of two bugs in kate and they're both related to python (code folding gets confused, and it does indenting tabs/spaces wrong sometimes)
[15:09:45] <Roguish> SWPadnos: can emc2 be run inside Anjuta? to watch variables, etc? step thru sections of code?
[15:32:00] <SWPadnos> Roguish, no, certainly not the realtime parts. maybe the sim mode could
[15:33:11] <Roguish> SWPadnos: thanks for the reply. so, how does one know what is going on inside the code????
[15:33:28] <Roguish> lots of prints?
[15:33:41] <SWPadnos> inside the kernel code, it's difficult, but that's also what halscope is for :)
[15:33:51] <cradek> if you build simulator, you can run any of it in a debugger
[15:33:58] <SWPadnos> you can add debig variables as hal pins and scope them
[15:34:09] <cradek> but I have no idea who Anjuta is or what she can do
[15:34:20] <Roguish> thought i would bring out the troops .
[15:34:20] <SWPadnos> heh
[15:34:32] <SWPadnos> it's an IDE, but it likes to make projects and stuff.
[15:34:55] <SWPadnos> it's got a pretty good code editor - has good "smart completion" and stuff
[15:35:11] <SWPadnos> it's got bugs too. sometimes doing a search crashes it
[15:36:32] <Roguish> cradek: i made a wiki page 'AXESGANTRY' i tried to name it '5AXESGANTRY' but of course the '5' did not work.
[15:36:46] <Roguish> anyway. could you take a look, please.
[15:37:10] <Roguish> also, is there a way to rename the page to 'FIVEAXESGANTRY' ???
[15:38:04] <cradek> sorry, I don't know how to rename a page
[15:38:34] <jepler> I believe I know how to rename pages .. hold on
[15:38:35] <Roguish> how about delete a page? i could copy it to a new page propderly named.
[15:38:37] <SWPadnos> I don't think you can. you can copy all the content into a new page and change any links to point to the new one
[15:38:45] <SWPadnos> dunno about deleting a page
[15:39:17] <jepler> What page did you create, and when? I don't see anything on RecentChanges
[15:39:30] <jepler> oh, there it is -- AxesGantry, not AXESGANTRY
[15:39:56] <Roguish> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?AxesGantry
[15:40:22] <Roguish> sorry, still not used to this case world.
[15:40:47] <jepler> OK, it's now http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?FiveAxesGantry
[15:40:55] <Roguish> thank you.
[15:40:59] <jepler> hm maybe it should have been FiveAxisGantry -- let me rename it again
[15:41:25] <Roguish> plural of axis is axes. i believe.
[15:41:28] <jepler> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?FiveAxisGantry
[15:41:41] <SWPadnos> it's a finve axis machine, with five axes
[15:41:43] <Roguish> but i'm not picky right now.
[15:41:45] <SWPadnos> -c
[15:41:47] <SWPadnos> -v
[15:41:55] <jepler> if I had any idea what SWPadnos said, I'd say I agreed with him
[15:41:59] <SWPadnos> heh
[15:42:12] <jepler> English is a funny language -- all I know is saying "Five Axes Gantry" sounds wrong, and "Five Axis Gantry" sounds right to me.
[15:42:16] <SWPadnos> it's a five axis machine, which has five axes
[15:42:18] <SWPadnos> right
[15:42:26] <Roguish> whatever...
[15:42:31] <Roguish> thanks
[15:42:38] <SWPadnos> when you refer to the machine, it's a 5 axis machine - you don't use the plural there
[15:42:53] <SWPadnos> I'm not sure why, but I bet I can come up with something plausible ;)
[15:43:31] <jepler> when you compile with --enable-simulator, you can run every part of emc2 under gdb, and you have much greater freedom to spew lots of information with rtapi_print* (which is easier to read as well, since it goes to the terminal instead of dmesg)
[15:43:33] <cradek> it's a five-axis gantry. a five-axis machine has five axes.
[15:43:47] <cradek> ^ note appropriately-used hyphen
[15:44:02] <cradek> ^ note grammar nazi
[15:44:13] <jepler> however you have to either modify the runscript (scripts/emc) to start the parts of emc in the debugger, or attach after they've started, so if your IDE is not flexible enough then you'll have trouble using its interface to gdb ..
[15:44:21] <SWPadnos> what is '^' in english, exactly? :)
[15:44:27] <cradek> ^ note correct spelling of "grammar" which contains no "e"
[15:44:41] <SWPadnos> I aint never got no bad grades in grammer!
[15:45:26] <Roguish> 'gdb' ?
[15:45:32] <Roguish> a debugger?
[15:45:37] <SWPadnos> gnu debugger
[15:45:42] <skunkworks> carrot?
[15:45:51] <SWPadnos> probably the backend used by Anjuta
[15:47:01] <cradek> can't you just tell her there are several programs and let her deal with attaching the debuggers?
[15:47:15] <SWPadnos> har har har
[15:48:01] <SWPadnos> all these questions canbe answered after "apt-get anjuta" :)
[15:48:10] <cradek> nah, she sounds difficult to work with
[15:48:22] <Roguish> got it with synaptic.
[15:48:34] <skunkworks> with a name like that.. She shounds like she has an attitude.
[15:50:35] <Roguish> i'll plow thru the Anjuta docs and troll the forums and see what i can find.
[15:53:16] <Roguish> cradek: when i start my 5axisgantry (or whatever) i get an error on each axis "GANTRYKINS: joints[0]=0"
[15:53:39] <jepler> this is the wiki documentation I wrote about debugging "realtime" code with --enable-simulator: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?DebuggingRtapi
[15:54:26] <jepler> that particular message is strictly informational, even though it is printed at the level RTAPI_MSG_ERR
[15:55:19] <Roguish> i have no idea what this is. the error dialogs pop up for each axis.
[15:56:07] <Roguish> the dialog popup is titled 'AXIS error'
[15:56:43] <Roguish> back in a few. oatmeal is ready.
[16:05:51] <Roguish> gotta love a big bowl of mush with lots of brown sugar.
[16:07:08] <cradek> I like irish cream on mine, but I only have it when I'm staying home sick
[16:13:53] <SWPadnos> hmmm. Bailey's on oatmeal ... interesting
[16:34:16] <SWPadnos> hmmm.
[16:35:40] <SWPadnos> if we redefine the kinematics interface so there is an opportunity to have a derivative function (only in joint space, since we know how to do it in cartesian space), then we can use the funtion (if provided) for joint limits, and not do joint limits if there is no function provided
[16:38:05] <jepler> fail on two counts. first, 'insmod' fails when there are undefined functions (just like any linker). second, you can't do velocity and accel limits on the fly (you can probably do velocity limits if you don't care whether you violate accel limits)
[16:39:16] <SWPadnos> the current kins interface allows for forward-only or both. a similar method can be used when there are 3 functions
[16:39:35] <SWPadnos> vel and accel limits are done on the fly now, AFAIK
[16:39:43] <jepler> instead, task has to get a version of kinematics which computes (analytically or numerically) joint position, velocity, and acceleration. it dices each primitive up into a bunch of samples, finds the velocity and acceleration at each point, and then uses that to modify (lower) the cartesian accel or velocity requested for the move
[16:41:08] <SWPadnos> it does that for axes though, not joints (at the moment)
[16:49:54] <jepler> right
[16:50:04] <jepler> my proposal is basically that it start doing it for joints on nontrivial machines
[16:51:00] <jepler> that way as long as the pieces that each trajectory element is diced up into are small enough, you won't be surprised by these places where it suddenly takes a lot of joint acceleration to keep the joint velocities within limits
[16:54:02] <SWPadnos> ok, so you'd chop it up and use discrete analysis (d/dt)
[16:58:09] <jepler> for some machines you might be able to find the accel and velocity analytically, and I wouldn't want to foreclose that possibility -- but yes I'd look at j' and j'' (joint velocity and acceleration) at some "large enough" number of points on the move and use that to find out what cartesian accel and vel stays within joint constraints
[18:51:34] <alex_joni> hmm..
[18:51:45] <alex_joni> jepler: sometimes it takes a lot to run through the kins
[18:51:59] <alex_joni> (like multi-stage kins which you solve with iterative approaches)
[18:53:57] <jepler> yeah that is true
[18:57:24] <SWPadnos> you could buffer the results. you'd only have to run the kins once for each point
[18:57:33] <fenn> what is the point of an iterative approach? the hexapod is done analytically, so what's more complex than that?
[18:58:08] <jepler> you could also take liberties with the "kinematics" that are executed in task; it need only be good enough to provide the proper velocity and acceleration constraint values
[18:58:17] <SWPadnos> not all kins are analytically solvable
[18:58:37] <SWPadnos> especially in both directions
[18:58:39] <alex_joni> jepler: that is also true
[18:58:57] <alex_joni> I think the "proper" approach is letting users provide their own function
[18:59:02] <alex_joni> just like they do for kinematics
[18:59:06] <SWPadnos> (though I don't remember the specifics - there was a discussion about a 100,000-iteration kins module on the list)
[18:59:11] <SWPadnos> that was my thought
[18:59:22] <fenn> er, whoops nevermind, hexapod does use an iterative approach (euler method)
[18:59:27] <SWPadnos> if there's no function, then things operate as now, without joint limits
[18:59:36] <alex_joni> having a function (maybe linkable at runtime somehow) that returns a max vel for each joint for a pair of points
[18:59:42] <SWPadnos> if there are derivative functions, you get the added benefit of joint constraints
[18:59:52] <alex_joni> fenn: hexapod was what I was thinking about
[19:00:17] <alex_joni> another approach can be statistical or data mining
[19:00:34] <alex_joni> (simply having a lookuptable with lots of probable velocities)
[19:01:14] <fenn> say what?
[19:01:29] <fenn> * fenn never quite believed in quantum mechanics
[22:01:47] <alex_joni> good night all
[22:02:24] <skunkworks_> night alex
[22:02:28] <SWPadnos> see you Alex
[23:12:36] <SWPadnos> hmmm. looking at the creative commons license on the wiki, I can't tell if I'm allowed to e.g. stick a copy of the EMC structure image into my ESC presentation (even with attribution)
[23:16:08] <SWPadnos> it looks like maybe I can't, since the presentation isn't allowed to be published elsewhere before the conference, and they are allowed to publish it on compilations, CDs, and other things which they charge for, until the end of time