#robotics | Logs for 2016-12-20

Back
[00:04:01] <rue_house> I just realized that the keys on a keybaord are laid out like they are so that the spacing between the levers to the hammers works out...
[00:04:19] <rue_house> which is why the number pad is straight
[00:47:01] <rue_shop3> wow, it FUCKED UP the snowflake AGIAIN for the 10th freaking time
[00:47:10] <rue_shop3> amazing
[00:47:18] <rue_shop3> I really thought I had it this time
[00:48:31] <mrdata> what snowflake
[00:54:45] <rue_shop3> oh its hitting a hard limit tooo
[00:55:03] <rue_shop3> for 2 days now I been trying to use a cnc machine tto cut a snowflake out of a cd
[03:42:06] <rue_shop3> well, I almost got one
[03:42:10] <rue_shop3> broke another bit
[03:42:14] <rue_shop3> :/
[03:54:08] <Triffid_Hunter> rue_shop3: need water squirter, otherwise the plastic melts and grabs your bit
[09:12:59] <pokmo> hi
[09:13:48] <pokmo> i'm trying to make a prototype crank. it's meant to be relatively small. each connecting rod is around 50mm x 10mm
[09:14:06] <pokmo> well, not one, but several - for testing
[09:14:13] <pokmo> does anyone know what might be some good materials?
[09:14:28] <pokmo> i haven't got a 3d printer
[09:55:34] <SpeedEvil> for what
[13:18:36] <rue_house> what kidna engine?
[13:18:56] <rue_house> Triffid_Hunter, I'm running a low rpm, and its been working, I also have a air puffer to clear bits
[13:19:05] <rue_house> pokmo, what kinda engine
[13:57:37] <anonnumberanon1> You guise have seen this already right? https://www.youtube.com/watch?v=NCrBC_V92hY
[14:00:48] <z64555> external power source, right?
[14:03:58] <anonnumberanon1> yeah
[14:04:08] <anonnumberanon1> next step is carry-on power source too
[14:04:11] <z64555> yep. looks like a neat toy
[14:04:41] <anonnumberanon1> ok im going back to work
[14:04:44] <anonnumberanon1> ttyl
[14:09:35] <rue_house> god thats a lot of lag
[14:09:56] <rue_house> aand those are a LOT of machine billents of aluminum
[14:10:04] <rue_house> thats got to be a like $5M project
[14:10:46] <z64555> must be nice to have access to that kinda of money
[14:10:56] <z64555> can make one big robot or millions of little ones
[14:11:23] <deshipu> join a corporation, they said, who needs a soul, they said
[14:12:36] <rue_house> that delay could only be from running over a network connection
[14:12:41] <rue_house> thats sad
[14:12:59] <rue_house> there had to be about 300ms there
[14:13:00] <rue_house> ugh
[14:13:08] <rue_house> that would be impossable to do anything with
[14:13:15] <deshipu> vim ftw
[14:13:20] <rue_house> LOUD, I'm wondering if my pneumatic bot will be better
[14:13:24] <z64555> They might be running it via debugger
[14:13:57] <rue_house> its cool, dont know how many points I'd give it tho
[17:17:28] <deshipu> so I just discovered the CORDIC algorithms
[17:17:40] <deshipu> marvelous
[18:26:05] <rue_shop3> whats that?
[18:26:08] <rue_shop3> for walking?
[18:29:38] <theBear> you can't walk on algorithms silly ! you need legs and some kinda feet or maybe hooves for walking
[18:33:55] <SpeedEvil> https://www.youtube.com/watch?v=SbyAZQ45uww - on the topic of walking.
[18:35:32] <SpeedEvil> https://www.youtube.com/watch?v=ftV2HeKPeBM - more on toipic.
[18:35:43] <rue_shop3> ah, cant do youtube on this thing
[18:35:58] <SpeedEvil> (hex walker timber harvester)
[18:42:32] <rue_shop3> oh, I hate that thing
[18:42:42] <rue_shop3> but I think its from the late 70's
[18:44:23] <SpeedEvil> more 80s I suspect.
[18:44:50] <SpeedEvil> If you don't have good controls, you pretty much have to keep it slow or you fall over lots.
[18:54:35] <rue_house> ugh, winter is depressing
[18:54:52] <z64555> yup. keep your vitamin intake steady
[18:55:32] <rue_house> just had a bowl of vitimin ICECREAM...
[18:56:15] <z64555> what flavor(s)?
[18:56:38] <rue_house> vanilla soaked in orange
[19:15:25] <z64555> So vanilla ice cream float with orange soda?
[19:15:43] <z64555> or that stuff that passes off as "orange sherbert"
[20:08:58] <rue_shop3> orange juice
[20:59:28] <rue_shop3> ok the slave adc avr is working on the force feedback controller
[20:59:52] <rue_shop3> SO, now I need to wire up a current detector
[20:59:53] <Jak_o_Shadows> What protocol is it a slave over?
[21:00:25] <rue_shop3> I had troubles with that
[21:00:33] <rue_shop3> its isp, but only kinda
[21:01:03] <Jak_o_Shadows> isp? That says to me in-system programmer, which, er?
[21:01:45] <rue_shop3> the master holds a pin low, to say it wants to get new data, the slave t26 catches it and waits for it to go high, when the master puts it high, the slave puts a packet byte into the transmitter, the master waits for a bit and clocks in the value
[21:02:11] <rue_shop3> its because those chips lack proper interrupts for doing transfers
[21:02:21] <Jak_o_Shadows> oh, wait, SPI? Gotcha.
[21:02:29] <rue_shop3> oh sorry
[21:03:01] <rue_shop3> so, the pwm is ~1ms and the adc cycles all 9 channels in ~10ms
[21:03:24] <Jak_o_Shadows> So you get 9 channels per slave chip?
[21:03:37] <rue_shop3> so, catching the current values is gonna be trickey
[21:03:38] <rue_shop3> yea
[21:03:50] <rue_shop3> 9 channels from a tiny26, for, 30c?
[21:03:52] <rue_shop3> 10 bit
[21:04:07] <rue_shop3> its WAY cheaper than a 10bit 9 channel adc chip (!?!?!)
[21:04:16] <Jak_o_Shadows> Oh yeah, absolutely
[21:04:18] <Jak_o_Shadows> Why SPI?
[21:04:34] <rue_shop3> I can move the data fast
[21:05:04] <Jak_o_Shadows> Is it overly much faster than something like SPI?
[21:05:04] <rue_shop3> its clocking at about 8Mhz iirc
[21:05:15] <Jak_o_Shadows> (I'm not argueing, just that I'm planning something similar)
[21:05:19] * rue_shop3 segfualts
[21:05:21] <Jak_o_Shadows> ^i2c*
[21:05:33] <rue_shop3> i2c is horrid
[21:05:38] <rue_shop3> toooo much overhead
[21:06:08] <rue_shop3> the mega8 thats being a master just has to start the subsystem to transfer a byte, it does it at the end of the getByte()
[21:06:22] <rue_shop3> so that its happening as the other code is running
[21:06:23] <Jak_o_Shadows> The address parts?
[21:06:39] <rue_shop3> no, there is just one master and one slave
[21:06:47] <rue_shop3> BUT
[21:06:52] <rue_shop3> one could chain them
[21:07:21] <rue_shop3> on the slave there is a mosi that isn't used, it could be the miso of another adc slave
[21:07:30] <rue_shop3> and you clock 16 bits instead of 8
[21:08:35] <Jak_o_Shadows> I hadn't thought of chaining SPI stuffs. So you'd have extra code on all but the last slave?
[21:08:51] <rue_shop3> nope, everyone would be the same
[21:09:03] <rue_shop3> all the slave is doing is a write to its shift register
[21:09:13] <rue_shop3> which is ultimitly triggered by the master
[21:09:28] * rue_shop3 thows in some optional vowels
[21:09:52] <Jak_o_Shadows> I dunno if I'm chaining it the same way
[21:10:10] <rue_shop3> its for a feedback loop, I need really low latency
[21:13:06] <rue_shop3> the atmega8 operates a current control feeback loop
[21:13:23] <rue_shop3> yea I need to build a keybaord...
[21:13:33] <Jak_o_Shadows> I was thinking this: http://pasteall.org/pic/show.php?id=110295
[21:13:39] <rue_shop3> it takes in current, and reports back positon
[21:13:55] <rue_shop3> yup
[21:14:08] <rue_shop3> and you clock 32 bits
[21:15:07] <rue_shop3> each packet is two bytes
[21:15:19] <rue_shop3> and gives a channel address and a 10 bit value
[21:15:24] <rue_shop3> [0][c3][c2][c1][c0][v2][v1][v0]
[21:15:24] <rue_shop3> [1][v9][v8][v7][v6][v5][v4][v3]
[21:15:24] <rue_shop3>
[21:15:25] <rue_shop3> c0-c3 are channel
[21:15:25] <rue_shop3> v0-v9 are value
[21:16:58] <rue_shop3> want to take a look at the code I'm using?
[21:18:51] <Jak_o_Shadows> Sure.
[21:19:09] <rue_shop3> I want to be using somethine like a T1 stream, but space...
[21:19:15] <rue_shop3> I need consistant timing
[21:19:52] <Jak_o_Shadows> In the diagram I drew, each slave in line temporarily stores stuff from the previous slaves
[21:20:18] <Jak_o_Shadows> So you'd need much more clocks than data - unless you get clever and have multiple transfers happening simultaneously
[21:20:21] <rue_shop3> yea, they are just shift registers, no code requires
[21:20:22] <rue_shop3> d
[21:20:58] <Jak_o_Shadows> I think I understand.
[21:22:09] <rue_shop3> http://ruemohr.org/%7Eircjunk/avr/code/Adcstream.tgz
[21:22:21] <rue_shop3> its got all the junk, I didn't prune it
[21:23:34] <Jak_o_Shadows> ty
[21:23:57] <rue_shop3> tell me if you have any amazing improvements
[21:25:12] <rue_shop3> mmm TDM
[21:28:28] <rue_shop3> hyperdejavu
[21:28:34] <Jak_o_Shadows> You haven't put the recieving stuff in yet?
[21:28:46] <rue_shop3> Tom_L, can you find, in the logs, the last time I said dejavu?
[21:29:06] <rue_shop3> Jak_o_Shadows, you dont need to, the hardware just passes the bits thru the shift register
[21:29:18] <Tom_L> it was in the previous line you posted
[21:29:38] <rue_shop3> SI is automatically clocked into the shift register as its clocked to SO
[21:29:41] <rue_shop3> :/ thanks
[21:29:44] <Jak_o_Shadows> ohhhh
[21:29:46] <Jak_o_Shadows> gotcha
[21:31:19] <Tom_L> rue_shop3, you never said it here
[21:31:23] <Tom_L> just thebear and rifraf
[21:31:27] <rue_shop3> hmm
[21:32:38] <rue_shop3> ? it dosn't compile, wtf...
[21:32:53] <Tom_L> python looks interesting
[21:33:15] <Jak_o_Shadows> The dobyte bit?
[21:33:19] <rue_shop3> it makes good use of oop methods
[21:33:22] <Tom_L> it must be _the_ go to compler for linux
[21:33:42] <rue_shop3> yea, I'm trying to work out... what ..
[21:34:36] <rue_shop3> its a packet reciever
[21:34:40] <rue_shop3> it shouldn't be here
[21:35:59] <rue_shop3> commented out....
[21:36:06] <rue_shop3> everything seems to be ok
[21:36:11] <rue_shop3> (?)
[21:36:56] <rue_shop3> I code to late night hours, and sometimes what comes out.. is ... intersting
[21:38:41] <Tom_L> nite code is what dreams are made of
[21:40:04] <Jak_o_Shadows> I've done some of my best code at night
[21:40:50] <Tom_L> i used to wake up in the middle of the night with an idea and alot of that became some of my best
[21:42:21] <rue_shop3> ok, in 1.5ms, the adc has finished converting all the channels
[21:42:43] <rue_shop3> I used to be able to tell is was too late by the syntax errors the compiler would catch
[21:43:42] <rue_shop3> OK
[21:44:04] <rue_shop3> so, the pwm runs a cycle of about 1ms
[21:44:20] <rue_shop3> in 1.5ms the slave adc has done a conversion of all the channels
[21:44:28] <Jak_o_Shadows> aliexpress search bar is limiting me to 50 characters :(
[21:44:38] <rue_shop3> in 10ms all the channel values have been transfered out of the slave
[21:45:08] <Jak_o_Shadows> This is a current loop yeah?
[21:45:20] <Jak_o_Shadows> Is it an internal loop - like, do you have a position loop outside it?
[21:45:27] <rue_shop3> the current detector has a peak detector that needs to be reset, how long does rue have to wait after a reset before taking adc values as being valid?
[21:45:34] <rue_shop3> yea
[21:45:37] <rue_shop3> force feedback
[21:45:40] <rue_shop3> so:
[21:45:56] <rue_shop3> two channels take in current and give back position
[21:46:12] <rue_shop3> the controller compares the positions and sends the same current command out to both
[21:46:25] <rue_shop3> both of them move
[21:46:55] <rue_shop3> one against the load, and one against the 'user;
[21:46:57] <rue_shop3> '
[21:47:03] <Tom_L> https://www.google.com/search?q=pacman&ie=utf-8&oe=utf-8#clb=clb
[21:47:44] <rue_shop3> ?
[21:48:04] <Tom_L> What?
[21:48:12] <Tom_L> you never played pacman?
[21:48:24] <rue_shop3> I think if I literally throw out 2 adc samples after I'v reset the peak detectors, I'm ok
[21:48:30] <rue_shop3> no games, robots
[21:49:09] <rue_shop3> I already spent time helping my friends defeat ghosts on nintendo before they went 64
[21:49:17] <rue_shop3> and shooting ducks
[21:49:34] <Tom_L> space invaders
[21:49:41] <rue_shop3> and jumping over barrles thrown by an overgrown monkey
[21:52:35] <rue_shop3> and plumbing in lands overgrown with mushrooms
[21:53:30] <rue_shop3> ok, so I should build a current amp for the channel I have set up
[21:54:01] <rue_shop3> Jak_o_Shadows, using a tlc5940 for generating the 16 pwm channels
[21:54:08] <rue_shop3> its evil, but helping
[21:54:41] <rue_shop3> (8 channel feedback controller)
[22:12:28] <Jak_o_Shadows> ahaha
[22:30:14] <rue_house> I'm intersted in controlling a robot with force fedback, but also, I'm intersted in how something like an ai could operate with a virtual model of the object being controlled
[22:34:19] <anonnumberanon1> "how something like an ai could operate with a virtual model of the object being controlled"
[22:34:37] <anonnumberanon1> please use more words or different words or rephrase or something
[22:35:30] <ace4016> you must be new to rue :P
[22:40:45] <anonnumberanon1> ace4016, you mean he must be new to me?
[22:40:52] <rue_house> well
[22:41:03] <rue_house> in force feedback , you have two devices
[22:41:10] <rue_house> but, what if one of them was virtual
[22:42:28] <rue_house> 8-x
[22:43:30] * rue_house checks ping time between keyboard and chair
[22:44:03] <rue_house> the neat thing is, that with the model I'v come up with, it dosn't matter what the devices are
[22:44:14] <rue_house> one of them can be hobby servos and the other can be pneumatic mules
[22:44:25] <rue_house> AND you can easily put a force ratio in
[22:44:55] <rue_house> aka, 1g on the robot is 10g to the operator
[22:45:08] <rue_house> which helps when working under a microscope
[22:45:41] <rue_house> dude
[22:45:43] <rue_house> yea?
[22:45:48] <rue_house> your trying to blow their minds?
[22:45:50] <rue_house> yea..
[22:45:57] <rue_house> did you consider that it worked?
[22:46:03] <anonnumberanon1> nah
[22:46:04] <rue_house> no, they just got quiet...
[22:46:05] <rue_house> yea
[22:46:14] <anonnumberanon1> i've seen this done by some chinese kids
[22:46:14] <rue_house> oh
[22:46:19] <anonnumberanon1> lol
[22:46:33] <rue_house> force feedback?
[22:46:42] <anonnumberanon1> yeah
[22:46:49] <rue_house> on what?
[22:47:04] <anonnumberanon1> they have an exoskeleton and use it to actuate small biped robots
[22:47:27] <rue_house> position contro, not force feedback
[22:48:16] <rue_house> with force feedback, you can grab the robot and make the kid hit himself on the head repeatedly
[22:48:36] <anonnumberanon1> no don't make that
[22:48:40] <rue_house> but I'd like to see if you can find a link
[22:48:45] <anonnumberanon1> unless you give it to like..
[22:48:48] <anonnumberanon1> Trump?
[22:48:51] <rue_house> haha
[22:49:04] <anonnumberanon1> https://www.youtube.com/watch?v=5ZlDaLsOapk
[22:49:10] <anonnumberanon1> this is what i was saying
[22:49:38] <anonnumberanon1> for what you're saying first of all i don't know of anything, secondable I'm not convinced of the concept..
[22:50:32] <anonnumberanon1> but it would basically be what i posted but a miniature version of it, right?
[22:50:53] <anonnumberanon1> just add motors to the exo i posted
[22:51:30] <rue_house> hahah its got less latency than that video earlier today
[22:51:31] <anonnumberanon1> so not only you can move and send a control but what you control can experience forces and that actuates motors in your exoskel?
[22:51:40] <rue_house> yea
[22:52:43] <rue_house> if you hit a motor limit, you feel it, if the motor is loaded, you feel it
[22:52:49] <rue_house> if the motor cant keep up, you feel it
[22:52:53] <anonnumberanon1> (while semi-disabling the force sensors on the exoskel)
[22:53:03] <anonnumberanon1> eton takes too long to writ
[22:53:46] <rue_house> that aiframe is becomming really popular
[22:54:08] <anonnumberanon1> i've thought about this a few times and my intuition was always that this could help to teach the user how limited the range of motion of the thing he controls
[22:54:16] <anonnumberanon1> (especially with speed)
[22:54:40] <anonnumberanon1> try to make a punch move but with our shit 2016 technology that robot will never punch as fast as you do
[22:55:40] <anonnumberanon1> im guessing robot can do it, but the controller can't understand that movement fast enough if it were say, a human arm controller(2 or three joints and stuff) that kinda maps into a robot arm
[22:56:48] <anonnumberanon1> therefore the controller limits the speed at which the human can do things, therefore the human is limited and therefore learns the limits of the machine being controlled, and thus the brain learns to use the machine being controlled better.
[22:57:09] <rue_house> and everything gets compensated for nicely
[22:57:47] <rue_house> esp if the latency is low
[22:58:03] <anonnumberanon1> well if you limit the human's motion's speed, then the power asked of the actual robot will be limited and therefore safe, whereas in other systems that don't have that you can break stuff, i guess..
[22:58:54] <anonnumberanon1> also, low latency, what are you talking about, an Arduino Servo() code? :)
[22:59:21] <anonnumberanon1> the tone() library?
[22:59:25] <anonnumberanon1> PYTHON() ?
[23:00:36] <rue_house> I write everything in C
[23:01:21] <anonnumberanon1> I was listing things that are slow.
[23:01:39] <rue_house> its accumulation
[23:01:57] <rue_house> the comms between the controllers, reading analog channels, outputting pwm values
[23:02:17] <rue_house> as long as you dont buffer anything your mostly ok
[23:02:38] <rue_house> from a webcam to a computer screen there are about 30x 1 frame buffers
[23:03:00] <rue_house> code that waits for a whole frame to come in before it passes it on
[23:05:57] <z64555> wonder if they're doing any processing on those 30 frames
[23:06:36] <rue_house> probably converting the format every time
[23:07:01] <anonnumberanon1> the camera sensor and the lense both give a pretty bad picture unless you filter them through a few algorithms
[23:07:29] <anonnumberanon1> I know I wrote one for a go-pro-type camera sensor for the Mohawk.
[23:10:44] <Triffid_Hunter> rue_house: I ran into the camera buffer problem when doing realtime computer vision.. luckily the buffers were in the host so I wrote a class that grabs frames in a thread and provides the most recent complete frame instantaneously on request.. that keeps the buffer drained and nothing ever waits for a frame (unless it requests a new frame and no new frames have come in yet)
[23:11:56] <rue_house> intersing
[23:12:32] <theBear> aww, i missed an opportunity to say something about cannot simply walk-ing earlier ;-( i'm quite fond of that one, it makes me giggle
[23:13:11] <theBear> hmm, superbia sure likes saying deja-dup, ooh, or perhaps i've got about 20 copies of the same 2 minutes of logs for some reason :)
[23:13:39] <theBear> i got "Dec 21 10:59:44 <rue_shop3> hyperdejavu" and one about 105 minutes ago :)
[23:14:00] <theBear> if that helps, i mean, i figure that's even better than finding a regular dejavu
[23:14:34] <rue_house> I was able to remmeber the thinsg I was repeating for a while after having the dejavu, but tom couldn't find them in the log
[23:14:43] <rue_house> its a consiracy
[23:15:52] <z64555> could've said them on another channel?
[23:21:48] <theBear> always the paraoia about the consiracies, crazy foreigners ;-)
[23:22:10] <theBear> if he did it wasn't avr or microcontrollers or electronics or unicycle ;-)
[23:22:38] <theBear> or a bunch of others, but i don't want you guys to think i'm some kinda super-nerd only interested in tech stuff, so i doctored the list a little ;-)
[23:23:18] <theBear> rue_house, do you do the je vous non francais du parlais francais ?
[23:25:22] <theBear> as you can see, i sure don't <wink> just had a passing wondering if they say 'si' there, you know, like spanish, but with a french accent.... it's one of the subtler points of the language, and i'm a bit odd in the noggin, so i gotta know obscurities of a language that i can barely butcher the basics of properly, once i know they're out there ;-)