#robotics Logs
Sep 05 2017
#robotics Calendar
12:09 AM rue_house: but can you find one of putting a foam cup in a vacuum chamber
12:12 AM rue_house: extra size me
01:33 AM anonnumberanon: Ok so i have many servo codes
01:34 AM anonnumberanon: Lady ada's 16 channel 12 bit one
01:34 AM anonnumberanon: deshipu's tote's one
01:34 AM rue_house: its not 12 bit
01:34 AM anonnumberanon: Rue's one
01:34 AM rue_house: ok?
01:34 AM rue_house: mine is
01:34 AM rue_house: nobody else has that resolution
01:35 AM anonnumberanon: And a bunch of stuff i wrote myself to try and beat the system but with less than conclusive evidence of success.
01:35 AM anonnumberanon: Which one is not 12?
01:36 AM rue_house: the "12" bit, 16 channel one
01:36 AM rue_house: its NOT 12 because its 12 bits over 50ms
01:36 AM anonnumberanon: How u know?
01:36 AM rue_house: mine is 12 bits over 2.5ms
01:36 AM anonnumberanon: It seems new
01:36 AM rue_house: look at it
01:36 AM rue_house: read the chip specs
01:37 AM anonnumberanon: Ill paste it too
01:37 AM rue_house: 12 bits is ... 1024 2048 4096
01:37 AM rue_house: so 4096 counts over 50ms
01:37 AM rue_house: thats 81.92 over 1ms
01:38 AM anonnumberanon: https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library?files=1
01:38 AM rue_house: the range for a servo is 0.5ms to 2.5ms
01:38 AM rue_house: thats 163.8 counts lets call is 164
01:38 AM rue_house: thats *just* more than 7 bits
01:38 AM rue_house: less than 8 bits
01:38 AM rue_house: advertized, cleverly as 12
01:39 AM rue_house: /rant
01:39 AM anonnumberanon: Oh yeah. Urs only does 7 servos rite?
01:39 AM anonnumberanon: 0 to 7
01:40 AM anonnumberanon: Oh wait no. 8
01:41 AM rue_house: mine does 8
01:41 AM rue_house: with *perfect* timing
01:42 AM anonnumberanon: I can spit on my own face with *perfect accuracy*.
01:43 AM anonnumberanon: (I use the wind)
01:46 AM orlock: rue_house: i think i've gotten my robot controller code down to a nice level of simplicity
01:46 AM orlock: rue_house: I only pay attention to the time when we see an encoder pulse, and what direction it's in
01:47 AM orlock: the time between pulses translates to a throttle value
01:47 AM orlock: and if the wheel does not turn, theres no pulses, so the timer continually increments until it decides it's stationary
01:48 AM orlock: i was going to worry about velocity decay and averages and all that crap - but turns out it Just Works
01:48 AM orlock: i'll upload it when i get home and have access to it again
01:49 AM anonnumberanon: https://www.google.com/url?q=https://cdn-shop.adafruit.com/datasheets/PCA9685.pdf&sa=U&ved=0ahUKEwjetaLBso3WAhWC6yYKHQswBjQQFggiMAA&usg=AFQjCNF-KjIVIUtMr8Q3N9F8Wrqd2Ysx7A
01:49 AM anonnumberanon: They use pca9685
01:49 AM rue_house: exactly
01:49 AM anonnumberanon: Wich u talk to with i2c
01:49 AM rue_house: yes
01:49 AM rue_house: and its 12 bit
01:49 AM rue_house: over 50ms
01:49 AM rue_house: not over the servo signal range
01:49 AM rue_house: do you see what my gripe is?
01:50 AM anonnumberanon: Yeah
01:50 AM rue_house: less than 8 bits
01:53 AM anonnumberanon: You havent demonstrated it to me yet though.
01:53 AM anonnumberanon: I'm inclined to agree.
01:53 AM * anonnumberanon reads dadasheet
01:59 AM anonnumberanon: Parenthesis here: lets stop chasing numbers and setup an experiment to acquire real number goals. The resolution but be good enough to allow the stabilization of a train that contains an accelerometer on it and holds a glass full of liquid or whatever. For the sake of portability to robots, lets say the tray is held by 16 or more servos.
01:59 AM anonnumberanon: s/train/tray
02:01 AM anonnumberanon: As i feel that lack of resulution may make the system shaky or with oscillation.
02:08 AM anonnumberanon: Yeah rue if you could explain why "over 50ms". I dont have it yet.
02:11 AM rue_house: its 12 bits, spread over 50ms
02:12 AM rue_house: the servo pulse is NOT 50ms
02:12 AM rue_house: its 0.5 to 2.5ms (not the 1-2ms advertized)
02:13 AM anonnumberanon: Why do u say 50ms?
02:14 AM rue_house: you need to read servo 101
02:14 AM anonnumberanon: No i read it.
02:15 AM rue_house: http://ruemohr.org/~ircjunk/tutorials/elex/hobbyservo/servo101.html
02:15 AM rue_house: then you know what 50ms is
02:16 AM anonnumberanon: Right ur getting mixed up with 50 hz maybe
02:16 AM anonnumberanon: So 20 ms
02:17 AM anonnumberanon: 20/4096=
02:17 AM anonnumberanon: 4.88 milliseconds
02:17 AM anonnumberanon: Thats the resolution.
02:18 AM anonnumberanon: Now
02:18 AM anonnumberanon: 2400-600
02:18 AM anonnumberanon: Is tge servo range
02:18 AM anonnumberanon: =1800
02:18 AM anonnumberanon: So finally
02:18 AM anonnumberanon: 1800/4.88
02:19 AM anonnumberanon: = 369
02:20 AM anonnumberanon: So between 8 and 9 bits?
02:20 AM anonnumberanon: Interestingly close to 360 degrees however
02:31 AM anonnumberanon: Man i cant wait to get into arm. Maybe it will offer more potential than avr for NOP pwm timing.
02:44 AM rue_house: but you can just use the hardware timer
02:47 AM anonnumberanon: Yeah thats the best solution so far.
02:48 AM orlock: WHy did i think vi needed a /g at the end for a search and replace to be global?
02:49 AM deshipu: because vim does
02:49 AM orlock: It's the %s apparently, not the /g
02:49 AM orlock: deshipu: no?
02:49 AM deshipu: /g is for multiple hits on a line iirc
02:49 AM orlock: not on debian's release of version 7.2.445
02:50 AM orlock: %s without /g replaced everything
02:50 AM orlock: Unsure if it did it multiple times on a line
02:50 AM deshipu: read the docs
02:51 AM rue_house: anonnumberanon, would you like to see the m328+2x4017 code for running 16 servos?
02:52 AM rue_house: and yea, sory, 20ms - 50Hz
02:52 AM deshipu: orlock: :he s_flags
02:52 AM anonnumberanon: Rue yes i dont know if i still have it
02:52 AM rue_house: I'm not trying to explain it anymore cause nobody is listening and nobody cares
02:53 AM rue_house: I dont think I published it
02:53 AM anonnumberanon: There was code online that i was playing with with 4017s
02:54 AM rue_house: yes, I published the stm32 code
02:54 AM rue_house: for 24-88 servos
02:54 AM rue_house: not the m328 code for 16 servos
02:54 AM anonnumberanon: Nah im saying from another source
02:54 AM anonnumberanon: I have it running on my robot video
02:55 AM rue_house: ok, I wont worry about it then
02:55 AM anonnumberanon: On the scope its when you see waves of pulses
02:55 AM anonnumberanon: I hated that code so much
02:55 AM rue_house: its still not 12 bits
02:55 AM anonnumberanon: All i remember about it. Dont know why.
02:55 AM rue_house: what my code, 24000?
02:56 AM rue_house: so a bit less then 17 bits
02:56 AM anonnumberanon: Was hard to play with iirc. Not urs the one i was using in my video.
02:56 AM rue_house: too bad me, you, and Jak_o_Shadows cant get togethor at the same time
02:57 AM rue_house: gnight
02:57 AM anonnumberanon: What does Jak do?
02:57 AM rue_bed: he's working on the same thing
02:58 AM rue_bed: "he"? anyhow
02:58 AM anonnumberanon: Ah cool. A neighbor?
02:58 AM rue_bed: no idea, should be up now
02:58 AM anonnumberanon: Wats his robot?
02:58 AM rue_bed: awefull timezone, prettymuch opposeite to me
02:58 AM rue_bed: so must be gmt+8
02:59 AM rue_bed: er, no I cant do math now
02:59 AM rue_bed: gmt+12-8
03:01 AM anonnumberanon: I did fuckall this weekend i hope i can do some real work with this this week.
03:01 AM rue_bed: I got mine installed and tested
03:01 AM rue_bed: two channels have problems, I think its bad soldering
03:01 AM rue_bed: cause apparently the servos are ok on the dummy channels
03:02 AM rue_bed: I'v been really suprised latley with bad soldering joints, its not like I'm in a hurry
03:12 AM rue_bed: I need macros
03:13 AM rue_bed: so, what do I need macros for
03:13 AM rue_bed: what do I do
03:13 AM rue_bed: supper
03:13 AM rue_bed: over and over and over
03:13 AM rue_bed: restart burnt supper
03:14 AM rue_bed: hmmm
03:22 AM anonnumberanon: But ur solderer went out?
03:24 AM anonnumberanon: I need a small cortex m4 dev board at 168mhz
03:25 AM anonnumberanon: I think i can make the best servo driver with that
03:26 AM anonnumberanon: This one aint bad but was hoping for $5
03:26 AM anonnumberanon: http://m.ebay.com/itm/STM32F407VGT6-ARM-Cortex-M4-32bit-MCU-Core-Development-Board-STM32F4Discovery-/112159189243?epid=685348947&hash=item1a1d3568fb%3Ag%3AC68AAOSwkaZZcs-n&_trkparms=pageci%253A1cd4c3db-920f-11e7-b998-74dbd18043ec%257Cparentrq%253A510661d515e0a9e46d7612abfff97c54%257Ciid%253A3
03:28 AM deshipu: why do you need an m4 if you are going to use hardware timers anyways?
03:29 AM deshipu: or do you want to do it in software?
03:35 AM anonnumberanon: Yeah software
03:37 AM anonnumberanon: Avre328 wasnt fast enough for that
03:38 AM anonnumberanon: And for a good resolution avr is limited to 8 channels apparently
03:38 AM anonnumberanon: At this point its just an academic exercise though
03:39 AM anonnumberanon: Since servos dont need all those really high resolutions
03:48 AM anonnumberanon: https://www.carminenoviello.com/2015/09/04/precisely-measure-microseconds-stm32/
04:05 AM anonnumberanon: Lol what a jackass(from another article): "To get the nanosecond delays you can use the _delay_us() function with a floating point argument, e.g. _delay_us(0.0015) will give you an exact 1.5 nanosecond delay. In a next WinAVR release the new _delay_ns() and delay_ps() functions are expected which should work with all range of AVR MCUs except the Tiny15."
05:00 AM Jak_o_Shadows: +9.30 i think atm
05:00 AM Jak_o_Shadows: will be +10.30 at some point soonish?
05:01 AM Jak_o_Shadows: anyway. Gonna dig out that IK code that better handles constraints
05:01 AM Jak_o_Shadows: What I SHOULD be doing is writing that android app to set the alarm clock time
05:01 AM Jak_o_Shadows: but meh
05:13 AM Jak_o_Shadows: well, it runs,but it doesn't work
09:22 AM rue_house: Jak_o_Shadows, what the input to your ik processor?
09:25 AM rue_house: I have a big 1cm grid for 'calibration'
09:25 AM rue_house: tho, its occuring to me that for real world stuff force feedback is a must
10:11 AM deshipu: real world stuff is overrated
10:12 AM deshipu: face it, even large companies can't make anything larger than a roomba reliable
10:12 AM deshipu: unless it's bolted to the floor
10:13 AM deshipu: we will always be building toys
10:14 AM veverak: :D
10:14 AM veverak: deshipu!
05:56 PM KimK_ is now known as KimK
08:26 PM Tom_L: http://ssd.userbenchmark.com/Compare/Samsung-960-Evo-NVMe-PCIe-M2-1TB-vs-Samsung-850-Evo-1TB/m211052vs3576
08:27 PM Tom_L: so the M.2 buss is a tiny bit faster
10:28 PM s3nd1v0g1us is now known as jowdai
10:30 PM jowdai is now known as s3nd1v0g1us
10:39 PM rue_shop3: there will be a stall on the hexapod for a while
10:39 PM rue_shop3: it was borrowed for an art show
11:03 PM Tom_itx: really?
11:04 PM rue_house: yea, going to try to make sure its not gone for a whole month
11:05 PM rue_house: have to work out software stuff anyhow
11:05 PM Tom_itx: the table size one you started first?
11:05 PM Tom_itx: wire frame?
11:05 PM Tom_itx: or another one..
11:06 PM rue_house: the one I was just working on
11:06 PM rue_house: the 3d printed one
11:06 PM Tom_itx: haven't seen that one
11:06 PM rue_house: http://ruemohr.org/~ircjunk/robots/frankenhex/p1090284.jpg
11:06 PM rue_house: really?
11:07 PM Tom_itx: never
11:07 PM rue_house: where you been
11:07 PM Tom_itx: looks good
11:07 PM rue_house: thats why I'm hammering away at all this servo jump
11:07 PM rue_house: junk
11:07 PM rue_house: hmm, my macro co-ordination is comming apart
11:07 PM rue_house: iiiintersting
11:07 PM Tom_itx: you should print a spare anyway
11:08 PM rue_house: 18 servos, forget that
11:08 PM rue_house: its questionable if it will just look like something fancy tho
11:08 PM rue_house: dont know if its got enough strength to move
11:08 PM Tom_itx: servos too small?
11:09 PM rue_house: AND to really be practical, it NEEDS force feedback
11:09 PM rue_house: they look like they can just barely lift the body
11:09 PM Tom_itx: new MB on it's way
11:10 PM rue_house: for?
11:10 PM Tom_itx: gonna put it in my main pc
11:10 PM rue_house: ah
11:10 PM rue_house: was thinking that just 2 weeks ago
11:10 PM rue_house: but I decided that tech hasn't improved enough
11:10 PM Tom_itx: it's got a gigabyte in it now, replacing it with a gigabyte
11:10 PM rue_house: not for the trouble
11:10 PM Tom_itx: M.2 makes it attractive
11:11 PM rue_house: till all your ssd's only last 6 mo
11:11 PM rue_house: then the speed isn't worth much
11:11 PM Tom_itx: 1.5x gain over the ssd i currently have
11:11 PM Tom_itx: 3yr warranty
11:11 PM rue_house: and what about your downtime waiting for a replacement to arrive?
11:11 PM Tom_itx: i've got backups
11:11 PM Tom_itx: just plug one in
11:11 PM rue_house: and all the data shuffling you have to do for the new driv
11:12 PM rue_house: and rying to recover backups of stuff you did last night
11:12 PM Tom_itx: should be able to mirror it
11:12 PM rue_house: ssd's pissed me off
11:12 PM Tom_itx: i can tell
11:12 PM Tom_itx: you got early ones that had bad mtbf
11:12 PM rue_house: I have 2 here that I dont know if I'd trust as a table leg shim
11:13 PM rue_house: this wasn't early tho, really
11:13 PM rue_house: they were out for years
11:13 PM orlock: OS default settings were also bad for early SSD's
11:13 PM Tom_itx: what brand?
11:13 PM rue_house: I tweeked it
11:13 PM orlock: So you could kill them quickly
11:13 PM rue_house: two brands,
11:13 PM Tom_itx: i've had good luck with samsung
11:13 PM Tom_itx: got 5-6 of em now
11:13 PM Tom_itx: maybe more
11:13 PM orlock: we have a few 400Gb Intel PCIe SSD's
11:14 PM orlock: they are nice
11:14 PM Tom_itx: that hdd that died on my mill pc has a ssd now
11:14 PM Tom_itx: mine are 500 & tb
11:14 PM Tom_itx: pcie is fast
11:14 PM rue_house: ADATA and I cant find them, I think kingston
11:15 PM Tom_itx: http://ssd.userbenchmark.com/Compare/Samsung-960-Evo-NVMe-PCIe-M2-1TB-vs-Samsung-850-Evo-1TB/m211052vs3576
11:15 PM Tom_itx: compared to what i have now
11:15 PM rue_house: I got ones with good write speeds
11:16 PM rue_house: most drives have a good read speed and a SUCK write speed
11:16 PM Tom_itx: 1388 MB/s write
11:17 PM Tom_itx: 2114 MB/s read
11:17 PM Tom_itx: they advertise more
11:17 PM Tom_itx: peak write was 1517
11:17 PM Tom_itx: on that test
11:20 PM Tom_itx: rue_house, did you design the hex or print an already designed one?
11:33 PM rue_house: the PLAN was to take different bits of different peopels designs and made one good robot from them, filling in a little peice here and there
11:33 PM rue_house: the tip of the leg was just printed
11:33 PM rue_house: but after that I couldn't find any good designed parts
11:34 PM rue_house: so I designed the rest of it
11:38 PM orlock: Whats th difference between Serial.write and Serial.print in arduino-land?
11:39 PM orlock: print automatically asciifys?
11:40 PM orlock: yes, seems like thats it. Yay.
11:41 PM rue_house: I thik print puts a '\n' on the end
11:42 PM orlock: thats print vs println i think?
11:43 PM orlock: i'm doing a serial.print(0xC6) and i see 198 in the serial console
11:44 PM orlock: but serial.write will send the raw binary value?
11:45 PM orlock: 22 days till compitition day
11:46 PM orlock: https://arduino.stackexchange.com/questions/10088/what-is-the-difference-between-serial-write-and-serial-print-and-when-are-they
11:48 PM rue_house: calc 0xC6
11:48 PM rue_house: 0xC6 -->> 198
11:49 PM rue_house: try write(0x55)
11:50 PM rue_house: U
11:51 PM rue_house: what kinda competition?
11:51 PM orlock: 3kg sumo bot
11:51 PM rue_house: 3kg... wow
11:51 PM orlock: using the same bot as last year
11:51 PM orlock: but with a human controlling it
11:51 PM orlock: this is the quadrature encoder + potentiometer thingy
11:51 PM rue_house: yep
11:52 PM rue_house: hmm ai
11:52 PM orlock: so i've got those two imputs mapped into left/right throttle values
11:52 PM orlock: being spat out via serial, read by an ESP8266, send via UDP wirelessly
11:52 PM rue_house: yusing that formula ?
11:52 PM rue_house: I gave ya?
11:52 PM rue_house: oh oh oh give me the esp8266 code
11:53 PM rue_house: I have a rov I wanna do
11:53 PM orlock: where they end up at another ESP8266, whhich then sends the data to the motor controller
11:53 PM orlock: Yup, will upload it all tonight. The serial-UDP ESP bridge code is very simple
11:53 PM rue_house: is the esp8266 stn or ...other
11:54 PM rue_house: what port did you use?
11:54 PM orlock: Give me the link to your formula again?
11:54 PM rue_house: take me 15 mins to find it
11:54 PM orlock: I'm using potentiometer for throttle, and then the timing between encoder pulses for handling the left/right steering
11:55 PM orlock: so i do not bother keeping track of the encoder position, except to see if it's turning left or right
11:55 PM rue_house: // Tractor mixing:
11:55 PM rue_house: // SpeedL = X + Y;
11:55 PM rue_house: // SpeedR = Y - X;
11:56 PM orlock: the important value from the encoder is the time between pulses
11:56 PM rue_house: oh yea, I need to do that for the large mowerbot
11:56 PM rue_house: but I'm not doing that
11:56 PM rue_house: I'm not?
11:56 PM rue_house: no, remember you r tracking vector with a caster wheel
11:56 PM rue_house: oh, right...
11:57 PM orlock: That was about 10 years ago
11:57 PM orlock: Same motors and motor driver in this robot!
11:57 PM orlock: and wheels!
11:57 PM orlock: But that chassis didnt fit into the 20cm square footprint
11:57 PM rue_house: 20cm!?
11:58 PM rue_house: at 3kg?
11:58 PM rue_house: how tall?
11:58 PM orlock: Unlimited, but mines maybe 10cm tall?
11:58 PM rue_house: can you even buy lead billots?
11:58 PM orlock: I think it's abuot 100g over currently
11:58 PM rue_house: !
11:59 PM rue_house: your allowed to use uranium?
11:59 PM rue_house: or you just used gold?
11:59 PM orlock: They don't say i can't
11:59 PM orlock: but the only yellowcake i have access to is raw
11:59 PM rue_house: you saw the tractor mixing?