#robotics | Logs for 2016-03-05

Back
[01:48:07] <MarkX> Anniepoo: around by any chance?
[01:52:37] <MarkX> z64555: ping?
[01:52:48] <z64555> what up
[01:53:29] <MarkX> do you remember a few weeks ago, annie was explaining the physics of my motor rotation to me?
[01:53:42] <z64555> for the servo? yes
[01:53:51] <MarkX> yes, she said
[01:53:52] <MarkX> so, you can start the angle anywhere, but your life will be simpler if your starting position is angle zero
[01:53:52] <MarkX> at any other time the shaft is somewhere - some angle theta
[01:53:52] <MarkX> we use greek letters for rotational coords.
[01:54:03] <MarkX> i don't understand the "some angle theta" bit
[01:54:29] <MarkX> does that mean what ever angle we start at, lets say 90degrees, that is what theta will represent?
[01:54:37] <z64555> yes
[01:54:48] <MarkX> perfect
[01:54:49] <MarkX> thanks
[01:55:12] <z64555> it could be considered as "theta_0" since that's your initial starting position
[01:55:21] <MarkX> ah right okay
[02:38:47] <Anniepoo> hi
[02:38:53] <Anniepoo> MarkX
[02:38:57] <Anniepoo> just came back
[02:39:07] <MarkX> hey Anniepoo how's it going
[02:39:11] <Anniepoo> hey hey
[02:39:15] <Anniepoo> doing good
[02:39:36] <Anniepoo> 8cD might have a nifty job - they just asked salary etc.
[02:39:57] <MarkX> oh nice!
[02:40:20] <Anniepoo> anyway, this is something called 'Galilean relativity'
[02:40:45] <Anniepoo> I live in a small town with one drive in restaurant
[02:41:00] <Anniepoo> it's 4 blocks east of me
[02:41:23] <Anniepoo> this is meaningful to you even without really knowing where I am
[02:41:32] <MarkX> wait you have an actual drive in? i've never been to one and i live in around a huge city
[02:41:33] <Anniepoo> the town grocery store is 1 block east of me
[02:42:23] <Anniepoo> actually, they're more common in rural areas, and the nearby larger town has one, but I meant a place you can drive up, order food through a window, eat in car
[02:42:37] <MarkX> ohhh
[02:42:39] <MarkX> i see
[02:43:09] <Anniepoo> ok, so, the point here is that you can figure out, for example, that the grocery store is closer than the drive thru
[02:43:26] <Anniepoo> and the drive thru is 3 blocks from the grocery store
[02:43:35] <Anniepoo> without needing some absolute lat/long coords
[02:43:41] <Anniepoo> it's all relative
[02:44:05] <Anniepoo> even longitude is relative to Greenwich
[02:45:00] <Anniepoo> so yes, if you're imagining a rotation you can start anywhere
[02:45:05] <Anniepoo> and call that zero
[02:45:21] <Anniepoo> it may be more convenient to pick one spot rather than another
[02:45:47] <Anniepoo> eg. if you're doing profile motion you probably want to pick zero where the motion starts
[02:46:49] <MarkX> why wouldn't i define my "zero" as my minimum position though?
[02:47:02] <Anniepoo> it depends on what's convenient
[02:47:11] <Anniepoo> often that IS a good place to choose
[02:47:44] <Anniepoo> but say you're doing some oscillatory motion, picking zero in the middle is probably simpler
[02:48:13] * z64555 coughs
[02:48:20] <z64555> like with a quadrotor
[02:48:27] <Anniepoo> yes
[02:48:36] <MarkX> oh interesting
[02:49:09] <MarkX> okay, so, so far i've been able to program a calibrate function
[02:49:46] <MarkX> it gives me my max and min pos of the pot for my armature. it also gives me the time it took to get from one to the other
[02:50:18] <Anniepoo> incidentally, my connectors finally came, and turned out to be the wrong ones, but I can replace the males with the new males - they sent me both ends of the connectors
[02:50:26] <Anniepoo> ok, great
[02:50:33] <MarkX> to convert from pot value for degrees, you said i can do pot/256 * max_angle, max angle in this case is 260 degrees
[02:50:53] <Anniepoo> that assumes your max value is 255
[02:50:58] <MarkX> yes
[02:51:08] <MarkX> oh right but that is changed because we have a max pos now
[02:51:12] <Anniepoo> yes
[02:51:19] <MarkX> okay *takes notes*
[02:51:21] <Anniepoo> pot/max_val * max_angle
[02:51:31] <Anniepoo> actually, if you have a min
[02:51:46] <Anniepoo> pot/(max_val - min_val) * max_angle
[02:52:07] <MarkX> excellent
[02:52:25] <Anniepoo> this shows a case where what's a useful zero (ground) for one thing isn't for another (you have a min_val)
[02:52:40] <Anniepoo> so you 'coordinate shift'
[02:52:48] <MarkX> so then we discussed the calculation for the motor shaft rotation
[02:52:53] <MarkX> for a motion profile, is that important?
[02:53:13] <Anniepoo> yes
[02:53:33] <z64555> word on integer precision
[02:53:40] <Anniepoo> you want to constantly accelerate the motor until you reach max speed
[02:53:57] <Anniepoo> then run at max speed until it's time to stop
[02:54:02] <z64555> Try to do your divisions last, unless you have concerns about overflow
[02:54:03] <Anniepoo> then decelerrate
[02:54:11] <Anniepoo> what z said
[02:54:19] <Anniepoo> thanks z
[02:54:26] <z64555> welcome :)
[02:54:29] <MarkX> the motor shaft will rotate 260 * (20/10.75) because of the pulley system i have set up. 20mm for the armature, 10.75mm for the motor shaft
[02:54:36] <MarkX> okay z64555 i'll keep that in mind
[02:55:01] <z64555> Reason behind this, is because integers don't keep a fractional
[02:55:15] <MarkX> yes, would have to do floats
[02:55:18] <MarkX> or doubles
[02:55:22] <Anniepoo> MarkX - my robot's using the gears and motor from a cheap cordless drill
[02:55:26] <z64555> or do your division last :P
[02:55:33] <Anniepoo> I don't know or care what the motor speed or gear ratio is
[02:55:47] <Anniepoo> I just treat the system as a very torgue-y, slow motor
[02:56:31] <Anniepoo> since I'm only interested in the rotation of the capstan, which is what my encoder measures
[02:57:53] <MarkX> but with my numbers, we can get exact values, for example. maxPos = 238, minPos = 217, avgTime = 152ms avgTime was over 5 recordings
[02:58:14] <Anniepoo> ok
[02:58:24] <MarkX> that means for the shaft of the motor we have 221 * (20/10.75)
[02:58:45] <MarkX> which is lets say 411
[02:59:05] <Anniepoo> now, is maxPos measured on the driven gear shaft, or on the motor shaft?
[02:59:16] <MarkX> that is the armature
[02:59:20] <Anniepoo> ok
[02:59:23] <MarkX> hitting the max hard stop
[02:59:40] <MarkX> also maxPos and minPos are pot values
[02:59:52] <Anniepoo> you only get from 217 to 238?
[03:00:02] <MarkX> omg sorry
[03:00:03] <Anniepoo> that's only 21 steps
[03:00:06] <MarkX> i wrote it wrong
[03:00:09] <MarkX> minPos = 17
[03:00:12] <Anniepoo> ok
[03:00:21] <MarkX> 221 steps
[03:00:46] <Anniepoo> so it's 238 - 17 = 221 steps from end to end
[03:00:50] <MarkX> yep
[03:00:52] <Anniepoo> how many degrees is that?
[03:01:06] <MarkX> how many degrees is 221?
[03:01:21] <Anniepoo> no, how many degrees does it rotate going from min to max?
[03:01:29] <MarkX> oh one sec
[03:02:28] <MarkX> well based on your math before, it would be
[03:03:05] <MarkX> .calc 238 / (238 - 17) * 260
[03:03:06] <makepi> 238 / (238 - 17) * 260 = 280
[03:03:20] <MarkX> actually it wouldn't be 260 because our max has changed to 238
[03:03:20] <MarkX> right?
[03:03:32] <MarkX> .calc 238 / (238 - 17) * 238
[03:03:33] <makepi> 238 / (238 - 17) * 238 = 3332/13 (approx. 256.30769230769231)
[03:04:01] <Anniepoo> no, no
[03:04:26] <Anniepoo> the only way to know how many degrees it rotates is to measure it (or just look at it)
[03:04:34] <MarkX> OOOHHH
[03:04:37] <MarkX> i gotcha
[03:04:39] <MarkX> 260 degrees
[03:05:02] <MarkX> that is the angle allowed by the hard stops
[03:05:12] <Anniepoo> ok
[03:05:14] <MarkX> so we can say min hard stop is 0 and max hard stop is 260 degrees
[03:05:30] <Anniepoo> so, 221 steps, 260 degrees
[03:05:38] <MarkX> yes
[03:05:39] <Anniepoo> .calc 260 / 221
[03:05:39] <makepi> 260 / 221 = 20/17 (approx. 1.1764705882352941)
[03:05:49] <Anniepoo> so 1.17 degrees per step
[03:06:05] <MarkX> yes
[03:06:29] <Anniepoo> (not to confuse with a stepper motor's steps, here I mean 'change of one unit in adc' as 'step'
[03:06:37] <MarkX> yep
[03:06:40] <MarkX> makes sense
[03:06:46] <Anniepoo> so change of 10 steps is 11.7 degrees rotation
[03:06:48] <Anniepoo> 8cD
[03:07:26] <MarkX> okay that makes sense
[03:07:35] <MarkX> but where does my motor shaft rotation fall into this?
[03:07:49] <Anniepoo> =8cO
[03:08:14] <Anniepoo> the 260 is degrees of motor shaft rotation?
[03:08:23] <MarkX> no no
[03:08:32] <MarkX> that is the armature rotation
[03:08:49] <MarkX> but you said motor shaft rotation is important/needed as well isn't it?
[03:08:55] <Anniepoo> ok, so it's 11.7 degrees of armature rotation (I take it 'armature' is the thing you're driving)
[03:09:00] <MarkX> yes
[03:09:07] <Anniepoo> no, then you really don't care about the motor rotation
[03:09:13] <MarkX> ah excellent
[03:09:13] <Anniepoo> only the armature rotation
[03:09:20] <MarkX> beauty
[03:09:25] <Anniepoo> like me and my drill driven robot -
[03:09:45] <MarkX> so now i have my velocity and the positional data in degrees for my armature
[03:09:58] <MarkX> is this still considered a linear move even if i use degrees?
[03:10:05] <Anniepoo> yes
[03:10:28] <Anniepoo> linear means 'straight line', but that's on a graph, not necc. in the real world
[03:10:46] <MarkX> ah gotcha
[03:11:27] <Anniepoo> like, if somebody gets a $5000 raise every year, then their income/ time graph is linear
[03:12:01] <Anniepoo> but that example there's no physical motion at all
[03:12:07] <MarkX> heh i understand
[03:12:15] <Anniepoo> linear equations are of the form
[03:12:42] <Anniepoo> ax + by + cz = d
[03:14:28] <Anniepoo> in this case rot = 1.17*steps - 1.17*minPos
[03:15:46] <Anniepoo> the second term is constant, the first term is linear, so the equation is linear
[03:15:48] <Anniepoo> 8cD
[03:16:16] <Anniepoo> some things are not linear
[03:16:26] <MarkX> i see
[03:16:28] <Anniepoo> if you get a 6% raise every year it's not linear
[03:16:46] <MarkX> yes i gotcha
[03:17:35] <MarkX> so for my armature, if i'm doing min to max move in 152ms that means i'm doing 260 degrees / 152 ms = 1.71deg/ms
[03:17:49] <z64555> hm, that's inverse natural log, isn't it?
[03:18:18] <MarkX> that means i'm doing 1710 degrees per second.... that's huge
[03:18:45] <z64555> s/huge/fast
[03:18:50] <MarkX> hehehe
[03:18:51] <MarkX> yes
[03:19:36] <MarkX> so if my hard stops weren't there and my pot was infinitely turning, it would be almost 5 rotations in a second
[03:19:45] <MarkX> it doesn't look that fast but jeez
[03:19:53] <Anniepoo> yes, it's pretty hefty to accelerate that much
[03:20:19] <Anniepoo> well, the important issue is that it's stopped to stopped
[03:21:12] <MarkX> http://engapps.gates.com/LinearApp/MotionCalculator
[03:21:14] <MarkX> i found this btw
[03:22:55] <MarkX> http://pastebin.com/J4wtTLBd
[03:23:00] <MarkX> based on my inputs i get that
[03:23:05] <Anniepoo> ok, on this page Linear actually means 'moves in a line'
[03:23:10] <Anniepoo> you have rotary motion
[03:23:33] <MarkX> yep that is what i selected. that way i have degrees/second
[03:23:36] <MarkX> has an option
[03:23:55] <MarkX> in this case they have separated it but i understand what you mean about linear
[03:24:18] <Anniepoo> yes, it's an unfortunate overlap of terms
[03:24:36] <Anniepoo> 'linear' means something in math, and something else in engineering
[03:26:07] <MarkX> okay so it looks like i have most of the stuff ready
[03:26:19] <MarkX> now i have to actually implement the maths behind the ramping
[03:26:25] <MarkX> aka the S curve or the trapezoidal
[03:28:15] <MarkX> thanks again for all the help Anniepoo
[03:28:17] <MarkX> really appreciate it
[03:28:38] <Anniepoo> np!
[03:28:45] <Anniepoo> hope I'm adding light, not confusion
[03:28:59] <MarkX> no no i totally get it
[03:35:12] <z64555> derp, I got the atan2's wrong
[03:35:18] * z64555 sketches up a visual aide
[03:35:57] <z64555> s/engineering/physics
[03:37:29] <z64555> Actually kinda the same thing, since the mathematical function of a line, y = mx +b
[03:38:47] <z64555> linear systems have similar system transfer functions, general rule is that the highest power a variable can be is 1 before that equation is nonlinear
[03:41:08] <Anniepoo> 8cD I was trying to avoid lots of vocabulary
[03:43:14] <z64555> only way to build a vocabulary is to use it! :D
[03:44:57] <Anniepoo> true
[03:51:20] <z64555> hm, with pitch along the same axis as x, and bank as y
[03:51:47] <z64555> pitch = atan2(z, x); bank = atan2(z, y); heading = atan2(y, x);
[03:52:45] * z64555 looks up atan2 to see what happens when its parameters are 0
[03:53:32] <Jak_o_Shadows> atan2 is generally sensible isn't it?
[03:53:59] <z64555> it's preferred over atan, at least. since it's better at determining which quadrant the angle is in
[03:54:06] <Jak_o_Shadows> yeah
[03:54:18] <Jak_o_Shadows> Had to introduce that to a friend the other day
[03:57:42] <Anniepoo> well, time for me to turn in
[03:58:38] <z64555> heh, -0.0f is a thing
[03:59:28] <Jak_o_Shadows> Oh yeah, floats are whacked
[03:59:33] <Jak_o_Shadows> Understandable enough, but whacked
[04:01:53] <z64555> hm. so atan2(0,0) returns either -PI, 0, or PI
[04:02:01] <z64555> depending on the signs of x and y
[04:03:30] <deshipu> yes
[04:03:34] <deshipu> very convenient
[04:03:45] <Jak_o_Shadows> That makes sense.
[04:03:56] <Jak_o_Shadows> I imagine it's just normal atan with some checking of sign of the input things
[04:04:08] <z64555> pretty much
[04:04:46] <jasonj8> yeah I looked at the code for an implementation of it once before
[04:05:17] <z64555> I'm wondering if the kalman filter is able to handle gimble lock, or if I should add a check in there
[04:06:58] <jasonj8> annoying thing about atan2 is sometimes packages define it as atan2(y,x) (since you typically do atan(y/x) ) and some define it as atan2(x,y)
[04:07:17] <z64555> lol, lovely
[04:09:14] <jasonj8> or maybe it was just that I'm used to typing x,y but it uses y,x. I can't remember.
[04:13:11] <Jak_o_Shadows> y, x makes more sense doesn't it?
[04:13:15] <Jak_o_Shadows> opposite over adjacent?
[04:14:06] <jasonj8> yeah it's just a little oddity
[04:14:23] <Jak_o_Shadows> yeah
[04:14:46] <z64555> programming convention has it so that variable names are alphabetical from left to right
[04:14:59] <z64555> *one programming convention
[04:15:10] <deshipu> really?
[04:15:19] <deshipu> that sounds quite arbitrary
[04:15:34] <jasonj8> I feel like most functions that take in an x and a y are going to be f(x,y)
[04:15:45] <Jak_o_Shadows> Well, true.
[04:16:28] <deshipu> except if you use curses :P
[04:17:25] <veverak> atan2(y,x) also... :)
[04:20:45] * z64555 reads up on rotation matrices
[04:34:01] * z64555 reads up on euler angles
[04:35:47] * jasonj8 predicts z64555 will next read up on quaternions
[04:38:06] <z64555> nah, already know enough about those
[04:38:35] <z64555> might poke on there to double check how a rotation is done, I'm pretty sure it's just a sandwich op
[04:40:26] <deshipu> note that the order of rotations matters
[04:41:47] <z64555> yup
[04:56:53] <z64555> hm.
[04:57:28] <z64555> I could normalize the sensed acceleration vector and feed it into a kalman filter with an appropriate H matrix
[04:57:53] <z64555> wait, no, that wouldn't work
[04:58:35] <z64555> H is the sensor transform matrix, which transforms the phyical coordinates into sensed
[13:52:21] <z64555> stayed up too late thinking about gimble lock :/
[13:55:14] <ace4016> lol
[13:58:09] <Anniepoo> 8cD just got a gig writing AI code in Prolog
[13:58:55] <z64555> that's FPGA code, isn't it?
[13:59:18] <ace4016> prolog?
[13:59:21] <ace4016> nay
[13:59:37] <Anniepoo> =8cO No! Logic language
[13:59:55] <z64555> um.
[14:00:08] <z64555> basically every programming language is "logic" language :P
[14:00:20] <z64555> but anyway, I was thinking of verilog
[14:00:22] <ace4016> maybe you were thinking about verilog (unrelated)
[14:00:25] <ace4016> :P
[14:00:38] <z64555> ninja'd :P
[14:00:41] <Anniepoo> invented in the 70's by Colmeraur and Kowalski
[14:00:50] <ace4016> formal logic is what logic programming is about
[14:01:01] <ace4016> which isn't quite the same as the logic you're probably talking about :P
[14:01:29] <ace4016> there's overlap of course...
[14:01:39] <Anniepoo> I'm talking about Horn Clauses, a restricted version of first order logic with normalized forms
[14:02:06] <Anniepoo> also a vastly nifty way to program real stuff
[14:02:14] <Anniepoo> http://swi-prolog.org/
[14:02:19] <Anniepoo> ruin your life - dive in
[14:02:54] <z64555> heh
[14:05:57] <Anniepoo> I discovered it by accident in 2010 or so. I haven't written in much else since.
[14:14:45] <ace4016> when i started programming i wanted to learn prolog because it was associated with AI, but never got around to using it ever. I did learn Common Lisp (also associated with AI)
[14:20:21] <Anniepoo> ace, install SWI-Prolog, start studying, ask questions on ##prolog
[14:20:37] <Anniepoo> Lots of friendly people who will help
[14:21:41] <ace4016> one day
[14:47:42] * z64555 wonders how the heck he can get a kalman filter to operate on a quaternion
[14:48:42] <z64555> there's also the issue of velocity versers, lol
[14:51:54] <ace4016> you can convert the matrix transformations into quaternion transformations
[14:52:12] <ace4016> iirc...
[15:16:17] <z64555> yes
[15:16:45] <z64555> but right now I'm at the "convert sensor vectors into something the controllers can use" part
[15:20:18] <z64555> rotation matrices work if you know the angles
[15:20:43] <z64555> but coming directly from the accelerometer, you don't know the angles, but a vector
[15:21:41] <z64555> gyro's give you angle rates, compass gives you angles, but can be very noisey
[15:25:19] <SpeedEvil> kalman filter
[15:25:28] <SpeedEvil> you jam it all into a kalman filter.
[15:25:54] <z64555> :) i'm working on the specifics
[15:25:56] <SpeedEvil> errrr
[15:26:01] <SpeedEvil> I should read backscroll
[15:26:03] <SpeedEvil> sorry
[15:26:08] <ace4016> i think he's worried about gimbal locking and kalman filters typically are matrix based
[15:26:15] <z64555> not a problem :)
[15:26:39] <ace4016> ah; was trying to correlate all comments made :P
[15:26:51] <z64555> comment was @ SpeedEvil
[15:27:15] <z64555> Matrix based kalman filter is also not a problem, since the filter operates on a single variable
[15:27:52] <z64555> Originally I was going to have a filter per axis angle, but I'm now thinking it would be better to have it operate on each element of a quaternion
[15:29:03] <ace4016> you technically don't need to seperate it in that case :P
[15:29:25] <ace4016> just means your matrix would have non-coupling sections (0s)
[15:29:27] <flyback> https://www.youtube.com/watch?v=jSWB1cjzuF0 <--- MOTORCYCLE PR0N
[15:30:10] <z64555> hey hey, I'm still getting into thinking in matrices
[15:30:26] <z64555> s/getting into/just starting to
[15:30:37] * z64555 gives up on grammar
[15:30:47] <ace4016> lol
[15:31:03] <SpeedEvil> Giving up on grammar is as bad as forgetting about Dre.
[15:54:03] <Anniepoo> ok, in the very very strange mechanical design department
[15:55:01] <Anniepoo> I just dropped the cap off my lipstick. After a couple minutes looking for it I rmemebered I'd just bought a new one because the old one was used up, but still had the old tube
[15:55:36] <Anniepoo> removed cap from old one and... amazingly, didn't fit. Slightly different shade of same brand, external diameter is the same
[15:56:07] <Anniepoo> maybe they did it to keep factory workers from putting wrong color on tubes?
[15:56:11] <deshipu> different run from a different chinese factory
[15:56:30] <z64555> different ID of the cap
[15:56:37] <deshipu> perhaps even one of them is counterfeit
[15:56:47] <deshipu> or both
[15:57:47] <myself> if the newer one is slightly smaller, it allows them to charge the same price for slightly less product, a miniscule shrink every few years pays off in the long run
[15:57:56] <Anniepoo> hmm... both bought from large chain
[15:58:19] <Anniepoo> oh, good idea - maybe they slightly changed how much is in tghe tube
[15:58:22] <myself> if the newer one is larger, I have no insidious theory ;)
[15:59:27] <z64555> could grab a pair of needlenose pliers and crimp 3 or more spots in it to expand the cap a tiny bit
[15:59:39] <Anniepoo> http://www.amazon.com/Burts-Bees-Shimmer-Champagne-Ounce/dp/B0009ET5JE%3Fpsc%3D1%26SubscriptionId%3DAKIAILSHYYTFIVPWUY6Q%26tag%3Dduckduckgo-d-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0009ET5JE
[15:59:52] <z64555> oh it's plastic
[16:00:02] <Anniepoo> no, the ID of the old cap is slightly less than the OD of the new tube
[16:00:36] <myself> newer is larger?? I got nothin'.
[16:00:38] <z64555> new tube is thicker :P
[16:00:57] * deshipu read it ass BEES' BUTTS
[16:01:05] <z64555> accurate
[16:01:26] <Anniepoo> hmm... and the of the 4 tubes I own, only the one is larger.
[16:03:05] <z64555> its probably a thermoplastic, so you could warm the cap up and then try to push it on to expand it
[16:03:20] <z64555> but that'll likely melt the lip gloss
[16:03:27] <z64555> so... aluminum foil it is
[16:03:28] <Anniepoo> oh, don't need a practical solution -
[16:03:52] <Anniepoo> I've got a lathe, I could ream it if I actually cared
[16:03:57] <z64555> lol
[16:04:04] <Anniepoo> I've just jammed the too small cap on
[16:04:15] <Anniepoo> but it's an interesting mechanical engineering puzzle
[16:05:02] <Anniepoo> I note that the other 3 tubes are interchangeable, so my theory about not mixing up at factory is wrong
[16:05:08] <myself> probably as much about the manufacturing marketplace as anything
[16:05:19] <myself> might be several suppliers for the tubes, and they just use whatever
[16:05:28] <Anniepoo> oh, good idea
[16:06:09] <Anniepoo> yes, and maybe the drawing is the same, and the molding process is different, and htey just make the tube and whatever size they come out they adjust cap to fit
[16:07:05] <Anniepoo> there's a ridge on the tube that engages a series of bumps inside the cap to snap it in place
[16:07:19] <Anniepoo> and the tube is slightly stepped
[16:07:43] <Anniepoo> probably to make it easier to fit the cap in place
[16:08:11] <z64555> yup, soften cap then snap it on
[16:08:50] <Anniepoo> no, I mena in use
[16:09:17] * z64555 confuses himself again
[16:09:18] <Anniepoo> I pop this thing out of my purse a few times a day, take off cap apply, put cap
[16:09:45] <Anniepoo> back on, put back - it'd affect buying decision if it took concentration to get the cap back on
[17:19:53] <z64555> hm
[17:20:20] <z64555> I can rotate the accelerometer vector to map into the same reference plane as the compass
[17:21:07] <z64555> so I can use the "north" quaternion as the "level and north"
[17:22:12] <z64555> would still need some way to fuse the two together, however
[17:23:28] <z64555> i could expand the column vector (which is now operating on quaternions, instead of single-dimension angles) into a 2x2 matrix
[17:24:07] <z64555> with the top row as the inputs from the acceleromter and compass, and the bottom row elements from the gyro
[17:26:09] <z64555> 3D matrix. woo
[17:54:39] <anonnumberanon> hell yeah
[18:07:27] <z64555> hmm?
[18:07:37] <z64555> oh, response to 3D matrix
[22:37:27] <MarkX> evening
[22:53:12] <myself> that it is
[23:36:35] <Anniepoo> hey all
[23:37:21] <Anniepoo> went out to eat with a friend, talk turned to tentacles, being the sort of person I am I started thinking about how to make one
[23:37:50] <Anniepoo> preferably without 47 zillion servos
[23:38:28] <Anniepoo> ICSR proceedings 2010 has a design called the COSA finger that looks promising, but I'm a long way from a working design
[23:48:44] <MarkX> i like how casually you said "talk turned to tentacles"
[23:48:45] <MarkX> hahah
[23:49:39] <Anniepoo> 8cD
[23:50:41] <Anniepoo> well, we were discussing puppets, and social robotics, and he brought up underactuated fingers and somehow it went from there
[23:51:01] <z64555> so, using some string/wire in 4 places?
[23:51:09] <Anniepoo> 3
[23:51:28] <Anniepoo> either that or a bellows or air muscle
[23:51:53] <z64555> eh, I'd go with 4. My car mirror has 3 control wires and it sucks ass
[23:52:27] <z64555> pardon my language. I blame #multirotors
[23:52:36] <Anniepoo> but what I'd like to do is underactuate it so I have fewer axes to actually do normal stepper blah blah motion control with
[23:52:39] <z64555> its such a bad influence on me
[23:53:19] <z64555> you'll be sowwy :P
[23:53:42] <Anniepoo> sorry why?
[23:56:00] <z64555> cables will bind in certain quadrants, which is a disadvantage of using only 3 cables
[23:56:19] <z64555> at least that's been my experiance
[23:56:31] <Anniepoo> hmm... say more
[23:56:40] <Anniepoo> I haven't built a mechanism like this at all
[23:56:59] <z64555> I could tilt my mirror up/down just fine, could tilt it inward, but I couldn't tilt it outward without placing a lot of force on the stick
[23:57:08] <Anniepoo> oh, I see
[23:57:33] <z64555> Istead of using the stick, I'd just roll down the window and adjust it by placing my hand directly on the thing, lol
[23:57:47] <Anniepoo> right
[23:58:16] <Anniepoo> well, I'm wondering what would make it bind
[23:58:36] <z64555> cables are good at pulling, not pushing, for one
[23:59:00] <Anniepoo> oh, yes, that's crazy to use push rods
[23:59:10] <Anniepoo> though fairly common in the automotive world
[23:59:21] <z64555> no, this was all cables
[23:59:38] <Anniepoo> ok, so if it's cables, they're only pulling.
[23:59:55] <Anniepoo> As I often say about management 'you can't push rope'