#robotics Logs
Dec 28 2017
#robotics Calendar
12:05 AM rue_mohr: ok, see, I thought I needed to do two dot products, but its vectors
12:08 AM rue_mohr: so I only need to do one
12:08 AM rue_mohr: vectors
12:24 AM rue_mohr: oh drat
12:24 AM rue_mohr: lost the guide page I was using
12:24 AM anonnumberanon: For ur spider?
12:25 AM anonnumberanon: Ok ill get to my task now
12:26 AM rue_mohr: no I was using a page as a guide on this line intersection thing
12:26 AM rue_mohr: looks like I closed the tab
12:33 AM rue_mohr: I think I know what to do
12:34 AM rue_mohr: but the code I was fixing would be nice to have up as aredf
12:34 AM rue_mohr: ref
12:36 AM anonnumberanon: what is internet history for
12:44 AM rue_mohr: it would help if I knew what the page was or how I got it
12:44 AM rue_mohr: got to it
12:47 AM rue_mohr: https://www.geeksforgeeks.org/check-if-two-given-line-segments-intersect/
12:47 AM rue_mohr: bingo
01:06 AM anonnumberanon: oh, i love geeksforgeeks.org
01:09 AM anonnumberanon: atmelstudio just deleted my source file
01:09 AM anonnumberanon: fuck them
01:22 AM rue_mohr: why the hhell are you using atmel studio?
01:23 AM Triffid_Hunter: rue_mohr: ah, line-line intersection.. last time I did that, I checked if their distance at closest approach was less than epsilon
01:24 AM rue_mohr: was it more efficient than...
01:24 AM rue_mohr: http://paste.debian.net/1002646/
01:24 AM rue_mohr: ?
01:26 AM Triffid_Hunter: rue_mohr: oh you're doing it in 2d? nevermind then
01:26 AM rue_mohr: yea
01:27 AM Triffid_Hunter: rue_mohr: and this is for line segments rather than infinitely-long mathematical lines?
01:27 AM rue_mohr: yes
01:28 AM Triffid_Hunter: right, seems ok then I suppose.. last time I did it in 2D, I basically checked that the lines weren't parallel, then found the intersection point of the lines, then checked if that point was between the endpoints
01:29 AM Triffid_Hunter: rue_mohr: ps: cross product only works in 3 (or 8 iirc) dimensions, it's nonsensical in 2d
01:30 AM rue_mohr: I' was struggeling with that
01:30 AM rue_mohr: the meaning is different in 2d
01:31 AM rue_mohr: the cross product tells you "the angle" between them, and the dot product tells you "if their directions are mutual"
01:31 AM rue_mohr: ...a s far as I'm grasping it
01:31 AM rue_mohr: good to see ya, what you been up to?
01:31 AM Triffid_Hunter: rue_mohr: nope you have to project them into 3d for cross product because the answer is along Z which doesn't exist in 2d
01:32 AM rue_mohr: yea, its technically the z normal (right?)
01:32 AM Triffid_Hunter: rue_mohr: but if you have them in 2d, simply convert them to point+vector form then atan2(vector2 - vector1) will give the angle between them
01:32 AM rue_mohr: dont need to know the angle tho
01:33 AM rue_mohr: its come in usefull a few times for things
01:34 AM rue_mohr: unfortunatly, none of the school stuff I ever did dealt with cross or dot products, so I have no grounds for what I'm learning here
01:34 AM Triffid_Hunter: rue_mohr: right, well vector1 dot vector2 will be 1 if the lines are parallel and both vectors are normalized
01:34 AM rue_mohr: most of the time I'm using the sign of the cross product to know if things are left or right
01:35 AM Triffid_Hunter: rue_mohr: cross product gives the normal of a plane containing both vectors with length of |v1||v2|
01:35 AM rue_mohr: the dot product has come in handy for knowing if I point is in a triangle
01:35 AM Triffid_Hunter: which also explains why it explodes if the vectors are parallel or antiparallel
01:36 AM Triffid_Hunter: rue_mohr: yeah through comparing angles and stuff right?
01:36 AM rue_mohr: yea, without trig
01:36 AM rue_mohr: or division that causes blowups
01:36 AM rue_mohr: http://paste.debian.net/1002648/
01:36 AM Triffid_Hunter: rue_mohr: you might enjoy https://github.com/triffid/WebSkein/blob/master/sylvester/sylvester_ext.js#L64-L128 which is some extensions I made to the "Sylvester" javascript geometry library several years ago
01:37 AM rue_mohr: I'm not 100% sold these are the most efficient means
01:37 AM rue_mohr: I'm chewing on a 2d library
01:40 AM Triffid_Hunter: rue_mohr: not sure anyone is, and it'll change depending which platform you do the math on.. something that works great on a CPU might be slower than another method on a GPU and vice versa
01:40 AM rue_mohr: right now I'm working towards "is point inside poly"
01:40 AM anonnumberanon: rue_mohr, because it's nice, look https://imgur.com/a/k1bkk
01:40 AM Triffid_Hunter: for example, I imagine the quake-style fast inverse square root would give the CUDA compiler a hernia
01:40 AM rue_mohr: my plan is to reduce the poly to trianlges, and then search them for the point
01:40 AM Triffid_Hunter: rue_mohr: 2d poly? that's easy, cast a ray to infinity, count how many border lines it crosses. If count is odd, it's inside
01:40 AM rue_mohr: yea, I know
01:40 AM rue_mohr: but for some reason that didn't jive with me
01:40 AM rue_mohr: I think its when the ray happens to be colinear with a lien segment
01:40 AM Triffid_Hunter: rue_mohr: so you're doing convex decomposition followed by tesselation then checking if it's inside a tri? heh
01:40 AM rue_mohr: well I figure that breaking the poly into triangles is something I'll need to do anyhow at some point
01:40 AM Triffid_Hunter: rue_mohr: well if that happens, pick another random vector to check
01:40 AM rue_mohr: yea, that was it, I couldn't work out how to count or not count ray-line colinear segments
01:41 AM Triffid_Hunter: in fact, with SIMD or GPU computing you could try hundreds of vectors at once then take consensus of results
01:41 AM rue_mohr: but it has to be thru the point your testing
01:41 AM rue_mohr: I'm not at gpu programming yet
01:41 AM rue_mohr: I'd like to be
01:42 AM Triffid_Hunter: colinear probably shouldn't count as a crossing in this algorithm, but it'd likely be best to mark that test as inconclusive
01:42 AM rue_mohr: VGA compatible controller: NVIDIA Corporation GF106 [GeForce GTS 450] (rev a1)
01:42 AM rue_mohr: I dont think my hardware is worth anything now anyhow
01:42 AM Triffid_Hunter: rue_mohr: I played with opencl a little a while back, need to check it out again or play with cuda
01:42 AM rue_mohr: Triffid_Hunter, well, on paper, it seem to screw everything up
01:42 AM Triffid_Hunter: I got a GTX1060 6GB in my rig at the moment :D
01:42 AM rue_mohr: the only way to get out of a colinear is to know if it pulled left or right when you passed it
01:43 AM Triffid_Hunter: rue_mohr: but if it's colinear, it's neither left nor right :P
01:43 AM rue_mohr: I use my video card for irc!
01:43 AM rue_mohr: yea, and you dont know if your inside or outside of the object after that colinear segment
01:43 AM rue_mohr: anyhow, I decided to go for reduction
01:44 AM rue_mohr: that larger code paste is my scratchpad, it seems to work
01:45 AM rue_mohr: so I'll pour that into my library and see where I'm at
01:45 AM rue_mohr: now I can work on code to break of ears :)
01:45 AM rue_mohr: my old segment intersection code was a bit heavier, I think, so I'm happy
01:46 AM rue_mohr: do you have anything you use for 2d?
01:47 AM rue_mohr: I'm crawling towards a better openscad, one that can do csg properly and with any kinda reasonable speed
01:47 AM rue_mohr: I cant understand how that library openscad uses is SO horrid performance wise
01:49 AM rue_mohr: aaaaand if librecad gets any more clumbsy I'm gonna have to write my own cad
01:49 AM rue_mohr: aaaand I'm working on a cam processor
01:49 AM Triffid_Hunter: rue_mohr: well if you're colinear, you'll get a line-point intersection at both ends of the offending segment, and can then check adjacent segments and do something intelligent.. or simply throw the result out and hope that your other random vectors gave better results :P
01:50 AM Triffid_Hunter: rue_mohr: Slic3r uses a C++ library called Clipper for all its 2d crunching
01:50 AM rue_mohr: on paper a colinear segment means you have to look at the segment after, and see if it left your ray in or out of the object (cross product + or -)
01:50 AM rue_mohr: slicer is ok
01:51 AM rue_mohr: openscad and that csg libaryr
01:51 AM rue_mohr: I'v looked to clipper quite a bit
01:51 AM rue_mohr: I was gonna reduce it to C, but its a pretty thick read
01:52 AM rue_mohr: cause for the cam program I need to do infill patterns, aka polygon offsets
01:52 AM rue_mohr: weeee
01:52 AM rue_mohr: (yes, I'm in waaay over my head)
01:53 AM rue_mohr: in the meantime the fellows who made (the source program that librecad is from) have a cam processor that uses their libraries
01:53 AM rue_mohr: I need a cam processor that works on linux and isn't BCNC (which is horrid)
01:54 AM Triffid_Hunter: yeah, polygon offset is tricky, https://www.sthu.org/research/publications/files/phdthesis.pdf from sthu.org is a great read on one method
01:54 AM rue_mohr: so far I can parse the stuff out of a dxf
01:54 AM Triffid_Hunter: that's what I was starting to work on with webskein before I got distracted by other stuff
01:55 AM rue_mohr: it looks like the way clipper does it works flawlessly, when I have my stuff built up a bit more I may start isolating the code for offset()
01:55 AM Triffid_Hunter: but these days we could probably compile Clipper into javascript using emscripten and be done with it
01:55 AM rue_mohr: yea, the rest of my code is C and clipper dosn't plug in nicely
01:55 AM rue_mohr: and I just need offset()
01:56 AM Triffid_Hunter: rue_mohr: it's not that hard to mix C and C++ code together fwiw
01:56 AM rue_mohr: yeaaaaa
01:56 AM Triffid_Hunter: flip compiler and linker to g++ then stick extern "C" { .. } in all your headers
01:56 AM rue_mohr: helps if the base project is c++ tho
01:56 AM rue_mohr: hmm
01:57 AM Triffid_Hunter: done it heaps of times when I want to shoehorn some pre-made C++ library into an existing C project.. hmm sound familiar? ;)
01:57 AM rue_mohr: I'm in no hurry, I'm playing and learning. verry aware that this is not how I'd be doing it if my life depended on it
01:59 AM rue_mohr: so, when you ahve seen all the good stuff on netflix, you close the account and open one with a different streamer?
02:04 AM rue_mohr: dont you usually define the normal of a triangle with cw/ccw point order?
02:05 AM rue_mohr: Triffid_Hunter, you might be the only person I'v talked to in 3 mo who understands anything about this
02:22 AM rue_mohr: I'm being bothered by circle-line intersection stuff, I think it should be easy
02:22 AM rue_mohr: as soon as lines are segments, it all becomes a mess
02:25 AM Triffid_Hunter: rue_mohr: netflix? you mean tpb?
02:25 AM rue_mohr: tpb?
02:25 AM Triffid_Hunter: rue_mohr: if you use cross product of two adjacent segments to define triangle normal, then the winding order will affect which direction the normal points
02:26 AM Triffid_Hunter: rue_mohr: pirate bay :P netflix doesn't work in china and they've been ban-hammering all the VPNs so no point in me even trying
02:26 AM rue_mohr: I thought it was a convention to run them clockwise so the normals were implied?
02:27 AM rue_mohr: k
02:27 AM Triffid_Hunter: rue_mohr: circle-line, so find if nearest-point-on-line-to-point is <= radius away? then just need to check if intersection point is between the segment endpoints
02:27 AM rue_mohr: oh, your still in china?
02:27 AM Triffid_Hunter: rue_mohr: yeah there's conventions, the computer graphics folk are quite careful about them
02:27 AM Triffid_Hunter: although they (as a group) seem happy to switch between left-handed and right-handed which is kinda infuriating
02:28 AM rue_mohr: hmm
02:28 AM Triffid_Hunter: mostly because Y axis on screens points down
02:52 AM rue_mohr: k, a cross and dot product do a fine job of telling me if a point is on a line segment
03:06 AM rue_mohr: Triffid_Hunter, so, then, do you give a gpu a function and a dataset and it does the threading of the function to the dataset across the vector processors?
03:07 AM Triffid_Hunter: rue_mohr: yep that's the idea
03:08 AM rue_mohr: hmm
03:08 AM rue_mohr: and the parallel threads are detemined by the cores on the gpu?
03:08 AM Triffid_Hunter: rue_mohr: modern GPUs have something like 1500 cores and support both 32- and 64-bit numbers (int or float) so they can chew on huge datasets at blazing speeds
03:08 AM rue_mohr: yea
03:08 AM rue_mohr: I'm trying to udnerstand how to use it
03:08 AM Triffid_Hunter: rue_mohr: yeah, the driver (opencl/cuda) will provide functions and stuff to break up the work units into sensible chunks
03:09 AM Triffid_Hunter: run through some tutorials
03:09 AM rue_mohr: right, so 3000 operations can be done in 2 passes
03:09 AM rue_mohr: it dosn't help I dont ahve an applicable card
03:09 AM rue_mohr: and nothing with that much data to work on right now
03:10 AM rue_mohr: and I'm still trying to adjust my mind from serial operations
03:10 AM rue_mohr: :) and its 1am
03:11 AM Triffid_Hunter: rue_mohr: I threw together a thing to render mandelbrot sets.. ironically the subsequent PNG export takes like 10x as long as the bitmap generation
03:11 AM rue_mohr: the card cant do the png convert?
03:13 AM Triffid_Hunter: rue_mohr: heh I didn't get that far, just a small proof-of-concept so I could have a play
03:13 AM Triffid_Hunter: rue_mohr: also, I imagine PNG conversion is a somewhat linear process, where each step relies on the result of the previous step. GPUs suck at that sort of thing
03:14 AM rue_mohr: I thought png was rgba
03:14 AM Triffid_Hunter: GPU computing really needs stuff where each calculation doesn't depend on anything else so it doesn't matter what order they happen in - if any. that way they can be batched out to all the cores without a nightmare of cross-checks
03:14 AM rue_mohr: yea
03:14 AM Triffid_Hunter: rue_mohr: yeah its rgba run through some sort of compression, possibly zip or gzip or something which is linear
03:14 AM rue_mohr: add , but dont carry
03:15 AM Triffid_Hunter: jpeg would be a good candidate for GPU compress since each block doesn't really care much about the others (unless you're doing progressive)
03:15 AM veverak: rue_mohr: problem of GPUs is the thread synchronization
03:15 AM veverak: best is when there is not any
03:15 AM rue_mohr: right
03:15 AM veverak: also, you have to obtain knowledge about the properties of the HW
03:16 AM veverak: otherwise you can't get the maximal efficiency from it
03:16 AM rue_mohr: and that usualy behind locka nd key
03:17 AM Triffid_Hunter: nah the toolchain provides function calls for it.. you can get number of cards, number of cores per card, etc and make decisions about how to split your dataset and workload for best results
03:17 AM Triffid_Hunter: eg if you have four GPUs, you could decide to split your data into four chunks, send one to each card then collect all the results when they're done
03:17 AM rue_mohr: my cards got like 4 cores?
03:17 AM Triffid_Hunter: or leave the data block in each GPU's memory and do another set of ops on it
03:18 AM rue_mohr: GeForce GTS 450
03:18 AM rue_mohr: ah 192
03:19 AM rue_mohr: cuda
03:19 AM rue_mohr: opengl use that?
03:19 AM rue_mohr: pretty sure I had opengl support once upon a time
03:20 AM Triffid_Hunter: rue_mohr: cuda is nvidia's GPU compute toolchain.. it's designed for running C-like cuda code on the GPU and delivering results back to the CPU, whereas opengl is designed to render triangles using shaders to the screen
03:20 AM rue_mohr: yea different level
03:20 AM Triffid_Hunter: GPUs weren't always so general purpose, it's only in the past decade or so that folks have been using them for non-rendering applications
03:21 AM rue_mohr: right
03:21 AM rue_mohr: so I have 192 1.5Ghz cores
03:21 AM Triffid_Hunter: the earlier ones could *only* render triangles to the screen.. early GPU compute stuff would generate crazy geometry, render it, take a screenshot then interpret the results
03:21 AM rue_mohr: this thing could do a HELL of a lot of PID loops at once
03:21 AM Triffid_Hunter: rue_mohr: yeah, with a bunch of ludicrously fast ram attached to it
03:21 AM Triffid_Hunter: rue_mohr: ayup
03:22 AM rue_mohr: I suppose fourier analysis could work too... everyone grabs part of the data
03:23 AM rue_mohr: ok, I think I'm at the limit of my usefullness tonight
03:24 AM Triffid_Hunter: rue_mohr: yeah fourier runs great on GPUs, each core gets its own 'frequency bucket' to work with
03:24 AM rue_mohr: I'm all thrilled that I came up with a fn that works out if a point is on a line by first seeing if the cross product is zero, and then seeing if the dot product from the point to the two ends is + or -
03:24 AM rue_mohr: hmm
03:26 AM rue_mohr: #define colinearIsBetween(P,L) (vectDotPoint(L.p1, P, L.p2)>0?1:0)
03:26 AM rue_mohr: #define colinear(A,B,C) (vectCrossPoint(A, B, C)==0?1:0)
03:26 AM rue_mohr: unsigned char geom2dIsPointOnLine(point2d_t p, line2d_t l) {
03:26 AM rue_mohr: // colinear check, cross product
03:26 AM rue_mohr: if (!colinear(p,l.p1, l.p2)) return 0;
03:26 AM rue_mohr: return colinearIsBetween(p, l);
03:26 AM rue_mohr:
03:26 AM rue_mohr: }
03:26 AM rue_mohr: :)
03:26 AM veverak: rue_mohr: anyway, GPUs are great for a lot of stuff
03:27 AM veverak: if you would like help, just ask :)
03:27 AM rue_mohr: I will ahve to get some help setting up to play with them sometime
03:28 AM rue_mohr: gnight
03:28 AM veverak: rue_mohr: wait!
03:28 AM veverak: rue_mohr: q
03:29 AM rue_bed: ?
03:31 AM rue_bed: I'm here till I fall asleep
03:32 AM rue_bed: well, technically, I'm here till I wake up
01:54 PM rue_mohr: well I dont usually benchmark code
01:55 PM rue_mohr: my line intersection code just did 3 million line intersection tests in 0.5sec, including the time it took to push the results to a console
01:56 PM rue_mohr: ah, skipping the console output 430ms
01:57 PM rue_mohr: 30M...
01:57 PM rue_mohr: 4.335s
01:58 PM rue_mohr: about 6920 line intersection tests per ms
02:00 PM rue_mohr: huh
02:01 PM manuel_1: on what machien though
02:02 PM rue_mohr: 3.3Ghz athalon
02:04 PM robotustra: what is line intersection?
02:05 PM robotustra: in 3d space?
02:05 PM rue_mohr: nope 2d
02:06 PM rue_mohr: the odds of lines intersecting in 3d space is so low I could just make a function that would return 0 and call the rest acceptable error
02:06 PM robotustra: not serious
02:06 PM rue_mohr: yea, its via cpu, not gpu
02:07 PM rue_mohr: if you can do better ont eh cpu I'd love to see the code
02:07 PM robotustra: I don't need to
02:07 PM robotustra: I don't masturbate on efficient code
02:07 PM rue_mohr: did you write openscad?
02:08 PM robotustra: no
02:08 PM robotustra: I write my own cad
02:08 PM robotustra: text one
02:08 PM robotustra: didn't finish it yet
02:09 PM robotustra: I hope in 1-2 month I'll be able to do something reasonable in it
02:09 PM robotustra: like solids intersection
02:09 PM rue_mohr: the opencsg is horrid
02:09 PM robotustra: I don't use it
02:09 PM rue_mohr: your almost up to solid intersections!, coool
02:10 PM rue_mohr: so why am I not talking with you about dot and cross products?
02:10 PM robotustra: I don't talk about simple things with ppl
02:11 PM robotustra: I already inplemented it in my cad
02:11 PM rue_mohr: either cgal or opencsg cause openscad to come gridning to a halt with any kinda csg operation, and I cant understand why, they have already broken it down into polygons, it shoudl be easy
02:11 PM robotustra: as well as matrix multiplication
02:11 PM rue_mohr: yea I'm not using matrixies
02:12 PM robotustra: I use, because want to generate and move objects in space
02:12 PM robotustra: and draw it in opengl viewer
02:13 PM rue_mohr: well, so far I'm just 2d, but I'm just not using the matrixies, the extra data shoveling bothers me
02:13 PM AchiestDragon: openscad 's main prob is the actual render object libs , there not multithread ie they only use one core for the render , think its down to gcal
02:14 PM robotustra: what is "render lib"?
02:14 PM rue_mohr: I specifically extrude 2d profiles to avoid csg operations
02:14 PM AchiestDragon: theres a google code reward for mking it run multithread up for grabs
02:14 PM robotustra: and who did them?
02:14 PM rue_mohr: AchiestDragon, rrrly?
02:15 PM rue_mohr: what if you do it by gutting openscad and wrapping your own stuff?
02:15 PM rue_mohr: ok its after 12:00 I need a shower and breakfast
02:17 PM robotustra: rue_mohr, to whom are you talking?
02:18 PM AchiestDragon: https://github.com/openscad/openscad/issues/391 a $350 google bounty
02:18 PM manuel_1: robotustra: i took another approach, after playing around with kalman filtering based approaches, those look good for recognizing abrupt changes, not for long running trends. I take the model equations and "invert" them, basically I have an observer reconstructing the plausible control input given the sensor output, and check that against the actual control loop output, and fail on divergence
02:18 PM manuel_1: that works pretty well
02:19 PM robotustra: ok
02:20 PM robotustra: anyway, you use the model of your process
02:21 PM robotustra: AchiestDragon, have you ever saw any other CAD programs?
02:23 PM robotustra: I have t-flex which is rendering very very fast a complex design on 1 cpu in virtual machine meanwhile openscad is just suck
02:23 PM robotustra: with rather simple operation
02:23 PM robotustra: openscad is a failure by design
02:25 PM AchiestDragon: pre 2013 they had a multithread version in dev that worked then the guy doing that left , and started his own closed source mods to his libs , promising to esablish the code bac to gpl but not so , not much has been done since 2014
02:26 PM manuel_1: robotustra: yeah, "inverse model"
02:26 PM manuel_1: in a way
02:27 PM robotustra: AchiestDragon, how come the whole project depends on one person?
02:27 PM robotustra: AchiestDragon, it means that Openscad was designed mainly by 1 guy
02:28 PM robotustra: because there is no significant change since 2014
02:28 PM AchiestDragon: robotustra: i used autocad for many years , and quite a few others , i just find openscad quick to code sometimes , i also use blender
02:30 PM robotustra: when I tried openscad myself, I was hoping to draw parts fast and easy, but I quickly got what was the problem with this
02:30 PM robotustra: for instance I can't champher the edge with 1 command
02:30 PM robotustra: that's it
02:31 PM robotustra: ToAruShiroiNeko, mosi mosi
02:32 PM robotustra: AchiestDragon, good CAD should easily work on 1 CPU
02:32 PM robotustra: in our days
02:32 PM robotustra: multiprocessing is just an option
02:34 PM AchiestDragon: champher is prob the only one thats not realy part of the default commands , so you eather have to create a cube the angle of the champher and subtract it to make the cut , or alternatively load a lib that has the champhered cube saving you having to do it seperatly
02:35 PM AchiestDragon: or rounded box if you want a box with round corners
02:36 PM robotustra: AchiestDragon, now you understand how simple operation on CAD can become a nightmare and headache in openscad
02:37 PM robotustra: that's why I'm writing text cad which can do operation I'm comfortable with in 1 command
02:38 PM AchiestDragon: https://drive.google.com/file/d/1F8DY25BYNNutFgxRKgE0iOvHGx9w4Z2a/view?usp=sharing 633 lines of code and comments
02:40 PM robotustra: it's a symmetric guy
02:40 PM robotustra: in my cad I think I can do in in less lines
02:41 PM robotustra: is it assembley?
02:42 PM AchiestDragon: 100 lines of that is comments , the code actualy does more than draw it in that view , i can set the leg angles , individual 3d part view in printable pos or assembled positions and with or without hardware like servos and nuts bolts and washers shown
02:43 PM rue_mohr: povray used a language of a simular nature but it worked
02:43 PM rue_mohr: and it had modelers
02:44 PM rue_mohr: AchiestDragon, hah, your right in there on openscad eh?
02:44 PM robotustra: anyway, I need my own cad for my robot
02:44 PM robotustra: and cncn lathe
02:44 PM AchiestDragon: been a long time since i used povray must be what 1996-7
02:46 PM rue_mohr: but it worked
02:46 PM rue_mohr: and the language was so much better than openscad
02:46 PM rue_mohr: granted workd diffreent cause itsa raytraces but man
02:46 PM AchiestDragon: remeber the days of running a 386sx 33mhz with a 387 co proc for 24 hrs to get a 1024 *768 render
02:48 PM AchiestDragon: povray
02:49 PM rue_mohr: assembler lines routines for drawing lines!
02:49 PM rue_mohr: brensham!!!!!!
02:54 PM AchiestDragon: openscad's all script once you get used to it its easy enough as you copy paste and chnage the values to save retyping half the commands in each time like translate ([10,0,0]){rotate([0,0,45]){cube([20,20,20],center=true)}};
02:56 PM Tom_L: ok the drag chain came today
03:05 PM rue_mohr: sweet
03:05 PM rue_mohr: AchiestDragon, yea, I was thinking of macros
03:05 PM rue_mohr: I'm running a debian version tho, so whatever I have is like 3 years behind
03:10 PM AchiestDragon: theres a quite a few active devs for openscad in #openscad on freenode ,
03:14 PM robotustra: 2? 3?
03:16 PM AchiestDragon: you also have to remeber that constructive solid geometory is sutaly different for raytraceing and the output needed for 3d printing that can take a lot more cpu
03:16 PM AchiestDragon: 4 or 5
03:16 PM robotustra: I think the main problem in OpenSCAD development is that their developers do not use it by themself
03:17 PM AchiestDragon: devs maintainers packagers
03:19 PM robotustra: you are pushing me to write my cad on this long long weekend instead of moving atoms
03:19 PM AchiestDragon: that can be true od a lot of packages , eda tools amongst then
03:20 PM robotustra: every time I hear from people about openscad I urgently run to my cad and continue to write it
03:20 PM AchiestDragon: lol
03:21 PM robotustra: but now it's even better, I need it for my work :)
03:22 PM robotustra: go home
03:23 PM AchiestDragon: how far from a usable altrernative is it
03:26 PM Tom_L: rue_mohr, i made a big big boo boo
03:28 PM Tom_L: i planned on using the 700mm screw for X and cutting the 1000mm one for Y which i did, however since the X table is longer i meant to use the 1000mm rails on it instead of Y which i failed to do
03:28 PM Tom_L: so i would have the full X screw length of travel instead of the limits of the rails
03:28 PM Tom_L: so i basically screwed myself out of 300mm of travel
03:29 PM Tom_L: because i already cut and mounted the 1000mm rails
04:41 PM Snert_: oh yea...here we go.....
04:41 PM Snert_: https://twitter.com/twitter/statuses/937791016492568577
07:03 PM robotustra: well... layout fluid smells strong
07:03 PM theBear: wtf is layout fluid ? chloroform ? heh, that'd layout anyone
07:06 PM robotustra: dykem steel blue
07:07 PM robotustra: after drying it's about 0.00025" thick
07:07 PM robotustra: hm... if I can use it as a shim
07:08 PM theBear: oh, that stuff
07:20 PM robotustra: shortage of 1/4-20 bolts ..
07:22 PM theBear: typical ! effing story of my life... hehe, nah no'really
07:35 PM Jakeyfu_: hi guys, anyone are familiar with Finance RPA ?
07:37 PM Tom_L: rue_mohr, around?
07:38 PM Tom_L: started on X
07:38 PM Tom_L: http://tom-itx.no-ip.biz:81/~webpage/cnc/Mill_Steel/Assembly/X_Axis_Plate.jpg
07:38 PM Tom_L: http://tom-itx.no-ip.biz:81/~webpage/cnc/Mill_Steel/Assembly/X_Axis_travel1.jpg
07:39 PM Tom_L: http://tom-itx.no-ip.biz:81/~webpage/cnc/Mill_Steel/Assembly/X_Axis_travel1.jpg
07:39 PM Tom_L: given the Y travel i have, i think i'm gonna extend the Z overhang block some more
07:39 PM Tom_L: i will keep that one but duplicate another but longer
07:40 PM Tom_L: also, the X travel isn't as bad as i had inticipated
07:40 PM Tom_L: either one i would have had to cut for Y
07:42 PM Tom_L: the X plate will actually be a bit higher than you see there
07:42 PM Tom_L: that's just sitting there to check clearances etc
07:42 PM Tom_L: it _is_ rather solid though
07:42 PM Tom_L: i can grab the X plate and move it around and the whole thing moves solidly
07:43 PM Tom_L: no noticeable play to the eye. i'm sure my last word indicator will say different
07:45 PM Tom_L: so far the drill plate fits as planned
07:53 PM Jakeyfu_: what are doing ? @tom_L
07:54 PM Tom_shop: building a cnc mill
07:55 PM Jakeyfu_: :)
08:08 PM robotustra: you are making a bridgeport
08:10 PM theBear: no i'm not :)
08:11 PM robotustra: are you Tom_shop ?
08:11 PM theBear: no, but i'm pretty ambiguous some days <wink>
08:12 PM robotustra: I was talking about Tom's mill - it's huge
08:12 PM robotustra: I'm not sire what he is going to mill on it
08:12 PM robotustra: huge and not rigid
08:13 PM theBear: yeah i know, i can't help myself some days... it's a reflex reaction to respond to a line of text as it reads, regardless of knowing or remembering any context
08:14 PM robotustra: are you drunk?
08:15 PM robotustra: Tom_shop, what are the max travel sizes? on your table?
08:15 PM Tom_shop: not entirely sure yet
08:16 PM robotustra: theBear, I remember I talked to you somewhere
08:16 PM robotustra: not sure if it were in this channel
08:16 PM theBear: yerp, it happens <grin> maybe one of the avr/micro kinda channels methinks
08:17 PM robotustra: reprap?
08:17 PM robotustra: guns?
08:17 PM theBear: but ya know, i'm everywhere and nowhere all at once <grin>
08:17 PM robotustra: theBear, are you building robots?
08:17 PM theBear: mmm, reprap ! that's a channel i musta accidentally tired-finger-clicked outta my list LONG ago and forgot to go back ! maaaan, i thought i was on top of that whole situation this quarter too
08:19 PM theBear: thanks ;-) and nah, not currently, been a bit crippled and retired and house full of half broken giant modern tv's that fools throw away after a few short years
08:20 PM SpeedEvil: At some point pretty soon, they're gonna be cheaper than wallpaper
08:21 PM robotustra: yeah, and you will be able to glue them as walpapter
08:23 PM robotustra: aha, now I know where my nuts are https://imgur.com/hdudtqC
08:24 PM * theBear hopes for a picture of a pirate with a big steering wheel for a belt-buckle
08:26 PM robotustra: today in the morning I wasn't sure where my nuts are :)
08:26 PM robotustra: but now I know
08:27 PM robotustra: Tom_shop, X travel is about 40 cm?
08:28 PM robotustra: Tom_shop, are you going to mount some t-slotted table on it?
08:31 PM Tom_shop: i'm busy....
08:33 PM robotustra: no problem, but if you are busy why are you poking in irc?
08:37 PM Tom_shop: because i can
08:37 PM Tom_shop: i don't know what x is yet
08:37 PM Tom_shop: i'm still working on it
08:38 PM robotustra: ah, for your mill X could be along the table
08:38 PM robotustra: Y is going from you to the Z
08:38 PM robotustra: and Z is vertical
08:39 PM robotustra: or X comes from Z to you
08:39 PM Tom_shop: X is about 20"
08:39 PM robotustra: Y is along the table
08:39 PM Tom_shop: Y is the base
08:39 PM robotustra: a nd Z vertically
08:39 PM Tom_shop: yes
08:39 PM robotustra: ok
08:40 PM robotustra: 20" - base width
08:40 PM robotustra: base width == ?
08:40 PM Tom_shop: 10" the rails are 8" apart
08:41 PM Tom_shop: the rails on X are 6" apart
08:41 PM Tom_shop: and the table is 9" wide
08:42 PM robotustra: X travel ~ 12"
08:42 PM robotustra: or 14"?
08:43 PM robotustra: anyway it's big
08:43 PM Tom_shop: X is about 20"
08:45 PM robotustra: 60 cm
08:49 PM robotustra: https://www.ebay.com/itm/Emco-compact-5-cnc-lathe/332485736579
10:28 PM Tom_L: no pics tonight
10:29 PM Tom_L: cut the standoffs for the X axis and started mounting the rails
10:29 PM Tom_L: didn't get done though
10:29 PM Tom_L: figured the rail locations and stepper mount position etc on the plate
10:33 PM Tom_L: so even with the shorter rails i get about 20" travel in X
10:54 PM anonnumberanon: Rue ur lucky its not freezing where u live
10:54 PM anonnumberanon: Its 23f here
10:55 PM anonnumberanon: I cant fathom the feeling it would give to get thrown in space without a suit.
10:59 PM Tom_L: 23°F here right now too
11:00 PM Tom_L: was alot lower and is going to be in a couple days
11:01 PM Tom_L: you wouldn't feel it long
11:11 PM rue_mohr: scrolls back
11:12 PM rue_mohr: Tom_L, aha x attached, kinda
11:12 PM rue_mohr: nice
11:28 PM justan0theruser is now known as justanotheruser
11:28 PM mbrumlow: anybody here have any good resourses on kalman filters ?
11:29 PM rue_mohr: yes
11:29 PM rue_mohr: someone here
11:30 PM mbrumlow: lol
11:31 PM mbrumlow: just trying to learn as much about it. reading everythjng i can.
11:31 PM rue_mohr: right
11:31 PM rue_mohr: sorry I dont recal which person here
11:32 PM rue_mohr: zhanx, or anonnumberanon or mbrumlow
11:32 PM rue_mohr: maybe
11:32 PM zhanx: i am a maybe
11:32 PM mbrumlow: that is fine, and helps. at least i know i can maybe get a question answered here if i have one
11:32 PM zhanx: i made my own
11:32 PM zhanx: before i knew what it was called
11:33 PM mbrumlow: awesome
11:34 PM zhanx: evening rue_mohr
11:34 PM rue_mohr: where!
11:34 PM zhanx: never got to cut steel, wife found another way to break the van
11:34 PM anonnumberanon: mbrumlow, i worked on it a bunch while making a quadcopter a few years ago
11:35 PM mbrumlow: my first use is to get stable readings out of a mpu 6050.
11:35 PM rue_mohr: well it sounds like she's not getting people to help her break it, so thats good
11:36 PM * anonnumberanon received a few mpu6050 in the mail yesterday
11:36 PM rue_mohr: ooooooooooooooooooooohhh the mail!
11:36 PM * rue_mohr goes racing off
11:36 PM zhanx: well you need to average the readings and anonnumberanon seems to be able to help more, i don't have the hardware
11:40 PM anonnumberanon: mbrumlow, what micro are you using? in any case you'll need to have a timed loop with it, each loop you read the mpu6050
11:40 PM mbrumlow: my main question right now is if i should pass the raw values into the filter and then calculate the angle, or if i should use the raw values to calculate the angle and just pass that along with the movement values into the filter
11:40 PM anonnumberanon: this is important because it measures acceleration and acceleration is proportional to time
11:41 PM anonnumberanon: thus, "timed loop"
11:41 PM rue_mohr: one package
11:41 PM mbrumlow: sorry for slow reply, fighting thr phones touch screen - ssh on a cell phone is not as fun as i thought it would be
11:42 PM rue_mohr: you know, at the rate canada post is abel to handle packages, if I order 365 packages, I'm good for the whole year
11:42 PM rue_mohr: no, wait, they are able to deliver 3 pacakges a week
11:42 PM zhanx: 3 years
11:42 PM rue_mohr: 156 packages a year
11:42 PM anonnumberanon: so 150 packages
11:42 PM anonnumberanon: sniped :S
11:42 PM rue_mohr: :)
11:42 PM zhanx: which is 3 years
11:43 PM anonnumberanon: although rue_mohr you should take the habit of approximating things
11:43 PM anonnumberanon: ;)
11:43 PM rue_mohr: ah! the IR2110 drivers!
11:43 PM anonnumberanon: like the precision on your cnc, about 1 inch tolerance
11:43 PM anonnumberanon: like that, you see?
11:44 PM rue_mohr: its closer to 1/4mm than 1"
11:44 PM rue_mohr: actaully, its only a little more than 1/8mm
11:44 PM anonnumberanon: and that's for carving butter right?
11:44 PM zhanx: oh look my 2 month old china express order just got an update
11:44 PM anonnumberanon: SICK BURN!!!
11:44 PM rue_mohr: how many sheets of paper is .17mm?
11:44 PM mbrumlow: anonnumberanon, right now a a arduino micro pro
11:44 PM zhanx: 6
11:44 PM rue_mohr: OH WAIT YOU DONT AHVE CALIPERS
11:45 PM anonnumberanon: i do, in the basement
11:45 PM anonnumberanon: in a box, out of 10 boxes
11:45 PM rue_mohr: .17mm, how many sheets of paper?
11:45 PM anonnumberanon: oh wait no
11:45 PM rue_mohr: ugh
11:45 PM anonnumberanon: i could probably get to it pretty fast
11:45 PM anonnumberanon: thanks for reminding me
11:45 PM mbrumlow: this is not for a quad, self balancing robot.
11:45 PM zhanx: am i wrong?
11:45 PM rue_mohr: I'm picking on anonnumberanon now
11:45 PM zhanx: k
11:46 PM rue_mohr: I'll pick on you later
11:46 PM rue_mohr: preferably when you dont know about it
11:46 PM anonnumberanon: evil
11:46 PM * rue_mohr glances at zhanx boots
11:46 PM zhanx: cant i have to drive to tomorrow and you know i am too stupid to care about boots
11:46 PM zhanx: rue it was never the boots
11:46 PM anonnumberanon: boots are the optimal shoes for driving dangerously
11:46 PM rue_mohr: your driving to tommorow?
11:46 PM zhanx: it was the troll wearing the boots
11:47 PM zhanx: canada
11:47 PM anonnumberanon: anything happens of value today?
11:47 PM rue_mohr: can you drop me off at about yesterday?
11:47 PM * anonnumberanon may read the day's logs
11:47 PM anonnumberanon: i fell asleep on my assembly code
11:47 PM zhanx: rue if you want i can cross the bridge now and ship you stuff
11:48 PM anonnumberanon: need to find my complete C program for context so i know what's dynamic and what's not
11:48 PM anonnumberanon: "complete"
11:48 PM anonnumberanon: HAH
11:48 PM rue_mohr: you usally aren't that close to the border are ya?
11:48 PM zhanx: 25 minutes
11:48 PM rue_mohr: since when did htey build a bridge to the usa?
11:49 PM anonnumberanon: id rather use the tunnels
11:49 PM zhanx: since like 1812
11:49 PM rue_mohr: you been crawling int eh border tunnels gain?
11:52 PM rue_mohr: will the 2d cross product of a vector and a point tell you the shortest distance from the point to the line?
11:57 PM anonnumberanon: you can crossproduct a vector with a point now?
11:57 PM anonnumberanon: new library?
11:57 PM rue_mohr: you take the 3 points and offset them to makea vector and an offset point and them crossproduct the two results
11:58 PM rue_mohr: I'm still struggeling with the meaning of 2d cross and dot products