#emc-devel | Logs for 2007-02-13

[00:43:31] <cradek> I agree that's strange, but when you change maxaccel like that, you put it in an wildly invalid initial state - seems like it recovers pretty soon
[00:56:07] <jepler> keep in mind you're looking at about 40 seconds there (40000 samples at 1000Hz)
[00:56:38] <SWPadnos> it's only 1.5 periods of oscillation though
[00:57:20] <SWPadnos> well, maybe longer, the tail isn't in sync yet
[00:57:38] <jepler> it looks like it'll probably overshoot once more
[00:57:44] <SWPadnos> yep - at least
[00:58:03] <SWPadnos> but it's damping pretty well. what was the accel relative to the sine amplitude?
[00:58:13] <jepler> the sine wave is +-1, 1Hz
[00:58:44] <SWPadnos> ok, and the accel at the "insanely low" setting?
[00:58:47] <jepler> 1
[00:59:12] <SWPadnos> hmm
[00:59:35] <jepler> I don't think I ever set the maxvel so it's whatever the highest attainable step rate is
[00:59:38] <jepler> the postion-scale is 100
[00:59:55] <SWPadnos> does that mean 100 steps per unit?
[01:00:04] <jepler> yes, I think so
[01:00:08] <SWPadnos> ok
[01:01:25] <SWPadnos> duh - /me reads all the info you originally wrote :)
[01:02:51] <SWPadnos> side question: when halscope redraws the traces, does it basically start with a blank canvas and draw everything?
[01:03:18] <jepler> yes
[01:03:50] <SWPadnos> ok. I was thinking it would be nice to optionally display the trace names on the left side of scope display
[01:03:59] <SWPadnos> the scope display
[01:04:19] <SWPadnos> easier when everything is redrawn all the time
[01:04:36] <jepler> I have wanted that feature too
[01:04:38] <cradek> that would be really cool
[01:04:55] <jepler> it is also a layout problem, figuring where to put the trace name
[01:05:20] <SWPadnos> left aligned, at the zero level of the trace (clipped to the top or bottom)
[01:05:27] <SWPadnos> if they get overlaid, they get overlaid
[01:05:34] <SWPadnos> smarter layout can come later
[01:05:47] <cradek> or at the first (leftmost) displayed sample
[01:05:47] <jepler> for me a pretty common case is to give two traces the same origin
[01:05:49] <SWPadnos> even having them at fixed vertical locations, but in the correct color would be good
[01:06:35] <SWPadnos> my scopes can display names, it does it by eliminating the leftmost grid of the trace and using that for names instead
[01:06:47] <SWPadnos> if you lay two traces over each othert, the names are also overlaid
[01:06:51] <cradek> then you're the expert!
[01:07:02] <SWPadnos> the names are only 7 or 8 chars long though
[01:07:03] <SWPadnos> :)
[01:07:16] <SWPadnos> well, all I need to learn is gtk, so it should be easy :)
[01:07:18] <jepler> try tkng t ll th vwls
[01:07:32] <SWPadnos> cld d tht
[01:10:47] <SWPadnos> hmmm. has anyone messed with EMC on displays that aren't set to ~100 DPI?
[01:11:31] <jepler> sounds like something else you'll be submitting patches to fix :-P
[01:11:36] <SWPadnos> heh
[01:11:54] <SWPadnos> well, I'm curious as to whether we can expect issues like those that Firefox exhibits
[01:12:03] <SWPadnos> and Ubuntu itself, for that matter
[01:12:14] <jepler> I don't know why we'd escape them
[01:12:33] <SWPadnos> yeah, though one could get lucky by not taking over too many features
[01:12:48] <jepler> and unfortunately the behavior of Tk apps on Ubuntu with odd DPI resolutions seems to be worse than on "classic" linux distros like redhat9
[01:12:55] <jepler> you can get completely illegible fonts
[01:13:01] <SWPadnos> it's possible that FireFox always uses 100 DPI fonts because it's very likely that they'll work even if the diaplay DPI is screwed up
[01:13:08] <SWPadnos> hmm
[01:13:23] <SWPadnos> well, I haven't seen anything illegible, just exceedingly small
[01:13:23] <jepler> say X thinks it knows your panel geometry and calculates 97x94DPI
[01:13:34] <jepler> Tk gets some terrible scaled bitmap font with improper letter spacing
[01:14:02] <SWPadnos> ah -do you think it's the non-squareness?
[01:14:13] <SWPadnos> or just some screwed up thing in the bowels of tk
[01:15:11] <jepler> it could be non-square pixels
[01:15:21] <jepler> it was bad at 1280x1024 on my old 19" CRT, but not so bad at 1024x768
[01:15:45] <SWPadnos> hmm
[01:16:25] <SWPadnos> I specified 200x200 DPI, and I haven't seen any weirdness other than outsized text in small boxes (at the login screen, for example), or tiny text in FF
[01:16:52] <SWPadnos> menus look correct, and I think the panels may even have been resized for me
[02:12:45] <jmkasunich> jepler: about the stepgen overshooting...
[02:12:47] <jepler> hi jmkasunich
[02:12:53] <jmkasunich> hi
[02:13:13] <jmkasunich> what you are seeing isn't a bug per se
[02:13:25] <jepler> I thought stepgen wouldn't accelerate so much that it couldn't stop on the commanded position
[02:13:26] <jmkasunich> (iow, its not an error in the implemetation of the math)
[02:13:33] <jmkasunich> its a limitation of the math itself
[02:14:07] <jmkasunich> stepgen doesn't aim to _stop_ at the commanded position
[02:14:22] <jmkasunich> it tries to match position and velocity at the same time
[02:14:56] <jmkasunich> if the command is constant, that reduces to "stop at the commanded pos" and I bet if you stopped the sine wave after lowering the accel it would recover much quicker
[02:15:20] <jmkasunich> but with the sine wave there, its trying to match a constantly moving velocity target
[02:15:56] <jepler> hm ok
[02:16:22] <jmkasunich> gonna go back and try running your hal file
[02:16:58] <jepler> I guess I did see it going "beyond" the trace with triangle too
[02:17:43] <jmkasunich> triangle still means the vel command is changing
[02:17:52] <jepler> I should have remembered that and not been so surprised at the ability to get it to go "beyond" the command in this other case
[02:18:07] <jepler> I mean, with siggen.triangle and without modifying accel
[02:18:14] <jmkasunich> oh
[02:18:32] <jmkasunich> right - its tracking the ramp, then all of a sudden the ramp reverses instantly
[02:18:41] <jmkasunich> it can't, so it overshoots, then recovers
[02:19:30] <jepler> drat, I was just certain I'd found a terrible, terrible bug
[02:19:35] <jmkasunich> heh
[02:19:46] <jmkasunich> the behavior is certainly counterintuitive
[02:20:05] <jepler> btw I finally checked in 'tristate_float' with just the single enable bit, dunno if you saw that
[02:20:07] <jmkasunich> you'd expect it to act like a lowpass filter, and home in on the average value of the command
[02:20:13] <jmkasunich> yeah, saw it
[02:20:20] <jepler> yeah that's a pretty good explanation of what I expected
[02:20:44] <jmkasunich> I wonder - limit3 is very similar to stepgen
[02:20:55] <jmkasunich> but I really hope it behaves more like the lowpass filter
[02:22:47] <jepler> except for the waiting while it gathers the whole trace, I like being able to have a bigger sample buffer in halscope
[02:24:03] <jmkasunich> yep
[02:24:16] <jmkasunich> someday I want a roll mode
[02:24:49] <jepler> bad news -- limit3 can shoot way off too
[02:24:52] <jmkasunich> there's code in there (commented out) for a "roll" button
[02:24:55] <jmkasunich> darn
[02:26:26] <jmkasunich> limit3 and stepgen both ask themselves this question:
[02:26:32] <jepler> http://emergent.unpy.net/index.cgi-files/sandbox/limit3-overshoot.png
[02:27:10] <jmkasunich> given the velocity of the command over the last sample, and assuming that velocity continues forever in a straight line, and given my current velocity and position, whats the soonest I can match the projected command
[02:27:24] <jmkasunich> when accel is small, that answer can be "20 seconds from now"
[02:27:51] <jmkasunich> and the projected command (if the instantaneous rate is projected out 20 seconds) is halfway to the moon
[02:28:05] <jmkasunich> it has no way to know that the command is gonna turn around and go the other way
[02:29:31] <jmkasunich> I bet if you plot the acc of the output, its banging back and forth from + limit to - limit
[02:29:43] <jmkasunich> at the input sine wave frequency
[02:30:09] <jmkasunich> because the projected target is swinging wildly around
[02:30:11] <jepler> it's hand-wavy, I know, but why doesn't the part of the sine wave where the input velocity is going "against" the output manage to keep the output to a low velocity?
[02:30:36] <jmkasunich> it tries
[02:30:38] <jmkasunich> (I think)
[02:30:56] <jmkasunich> I bet during that period the output is deceling for all its worth
[02:31:10] <jmkasunich> but then the sine starts going the other way, and it tries to chase that
[02:31:29] <jepler> which should give two periods of equal but opposite accel
[02:31:44] <jepler> by that logic it should never manage to get back to the input at all
[02:31:54] <jmkasunich> the periods aren't quite equal
[02:32:07] <jmkasunich> and the relatively weak difference drives it back toward the center
[02:32:33] <jmkasunich> its trying to match both position and velocity, and the position match upsets the balance, so they aren't equal unless the position is near zero
[02:35:03] <jepler> if I change the frequency of the input signal instead of the acceleration of the limit block, could I get the same behavior?
[02:35:41] <jmkasunich> I don't think so
[02:35:55] <jmkasunich> in the limit3 example you posted
[02:36:27] <jmkasunich> the initial moderate slow sinewave with small input frequency ripple is probably what you'd get
[02:37:03] <jmkasunich> the huge transient comes because the initial accel value let it achieve a high velocity, then when you reduced the accel, it took forever to burn off that velocity
[02:41:47] <jepler> when siggen's frequency is much higher than limit3's accel can handle, limit3 (and stepgen) just track towards 0, but much more slowly than they would if the input was stuck at 0
[02:42:09] <jmkasunich> I just added some ddts so I can see what the accel is doing
[02:42:15] <jmkasunich> bet its banging back and forth
[02:42:39] <jmkasunich> hmm, a possible fix
[02:43:05] <jmkasunich> would be to to limit the target velocity
[02:43:10] <jmkasunich> oops, nope
[02:43:17] <jmkasunich> accel is the problem
[02:43:58] <jepler> if I didn't have essentially unlimited velocity I think the problem might be less severe
[02:47:56] <Guest647> Guest647 is now known as skunkworks
[02:47:56] <jmkasunich> even after the transient settles out, the output accel is banging back and forth against the limit, the output vel is a triangle
[02:52:35] <jmkasunich> jepler: I'm afraid this might be one of those "if it hurts don't do it" things
[02:53:27] <jmkasunich> although if you (or anybody else) can come up with a better limit3, I'd be thrilled
[02:53:27] <jepler> I can live with that
[02:53:48] <jepler> hm I think there's a satanic tattoo on my cat's ear
[02:53:53] <jmkasunich> 666?
[02:53:57] <jepler> it looks like one of them chinese letters
[02:54:15] <jmkasunich> how do you know its satanic?
[02:54:20] <jepler> or maybe it's the "radiation hazard" symbol with three triangles?
[02:54:25] <jmkasunich> it might be chinese for "pet me, I purr"
[02:56:07] <skunkworks> our mouser has worms. again.
[02:56:12] <jepler> it's true, she does purr
[02:56:19] <jepler> skunkworks: yuck
[02:56:28] <jmkasunich> jepler: I would hope so, if not she's broken
[02:56:39] <jepler> we keep ours inside and they don't get those kinds of troubles
[02:56:42] <jmkasunich> ditto
[02:56:49] <cradek> ours gets them too... one pill from the vet fixes it
[02:57:06] <jtr> one?
[02:57:11] <cradek> (if they're the ones that look like rice)
[02:57:18] <skunkworks> getting him to eat it is the hard part. Mix it with his favorite tuna and he doesn;t eat it
[02:57:22] <cradek> yes, one pill, next day the worms are gone
[02:57:28] <skunkworks> yes tape worms
[02:57:31] <jmkasunich> pilling cats, such fun
[02:57:38] <cradek> bah, it's easy
[02:57:46] <skunkworks> explain
[02:57:49] <cradek> takes 5 seconds
[02:57:49] <jmkasunich> maybe if you only need one
[02:58:05] <jmkasunich> they learn each time, and the next time is harder
[02:58:16] <jepler> cradek: do you use the method: sit on the cat, force the jaw open?
[02:58:22] <jmkasunich> two pills a day for a couple weeks and it gets really nasty
[02:58:36] <cradek> kneel straddling cat, tilt her head back and open the mouth, toss pill in and give it one poke, stroke throat, give treats
[02:58:59] <jepler> hmm treats
[02:58:59] <skunkworks> hmm - going to have to try that
[02:58:59] <cradek> jepler: you don't sit on, just kneel over
[02:59:36] <cradek> it takes practice but it's really fast and easy for a cat who generally trusts you
[02:59:37] <jmkasunich> have you ever had do to a round of the pink antibiotic stuff?
[03:00:00] <jtr> yeah, but the next generation don't get killed by that pill, you have to wait for them to "hatch", then get them with a second pill (what I've been told)
[03:00:04] <jmkasunich> after a day or two, as soon as the fridge opens and that little bottle comes out, cat dissappears
[03:00:06] <skunkworks> I think "show my belly barron" would be a good canidate.
[03:00:26] <cradek> jmkasunich: I don't like taking medicine either :-/
[03:00:42] <jmkasunich> right - and you even understand that its for your own good
[03:00:48] <jmkasunich> the cat just thinks you're being mean
[03:00:49] <jtr> s/don't/doesn't/
[03:01:00] <cradek> we could trick one of ours - we'd give him pounce, pounce, pounce, pill, pounce
[03:01:16] <cradek> only worked a few times, he caught on pretty fast
[03:01:22] <jmkasunich> yeah
[03:01:34] <cradek> he used to wolf down those pounce without even chewing them
[03:02:15] <cradek> another good thing to do is give the pill at feeding time, right in the middle of the food preparation pattern they recognize
[03:02:33] <jepler> /title apparently everyone in this channel is a cat person
[03:02:51] <cradek> if you can do the pill quick enough they don't notice much, being excited about dinner
[03:03:04] <cradek> yep apparently
[03:03:26] <cradek> are there people who aren't??
[03:03:44] <jtr> owned by cats.
[03:03:54] <jtr> define people
[03:03:59] <jtr> ;)
[03:04:30] <jmkasunich> that space navigator thing seems cool
[03:04:34] <jmkasunich> 6DOF they claim
[03:04:44] <skunkworks> holy crap - got it in
[03:04:58] <jmkasunich> TMI
[03:05:10] <skunkworks> :)
[03:05:19] <cradek> skunkworks: don't forget treats
[03:06:33] <skunkworks> oh yeah..
[03:07:07] <skunkworks> * skunkworks means already taken care of
[03:07:25] <cradek> did you do the kneel toss poke stroke treat method?
[03:08:28] <skunkworks> I layed him on his back on my lap - tilted his head back and poped the pill into the back of his throat
[03:08:38] <skunkworks> popped
[03:08:51] <cradek> cool
[03:08:59] <skunkworks> he is pretty mellow
[03:14:46] <jmkasunich> yeah - most cats don't like being on their backs
[03:15:26] <jmkasunich> two of ours (we had 5 at one time) didn't mind - one we had from a kitten, and I would hold her that way almost as soon as we got her - she loved it
[03:17:02] <skunkworks> both of your cats love being held like a baby.. Yes that is odd - I know.
[03:18:53] <jtr> Rose just zones when held that way.
[03:19:39] <cradek> obligatory: http://timeguy.com/cradek-files/emc/kittens.jpg
[03:20:11] <jmkasunich> aaawwww
[03:20:11] <cradek> born in a box in the basement bathroom, here ever since
[03:20:29] <jmkasunich> pile-o-cats
[03:20:35] <skunkworks> nice :) http://www.electronicsam.com/images/house/cat.JPG
[03:20:51] <skunkworks> http://www.electronicsam.com/images/house/happycats.JPG
[03:20:52] <cradek> their mom is the one who stays and goes - but mostly stays now
[03:21:09] <jmkasunich> skunkworks: large cat
[03:21:14] <skunkworks> It has been too cold here - they only stay out for a few minutes
[03:21:34] <cradek> are the two siblings?
[03:21:36] <skunkworks> big boned ;)
[03:21:41] <skunkworks> no
[03:22:04] <skunkworks> 2 strays from different counties
[03:22:19] <cradek> wow they sure are good friends for being unrelated
[03:22:33] <skunkworks> yes - they are best buds
[03:22:45] <skunkworks> we have a 3rd that is anti-social.
[03:22:48] <jmkasunich> http://jmkasunich.dyndns.org/pics/cat_and_dog_on_steps.jpg
[03:23:00] <jmkasunich> http://jmkasunich.dyndns.org/pics/cat_on_bench.jpg
[03:23:17] <skunkworks> berry - the white one is the social groomer. it is quite funny to watch him
[03:23:24] <cradek> jmkasunich: they seem like unlikely friends too
[03:23:54] <jmkasunich> the dog likes anyone who will play with him
[03:23:58] <jmkasunich> the cats don't really play, but he tries
[03:24:02] <jepler> "
[03:24:03] <jepler> "Brian Densmore
[03:24:03] <jepler> CIO Ogham Enterprises, LLC
[03:24:03] <jepler> (aka celtic_hackr)
[03:24:02] <jepler> (Using Windows 27 years, using Linux 10)"
[03:24:24] <jmkasunich> hmmm
[03:24:27] <jmkasunich> liar
[03:24:30] <cradek> umm
[03:24:39] <cradek> he must mean the kind that open
[03:24:41] <jmkasunich> maybe it just seems like 27 years
[03:24:47] <jepler> "
[03:24:48] <jepler> P.S. I may still have a copy of Windows1.01 laying around somewhere. "
[03:24:56] <cradek> uh
[03:25:08] <cradek> ok I'm with jmk on this one now
[03:26:02] <cradek> I had a Windows/286 still shrinkwrapped - got rid of it on ebay
[03:26:20] <jmkasunich> its very funny seeing a 50 lb dog trying to give his sqiueaky toy to the cat
[03:26:35] <jmkasunich> he puts in on their back
[03:26:59] <cradek> Microsoft Windows/286 Platform: IBM PC Compatible Release Date: 1988.
[03:27:01] <jmkasunich> and kind of pokes at the toy and/or the cat with his nose
[03:27:09] <cradek> haha
[03:27:19] <jepler> think Windows/286 would be a good system for writing a GUI front-end on emc?
[03:27:30] <cradek> jepler: better than flash
[03:27:31] <jepler> maybe we can adapt AXIS to the windows draw APIs
[03:28:00] <jepler> it'll probably need an FPU to have good performance, will requiring an 80287 exclude too many users?
[03:28:15] <jmkasunich> no to windows, yes to cat pictures ;-)
[03:28:21] <cradek> oh you wouldn't want to require that
[03:28:43] <jmkasunich> I remember getting my first 80387 (to go with the 386SX)
[03:28:49] <jmkasunich> got it for POV-ray
[03:29:13] <jmkasunich> version 0.5 or something like that
[03:29:14] <jepler> http://photos.unpy.net/full/26043.jpg
[03:29:38] <jepler> (oh the days before in-camera orientation sensors!)
[03:29:55] <jmkasunich> a toe warmer
[03:30:20] <cradek> hey I know her
[03:30:51] <jmkasunich> I've forgotten what its like having cats all over the place
[03:31:02] <jmkasunich> our one remaining cat doesn't get up on things
[03:31:21] <jepler> these still get all over the place
[03:31:26] <jmkasunich> he's either 16-1/2 or 17-1/2
[03:31:41] <skunkworks> lbs or years?
[03:31:41] <cradek> too old for a new friend?
[03:31:47] <jmkasunich> the gray one in the pics died last year
[03:31:53] <jepler> skunkworks: haha
[03:32:11] <jmkasunich> skunkworks: years, but at one time lbs too
[03:32:12] <jmkasunich> he
[03:32:18] <jmkasunich> he's big boned
[03:32:20] <jepler> mine are 6 1/2 but marie was about 7 or 8 months in that picture
[03:32:30] <jmkasunich> down to 12-13 lbs now, but he was 20 at one time
[03:33:09] <cradek> wow that's a huge loss
[03:33:26] <jmkasunich> when he was 20 he was FAT
[03:33:26] <skunkworks> howie is 23lbs. he sounds like a human going down the stairs.
[03:33:39] <cradek> skunkworks: rolling or walking?
[03:33:45] <jmkasunich> we got him down to 15-17 years ago, and he was pretty stable at that point
[03:33:54] <jmkasunich> now he just has old
[03:35:58] <skunkworks> my wife would love you guys. She is always trying to get wild cats to get into the car. She doesn't understand why they wouldn't want to come to her ;)
[03:36:55] <jepler> I'm not one who would bring home strays, but I know some folks who do
[03:37:06] <cradek> give her some extra cans of cat food to carry in the car, so she can leave food for the strays she meets - they'll come get it after she goes
[03:37:16] <cradek> jepler: :-P
[03:37:30] <jepler> cradek: actually I was thinking of michael and barbara
[03:37:38] <cradek> oh they have that disorder too don't they
[03:38:21] <jmkasunich> man, how'd it get to be 10:30 already
[03:38:32] <jmkasunich> I haven't done squat this evening
[03:38:34] <cradek> living too far east
[03:38:49] <jepler> I haven't accomplished much either
[03:38:52] <skunkworks> howie was a kitten - we found him under the dumbster. all ears. Berry is about the same age - shirley saw him along side the road. (about a year old) milling around a cat that was hit. She stopped and berry jumped into her arms. been a part of the familly ever since.
[03:38:58] <jmkasunich> I think all I'm gonna do tonight is take some pics and update the blog
[03:39:07] <jmkasunich> done a lot of work on the enclosure and mounting stuff
[03:40:36] <skunkworks> that is the trouble out here in the boonies. too many people drop off their cats.
[03:40:46] <jmkasunich> evil people
[03:44:53] <jepler> night all
[03:44:55] <jepler> be good to your cats
[03:44:59] <jepler> remember to feed them
[03:45:24] <jmkasunich> will do
[03:45:26] <jmkasunich> goodnight
[03:46:04] <cradek> night
[14:00:03] <skunkworks> persistant bugger
[23:00:56] <A-L-P-H-A> DAMN IT!
[23:01:09] <A-L-P-H-A> the partitions where corrupted, and took forever to check.