#robotics Logs

Mar 31 2019

#robotics Calendar

01:08 AM rue_shop1: so this servo
01:12 AM rue_shop1: I'v got a tach on the motor
01:12 AM rue_shop1: which is the derivitive of position
01:12 AM rue_shop1: and I'm using it to integrate the speed error
01:12 AM rue_shop1: so, I'm integrating the derivitive, which cancels out
01:12 AM rue_shop1: so its already trying to hold position by speed
01:12 AM rue_shop1: hmm, what if I look at PID in a new way
01:12 AM rue_shop1: 3 targets
01:12 AM rue_shop1: position target, velocity target, and acceleration target
01:12 AM rue_shop1: which is funny
01:12 AM rue_shop1: theposition is the integral term
01:12 AM rue_shop1: which means
01:15 AM rue_shop1: wow, this seems to messed up
01:15 AM rue_shop1: why are we doing error/time ?
01:16 AM rue_shop1: its all out one step
02:31 AM rue_mohr: --
06:42 AM veverak: he
06:42 AM veverak: hehe
06:42 AM veverak: hehehe
06:43 AM veverak: 16 pcs of https://www.alibaba.com/product-detail/New-robotic-servo-full-metal-gear_60789306593.html?spm=a2700.7724838.2017115.27.330952402fUtDK arrived <3
07:33 AM deshipu: do they work?
07:33 AM deshipu: we need a detailed report
10:42 AM rue_bed: they will likley work
10:42 AM rue_bed: gain may be a little off
10:42 AM rue_bed: --
11:10 AM veverak: deshipu: soon
11:26 AM veverak: or not
11:26 AM veverak: do not have power source at home
11:26 AM veverak: :/
11:27 AM deshipu: power corrupts
11:29 AM veverak: true to that
11:29 AM veverak: and I do not have manual
11:29 AM veverak: and the application on the website... (to test it)
11:29 AM veverak: and given that seller is chinese, I expect I will have to wait few hours before answer arrives...
11:37 AM deshipu: I linked the manual here back when you ordered it
11:40 AM veverak: so
11:41 AM veverak: each servho has 8 screws
11:41 AM veverak: I guess the package of screws I got is over 160
11:47 AM veverak: aaaaaaand they are .exe files...
11:48 AM rue_mohr: what kinda servos?
11:48 AM veverak: rue_mohr: ^^ on the alibaba.com link I pasted
11:53 AM veverak: https://github.com/traylerphi/lewansoul-lx-16a
11:53 AM veverak: this wurks enough
11:57 AM deshipu: I'm struggling with displays recently
11:57 AM deshipu: I think this st7789 is just broken
12:15 PM rue_mohr: gee duplication of work makes me sad
12:16 PM rue_mohr: wow, I remember when normal servos hit $10ea, I was so excited
12:16 PM rue_mohr: interesting to see their working on getting into the digital servo market
12:17 PM veverak: rue_mohr: yeah, I've got them for 14$/piece
12:17 PM veverak: which for this kind of servo is nice
12:18 PM rue_mohr: yea
12:19 PM rue_mohr: dynamixels are crazy expensive
12:19 PM veverak: exactly
12:19 PM rue_mohr: what happened to openservo?
12:19 PM rue_mohr: they close it and go commercial?
12:19 PM veverak: simply died?
12:19 PM veverak: I do not see any activity around it
12:20 PM rue_mohr: it was based around taking a $3 servo and replacing the baord to get a i2c servo
12:20 PM veverak: yup
12:20 PM veverak: but... this situation is still stupid
12:20 PM veverak: to make 80% of the servos on market "smart"
12:20 PM veverak: you just need to attach some sort of bus to it, that's all
12:21 PM veverak: it's programmed microchip inside anyway
12:21 PM rue_mohr: sometimes
12:21 PM veverak: rue_mohr: I still believe that first guy selling sg9 servo with some bus connection will be rich
12:21 PM rue_mohr: the really cheap ones stilluse an analog chip
12:21 PM veverak: oh, yeah...
12:21 PM rue_mohr: I usually make my own servos
12:21 PM rue_mohr: I'm playing with one now
12:22 PM veverak: would like too
12:22 PM rue_mohr: using an encoder
12:22 PM veverak: but ... time :/
12:22 PM veverak: so I decided to spent univesity money
12:22 PM rue_mohr: yea
12:22 PM veverak: but given what I do for them, I think buying me 16x14$ servos is still cheap for them
12:23 PM rue_mohr: they wont care about savings
12:23 PM veverak: truth to be told I do
12:23 PM veverak: meaning
12:23 PM rue_mohr: you could buy 100 dynamixels and they would throw them out in 2 years
12:23 PM veverak: I do care about how money I am given by the laboratory is spent
12:23 PM veverak: hence why we bought only one Intel RealSense D415
12:23 PM veverak: :)
12:24 PM veverak: rue_mohr: I can imagine this happens
12:24 PM veverak: rue_mohr: but I do not like, when university spends state money on bullshit things
12:24 PM veverak: I mean, it can happen by accident
12:24 PM veverak: or something
12:24 PM veverak: but sometimes it's like ...
12:24 PM veverak: well, it's like: not under my watch, around me :D
12:25 PM rue_mohr: hmm I have a bunch of videos of my servo work over the last while
12:25 PM veverak: anyway, I have servos
12:25 PM veverak: I have camera
12:25 PM rue_mohr: but dont have anywhere to post them (it'd be a mess on youtube)
12:26 PM veverak: I suppose next year, I will finally buy some ARM board
12:26 PM rue_mohr: blue pill
12:26 PM rue_mohr: stm32
12:26 PM veverak: (something more powerfull than Rpi)
12:26 PM rue_mohr: $3
12:26 PM rue_mohr: cheaper than an arduino
12:26 PM veverak: rue_mohr: arm with linux, that has high computation power
12:26 PM rue_mohr: 72Mhz
12:26 PM veverak: meaning GB of ram
12:26 PM rue_mohr: hmm
12:26 PM rue_mohr: arg, day is silipping by on me
12:27 PM veverak: rue_mohr: just different class of device than stm32
12:27 PM veverak: however
12:27 PM rue_mohr: what my latest work has taught me, is that dx/dt is a crap way to get velocity
12:27 PM veverak: as long as I don't mind having the robot connected to my laptop via cable
12:27 PM rue_mohr: w/encoder
12:27 PM veverak: ARM computer is not necessary
12:27 PM veverak: rue_mohr: dx/dt ?
12:28 PM rue_mohr: yea, every loop, measuring the delta distance on the encoder, and using that againt the loop time to calc velocity
12:28 PM rue_mohr: dtheta/dt if you like
12:28 PM veverak: that seems like reasonable thing
12:28 PM veverak: why it failed?
12:29 PM rue_mohr: resoution of about 3
12:29 PM rue_mohr: so I'm using a timer to measure how long beteen encoder pulses, then applying direction info, resolution ~ 1200
12:31 PM veverak: isn't usually interrupt connected to pulse of encoder?
12:32 PM veverak: and you read CPU tick count register each time interrupt is fired?
12:34 PM deshipu: interrupts would require learning the mcu's peripherals, real men bit-bang everything
12:49 PM veverak: so
12:49 PM veverak: 1 robot, 4 legs, 3 servos per leg
12:49 PM veverak: the servo shares serial bus and can be connected in chain
12:50 PM veverak: however, that cripples bandwidth a bit and chaining them with wires is probelmatic in the final robot
12:50 PM veverak: so, option A. one board with stm32 that has 4 uarts, and is connected with the raspberry/laptop
12:51 PM veverak: option B. 4 boards (one per leg), each speaking the servo language on UART and having some other communication on other side with the rpi/laptop (maybe CAN ? )
12:51 PM veverak: hmm, SPI could work with option B
12:52 PM deshipu: option C. a computer on each leg, with a camera, watching the other legs and trying to figure out what they are doing and keep up
12:52 PM veverak: that is cool but too much time required to do it
12:52 PM deshipu: option D. just hardcode some movements with a bunch of 555s
12:52 PM polprog: hardwire*
12:52 PM veverak: nope
12:53 PM veverak: just nope
12:53 PM polprog: option C is tech-startup-worthy
12:53 PM deshipu: hmm, perforated tape?
12:54 PM veverak: hmm
12:54 PM veverak: ad. option B: each board could implement CANOpen protocol
12:54 PM veverak: (which has native support for ROS)
01:05 PM veverak: hmm
01:05 PM veverak: that sounds like overkill but has it's advantages
01:10 PM deshipu: I think perforated tape would work well with serial
01:11 PM veverak: the more I think about one CANopen board for each leg, the more I like it
01:11 PM veverak: fifth board for camera gimbal...
01:12 PM deshipu: remember to add some sensor connectors to those boards
01:12 PM deshipu: so that you can have everything on one bus
01:13 PM veverak: exactly
01:13 PM veverak: deshipu: the one bus idea seems cool
01:13 PM veverak: rebuild to hexapod?
01:13 PM veverak: just make two more boards...
01:13 PM deshipu: one bus to bring them all, and in the darkness bind them
01:13 PM veverak: :)
01:14 PM deshipu: pentapod
01:14 PM deshipu: I bet there are none yet
01:14 PM deshipu: stupid humans with their stupid bilateral symmetry
01:15 PM veverak: deshipu: https://www.youtube.com/watch?v=SCpFKGxXf54
01:15 PM veverak: you lost your bet
01:15 PM veverak: :
01:15 PM veverak: :)
01:16 PM deshipu: it's still bilaterally symetrical
01:16 PM deshipu: does it do anything else than standing in place and wiggling?
01:16 PM deshipu: I guess not
01:17 PM veverak: but it does that with style!
01:17 PM deshipu: what style is that?
01:17 PM veverak: you do not dance, do you?
01:17 PM veverak: ;)
01:17 PM deshipu: not presently, no
01:18 PM veverak: anyway
01:18 PM veverak: CAN or SPI?
01:20 PM deshipu: how does spi handle multi-master configurations?
01:20 PM deshipu: is there are chance you will need any of those devices speaking out of turn, when not specifically asked to?
01:21 PM veverak: I don't think so
01:21 PM veverak: I think I can work with one master
01:21 PM veverak: and SPI has higher bandwidth than CAN
01:22 PM deshipu: it's also less structured
01:22 PM deshipu: and no built-in data integrity checks
01:22 PM veverak: on the other hand, it may be a good idea to have CAN, which allows anybody to send high-priority messages from any device to all devices
01:22 PM veverak: I have to measure how much the servos needs
01:22 PM veverak: 1 Mbit/s on CAN may be enough
01:23 PM veverak: deshipu: the answer is simple
01:23 PM deshipu: if the controller boards have more logic than just "
01:23 PM veverak: CAN AND SPI
01:23 PM veverak: :))))))))
01:23 PM deshipu: pass the data on", then you might need very little bandwidth
01:24 PM veverak: I suppose that makes sense in some setups
01:24 PM veverak: primary communication is over CAN and the system has possibility to connect SPI to specific boards in case BW is needed
01:31 PM deshipu: BW?
01:34 PM veverak: bandwidth
01:39 PM rue_shop1: veverak, the encoder goes to two interrupt channels, which funnel down to one function that measures offset, in there I take the timer data from the last pulse to work out the velocity
01:40 PM rue_shop1: heh, you recreating all the work I did on my hexapod, with special addressable servo loop controllers
01:40 PM rue_shop1: but you got the camera thing going on
01:42 PM veverak: want to DIY this
01:42 PM veverak: need to understand it really well
01:53 PM veverak: I mean, at one phase I was thinking about using FPGA
01:53 PM veverak: just something that sends the motion plan to the FPGA, which than executes it
01:53 PM veverak: but nobody has time for that
03:19 PM veverak: I have to put more work into the project: "get more students as slaves"
04:11 PM deshipu: mionions, we don't use the s word here
04:11 PM deshipu: minions
04:13 PM polprog: i keep all my students as Cable Selec
04:13 PM polprog: t
04:16 PM veverak: :D
04:17 PM veverak: deshipu: I prefer to build relationships on honesty
04:17 PM veverak: so
04:17 PM veverak: "you are my slaves!"
04:18 PM veverak: is honest, which is good
04:19 PM deshipu: also, nothing improves a relationship better than a honest lashing
04:21 PM veverak: true to that
09:10 PM justan0theruser is now known as justanotheruser
09:25 PM rue_mohr: --