#robotics Logs
Mar 16 2014
#robotics Calendar
01:33 rue_shop4 I think I'v figured out how mucus works, the salt dehydrates forign cells, thats why then it gets into the throat it feels dry
01:34 rue_shop4 I have to go hang upside down again for a while
03:22 rue_mohr2 damnit my mind cant take this containment
03:23 rue_mohr2 I want to do things and I cant damn well think
07:45 robopal hi
07:47 aemquo Hello
07:48 aemquo Up to much?
07:48 GargantuaSauce it stopped being late, started being early, and now it's definitely too late to go to bed
07:48 GargantuaSauce whoops.
10:28 rue_mohr2 armyofevilrobots, how illness over there?
11:05 armyofevilrobots rue_mohr2: Helen is mostly better. I avoided it.
11:05 armyofevilrobots How are you doing?
11:05 rue_mohr2 terrible!
11:05 rue_mohr2 I think its gonna work its way into my brain soon...
11:06 armyofevilrobots That sucks dude. Helen got quite sick too before she improved.
11:07 rue_mohr2 :) I suppose thats somehow encouraging
11:08 rue_mohr2 http://probotix.com/FireBall_X90_desktop_cnc_router/
11:08 rue_mohr2 huh, yup, its MDF
11:09 armyofevilrobots I have heard they work OK.
11:10 GargantuaSauce 750 for a plastic cnc
11:10 armyofevilrobots But it's not too rigid.
11:10 GargantuaSauce no thx
11:10 rue_mohr2 GargantuaSauce, thats MDF
11:10 armyofevilrobots that central drive screw means that it doesn't stay square.
11:10 rue_mohr2 stare carefully
11:10 GargantuaSauce i parsed mdf as a plastic
11:10 GargantuaSauce being up for 24 hours is not doing my brain any favours :|
11:10 armyofevilrobots dual rack and pinion is a better choice for that kind of design IMHO.
11:10 rue_mohr2 from what I can tell, the motor drivers, controller board, and softwares aren't included in the price
11:11 GargantuaSauce jeez
11:11 GargantuaSauce also what do you do when kill -9 doesnt work
11:11 rue_mohr2 GargantuaSauce, quick quick quick whats 1 + 1 quick!
11:11 GargantuaSauce 10
11:11 rue_mohr2 no the answer is 11
11:11 armyofevilrobots clearly the answer is 10
11:12 myofevilrobots s
11:12 rue_mohr2 :)
11:12 rue_mohr2 god does my head ever hurt
11:12 GargantuaSauce it could also conceivably be 100010000
11:12 GargantuaSauce if the base is i
11:12 rue_mohr2 I need to finish my reseach into how nerves work so I can learn how to kill signal thru saturation
11:13 rue_mohr2 what base is Pi exactly 0.5 in again?
11:14 GargantuaSauce ummm 5/pi?
11:15 rue_mohr2 I'm having a hard time even adding things up to $325 on that machine
11:15 GargantuaSauce aahhh i cant kill this fucking process
11:15 GargantuaSauce i sent a couple megabytes to a virtual serial device
11:15 GargantuaSauce and it broke usb
11:15 GargantuaSauce new devices are not detected
11:15 GargantuaSauce and i cant kill the process
11:15 rue_mohr2 unload and reload the usb hub driver, make sure you do it on a one-liner
11:16 rue_mohr2 I think I'm getting a faver again
11:19 GargantuaSauce didnt work :(
11:20 rue_mohr2 wow
11:20 GargantuaSauce guess i'm stuck with a reboot
11:20 GargantuaSauce but i dont waaaanaaa
11:20 GargantuaSauce i don't like rebooting!
11:21 GargantuaSauce it makes me think about things like whether i broke my bootloader and forgot
11:21 rue_mohr2 heh
11:21 GargantuaSauce and reloading 400 browser tabs
11:24 rue_mohr2 if you do a kill -9 on firefix, it does a recover on restart
11:25 GargantuaSauce i mean just pulling all their contents from cache again
11:25 GargantuaSauce well my dm froze and that sort of forced my hand on the matter, couldn't even switch to tty
11:25 GargantuaSauce i really fucking hate writing 100% userspace code that manages to bring down the system
11:28 rue_mohr2 why does it seem that the flat ground sliders are cheaper than the supported-rod based ones?
11:29 rue_mohr2 my machines done that a few times over the years, I have to ssh in and do a shutdown
11:29 rue_mohr2 machine
11:31 GargantuaSauce now i am scared to work on my thing
11:32 rue_mohr2 what thing?
11:32 GargantuaSauce well up until now i've been bossing around my robots using a pl2303 and atmega8 with an nrf24l01
11:33 MrCurious GargantuaSauce: the first rule of thing club is you dont talk about thing club!
11:33 rue_mohr2 GargantuaSauce, and thats what froze up?
11:33 GargantuaSauce but i couldn't get decent bitrates through the usb/uart
11:33 rue_mohr2 I'm running 115200 on mine...
11:34 rue_mohr2 but I'm using a proper crystal
11:34 rue_mohr2 17.45Mhz iirc
11:34 GargantuaSauce this one is 12 something i think
11:34 GargantuaSauce anyway now i'm using an stm32f4 as a usb device
11:34 rue_mohr2 junk firmware?
11:34 GargantuaSauce maybe i dunno
11:34 rue_mohr2 you couldn't get 115200 from a mega32?
11:35 rue_mohr2 you weren't pushing files at it were you?
11:35 GargantuaSauce it's an atmega8
11:35 rue_mohr2 k, whatever
11:35 rue_mohr2 no flow control, have to respect that
11:35 GargantuaSauce and i can sort of manage 57600 but it is inconsistent
11:35 GargantuaSauce and not because of a processing bottleneck
11:36 rue_mohr2 inconsistant?
11:36 GargantuaSauce not reliable
11:36 GargantuaSauce anyway i want the stm32 based solution anyway so i can run the exact same code on the robot as the bridge
11:37 GargantuaSauce and using screen i sent stupid amounts of data to it from the clipboard
11:37 GargantuaSauce and it worked
11:37 GargantuaSauce but termios in my application ---> fucked system
11:38 rue_mohr2 dosn't that chip have to bitbang usb?
11:38 GargantuaSauce ....
11:38 GargantuaSauce no
11:39 GargantuaSauce it has two hardware usb peripherals
11:40 rue_mohr2 huh, 811 is a "nursing hotline"
11:42 GargantuaSauce seems to be all happy now
11:42 GargantuaSauce when i was getting it up and running i must have triggered some bug in the usb drivers or something
11:42 GargantuaSauce that slowly got worse and worse with each run? i dunno
11:43 GargantuaSauce ahhhhhh did it again nevermind
11:44 GargantuaSauce i need to reconnect the device between each time i call open() or it seizes up
11:44 GargantuaSauce guess it isn't saying goodbye properly?
11:51 GargantuaSauce i am gonna chalk this up to shit vendor libraries
11:51 GargantuaSauce (i am just using it wrong i'm sure)
11:51 rue_mohr2 atleast if its avr you know its written by,,,, whatshisname over in #avr
11:52 GargantuaSauce i could be using one of three libraries written by people i can poke, just trying this one first
11:53 rue_mohr2 why would anyone write their own if the vendor one worked?
11:56 rue_mohr2 this is convienient I can wait 2 hrs on hold instead of 2 hrs in emergency
14:00 SilentAssassin I have several points , from which i computed polynomial interpolation coeficients, i want to follow this interpolation with a robotic hand, however there is a delay between action and measurement
14:00 SilentAssassin and the system starts to shake
14:01 SilentAssassin because it once shoots over the interpolation curve then it tries to come back and overshoots again
14:01 SilentAssassin how is this handled in robotics?
14:01 GargantuaSauce control theory
14:01 SilentAssassin like a PID controller?
14:02 GargantuaSauce more or less yes
14:02 SilentAssassin so this can be used to follow an interpolation? hmm
14:03 GargantuaSauce yeah you set the error to be the difference beween where you want it and where you sense it to be
14:04 GargantuaSauce and in theory you should be characterizing the system's moments and configuring the controller to maximize its dynamic stability but in practice people just throw together a pid and dick with the coefficients until it works
14:09 SilentAssassin GargantuaSauce so i tune the parameters until i get a small enough error during following the interpolation?
14:09 GargantuaSauce basically
14:17 SilentAssassin i dont get how the integral part can help me here
14:17 SilentAssassin when i look at this equation i would get that only PD would help me
14:19 GargantuaSauce that is indeed often the case
14:19 GargantuaSauce i wouldn't rule it out of your implementation though
14:19 GargantuaSauce the real answer is 'it depends' and it won't be truly obvious until you're staring at the response on the s-plane
14:27 SilentAssassin hmm so the setpoint variable can move over time ... i thought they have to be set
14:27 GargantuaSauce they are set, set as in arbitrary, not set as in fixed
14:28 GargantuaSauce yay natural language!
14:29 SilentAssassin okey so when doing this, i look at the position where I am, I predict the next time frame, and the position on the interpolation curve at the predicted time, is my setpoint and my process variable is the current position
14:29 SilentAssassin interesting
14:30 SilentAssassin i hope this will work
14:30 GargantuaSauce something like that
14:30 SilentAssassin or should the setpoint be from the current time
14:31 GargantuaSauce strictly within the classical control approach, yes
14:31 SilentAssassin ew
14:32 GargantuaSauce moving past that you sort of need to more expansively model the dynamics i think?
14:32 GargantuaSauce i dont know exactly
14:32 SilentAssassin so setpoint is from time(t) and process variable also from time (t) ? ... but this will give me some delay or not ?
14:33 SilentAssassin well i dont need to model dynamics actually
14:33 GargantuaSauce it might or it might not
14:33 GargantuaSauce there will technically be a lead-lag compensator under the umbrella of the pid control
14:33 GargantuaSauce so in either case you just have to tune it i think
14:33 SilentAssassin the only problem is that i have a simulator that runs at 50 fps, i get answer from frame t, and when i post the answer to the simulator it processes at time t+1
14:33 SilentAssassin and i see the result in time t+2
14:34 GargantuaSauce this is where the integrator comes in
14:34 SilentAssassin oh
14:35 GargantuaSauce i think maybe
14:35 GargantuaSauce \(O_o)/ i should have gone to bed 8 hours ago
14:35 GargantuaSauce no...16...crap
14:35 SilentAssassin damn... I thought im so close to solving the problem
14:35 GargantuaSauce you might be
14:35 GargantuaSauce seriously, bang it together
14:35 GargantuaSauce mess with the pid coefficients
14:36 GargantuaSauce the details may matter less than you think
14:36 GargantuaSauce and if they don't tweak it some more
14:36 SilentAssassin hehe
14:36 SilentAssassin okey ill try
14:36 SilentAssassin i wasted too much time on this i gotta finnihs it somehow
14:36 SilentAssassin stupid simspark simuator
14:36 SilentAssassin smilator
14:36 SilentAssassin *simulator
14:42 SilentAssassin but if i am following the reference, this integration part will go to infinity
14:42 GargantuaSauce they are usually clamped at a reasonable value
14:42 SilentAssassin because in every new timestep my desired point will be something else , so there will always be an error
14:42 GargantuaSauce and very occasionally negative
14:44 SilentAssassin by the way is this PID the only control thing i have here?
14:54 GargantuaSauce it could be, perhaps
14:55 GargantuaSauce i am not exactly aware of the particulars of your project so i don't know if you're already calculating the jacobian for its kinematics and so on
14:55 GargantuaSauce which could be considered part of the control
14:56 GargantuaSauce and could certainly be used to augment the usefulness of a single pid loop
15:04 SilentAssassin what i do is I have points reference points for torso, foot and something, using polynomial interpolation i know at time t where i want the torso and foot to be
15:04 SilentAssassin using inversed kinematics i calculate the angles required
15:04 SilentAssassin at the specific time point
15:05 SilentAssassin and i calculate delta angles (difference between the angle that came from the input , and what i calculated) which is basicly angular velocity
15:05 SilentAssassin and i send it
15:05 SilentAssassin then on the next frame i get rotated angles... and it goes on
15:07 GargantuaSauce well i can tell you without a doubt that if this is a biped it's not going to be able to walk like that
15:08 GargantuaSauce anyway it's a start and it might have reasonable results with external aid
15:11 GargantuaSauce obviously i am not too clear on this stuff myself but my interpretation is as follows
15:12 GargantuaSauce the classical control theoretic approach works by simplifying the problem to the frequency (well, laplacian) domain by describing the dynamics in a time-invariant manner
15:14 SilentAssassin oh
15:14 GargantuaSauce you can certainly have a degree of success in controlling the time-domain dynamics of the system by bestowing setpoints upon a pid control loop as dictated by the former
15:14 SilentAssassin fck
15:14 SilentAssassin it is a biped
15:14 GargantuaSauce but the time-domain curves you're imposing as their target is completely "unknown" to the joints right
15:14 GargantuaSauce bipeds are HARD.
15:15 SilentAssassin it would be okey if there wasnt this time error
15:15 GargantuaSauce welllll not really
15:15 GargantuaSauce you need a much more complex approach than just interpolating a predetermined curve in order to make a biped dynamically stable
15:16 GargantuaSauce it might work in the simulation but the simulation is cold and precise and impossible
15:16 SilentAssassin stability is a different approach
15:16 GargantuaSauce it's the only approach
15:16 SilentAssassin stability was supposed to be done by moving the torso
15:16 GargantuaSauce you have stability, or you fall over
15:16 GargantuaSauce every actuator needs to participate
15:17 SilentAssassin yes well my system was supposed to work like this.... the bottom parts dont care about stability
15:17 SilentAssassin and the torso is supposed to balance the system
15:17 SilentAssassin torso is without interpolation
15:17 SilentAssassin only feet
15:17 SilentAssassin but i cant even get that working so...
15:18 GargantuaSauce i don't think that approach has really any chance of working
15:19 SilentAssassin i saw this paper where they were making bipeds walk by planning the motion
15:19 GargantuaSauce link?
15:19 SilentAssassin by some fixed number of points, and there was interpolation between them
15:19 SilentAssassin wait
15:20 SilentAssassin it was some paper on zero moment point
15:21 SilentAssassin http://www.mate.tue.nl/mate/pdfs/10796.pdf
15:22 SilentAssassin and ill tell you where
15:22 SilentAssassin page 43
15:23 SilentAssassin Reference Trajectory
15:23 SilentAssassin they made a set of dynamic stable postures
15:23 SilentAssassin and used quintic interpolation between them
15:23 SilentAssassin which if im not mistaken is a polynomial interpolation with 5 points
15:25 GargantuaSauce okay i see
15:26 GargantuaSauce the thing is, that was successfully done with a simulation right
15:26 GargantuaSauce simulations generally have perfect actuators
15:26 GargantuaSauce but reality diverges from that idealism
15:27 GargantuaSauce in that case it works perfectly fine to have the motion planning decoupled from any sort of feedback
15:27 GargantuaSauce because the model and simulated reality are identical
15:27 GargantuaSauce the real actuators need to be off just a TINY bit for that planning to become useless
15:27 GargantuaSauce and no control system is going to compensate for that
15:28 GargantuaSauce if that approach is going to work on a real biped (which it certainly could, and probably has), its dynamical state needs to be updated in real time according to how the motion is actually turning out
15:29 SilentAssassin yep ...
15:29 SilentAssassin so what im gonna do
15:29 GargantuaSauce the a priori knowledge of the system is not 100% accurate and small differences in the dynamics will cause very significant divergence
15:29 SilentAssassin is im going to trash the polynomial interpolation
15:29 SilentAssassin and i will do only linear interpolation with respect only to target,
15:30 GargantuaSauce the way this is usually approached i think is statistical methods are applied to infer a covariance between the model dynamics and the real ones
15:30 GargantuaSauce in any case it gets a looot more complicated
15:30 SilentAssassin i see
15:31 SilentAssassin damnit
15:31 SilentAssassin well my actuator isnt perfect
15:31 SilentAssassin in fact it is tottaly terrible :D
15:32 SilentAssassin its not a real robot but a simulation with a simulated feedback
15:35 GargantuaSauce well in that case you can make it follow the curve perfectly to test your implementation of the idea in the paper at least
15:35 GargantuaSauce which...you've already done perhaps?
15:36 SilentAssassin nope
15:36 GargantuaSauce well i would suggest doing that to start
15:36 GargantuaSauce because otherwise you could be barking up n wrong trees trying to fix the instabilities
16:07 armyofevilrobots rue_mohr2: P.S. You have a friend with a big CNC if you need to cut parts for a router btw.
16:15 Doctor1C HI
16:15 Doctor1C Anyone here?
16:15 Doctor1C I love you.
16:15 Doctor1C You are gorgeous!
16:15 GargantuaSauce damn right
16:15 robopal Yes.
16:15 rue_mohr2 armyofevilrobots, I'm just surprised that its kinda commercial and its MDF structure
16:37 SilentAssassin bah
16:37 SilentAssassin i give up
16:38 robopal sleep on it
16:39 SilentAssassin i cant find a paper that describes robot movement with the feedback control
16:39 SilentAssassin and im not going to pay those damn websites that charge for papers when 90 percent of them are crap
16:39 SilentAssassin :S
16:40 robopal PID control?
16:41 SilentAssassin i have no idea how can that be applied to my problem :S
16:59 robopal SilentAssassin, I do not know what you are doing, but yeah, I suspect you need to search some info on that. At least you will get some hints, some ideas to pursuit.
17:00 rue_mohr2 SilentAssassin, you should have just asked me
17:00 SilentAssassin well...
17:02 rue_mohr2 SilentAssassin, you just trying to learn about it in general?
17:03 SilentAssassin i have gone too far to start implementing a robot on the simspark platform
17:03 SilentAssassin but obviously the wrong way and i have to somehow push it
17:03 rue_mohr2 damnit, nomatter how hard I swing over the mouse cursor I can get it to show up on the damn tablet
17:03 rue_mohr2 show me simspark
17:03 SilentAssassin http://simspark.sourceforge.net/wiki/index.php/Main_Page
17:03 rue_mohr2 while I read, tell me about your robot
17:04 SilentAssassin i have 2 parts... bottom, which i do not stabilize, I specify a set of points, for the swing foot, for the hip, swing foot orientation
17:04 SilentAssassin i am doing polynomial interpolation between these points
17:04 SilentAssassin and calculate the angles by performing inversed kinematics
17:05 SilentAssassin this works fine on my home made simulator, however simspark is more of a feedback control
17:05 SilentAssassin there is a delay and there is error between the measures and what i want to do, and the system starts to oscilate
17:05 SilentAssassin only thing i can think of is to drop frames
17:06 SilentAssassin so that i wouldnt respond to every feedback from the system, to remove the oscilation but i dont know
17:07 rue_mohr2 I'm still sick, watching this movie, reading that and this isn't working
17:11 rue_mohr2 looks pretty plug and play
17:12 rue_mohr2 but, your talking about somting at a way way lower level than that software
17:12 SilentAssassin simspark is just performing physics
17:12 rue_mohr2 can I see your polynomial interpolation function?
17:13 SilentAssassin dont know how ... its a simple polynomial function interpolating over all components x,y,z in space
17:13 SilentAssassin anyway the problem isnt interpolation
17:13 rue_mohr2 you know what oscillation is?
17:13 SilentAssassin i try to minimize the error, and it overshoots
17:13 rue_mohr2 no but I'd like to see your polynomial interpolator
17:13 SilentAssassin so i do the opposite
17:15 rue_mohr2 oscillation is when there is a time delay in feedback such that the reaction time serves to add to the amplitude of the oscillation
17:15 rue_mohr2 therefore the gain of the system at that frequency has to be more than 1, or it would taper out, like a bell
17:17 SilentAssassin http://pastebin.com/iGsQXqiW
17:17 SilentAssassin its kinda undreadable
17:17 SilentAssassin cause i didnt want to write too much stuff
17:18 rue_mohr2 in a bar, when there is a band playing that has its mic right infront of the speakers, they tune-out the frequencies of the resulting feedback, which means they dont get feedback
17:18 SilentAssassin so lowering the frequency of my application (lower than the simulator) should remove this oscilation ?
17:19 rue_mohr2 not neccissarily
17:19 rue_mohr2 you need to know how the loop gain works
17:20 rue_mohr2 and what your delays are
17:20 rue_mohr2 if there was no delay, there would be no oscillation
17:21 SilentAssassin the delay isn't constant..
17:21 rue_mohr2 that makes thing more fun
17:21 SilentAssassin yeah
17:21 Tom_itx feelin better rue_mohr2
17:21 rue_mohr2 tell me about the feedback loop
17:21 SilentAssassin sometimes the simulators misses a frame
17:21 rue_mohr2 Tom_itx, I dont care how bad I look, I feel worse!
17:21 Tom_itx same here
17:21 Tom_itx got the crud
17:21 SilentAssassin i get perceptors from the simulator at time t
17:22 rue_mohr2 and I'm watching a movie about a tire that goes on a killing rampage
17:22 SilentAssassin but while i send command to move the joints, it's already time t+2 , or t+1 while it gets to the simulator
17:22 rue_mohr2 !?!?! where to people come up with this tsuff?
17:22 SilentAssassin and I get the result about it at time t+2 or t+3
17:22 SilentAssassin so basicly it sucks
17:22 SilentAssassin i dont even know from which frame the error is
17:22 rue_mohr2 SilentAssassin, are you calling the movements or is it?
17:22 SilentAssassin movements are angular velocities
17:22 SilentAssassin which sucks even more
17:23 rue_mohr2 for each axis?
17:23 SilentAssassin it is a single degree of freedom
17:23 SilentAssassin for each joint
17:23 SilentAssassin i send a velocity
17:23 rue_mohr2 ok, so
17:23 SilentAssassin and that velocity stays on, until i override it
17:23 rue_mohr2 you have an array of motors that your controlling the position on
17:23 SilentAssassin yes
17:24 rue_mohr2 then its open loo
17:24 rue_mohr2 p
17:24 SilentAssassin hmm whats that
17:25 SilentAssassin according to wikipedia, open loop is a total disaster and you cannot do anything about it
17:25 rue_mohr2 if you control it, but it dosn't control you, its not a loop
17:25 SilentAssassin well it controls me a bit
17:25 SilentAssassin because i get CURRENT rotations from the simulator
17:26 SilentAssassin and based on that I send VELOCITY to the simulator
17:26 rue_mohr2 that do you mean simulator, are you operating a real robot, or just a simulation?
17:26 SilentAssassin simulation
17:27 rue_mohr2 so
17:27 rue_mohr2 the axies position are control by a software feedback loop?
17:28 SilentAssassin yes but the problem is,,, i cannot send the NEW POSITION ... i send VELOCITY , if i send velocity V1 at time t, and I miss frame at time t+1, the V1 stays on
17:28 SilentAssassin it rotates the joint 2 times by V1
17:28 rue_mohr2 well
17:29 rue_mohr2 show me the calc you use for the angle you want, the angle you have, and the velocity
17:30 SilentAssassin i calculate desired position, and i send desired - current ... nothing special about that
17:31 rue_mohr2 you make a calculation, show me
17:32 SilentAssassin and for IK i use Damped least squares, and if i get an non invertible matrix i fallback to jacobian transpose... this stuff works
17:32 rue_mohr2 wow
17:33 rue_mohr2 you have the position the joint is in, right?
17:33 SilentAssassin position like in 3d space?
17:33 rue_mohr2 no, as in motor angle
17:33 SilentAssassin yes
17:33 SilentAssassin that i get from the simulator
17:33 SilentAssassin and i calculate a new position
17:33 rue_mohr2 and your specifying what position you want the motor to be in
17:34 SilentAssassin no, i have to send the change
17:34 SilentAssassin velocity
17:34 rue_mohr2 so you send changes in position?
17:34 SilentAssassin yes
17:35 rue_mohr2 ok, do you calculate the velocity from the changes in position or the target position it translates into?
17:36 SilentAssassin m_uncommitedChange.GetAngle() - m_history.back().second.GetAngle();
17:36 rue_mohr2 yup, its amazing
17:36 SilentAssassin :(
17:37 rue_mohr2 it looks like you have everything wrong
17:37 SilentAssassin hehe
17:37 rue_mohr2 lets continue
17:37 SilentAssassin hmm, what wrong
17:37 rue_mohr2 that code, is what your sending to the robot?
17:37 SilentAssassin yes
17:38 rue_mohr2 show me the code the robot uses to calculate the velocity
17:38 SilentAssassin ehm..
17:38 SilentAssassin i just showed you..
17:40 rue_mohr2 I want a formula for the robot side like velocity = current position - command position * 929927348967
17:40 rue_mohr2 your formula must be the one that results in the number used for the velocity to the motor
18:51 ShH_ hands Tom_itx some
18:51 GuShH_ It's one of those "get better" soups, with pills floating on top.
19:07 GuShH_ hmm new bimetal hacksaw blade, I forgot how well they cut when they're new. I wonder if the plain hss ones are worth a shot, aren't they brittle?
20:15 rue_mohr2 not too much so, no
22:33 rue_mohr2 I took drugs and I can think a bi
22:34 rue_mohr2 I'v been able to make some progress on the number entry state machine for the bench power supply
22:35 rue_mohr2 something definitly goes wrong when you backspace thru the decimal place...
22:36 rue_mohr2 clears up if you rap the backspace a bunch of times tho
22:36 rue_mohr2 I think I can think this out
23:12 GuShH_ rue_house
23:20 rue_mohr2 gush
23:21 ShH_ hands rue_mohr2 a bag of p
23:21 e_mohr2 nods politely and puts them int eh corner with the to
23:23 GuShH_ I could really use a contractor saw...
23:23 GuShH_ but they seem too flimsy compared to the worst table saw