#robotics Logs

Aug 20 2017

#robotics Calendar

12:46 AM Jak_o_Shadows: This is simpler, and for the lights controller it will eventually go in, it'll work fine.
12:49 AM Jak_o_Shadows: who cares about a little jitter there?
12:53 AM rue_shop3: I just spent about 2 horus remaking a makefile to find out the origional problem I had might have been bec ause of a source file conflict
01:00 AM Jak_o_Shadows: I spent a couple of hours yesterday with a hardfault
01:00 AM Jak_o_Shadows: I was giving the function (that I wrote) the wrong input arguements
01:00 AM Jak_o_Shadows: Not wrong enough to give a compiler error mind
01:28 AM rue_shop3: oh funny
01:28 AM rue_shop3: its giving me the BCD has hex
01:33 AM rue_shop3: yaaaaaaaaaay
01:34 AM rue_shop3: I'v connected a DS1307 to a max7219
01:34 AM rue_shop3: its displaying seconds!
01:35 AM Jak_o_Shadows: directly?
01:35 AM Jak_o_Shadows: Also, now I need to go from PWM -> servo
01:36 AM rue_shop3: no, I put a 8 core zeon with 16G of ram in the middle using java to shovel the data
01:36 AM Jak_o_Shadows: good choice. More extensbile
01:36 AM rue_shop3: how do you mean pwm to servo?
01:36 AM rue_shop3: :)
01:37 AM rue_shop3: your not using 1 pwm channel to do the whole servo signal are you?
01:37 AM rue_shop3: not over the full 50ms?
01:37 AM Jak_o_Shadows: I 100% believe I am. It's a pca9685, what do you expect
01:37 AM rue_shop3: but....
01:38 AM rue_shop3: 2 timers and a 4017 can do insane timing
01:38 AM Jak_o_Shadows: but... I don't have one of them :P (yet)
01:38 AM rue_shop3: is the pca 2 or 3 wire?
01:38 AM Jak_o_Shadows: This is a temporary solution
01:38 AM Jak_o_Shadows: i2c -> GND, SCL, SDA
01:38 AM rue_shop3: k
01:40 AM rue_shop3: stm or avr?
01:40 AM Jak_o_Shadows: stm
01:40 AM rue_shop3: 32?
01:40 AM Jak_o_Shadows: stm32f103c8t6
01:40 AM rue_shop3: yeaaaa
01:40 AM rue_shop3: did you look at my 1 servo code?
01:41 AM rue_shop3: the paws ...
01:41 AM Jak_o_Shadows: I have lost the zip you did
01:41 AM rue_shop3: the crickets in the background
01:41 AM Jak_o_Shadows: But I think so - cause I have 1 servo working
01:41 AM rue_shop3: but
01:41 AM rue_shop3: but
01:43 AM rue_shop3: http://ruemohr.org/~ircjunk/software/stm32.tgz
01:43 AM rue_shop3: but the blood and sweat I spent to make all that
01:47 AM rue_shop3: I just used that makefile to redo an avr makefile, works nicely now
01:55 AM Jak_o_Shadows: yeah, I have seen some of that code before
01:55 AM rue_shop3: I WROTE THAT
01:56 AM rue_shop3: it was PAINFULL
01:56 AM Jak_o_Shadows: YES
01:56 AM Jak_o_Shadows: WAIT UNTIL YOU get to DMA
01:56 AM rue_shop3: like slowly pushing a coathanger thru yourself pain
01:56 AM rue_shop3: I been looking over it a bit
01:56 AM rue_shop3: I have ideas
01:56 AM rue_shop3: like avoid()
01:56 AM rue_shop3: :) I do want to play with it
01:57 AM rue_shop3: its a good thing I know how dma works, cause their docs are horrid
01:57 AM Jak_o_Shadows: yes, yes they are
02:10 AM Jak_o_Shadows: ok, pwm frequency of 55Hz
02:10 AM Jak_o_Shadows: with 4096 steps per thing
02:10 AM rue_shop3: 55?
02:10 AM rue_shop3: only 4k?
02:10 AM rue_shop3: :)
02:11 AM rue_shop3: but I got to 24000
02:16 AM Jak_o_Shadows: Yeah, only 12 bit apparently
02:17 AM rue_shop3: the rest didn't fit in the clock rate
02:17 AM rue_shop3: ok, SO
02:17 AM rue_shop3: I think I have a working hour meter on a m328
02:18 AM rue_shop3: the challange is to put it on a t13
02:18 AM Jak_o_Shadows: So this WAS directly yeah? NO stm or avr?
02:18 AM rue_shop3: no I have an m328 shoveling
02:18 AM Jak_o_Shadows: ah, ok
02:18 AM rue_shop3: every second I write the seconds to the rtc's sram, I update and change hours too
02:18 AM rue_shop3: I count off 3600 manually by watching the time change
02:19 AM Jak_o_Shadows: yup
02:19 AM Jak_o_Shadows: that's similar to how I did my clock with the stm32
02:19 AM rue_shop3: I'm at about 1400 bytes right now
02:19 AM rue_shop3: I think the t13 has 1k
02:19 AM Jak_o_Shadows: where was your explanation of how a servo worked?
02:20 AM rue_shop3: ruemohr.org
02:20 AM rue_shop3: http://ruemohr.org/
02:20 AM rue_shop3: http://ruemohr.org/~ircjunk/tutorials/elex/hobbyservo/servo101.html
02:21 AM rue_shop3: http://ruemohr.org/~ircjunk/tutorials/elex/hobbyservo2/p1080887.jpg
02:21 AM rue_shop3: I didn't finsih part 2
02:21 AM rue_shop3: with the current detector
02:21 AM rue_shop3: http://ruemohr.org/~ircjunk/tutorials/elex/hobbyservo2/p1080888.jpg
02:22 AM Jak_o_Shadows: Was looking for part 1
02:22 AM rue_shop3: that keyboard should go thru a dishwasher,
02:22 AM rue_shop3: so its clean enough to throw away
02:22 AM rue_shop3: :)
02:22 AM rue_shop3: its solder flux, really...
02:23 AM rue_shop3: ARG 3600 seconds is SOOOO LONG
02:23 AM Jak_o_Shadows: aha
02:23 AM Jak_o_Shadows: yeah. That was one of the issues with testing my alarm clock
02:24 AM rue_shop3: the last part, I should have something that dosn't write to the eeprom if the power is going away
02:24 AM rue_shop3: maybe I should see if I can get it to fit on a t13 first
02:25 AM rue_shop3: 1300...
02:26 AM rue_shop3: or.... just use a tiny85
02:26 AM rue_shop3: OR a cheaper atmega8
02:33 AM rue_shop3: hmmm
02:34 AM rue_shop3: I could save lots of space if I used BCD and ditched this divide-by-10 thing
02:34 AM rue_shop3: d = i % 10;
02:34 AM rue_shop3: send16(max7219MakePacket(cmdDIG0+5, d));
02:34 AM rue_shop3: i /= 10;
02:34 AM rue_shop3: doing that 6 times isn't nice to a small avr
02:42 AM Jak_o_Shadows: hey! I did maths on it and it actually worked
02:43 AM Jak_o_Shadows: Not that the 1ms and 2ms pulses seem to be getting it to the right spots
02:45 AM rue_shop3: hmm
02:45 AM rue_shop3: I wonder if I should write the 4017 version of my avr code tonight
02:45 AM rue_shop3: then I'm ready to port it to the stm32 for my 24 servo version
02:46 AM rue_shop3: then I'd be ready to get the hexapod going
02:54 AM rue_shop3: hobbydriver
02:54 AM rue_shop3: oh, it already does 8 servos
02:57 AM rue_shop3: oh well thats funny
02:57 AM rue_shop3: this isn't optimized at all
02:57 AM rue_shop3: wait, wtf
02:57 AM rue_shop3: every 2.5ms it starts a new channel
02:58 AM rue_shop3: then again, I suppose its all the same then in the end
02:58 AM rue_shop3: spaces out the triggers evenly
03:03 AM rue_shop3: I want to make an 8 channel manual servo controller
03:29 AM rue_house: or maybe I should make a manual controller for my serial servo controller
03:43 AM Jak_o_Shadows: Then my st-link stops working
03:43 AM Jak_o_Shadows: seems like a good spot to stop
04:14 AM rue_house: Jak_o_Shadows, sometimes they go funny and you need to retry a few times
04:15 AM rue_house: areyou using my makefile?
04:56 AM Jak_o_Shadows: Nah, my makefile
04:56 AM Jak_o_Shadows: which works, traditionally
04:56 AM Jak_o_Shadows: I tried a few times - rebooted as well, swapped ports
05:27 AM rue_bed: iirc mine uses a different method to program it
05:27 AM rue_bed: give it a try
11:44 AM rue_bed: ok so, doing a 4017 version of the code would just be for like a practise excersize as it wont help me yet
11:45 AM rue_bed: unless
11:46 AM veverak: got fuckin damn it
11:46 AM veverak: spent hours thinking bout how to organize datastructure
11:46 AM veverak: maybe now I've got something decent
11:46 AM rue_bed: hmm, if the timer clears the port itself, then the timing of the irq isn't as critical
11:46 AM rue_bed: veverak, for?
11:46 AM veverak: rue_bed: big ass lazy gnerated graph
11:47 AM rue_bed: and if the timing requirements are backed off, maybe I can have two channels going
11:47 AM veverak: that is generated on one side, and dropped on the other
11:47 AM rue_bed: dropped?
11:47 AM rue_bed: oh, hmm
11:47 AM rue_bed: why is it dropped?
11:48 AM veverak: because that part of the graph is not needed anymore
11:48 AM veverak: :)
11:48 AM rue_bed: ah
11:48 AM rue_bed: so, you kinda need a streaming data format for a graph
11:48 AM veverak: can be viewed that way
11:48 AM veverak: rue_bed: also, "indexed" (in database manner)
11:48 AM veverak: or I think it should be
11:49 AM rue_bed: ah, more than 1 value graphed?
11:49 AM veverak: lazy generation means that I have to find all existing neighbours of specific vertex
11:49 AM veverak: ah
11:49 AM veverak: rue_bed: graph as vertexes and edges
11:49 AM veverak: :0
11:49 AM veverak: :)
11:49 AM rue_bed: hmm
11:50 AM rue_bed: so, a 3d graph
11:50 AM veverak: up to 12 dimensions
11:50 AM veverak: indexiing is not a problem, got that prepared
11:50 AM rue_bed: is it recieved by a browser?
11:50 AM veverak: nope
11:50 AM veverak: rue_bed: it's think I am working on for a while
11:51 AM rue_bed: sql?
11:51 AM veverak: vertex -> state of robot
11:51 AM veverak: edge -> price for change of state
11:51 AM rue_bed: hmm
11:51 AM veverak: algorithm: find shortest path from actual state into goal state
11:51 AM rue_bed: dont like use of the word state like that
11:51 AM rue_bed: hah, I path finder
11:51 AM rue_bed: I did one of those
11:52 AM veverak: rue_bed: actual state is: state of for legs + 6 dof state of body
11:52 AM veverak: *four
11:52 AM veverak: as for state of leg, I am still playing with what to use
11:52 AM rue_bed: bestroute
11:53 AM veverak: yep
11:53 AM veverak: well
11:53 AM veverak: not best route
11:53 AM veverak: route close to best
11:53 AM veverak: :)
11:53 AM * veverak got "Anytime" version of algorithm
11:53 AM rue_bed: no, thats what I called mine
11:53 AM veverak: ah :)
11:54 AM rue_bed: I define a map of nodes and paths between them, with distances
11:54 AM rue_bed: you tell it what node yuour on, and where you wnat to get to, it works out the shortest seq of paths
11:54 AM rue_bed: so, I dont think it will help you
11:55 AM veverak: nope, that's what I use
11:56 AM veverak: but I've got that algorithm finished
11:56 AM veverak: it's the data structure above it
11:56 AM veverak: *under it
11:56 AM rue_bed: --->HIT! N5 via T2 new cost = 5 <------
11:56 AM rue_bed: yes, my node/path encoding is evil
11:57 AM veverak: nah
11:57 AM veverak: will just write soemthing
11:57 AM veverak: *something
11:57 AM veverak: and benchmark it until I am happy
11:57 AM rue_bed: mine uses recursion
11:59 AM rue_bed: http://codepad.org/coW1b9S9
12:04 PM rue_bed: I think you have to be in the groove for it to make sense
12:04 PM rue_bed: right now I'm not
12:05 PM rue_bed: it might help if I did it like ethernet, and each node had a 'routing table'
12:09 PM rue_shop3: the goal of that code is for a robot to find its way around tracks on the house floor, to rooms
12:09 PM rue_shop3: are you using it to avoid collisions of the legs to their paths?
12:09 PM rue_shop3: er positions
12:16 PM veverak: no, I am using it to plan to motion itself
12:17 PM veverak: rue_shop3: goal is to minimalize the price of changing states from 'start' to 'goal'
12:17 PM veverak: that prize is sum of 'time'/'energy' prices for edges
12:17 PM veverak: and 'stability' prices for vertexes
12:18 PM rue_shop3: hmm
12:19 PM veverak: meaning it should prefer state changes that result in high stability
12:26 PM rue_shop3: I'm excited to have the new 18 axis that I can use to show the world how a hexapod should walk :)
12:26 PM rue_shop3: actually, since I set out on my mission, I'v seen ONE person do it right
01:41 PM veverak: rue_shop3: hmm
01:41 PM veverak: worst part
01:41 PM veverak: is debugging
01:41 PM veverak: I am not sure how to debug it
01:41 PM veverak: :/
06:14 PM rue_shop3: take it apart into its components, test the base most components first, and do minimilistic unifications, each of which is tested, untill its fully assembled
06:28 PM Tom_itx is now known as Tom_L
09:15 PM rue_shop3: backing up the fileserver and blowing out the dust is prolly a good idea
09:16 PM rue_shop3: at the dust rate in this shop there could be a good half kg of dust in there
09:39 PM Luminax-Work is now known as LuminaxWk
09:40 PM Snert: dust rhinos.
09:40 PM rue_shop3: WHERE!!!!
09:40 PM Snert: under the bed
09:40 PM rue_shop3: BETTER NOT BE PUSHING OVER MY DESK AGAIN
09:40 PM Snert: behind the fridge
09:41 PM rue_shop3: is that why the thermostat sticks?
09:41 PM Snert: you just need an ecobee
09:42 PM rue_shop3: bee sharp?
10:21 PM rue_shop3: oh
10:21 PM rue_shop3: I haven't upgraded my shop fileserver
10:21 PM rue_shop3: its still using 200G drives
10:21 PM rue_shop3: which is funny
10:21 PM rue_shop3: cause this backup drive is 300G
10:21 PM rue_shop3: huh
10:27 PM rue_shop3: hmm that 2015 backup was huge
10:30 PM rue_shop3: ok gonna shutdown the fileserver, this will cause grief
10:31 PM rue_shop3: :/ only been up 30 days
10:36 PM Tom_L: asking for trouble
10:36 PM Tom_L: practically begging...
11:17 PM rue_shop3: hmm, the workstation didn't like having it dissapear and come back
11:31 PM Luminax-Work is now known as LuminaxWk