#robotics Logs

Jul 19 2017

#robotics Calendar

12:11 AM anniepoo_: 8cD
12:14 AM anniepoo_: if you're interested in state machines, I was an RA doing theoretical work on automata theory (which is state machiens)
12:14 AM anniepoo_: anyway, time for Annie to head home
12:14 AM z64555: you make states in said machines where they will take/make signals
12:14 AM z64555: the communications check can either be in a loop from all/most other paths
12:15 AM z64555: or be available as a path in multiple states
12:15 AM rue_shop3: not many people seem to know much about state machines, its been frustrating for me
12:16 AM rue_shop3: the one person I trust with state machines is the woz
12:16 AM rue_shop3: who, wont talk to me :(
12:16 AM rue_shop3: and after the crash, I dont know if he has a mind for it anymore
12:17 AM z64555: I know the priciples of them, and I've made one in software for a string parser
12:18 AM z64555: Key thing to understand, is that work is not done at the states, but on the paths between states
12:20 AM rue_shop3: yea there is a LOT more to them than that
12:21 AM rue_shop3: poo
12:21 AM z64555: If work is to be done while a machine is in a specific state, then that is a loopback state
12:21 AM rue_shop3: 8mm is too much
12:21 AM z64555: ...like what
12:21 AM rue_shop3: z64555, do you know what a lookup table is?
12:21 AM z64555: yes
12:21 AM rue_shop3: really?
12:21 AM z64555: yes
12:21 AM rue_shop3: seriously?
12:21 AM z64555: yes, seriously
12:21 AM rue_shop3: god, your like only one of like 4 people in the world
12:22 AM z64555: ...no not really
12:22 AM rue_shop3: I seriously just stop there usually
12:22 AM z64555: at least I don't think so
12:37 AM z64555: hm, I'll have to look at it with fresh eyes, it's midnight for me right now
12:37 AM z64555: but it looks neat
12:38 AM z64555: well not neat, interesting :P
12:38 AM rue_shop3: :| you dont get it do you?
12:39 AM rue_shop3: sigh...
12:40 AM z64555: I'm not genius mode 100% 24/7, rue
12:42 AM rue_shop3: I count myself lucky to have someone awake to talk to...
12:45 AM rue_house: I wonder if I should post another thing tonight
12:59 AM rue_house: haha I cant create machine tables in my head
12:59 AM * rue_house tries again
01:22 AM rue_house: that took a few tries
01:33 AM rue_house: yay, interacting state machiens
01:35 AM rue_house: damnit, where did those last 2 hours go?
01:35 AM rue_house: I needed those hours later
01:36 AM rue_house: that sentance was temporally awkward
01:36 AM rue_house: it still is
01:37 AM rue_house: now I'll be dragging my but all day at work
01:37 AM rue_house: why not just leave it in bed?
01:37 AM rue_house: no, I'll need it with me
01:38 AM rue_house: and here we hit the awkward moment
01:38 AM rue_house: we have had 2 burritos
01:38 AM rue_house: which is not enough,
01:38 AM rue_house: but 3 is too many
01:38 AM rue_house: why do you still do burritos, this NEVER works
01:39 AM rue_house: but their good
01:39 AM rue_house: yes, and you have enough supplies for the next 3 days, of which you will not have any more
01:39 AM rue_house: its tuesday, so the weekend is out
01:39 AM rue_house: how long were the last ones in the fridge?
01:40 AM rue_house: oh, only about 2 months
01:40 AM rue_house: exactly
01:40 AM rue_house: well>?
01:40 AM rue_house: oh lets put it away I suppose
01:41 AM rue_house: I need a better way for the state machines to throw events
01:41 AM rue_house: design it more like a neuron then
01:41 AM rue_house: what!?
01:41 AM rue_house: think on it
02:13 AM Anniepoo__: sometimes this channel's more interesting when Rue's the only one on
02:14 AM rue_house: its his fault!
02:14 AM rue_house: got a clip working for holding the 'bins'
02:14 AM rue_house: its a t-slot like thing
02:14 AM rue_house: images later
02:14 AM rue_house: I'm 2 hours late for bed
02:35 AM rue_bed: I should code something
02:35 AM rue_bed: what did I need to code....
02:35 AM rue_bed: oh yea, the trapazoidal library
03:16 AM Jak_o_Shadows: rue, how does it detect which screw is which?
03:16 AM Jak_o_Shadows: Or is that part of the sled?
04:37 AM hammond: heh
06:04 AM z64556 is now known as z64555
08:55 AM rue_bed: pre-stage is a weigh-scale
08:56 AM rue_bed: to something like 1/1000 g
09:04 AM SpeedEvil: solvent wash first.
09:04 AM SpeedEvil: :)
09:18 AM deshipu: soylent wash
09:19 AM z64555: ok, so rue made a sequencer out of a memory chip
09:22 AM z64555: "Its a state machine!" well, yes and no
09:23 AM rue_house: its just got a static sequence
09:23 AM z64555: yeah
09:24 AM rue_house: there are more complex applications
09:24 AM rue_house: but its still a state machine
09:24 AM z64555: your sources for state changes is the previous state and the clock signal
09:25 AM z64555: Which I hope you were sane enough to walk through the addresses sequencially instead of skipping around :P
09:25 AM rue_house: the clock signal is always involved in the event notification
09:25 AM rue_house: I did
09:25 AM rue_house: and I didn't ahve to use a counter
09:25 AM SpeedEvil: you can do state machines directly from ROMs with no counter
09:25 AM SpeedEvil: it was historically not an uncommon technique
09:25 AM z64555: good, we haven't lost you yet
09:25 AM rue_house: thats what it is
09:25 AM SpeedEvil: back when CPUs were expensive
09:26 AM rue_house: http://ruemohr.org/~ircjunk/tutorials/elex/fsmflash/main.html
09:26 AM rue_house: lut+latch = state machine
09:28 AM rue_house: new screw sorter images
09:29 AM rue_house: http://ruemohr.org/~ircjunk/projects/screwsorter/p1090138.jpg
09:29 AM rue_house: http://ruemohr.org/~ircjunk/projects/screwsorter/p1090140.jpg
09:29 AM rue_house: http://ruemohr.org/~ircjunk/projects/screwsorter/p1090141.jpg
09:29 AM rue_house: http://ruemohr.org/~ircjunk/projects/screwsorter/p1090143.jpg
09:29 AM rue_house: http://ruemohr.org/~ircjunk/projects/screwsorter/p1090146.jpg
09:29 AM rue_house: http://ruemohr.org/~ircjunk/projects/screwsorter/p1090150.jpg
09:32 AM z64555: so the screw sorter is going to have a state machine as a controller?
09:34 AM rue_house: no... you dont think I only work on one thing at a time do ya?
09:35 AM rue_house: I'm also working on converting a 4 stroke engine to a 2 stroke
09:37 AM rue_house: and a trapazoidal profile library
09:38 AM rue_house: and a supper machine
09:39 AM rue_house: and a 12' mecha
09:39 AM rue_house: which, technically, the 4 stroke converstion is for
09:42 AM rue_house: still need to make a pump for the parts cleaner
09:42 AM rue_house: which I'll need for the engine conversion
09:48 AM z64555: what kind of engine is it? lawnmower?
09:49 AM rue_house: no, its a horiz shaft,
09:49 AM rue_house: but 1 cyl gas, yea
09:49 AM z64555: about a 200, 300cc?
09:50 AM rue_house: not sure, gonna measure it... at a guess..
09:50 AM z64555: the small ones like for lawnmowers seem to use plastic gears for timing, so it may be as trivial as printing a new pair
09:50 AM rue_house: its OLD , its metal
09:51 AM z64555: at any rate, you could prototype it in plastic
09:51 AM z64555: the temperatures inside the crank case shouldn't get too hot
09:52 AM SpeedEvil: Nylon is IIRC commonly used
09:52 AM SpeedEvil: PLA not so much
09:52 AM rue_house: about 100cc?
09:53 AM rue_house: my guestimages of the sizes might be off
09:53 AM rue_house: I have the gear, I'm gonna weld on some extra lobes
09:53 AM rue_house: the engine was rettymuch scrap anyhow
10:00 AM rue_house: hmmm yea, lawnboy does use needle bearings...
10:14 AM tttb3 is now known as tttb
12:18 PM anonnumberanon: any opinions or Robot Operating System ?
01:35 PM veverak: it's awesome!
01:36 PM veverak: anonnumberanon: it's a huge ammount of things to be learned
01:36 PM veverak: especially at the beginning
01:36 PM veverak: it's pointless in simple robots/mechanisms
01:37 PM veverak: it creates certain ammount of overload, has to be used only in cases when it's worth it
01:37 PM veverak: but it got a lot of nice features
01:38 PM veverak: again, one have to properly evaluate pros/cons
02:01 PM anonnumberanon: thanks veverak !
02:01 PM anonnumberanon: good opinon
02:01 PM anonnumberanon: opinion
02:01 PM anonnumberanon: it's in c++ or what?
02:33 PM veverak: anonnumberanon: depends :)
02:33 PM veverak: anonnumberanon: it allows you to pick language you need
02:33 PM veverak: or want
02:33 PM veverak: primary languages are: python, C++
02:35 PM veverak: among others is: lua, javascript, haskell, java, and others...
02:37 PM veverak: anonnumberanon: thing is, you ROS setup will always generate each message for 'communication between nodes' for every present language
02:37 PM veverak: so, you can have C++ nodes communicating with Python nodes, java nodes, haskell nodes...
02:37 PM veverak: with one message definition
02:40 PM anonnumberanon: right. like sockets.
02:40 PM veverak: hmm
02:40 PM veverak: yes and no
02:40 PM anonnumberanon: or> protocol buffers by Google
02:40 PM veverak: anonnumberanon: each message is tightly packed data structure, looking really simillar like simple C structures
02:41 PM veverak: ROS generates API for each language to simply use these messages
02:41 PM veverak: so in python, it generates class for each message representing that message
02:41 PM veverak: in C++ again, class is generated
02:41 PM anonnumberanon: ah that sounds like exactly protocol buffers
02:42 PM anonnumberanon: i don't know if I'd do too well with C++
02:42 PM veverak: yeah
02:42 PM veverak: from what I can google it is :)
02:42 PM veverak: anonnumberanon: ROS allows you to do the thing you wanted everytime
02:42 PM veverak: that is
02:42 PM veverak: to implement only the performance criticall stuff in C++
02:42 PM anonnumberanon: sex?
02:42 PM veverak: and leave the rest for python
02:42 PM veverak: :)
02:43 PM veverak: and I love the design choice, of splitting entire thing into a lot of simple programs that are communicating with each other
02:44 PM anonnumberanon: i worked with protocol buffers it was fun
02:44 PM anonnumberanon: (hard too)
02:44 PM anonnumberanon: between C++ and Python
02:44 PM veverak: well, the ROS mechanism seems easy to me
02:44 PM veverak: practically easy t ouse
02:44 PM veverak: that is
02:44 PM anonnumberanon: then sending stuff over sockets that had been protobuffed before
02:45 PM anonnumberanon: (over bluetooth)
02:45 PM veverak: anonnumberanon: well
02:45 PM veverak: that is downside of it
02:45 PM anonnumberanon: that was my month job after college :)
02:45 PM veverak: it's more or less targeted on UPC/TCP communication
02:45 PM veverak: I never fully studied if it's possible to use bluetooth/others
02:46 PM veverak: but hey, it creates communication graph between nodes, can be tricky for some things :)
02:47 PM veverak: anonnumberanon: yeah, that is nice feature
02:47 PM veverak: anonnumberanon: each node communicates directly with other node
02:48 PM synja: it would be nice if we could have an analog camera to make image recognition closer to real time
02:48 PM synja: s/camera/video camera
02:48 PM synja: speaking of buffers :)
02:49 PM anonnumberanon: synja, what now?
02:50 PM synja: oh, just image recognition on a constant stream instead of buffered data
02:50 PM synja: digital images take too long to fill the buffer
02:50 PM synja: although if you reduce the resolution, it takes much less time tbf
02:52 PM * anonnumberanon is about to finish a monster algorithm
02:53 PM * anonnumberanon crosses all available fingers for it to compile and success without major issues
03:05 PM anonnumberanon: synja, human eyes+brain do that job well
03:06 PM synja: but computers do not
03:06 PM synja: not in real time
03:06 PM synja: actually my computer has faster recognition than our own brains
03:06 PM synja: which is about 700 ms in our brains
03:06 PM synja: 23 ms in the computer
03:08 PM * veverak is going to design algorithm in more detail
03:08 PM veverak: where the fuck is my pen and paper?
03:11 PM anonnumberanon: synja, humans don't do it in real time either :)
03:12 PM anonnumberanon: oh I had not read the rest that you wrote :)
03:37 PM synja: yeah. we just don't have a buffer for visual data. it's all processed as it reaches the visual centers of the brain
03:37 PM synja: well, i guess you can think of the delay along the pathway as a buffer
03:37 PM synja: of sorts
03:37 PM synja: but it's continuous
03:37 PM synja: there is no waiting for new information
03:37 PM synja: or for the buffer to fill up first
03:43 PM anonnumberanon: when your algo shows 34 combinations instead of 5
03:43 PM anonnumberanon: okay, it does too many things? heh
04:19 PM anonnumberanon: sigh.. this thing will take quite a bit more work..
08:40 PM veverak: madness!
08:40 PM veverak: ok
08:40 PM veverak: I just implemented container of data
08:41 PM veverak: that is actually made of 6 simple containers in recursion
08:41 PM veverak: unordered map in array in array in array in array in array in vector
08:41 PM veverak: oh, way, 7 of them ;)
08:41 PM veverak: I like the madness of it
08:46 PM Tom_itx: you must
08:51 PM veverak: :)))
08:51 PM veverak: P.S: it's indexing structure
08:52 PM veverak: 6DOF index to be precise
09:47 PM rue_bed: hu?
09:47 PM rue_bed: for kinematics?
09:49 PM veverak: yup
09:49 PM rue_bed: forward or inverse?
09:50 PM veverak: rue_bed: there is graph defining robot state
09:50 PM veverak: body pose is 6DOF
09:50 PM veverak: index is for getting all vertexes at specific pose
09:50 PM veverak: not indexing legs itself... yet
09:51 PM rue_bed: something sounds amiss, but I cant remmeber how I did that in my system
09:52 PM veverak: each vertex of graph should fully describe the robot
09:52 PM veverak: however, that results in graph size explosion
09:52 PM rue_bed: I think, the closest comparable is my system for BVH files
09:52 PM veverak: so it's 6DOF for body, and 'target point', 'actual point' for tip of each leg
09:53 PM veverak: that is working idea
09:53 PM veverak: curious if it will be good enough
09:53 PM rue_bed: is the 6dof an arm?
09:53 PM veverak: no, on body position in space
09:54 PM veverak: arms are 3 DOF
09:54 PM rue_bed: what kinda body has 6dof?
09:54 PM veverak: everyone
09:54 PM veverak: rue_bed: x,y,z coordinate
09:54 PM veverak: yaw/roll/pitch
09:54 PM rue_bed: ooooh
09:54 PM veverak: query for graph is: find shortest path from x=0, y=0,z=0 to any x=1000, y=0, z=0
09:55 PM veverak: 4am
09:55 PM veverak: good night
09:55 PM rue_bed: look at how bvh files work!
09:56 PM veverak: ah
09:56 PM veverak: yeah
09:57 PM veverak: rue_bed: that is logarithmic based on number of vertexes
09:57 PM veverak: (which is fucking lot for my cae)
09:57 PM rue_bed: I'm looking at my bvh code, but its too amazing, I just woke up and I cant understand a damn thing
09:57 PM veverak: mine actual solution is constant if you think about it
09:58 PM veverak: :)
09:58 PM veverak: but there is certain overload
09:58 PM veverak: have to benchmark it compared to BVH/rtree
09:58 PM veverak: I am curious how can compiler handle nested std::array
09:58 PM rue_bed: if your interested in my bvh code, I can cc it to you
09:59 PM rue_bed: my code seems to be the only code that works properly :/
09:59 PM veverak: :D
09:59 PM veverak: rue_bed: I implemented AABB tree as uni project
09:59 PM veverak: got it somewhere too
09:59 PM veverak: will se
09:59 PM veverak: night! I have to get proper sleep timing
09:59 PM veverak: rue_bed: but send me a link if you hav eone! :)
10:00 PM rue_bed: I found lots of code, but it made assumptions and stuff that broke it for anything but specific bvh files
10:00 PM rue_bed: catch me on the weekend
10:00 PM rue_bed: timezones, you know how this (dosn't)work
10:49 PM rue_shop3: hahahaha
10:49 PM rue_shop3: I have the _god_ book for O-rings, and its got a section for using them as drive belts.... hahahaha
10:49 PM Tom_itx: heh
10:50 PM Tom_itx is now known as Tom_L
10:50 PM rue_shop3: I just want to know how big to make the damn groove
10:50 PM Tom_L: just big enough
10:50 PM Tom_L: i've got a nice O-ring supply here
10:50 PM rue_shop3: well
10:50 PM rue_shop3: oh god another table from hell
10:51 PM Tom_L: got some high temp ones once, $0.25 saved me from getting a $35 hose
10:52 PM Tom_L: can't remember what they were now though
10:53 PM Tom_L: what do you need o-rings as belts for?
10:53 PM Tom_L: btw, i bet that data is in the Machinist's Handbook
10:53 PM rue_shop3: no, I want to make some stupid-simple hydraulic cylinders for a 'helping hand' thats 4' big
10:54 PM rue_shop3: well, the machinists handbook might be thinner than this doc
10:55 PM Tom_itx: http://www.marcorubber.com/o-ring-size-chart-index.htm
10:55 PM Tom_itx: https://oringcalculator.eriksgroup.com/?gclid=EAIaIQobChMI7vuB2vSW1QIVg25-Ch0cCQQaEAAYASAAEgJOO_D_BwE
10:56 PM Tom_itx: https://oringcalculator.eriksgroup.com/?gclid=EAIaIQobChMI7vuB2vSW1QIVg25-Ch0cCQQaEAAYASAAEgJOO_D_BwE
10:56 PM Tom_L: woops same link for piston design
10:56 PM Tom_L: use the tabs
10:56 PM rue_shop3: if I said I want a sliding seal on a 12mm(.469") shaft...
10:56 PM rue_shop3: what size groove do I use for a what-o-ring
10:57 PM Tom_L: use that last link
10:57 PM Tom_L: select Piston Design Groove
10:57 PM rue_shop3: not a piston tho
10:57 PM rue_shop3: I'm sealing the shaft
10:57 PM Tom_L: so select Rod then
10:57 PM Tom_L: last tab
10:59 PM Tom_L: my hydraulic jack also had a nylon backer behind the O-ring
11:02 PM rue_shop3: hmm
11:02 PM rue_shop3: it dosn't like what I told it
11:02 PM rue_shop3: arg
11:02 PM Tom_L: talk nicer to it
11:02 PM rue_shop3: I should just do something that dosn't squish it along the axis of the cylinder I think
11:03 PM Tom_L: it needs a little bit of compression
11:03 PM rue_shop3: no its not doing anything for me
11:04 PM rue_shop3: according to the god document, you need to not squeeze it along the axis of the cylinder
11:04 PM rue_shop3: and only minimally squeeze its diameter
11:06 PM rue_shop3: what it DOES tell me, is that I'm gonna blow it if the clearance between the rod and the seal is much more than 0.1mm
11:08 PM Tom_itx: http://tom-itx.no-ip.biz:81/~webpage/rue/plunger.jpg
11:08 PM Tom_L: see how that has a wiper behind the seal?
11:08 PM rue_shop3: yes
11:08 PM rue_shop3: the seal floats?
11:08 PM rue_shop3: the wiper takes up side load?
11:08 PM z64555: reminds me of a syringe
11:08 PM rue_shop3: but I'm not doing it like that
11:09 PM rue_shop3: I'm making displacement cylinders
11:09 PM rue_shop3: no piston
11:09 PM rue_shop3: just a rod that displaces the cylinder volume
11:09 PM rue_shop3: so all I need is a shaft seal
11:09 PM rue_shop3: -- ===]
11:09 PM z64555: so a plunger, I think it's called
11:10 PM rue_shop3: zoom in for detail :)
11:10 PM rue_shop3: prolly
11:10 PM z64555: *notes the name on tom's image
11:11 PM rue_shop3: yea plunger cylinder
11:11 PM rue_shop3: https://image.slidesharecdn.com/hpsiii-100404123351-phpapp01/95/hydraulics-11-728.jpg?cb=1270384489
11:11 PM rue_shop3: I'm going for the one on the right
11:11 PM Tom_itx: http://tom-itx.no-ip.biz:81/~webpage/rue/Ram.jpg
11:11 PM rue_shop3: no
11:11 PM Tom_L: see how the oring pushes out the nylon?
11:11 PM rue_shop3: your sealing the end of the rod, I'm not
11:11 PM Tom_L: i know
11:11 PM rue_shop3: k
11:12 PM rue_shop3: I know there are U shaped seals for expanding against pressure
11:12 PM rue_shop3: c
11:12 PM rue_shop3: c
11:12 PM rue_shop3: hmm
11:12 PM rue_shop3: C
11:12 PM rue_shop3: ||
11:12 PM rue_shop3: C
11:15 PM Tom_itx: http://tom-itx.no-ip.biz:81/~webpage/rue/ram_nut.jpg
11:15 PM Tom_L: that's basically just a wiper seal though
11:16 PM rue_shop3: yea!
11:16 PM rue_shop3: but I dont know enough sizes
11:16 PM rue_shop3: its for hardly any pressure
11:18 PM rue_shop3: say, 4kg... levered 5:1, on ... .172inches^2 so 20kg...
11:18 PM rue_shop3: 256psi
11:19 PM rue_shop3: seeing as all the charts start at like 3000psi
11:19 PM Tom_itx: http://tom-itx.no-ip.biz:81/~webpage/rue/exploded_view.jpg
11:19 PM Tom_L: there's the whole assembly exploded
11:22 PM rue_shop3: :)
11:23 PM rue_shop3: aha, making the faceplate I need will be easy, I have cnc machine :)
11:23 PM Tom_itx: it's amazing how quick i forget alot of this