#robotics Logs

Sep 06 2017

#robotics Calendar

12:00 AM orlock: HI ASIS, ASIO, NSA, ASD, AND WHOEVER ELSE I HAVENT MENTIONED!
12:02 AM rue_house: hahahaha
12:02 AM rue_house: http://paste.debian.net/984667/
12:02 AM orlock: rue_house: If there's no rotation on the encoder, i just set L and R to the mapped value of the pot input - all trivial stuff
12:04 AM orlock: and if the robot is stationary, one wheel goes forwards at that speed, the other goes backwards
12:04 AM alic1a: orlock: I had not thought of that.
12:04 AM rue_house: alic1a, sssh
12:04 AM alic1a: rue_house: Interesting.
12:04 AM orlock: so it will spin on the spot
12:04 AM orlock: If throttle is being applied, i subtract the mapped rotational value from the side it's turning
12:05 AM orlock: and i update the rotational velocity value inside the main loop()
12:05 AM orlock: so it constantly decays
12:06 AM rue_house: ?
12:06 AM rue_house: oh as your loop timer
12:07 AM orlock: yeah - so the rotational speed constantly decreases if it doesnt see a new pulse to bump the timre again
12:07 AM rue_house: you should see the rpm code for the spindle of my cnc
12:07 AM rue_house: THAT was fun
12:07 AM orlock: so it should slow down "naturally" as the wheel stops moving
12:07 AM rue_house: I ended up simulating an LM... 2909?
12:08 AM rue_house: LM2907
12:08 AM rue_house: freq to voltag converter
12:08 AM orlock: ahah, yes
12:08 AM orlock: my original python code i was doing horribl stuff
12:08 AM rue_house: the actual LM2907 is power supply sensitive, so the digital implementation is interseting cause its digitally stable
12:08 AM orlock: manually normalising the data, etc
12:10 AM orlock: that 3ks - It's probably about a 40% split between the motors, the wheels, and the batteries
12:10 AM rue_house: my typing today is so bad I'v given up trying
12:10 AM orlock: 3kg, even
12:10 AM orlock: 13A per channel, 30A peak, 14.8v
12:10 AM rue_house: http://paste.debian.net/984668/
12:10 AM orlock: traction limited
12:10 AM rue_house: soft rubber?
12:11 AM rue_house: wheels made of laminated gum erasers?
12:11 AM rue_house: doing a fast fractional multiply on a t13 was... interseting
12:11 AM orlock: not really soft - they are hardware shop trolly wheels
12:12 AM rue_house: :/
12:12 AM orlock: but i gave them a coating of Loctite's Go2 glue
12:12 AM rue_house: aaah
12:12 AM orlock: i need to turn the wheels down by a few mm though
12:12 AM orlock: so i'll leave it to do burnouts on the concrete
12:12 AM rue_house: bring them by tonight!
12:12 AM rue_house: he cant
12:12 AM rue_house: oh, oh yea
12:13 AM orlock: i can just drive the bot into a wall at full throttle
12:13 AM orlock: i just need to move i every so often as the rubber builds up
12:16 AM rue_house: wtf
12:17 AM rue_house: a seller didn't combine ship two orders,
12:23 AM rue_house: I have a pretty good collection of tiny13 projects stacking up
02:49 AM anonnumberanon: Therw is more doc for arm than avr.
02:50 AM rue_house: ?
02:50 AM rue_house: hows support tho
02:50 AM rue_house: so far, I'v had to build my environment damn near from scratch
02:50 AM rue_house: did you see/get the examples and makefile I did?
03:08 AM anonnumberanon: Yeh
03:09 AM anonnumberanon: Is there an ar.-gcc?
03:09 AM anonnumberanon: Arm-gcc?
03:15 AM anonnumberanon: https://youtu.be/MLEQk73zJoU
03:22 AM anonnumberanon: Bed
03:22 AM anonnumberanon: Good vid.
04:05 AM Jak_o_Shadows: The ik is just for a 2D arm/leg
04:05 AM Jak_o_Shadows: so it's just a position
04:51 AM bolt_ is now known as bolt
05:01 AM rue_house: :)
05:01 AM rue_house: I'd refactored my dxf library to use my 2d library
05:01 AM rue_house: now I can import a dxf and do any of my 2d stuff to it
05:02 AM rue_house: ah, hmm
05:02 AM rue_house: now it needs to be stitched into my error library
05:03 AM rue_house: entityList_t core;
05:03 AM rue_house:
05:03 AM rue_house: entListInit(&core);
05:03 AM rue_house: dxfRead(&core, "motorholes.dxf");
05:03 AM rue_house: entListPrint(&core);
05:03 AM alic1a: IndexError: list index out of range (file "/home/synja/.sopel/modules/speak.py", line 39, in respond)
05:03 AM rue_house: works nicely
06:47 AM Jak_o_Ombroj: I should download the IK from my website. that definitely worked when i uploaded it years ago
07:30 AM deshipu: Jak_o_Ombroj: https://github.com/drathier/stack-overflow-import
09:20 AM rue_house: ok I want to write a function
09:21 AM rue_house: that you give two sets of 3 co-ords, which are proportionally equal, but the "second" set is out in scale and rotation
09:21 AM rue_house: and it works out the translate/scale to make them match
09:24 AM rue_house: I wonder if that can be done for an arbitrary number of points
09:25 AM rue_house: if you have the right alg, it should be able to return an error case where there is more than one solution
09:26 AM rue_house: you know how you do it, you make the positions unitless
09:26 AM rue_house: WHAT!?
09:26 AM rue_house: think on it
09:26 AM rue_house: so you take a point, and make it a point that could be anywhere, and this solves what?
09:26 AM rue_house: cmon, wake up
09:26 AM rue_house: seriously?
09:27 AM rue_house: yea remove distance from the equation
09:27 AM rue_house: ok, so this cant be done for just one point
09:27 AM rue_house: correct
09:27 AM rue_house: hint?
09:27 AM rue_house: no, wake up
09:28 AM rue_house: everything would have to be relative
09:28 AM rue_house: keep going
09:30 AM rue_house: but they need to come out the same
09:31 AM rue_house: you need this for starcharting too
09:31 AM rue_house: if I do it with proportional distances
09:31 AM rue_house: mh
09:32 AM rue_house: then, if its 3 points
09:32 AM rue_house: I'll leave you with it
09:32 AM rue_house: ok, well 3 distances
09:33 AM rue_house: one one triangle to fit
09:33 AM rue_house: it'll identify the points
09:33 AM veverak: one triangle to fit them all!
09:34 AM rue_house: I pick a point, translate the slave till they match, and work out the rotation for the others?
09:36 AM rue_house: 6 calls to dist2d
09:37 AM rue_house: 3 tests to see which set of distance ratios is most similar
09:37 AM rue_house: one translate to match one point
09:38 AM rue_house: one call to inscribed() to get a rotation angle
09:39 AM rue_house: but
09:39 AM rue_house: has to be a rule about no flipped image
09:39 AM rue_house: so how can we make sure all the points are in clockwise order
09:40 AM rue_house: take the middle of the triangle and get the angles of each point
09:40 AM rue_house: so, why dont we just do it by angle
09:40 AM rue_house: well you forgot to scale in your solution anyhow
09:40 AM rue_house: ah right
09:41 AM rue_house: using angles removes scale and distance from the equation
09:42 AM rue_house: ok, so I get the angles, around the midpoint for each, in say, clockwise order, match them up with 3 tests
09:42 AM rue_house: I can use that midoint as a translational offset
09:42 AM rue_house: I'll prettymuch already know the angle offset
09:43 AM rue_house: and then I need to know the scale
09:43 AM rue_house: which I can do by taking the distnace between two of the points and ... math
09:44 AM rue_house: so, what I need is a fn that tells me the 'middle' of a triangle
09:44 AM rue_house: its not called middle
09:44 AM rue_house: I know
09:45 AM rue_house: centroid
09:45 AM rue_house: thanks
09:53 AM rue_house: ok the 2d library now has a centroid fn!
09:55 AM rue_house: - find the centroid of each set of points
09:55 AM rue_house: - go to work
09:55 AM rue_house: what!?
09:55 AM rue_house: yea, time!
09:55 AM rue_house: uuuuugh
09:56 AM rue_house: it'll be inscribed(A,c,B)
09:56 AM rue_house: how do we know the points are both in ... clockwise order
09:57 AM rue_house: make sure the angles always go...
09:57 AM rue_house: up?
09:57 AM rue_house: so we need a sort
09:57 AM rue_house: yea, trivial thing with 3 points
09:57 AM rue_house: k
09:58 AM rue_house: normalize both sets
09:58 AM rue_house: then match up the angles
09:59 AM rue_house: then you have offset and rotation
09:59 AM rue_house: by then you know which point is which, so re-order them to match, and pick two and work out the scale
10:00 AM rue_house: dont we have a library somewhere that has a transform spec?
10:01 AM rue_house: only offset and scaale for servos
10:01 AM rue_house: nothing for 2d manipulations
10:02 AM rue_house: question
10:02 AM rue_house: yes?
10:03 AM rue_house: why cant this be for 3d? you can have another set of scale and rotate vectors
10:03 AM rue_house: not yet, do that later
10:03 AM rue_house: I mean, using the 3 2d points, it could tell you the plane and stuff
10:03 AM rue_house: later
10:04 AM rue_house: but...
10:04 AM rue_house: GO TO WORK
01:41 PM Tom_itx is now known as Tom_L
04:51 PM Miyu is now known as hackkitten
09:15 PM Tom_L: shh.. nobody say anything til rue_house shows up
09:23 PM orlock: i got some code for him
09:24 PM orlock: http://en.crypt.net.au/sketches/Equatorial_Basic_RA_DEC_LX200_Driver.ino ESP_UDP_Serial_Bridge.ino
09:24 PM orlock: http://en.crypt.net.au/sketches/ESP_UDP_Serial_Bridge.ino and http://en.crypt.net.au/sketches/QuadEncoderInturruptAndTrigger_working_serial_with_conversion_t.ino
09:25 PM orlock: rue: http://en.crypt.net.au/sketches/ESP_UDP_Serial_Bridge.ino and http://en.crypt.net.au/sketches/QuadEncoderInturruptAndTrigger_working_serial_with_conversion_t.ino
09:38 PM Luminax-Work is now known as LuminaxWk
10:55 PM rue_house: heh, thansk TOM
10:55 PM rue_house: orlock, so, is that 8266 ardino?
10:56 PM Tom_L: umm, what do you use to clone a drive?
10:56 PM rue_house: well, when its BAD I use cat
10:56 PM Tom_L: i'm making a spare backup for the upgrade
10:56 PM Tom_L: no it's not bad
10:56 PM rue_house: but otherwise I just backup filres
10:56 PM rue_house: rsync
10:57 PM Tom_L: but this is winders
10:57 PM rue_house: yea
10:57 PM rue_house: you cant just backup windows
10:57 PM rue_house: lots of special files
10:57 PM Tom_L: sure you can
10:57 PM synja: nah man
10:57 PM rue_house: norton ghost?
10:57 PM synja: nortons ghost is the best
10:57 PM synja: yep
10:57 PM rue_house: why are you doing this gain?
10:58 PM rue_house: again?
10:58 PM Tom_L: no, my ver of ghost won't work on these
10:58 PM rue_house: yea, windows
10:58 PM rue_house: special junk
10:58 PM synja: how can it not work?
10:58 PM Tom_L: i'm using the samsung migration tool for this
10:58 PM Tom_L: but i've got 'reflect' also
10:58 PM synja: Tom_L, use the version from hirens boot disk
10:58 PM Tom_L: i've used that before
10:58 PM synja: well, there's WIM
10:58 PM synja: if ghost doesn't work....
10:59 PM Tom_L: my ghost is too old
10:59 PM synja: that doesn't seem right
10:59 PM synja: ghost worked on pretty much anything
10:59 PM Tom_L: it's about 80% done anyway
10:59 PM Tom_L: using the samsung tool
10:59 PM rue_house: but orlock I'm looking for the bit that goes on the esp8266
10:59 PM synja: then why are you asking?
10:59 PM rue_house: he does this
11:00 PM Tom_L: just to see if something better might be available
11:00 PM synja: lol
11:00 PM Tom_L: and to see what you would do
11:00 PM synja: well there are, but apprently you can't get them to work
11:00 PM synja: :P
11:00 PM Tom_L: and to break the fucking silence here
11:00 PM synja: :|
11:00 PM rue_house: ok rue, whats for supper?
11:00 PM rue_house: spagetti
11:00 PM rue_house: again?
11:01 PM rue_house: yes
11:01 PM rue_house: but
11:01 PM Tom_L: i had macaroni n cheese
11:01 PM rue_house: shut it, spagetti
11:01 PM Tom_L: with hamburger and extra cheese added
11:01 PM rue_house: looks like I'm having spagetti
11:01 PM orlock: Back from lunch
11:01 PM orlock: full of noodles
11:01 PM synja: worked all day and only had a sandwich
11:01 PM synja: not even hungry...
11:02 PM rue_house: orlock, hey, what about the code that goes on the esp8266?
11:02 PM orlock: rue_house: the 8266 isnt an arduino, but the arduino IDE supports it
11:02 PM rue_house: yes
11:02 PM rue_house: but none of those start a network socket and junk
11:02 PM rue_house: ?
11:03 PM rue_house: apparently rue is going to stand in the kitchen bashing a pot with a spoon till I go start supper, brb, sound is unbearable
11:05 PM orlock: rue_house: The listening socket -> serial out is the final part to do
11:05 PM orlock: rue_house: so there will be another bit of code thats the opposite of the one that reads from serial and writes to UDP
11:05 PM orlock: It's been running in python on a linux host so far
11:07 PM orlock: rue_house: the bit you are after will be another sketch i write tonight
11:10 PM Tom_L: ok that went rather well
11:18 PM rue_house: yea, the esp8266 socket stuff is what I'm eager to know
11:19 PM rue_house: <rue_house> normalize both sets
11:19 PM rue_house: <rue_house> then match up the angles
11:19 PM rue_house: <rue_house> then you have offset and rotation
11:19 PM rue_house: <rue_house> by then you know which point is which, so re-order them to match, and pick two and work out the scale
11:19 PM rue_house: <rue_house> dont we have a library somewhere that has a transform spec?
11:19 PM rue_house: <rue_house> only offset and scaale for servos
11:19 PM rue_house: ok
11:22 PM * rue_house stares at rues instructions blankly
11:22 PM rue_house: it looks like a good place to start..... would be a good cup of tea
11:24 PM orlock: rue_house: See how i did the rotation/timre stuff?
11:25 PM rue_house: roughly
11:25 PM rue_house: :) I cant see how you did the udp stuff tho
11:26 PM rue_house: - fix DESK LIGHT
11:26 PM rue_house: - fix keychain
11:27 PM orlock: I will probably just use this or similar:
11:27 PM orlock: https://github.com/esp8266/Arduino/blob/master/doc/esp8266wifi/udp-examples.rst
11:29 PM rue_house: using asterisks as the netowrk name AND the password, THATS clever!
11:29 PM rue_house: nobody would suspect
11:33 PM rue_house: I need to make a bunch of like 3db inline audio amplifiers
11:46 PM rue_house: so, one way to propell the ship is to keep a mass infront of you that you fall into
11:46 PM rue_house: another way is to create a time-space vortex that creates a timespace depression, and fall towards that
11:47 PM rue_house: another way is to have something behind you that has a bunch of timespace-flux, increaing the timespace pressure behind you
11:47 PM rue_house: and you roll away from it
11:48 PM rue_house: hmmmm
11:48 PM rue_house: OUCH
11:48 PM rue_house: BUT HOW THE HELL DO i MAKE SUR THE ROLLRS ON MY CHAIR DONT BITE MY TOES
11:48 PM rue_house: damnit...
11:49 PM rue_house: ok, apparently I never created an object for handling lists of points
11:52 PM mrdata__ is now known as mrdata
11:54 PM rue_house: oooh, its in 3d
11:54 PM rue_house: hmmmm
11:59 PM rue_house: I wonder if I should just make it a wrapper of my 3d library