#robotics Logs
Jun 02 2017
#robotics Calendar
12:07 AM anonnumberanon: sounds like an exercise in self-torture are you sure you're gonna be okay?
12:10 AM anonnumberanon: i can link you a datasheet for the atmega8 as therapeutic reading, lemme know
12:20 AM rue_house: I think I found it
12:20 AM rue_house: I put a pot on it and the value stabalized
12:20 AM rue_house: 01963
12:20 AM rue_house: 01964
12:20 AM rue_house: 01965
12:20 AM rue_house: 01966
12:22 AM rue_shop3: well, the value changes with the pot
12:22 AM rue_shop3: but...
12:22 AM rue_shop3: it tops out at 4096
12:23 AM anonnumberanon: minimal arm board plus mini lipo plus battery charging circuit plus nrf24l01 == great new IoT module
12:23 AM rue_shop3: I thought this was a 16 bit adc
12:23 AM anonnumberanon: would be nice to keep everything under 5 beucks
12:24 AM rue_shop3: 2 x 12-bit, 1 μs A/D converters (up to 16channels)
12:24 AM rue_shop3: k, 12 bit should be 4096
12:24 AM rue_shop3: right
12:24 AM rue_shop3: cause 10 bit is 1024
12:24 AM rue_shop3: ok, so its fine
12:27 AM rue_shop3: filter cap helps
12:28 AM rue_shop3: 66
12:28 AM rue_shop3: 00167
12:28 AM rue_shop3: 00166
12:28 AM rue_shop3: 00166
12:28 AM rue_shop3: 00167
12:28 AM rue_shop3: 00167
12:28 AM rue_shop3: 00163
12:29 AM anonnumberanon: you have a serial to it already?
12:29 AM anonnumberanon: also do you use arm-gcc?
12:35 AM rue_house: CC := $(PREFIX)-gcc
12:35 AM rue_house: PREFIX ?= $(toolchainPath)arm-none-eabi
12:36 AM rue_house: I'm just using a serial usb adapter
12:37 AM rue_house: no software usb juk
12:37 AM rue_house: n
12:53 AM rue_house: there is a lot of system setup code
12:54 AM rue_house: http://paste.debian.net/960011/
01:02 AM rue_house: http://robotics.mcmanis.com/articles/20140623_retargeting-libc.html
01:02 AM rue_house: hmmm
01:02 AM rue_house: apparently I have 64k of flash on these stm32's
01:03 AM rue_house: thats probably enough for printf, main, and one other function
01:10 AM rue_house: intesting
01:11 AM rue_house: sprintf...
01:11 AM rue_house: sprintf(string, "Value is: \r");
01:11 AM rue_house: works
01:11 AM rue_house: but
01:11 AM rue_house: sprintf(string, "Value is: %d\r", 5); // dosn't work
03:48 AM Jak_o_Shadows: Everything seems like it's going well!
03:48 AM Jak_o_Shadows: Id'd be interested if you got chained ADC reading working.
03:48 AM Jak_o_Shadows: I don't think it's hard, but I havne't bothered yet
09:19 AM z64556 is now known as z64555
09:21 AM rue_house: I'm targeting getting the stuff I need for controlling the modified servo
09:22 AM rue_house: so, pulse capture, and outputting servo pulses
09:22 AM rue_house: I have the 50Hz going
09:22 AM rue_house: next I need the 2.5ms one-shot
09:23 AM rue_house: I'll tie it togethor with software at first, then set them up to intertrigger
09:23 AM rue_house: then maybe later I'll set it up with the DMA to do multiple channels
09:24 AM rue_house: then laaaaaaaaaaaaater maybe some code to use a 4017, which means one timer could run 32 servos (using all 4 channels)
09:25 AM rue_house: I was wrong about the resolution
09:25 AM rue_house: I came up with 60000 counts
09:25 AM rue_house: but thats for 2.5ms
09:25 AM rue_house: the 0.5ms takes off 12000 counts
09:26 AM rue_house: so, only 48000 counts of resolution
09:26 AM rue_house: which I THINK is the same as the avr had
09:28 AM rue_house: I'd have thought the high speed would have done better, but after you cross the 16 bits with the 2.5ms, its prolly just what you get
09:28 AM rue_house: maybe I'll write something to try other combinations and see
09:28 AM rue_house: nothing like using a 3Ghz processor to brute-force a solution
09:34 AM rue_house: sprintf didn't work, I'm not surprised and am not goingto persue it
09:56 AM z64555: oh, hey, happy birthday, anonnumberanon
09:59 AM rue_house: ?... mmm ditto?
10:15 AM z64555: gah, something bit me on my back, right above my spine
10:17 AM BitEvil: z64555: was it a crocodile?
10:17 AM z64555: no, the bit is quite small, and appears to be more of an insect bite like with a mosquito
10:18 AM z64555: I have a welt about a cm in diameter, which leads me to believe it was a mosquito
10:18 AM rue_house: sounds like a spider bite
10:19 AM rue_house: did you roll over on that spider that was crawling along your back last night?
10:19 AM z64555: I'm allergic to mosquitos, they welt up like that
10:20 AM z64555: didn't feel anything, the bite happened while I was still awake
10:30 AM rue_house: thats a fine thing to say, what if your still asleep and this is all just a dream?
10:32 AM z64555: Well, my muscles don't ache when I'm dreaming
10:32 AM z64555: and my muscles are aching right now
10:33 AM z64555: so this is probably not a dream
10:34 AM rue_house: so you have done flying, falling alseep, but not aching ?
10:34 AM rue_house: 13.3.10 One-pulse mode
10:34 AM rue_house: THIS is what I want...
10:34 AM rue_house: :S plat fetilizer on hand, wiped mouth ICKGH
10:36 AM z64555: rue, that's plant food. you should be ashamed of stealing their food. :P
10:38 AM rue_house: there might have been rooting compound mixed with it, I'm not going to grow roots am I!?
10:38 AM * rue_house tires tog et out of hsi chair...
10:39 AM rue_house: oh god, they are starting the counter from before the rollover, setting the ouput on the rollover, and using the compare match to clear it
10:40 AM rue_house: that just hurts my head
10:40 AM z64555: this seems complicated
10:41 AM rue_house: they keep doing this
10:41 AM rue_house: they have a pulse width capture system
10:42 AM rue_house: they use two inputs, set for seperate edges, one resets the counter, one captures the value
10:43 AM * rue_house thinks
10:43 AM rue_house: 7 mins I have to leave for work
10:49 AM rue_house: :( have to go
10:50 AM rue_house: see if you ahve find an example of using OPM (one pulse mode) with functions from libopencm3
10:52 AM z64555: who me?
10:52 AM z64555: D:
12:07 PM veverak: ok
12:07 PM veverak: I thought calculating energy cost of moving 3DOF arm would be easy
12:07 PM veverak: but hey
12:07 PM veverak: anyway
12:07 PM veverak: I have 2DOF arm, I know moment of intertia for both joints separatedly
12:07 PM veverak: how they affect each other?
12:11 PM BitEvil: Surely if you can calculate it for 1DOF, you can do it for n. You simply compute a MOI for each joint, with all the downstream joints in all the possile positions.
12:11 PM BitEvil: And yes, this is a combinatorial explosion if you do it that way
12:12 PM veverak: MOI?
12:12 PM veverak: btw: this is ment for graph, where each vertex of graph expresses one joint configuration
12:13 PM veverak: and edge is price of changing from one configuration to other
12:13 PM veverak: so, V0 -> V1 configuration change, where angle differences should be small
12:14 PM BitEvil: moment of inertia
12:15 PM veverak: well
12:15 PM veverak: given that it should be only approximation
12:15 PM veverak: I can always configure MOI of joint assuming that all other joints are NOT moving
12:15 PM BitEvil: Also, assuming MOI is the only load is flawed, weight and inertia for one. PLus, you can't consider each joint isolated, plus you can't assume minimum theoretical energy to move is going to be closely related to others.
12:16 PM veverak: yeah
12:16 PM veverak: it has to be approximation anyway
12:16 PM veverak: BitEvil: eh, I count weight in
12:16 PM veverak: inertia also
12:17 PM veverak: it's just that I have completely isolated version now, joints don't considered other joints
12:17 PM veverak: I think I will code code that considers other joints static and it should be good enough
12:19 PM veverak: (I just need somehow relevant data for test runs, real deal should use data measured by feedback)
12:23 PM BitEvil: Ther are existing packages to do this
12:23 PM BitEvil: I don't offhand know names
12:58 PM veverak: yeah
12:58 PM veverak: I just merge mass/mass_center of actual joint with it's subjoints
12:58 PM veverak: :)
01:27 PM veverak: aaaand done
01:27 PM veverak: but I think I should start to write tests
04:13 PM BitEvil: They're blowing it up and removing it so they can excavate down to bedrock and fill it back up with a shitton of concrete to level
04:13 PM BitEvil: https://www.youtube.com/watch?v=hbg0uZc7fnM Cool drone footage (not mine) from the repair of the Oroville Dam spillway.
06:10 PM BitEvil is now known as SpeedEvil
08:31 PM zhanx: ok tough decision but i made it. Not starting my big robot this summer
08:36 PM SpeedEvil: yay!
08:37 PM SpeedEvil: http://imgur.com/gallery/QlZ0R
08:37 PM zhanx: not really but...
08:38 PM SpeedEvil: Well - time to think over the design properly, at least.
08:38 PM SpeedEvil: And learn stuff
08:39 PM zhanx: wow that guy got lucky SpeedEvil
08:39 PM SpeedEvil: yeah
08:40 PM zhanx: yea the wife is begging me to wait till winter and make a couple of cedar canoes this summer instead of the robot, and promises not to complain while i make it
08:40 PM SpeedEvil: make a robot that can also make canoos
08:41 PM zhanx: no these are for the kids
09:02 PM z64555: plot twist: the canoes are parts of the robot
09:03 PM zhanx: plot twist robot runs on water
09:04 PM z64555: hey there we go
09:05 PM SpeedEvil: http://i.imgur.com/aGFJagI.gif On locomotion
09:05 PM zhanx: actually i was gonna air power it with a weed eater mower
09:06 PM zhanx: SpeedEvil: yep looks about right
09:10 PM z64555: qwop: horse edition
09:38 PM rue_house: zhanx, you know a test for someone who got a tick bite?
09:39 PM rue_house: SpeedEvil, hahahahah
09:40 PM zhanx: rue_house: lime disease test
09:40 PM rue_house: ok, how ya do that?
09:41 PM zhanx: doctors
09:41 PM rue_house: cause a few months ago I suspected I got a tick bite, and now my fingers are intermittently painfull@joints. headaches and dizzyness are almost common for me...
09:41 PM rue_house: *sigh*
09:41 PM rue_house: doctors are so difficult to hook up with
09:42 PM rue_house: SpeedEvil, needs about 4000 more evolution itterations
09:42 PM SpeedEvil: :)
09:43 PM zhanx: lime
09:43 PM zhanx: rue_house: google it
09:49 PM z64555: bullseye around the bite area is a clear sign of lyme desease
09:49 PM z64555: headaches, dizzyness are also symptoms of dehydration, tho
09:49 PM zhanx: z64555: after a few months that is gone
09:50 PM z64555: hm
09:51 PM zhanx: wifes' grandfather got one, on his head never found it, it left and he got lime disease from it
09:57 PM rue_house: I had some kinda something on my head a few months ago
09:57 PM rue_house: I'm not sure how lime disease goes but its scarry
09:57 PM rue_house: I just read that symptoms can not turn up for months
09:58 PM rue_house: but this joint pain in my fingers is really out of place
09:58 PM zhanx: rue you need to get it checked, this is not the first time you brought this up
09:59 PM rue_house: yea, I'll go in tommorow
09:59 PM zhanx: good rue is not good dead or in a wheel chair drooling
10:00 PM rue_house: fingers been aching for like a week now, so whatever it is, is moving slowly
10:00 PM rue_house: if anything
10:21 PM anonnumberanon: z64555, thanks :)
10:22 PM anonnumberanon: man I'm trying to diagnose my calf injury, which muscle and how to treat it
10:25 PM rue_house: hum, unless I drill down into what all the libopencm3 functions do, I'm going to ahve a hard time setting up the timers one_shot mode
10:27 PM Tom_L: rue_house, do i need to call to make sure you go see the doc?
10:29 PM rue_house: there is so much traffic here its insanity
10:30 PM rue_house: I'm worried tho, I'd like to get the tests going now
10:30 PM anonnumberanon: start charging for passage
10:30 PM rue_house: I went to emergency at the hospital and they said they were busy and to go to a walkin clinic tommorow
10:30 PM rue_house: na, the trafffic is my securrity system
10:31 PM rue_house: I'm tired, gonna get sleep
10:31 PM rue_house: trying to code and its not happening
10:31 PM Tom_L: me too
10:31 PM rue_house: void oneshot_init(void) {
10:31 PM rue_house: timer_reset(TIM2);
10:31 PM rue_house: // nvic_enable_irq(NVIC_TIM2_IRQ);
10:31 PM rue_house: timer_set_mode(TIM2, TIM_CR1_CKD_CK_INT, TIM_CR1_CMS_EDGE, TIM_CR1_DIR_UP);
10:31 PM rue_house: timer_set_prescaler(TIM2, 24000); //168000000/16800 = 10000 ticks/s
10:31 PM rue_house: timer_set_period(TIM2,2000); // 10000/10000 = 1s
10:31 PM rue_house: timer_one_shot_mode(TIM2);
10:31 PM rue_house: // gpio_set(GPIOD, GPIO12|GPIO13|GPIO14);
10:31 PM rue_house: // timer_enable_irq(TIM2, TIM_DIER_UIE);
10:31 PM rue_house: // timer_enable_counter(TIM2);
10:31 PM rue_house: }
10:31 PM rue_house: :P its not even close tow orking
10:31 PM Tom_L: been out hammering nails
10:34 PM Tom_L: what's that supposed to do? send out a single pulse?
10:35 PM rue_house: yes
10:35 PM Tom_L: does the timer stop then or what?
10:35 PM rue_house: I have one timer doing a low-resolution 50hz trigger
10:35 PM rue_house: and the second timer doing the 0.5-2.5ms pulse times
10:36 PM rue_house: with that method I get a really good resolution
10:36 PM rue_house: I'd get better if I offloaded the first 0.5ms
10:37 PM Tom_L: are arm 32bit?
10:37 PM rue_house: I think so
10:38 PM rue_house: STM32F100xx
10:38 PM rue_house: advanced ARM?-based 32-bit MCUs
10:38 PM Tom_L: what's the difference between that and say an arm7 or arm9?
10:38 PM rue_house: no idea
10:39 PM rue_house: these arm boards are less than $2usd
10:39 PM Tom_L: i know
10:39 PM Tom_L: i wonder if it's just the mfg
10:39 PM rue_house: its arm, so the arch is going to stick around
10:39 PM rue_house: I'm looking at transitioning from avr
10:39 PM rue_house: maybe
10:39 PM Tom_L: cheaper and alot more powerful
10:39 PM Tom_L: but harder to init
10:39 PM rue_house: its only like 64k memory space
10:40 PM rue_house: so, its not like its a pi
10:40 PM rue_house: I relate the change like going from BASIC to C
10:40 PM rue_house: alot more of #include { } () in C to get the same job done
10:40 PM Tom_L: it reminds me some of the 68332
10:40 PM Tom_L: i miss that
10:41 PM Tom_L: you could offload alot of stuff on that
10:41 PM Tom_L: to the TPU
10:41 PM Tom_L: and leave the main processor to do other stuff
10:41 PM rue_house: its got lots of toys, like the 7? channel dma
10:42 PM rue_house: so far, I have serial, timers, and adc working
10:42 PM Tom_L: i've been watching
10:42 PM rue_house: (and gpio)
10:43 PM rue_house: the stm32 stuff is still really green, like avr was in 2001
10:43 PM anonnumberanon: wow that's interesting
10:43 PM anonnumberanon: well for potential careers and jobs
10:44 PM rue_house: getting used to this is crazy tho
10:44 PM rue_house: there are so many flags in registers for interlinking thigns
10:44 PM anonnumberanon: huh? what's the main differences? I never played with arm code
10:44 PM rue_house: cant get my head around it yet
10:45 PM anonnumberanon: is the datasheet good?
10:45 PM rue_house: its just oranges instead of bannanas, you have to unwrap them differently
10:45 PM rue_house: the datasheet that describes all the registers and systems properly was a challange to find
10:47 PM rue_house: instead of bit set/clear instructions, they set up regions of memory that are mapped to bits...
10:47 PM rue_house: intersting
10:48 PM rue_house: Writing to address 0x2200 6008 has the same effect as a read-modify-write operation on bit 2 of the byte at SRAM address 0x2000 0300
10:52 PM Tom_L: doesn't make sense to me
10:52 PM rue_house: they took an area of memory and made it a bitmap of another area
10:53 PM Tom_L: we could remap the interrupt vector table on the 68332. is that the same thing?
10:53 PM rue_house: no
10:53 PM rue_house: imagine 9 bytes of memory
10:53 PM rue_house: where the first byte is normal
10:53 PM rue_house: and the other 8 are 0|1 depending on the 8 bits in the first
10:56 PM Tom_L: what do you gain by that?
10:57 PM rue_house: instuction free bit mapping
10:57 PM rue_house: for SBI / CBI equiv
11:03 PM rue_house: ... they have a parallel memory controller
11:09 PM rue_house: "sleeping is just bringing me closer to death without having gotten anything done"
11:17 PM deshipu: I think not sleeping is bringing you to death faster
11:47 PM anonnumberanon: rue_house, whatever makes it so that you last as long as you can and may have the chance of experiencing rejuvenation technology and brain upload backups
11:51 PM anonnumberanon: now the conundrum is, do you work on things more in hope to advance humanity and or throw energy at the world and help making that technology possible one day (I'm sure working on robotics has at least some to do with biotechnology and that stuff, i mean the more science is done the more science occurs), and in the process you lose a lot of sleep risking to lose a few years of living life, maybe even dying right before the
11:51 PM anonnumberanon: rejuvenation technology is discovered, or you just wait it out and play it safe, making the bet that since you're not a geneticist anyway, you'll just have to depend on them to bring it to us and make sure you're really safe and healthy so you can live long enough to see it, and amass money so you can afford the treatment when it comes about
11:51 PM anonnumberanon: also,
11:52 PM anonnumberanon: longest fucking sentence I ever wrote, I think I beat theBear on that one.