#robotics Logs
Oct 09 2018
#robotics Calendar
12:00 AM mrdata_: an echo state network is a randomly connected network that has the property that it doesnt progress into a seizure state
12:04 AM rue_mohr: hmm
12:04 AM rue_mohr: I'm thinking of playing with networks that use the same butterfly as an fft
12:04 AM mrdata_: the random connections permit feedback; so you need it not to feed back into seizure
12:04 AM rue_mohr: oo
12:04 AM rue_mohr: so, not just forward random
12:04 AM mrdata_: echo state networks have been shown to be as effective as the best intentionally designed networks
12:04 AM rue_mohr: it would explain what looks like a ~1/50 reverse neuron rate in brains
12:04 AM * orlock fires up old PC's
12:04 AM orlock: just booted up 6 or so old i5's and i7's
12:06 AM rue_mohr: I need tho think this thru
12:08 AM rue_mohr: so, if I have a hidden layer (not there yet) I'd ahve to calculate thru the whole network, then take the output error, and go back on all the active nodes if I need to adjust
12:08 AM rue_mohr: unless, during the processing, I flag which ones on the pass were active
12:08 AM mrdata_: to prevent feedback into seizure, you measure the total activity of the network and tweak it so the total is monotonically non-increasing
12:09 AM mrdata_: as it chains from state to state
12:09 AM rue_mohr: hmm
12:10 AM rue_mohr: like a cap on the amount of activity
12:10 AM rue_mohr: which makes sense
12:10 AM mrdata_: then you train just inputs and outputs
12:11 AM rue_mohr: tooo much activity causes the network to get down on the floor, wail and scream
12:11 AM mrdata_: and grind its teeth; yeah, you dont let it do that
12:12 AM rue_mohr: the network admin usually tells the network its bad, and will be taken back home and grounded
12:12 AM rue_mohr: which makes the network wail louder
12:12 AM rue_mohr: causing everyone around to grit their teetha nd wish the network was not brought to the store and wish it would go away
12:14 AM rue_mohr: so, for now, connection mapping and connection strengths are things to work out how to control
12:16 AM rue_mohr: I suppose
12:16 AM rue_mohr: the learning rate can just just adjusted down stupid-far when you dont want the system unlearning
12:18 AM mrdata_: learning and peforming are distinct activities
12:19 AM mrdata_: usually you train your network on training data, then deploy it for real-world tasks
12:20 AM rue_mohr: yes, but why freeze its learnability
12:20 AM mrdata_: and it doesnt really learn after the training phase
12:20 AM rue_mohr: typically yea
12:20 AM mrdata_: but this is to simplify matters
12:20 AM rue_mohr: but how about if youdid
12:21 AM mrdata_: when you use training data, you have the scaffolding in place to evaluate performance; when the network is deployed, that isnt really there anymore
12:22 AM rue_mohr: but I'm not into developing the network tech, I'm into using it, so, I dont care too much how it performs as long as its works to some degree
12:22 AM rue_mohr: and my goal is not really even the network
12:23 AM rue_mohr: it seems that using tf for a nn is stupid
12:23 AM rue_mohr: to the point its typically run on a pre-packaged virtual machine
12:23 AM rue_mohr: which is stupid
12:23 AM mrdata_: part of this scaffoldin is a genetic algorithm that produces like a million variants of your network with tweaked weights, tries them all and keeps the top performers and discards the rest
12:23 AM rue_mohr: nn is a simple process, should be able to sit in an app just fine
12:24 AM rue_mohr: mhm
12:24 AM rue_mohr: I'd agree that answer stability checking is a thing
12:24 AM rue_mohr: I'm watching this thing I wrote settle on a HUGE range of values to solve the NOR gate I gave it
12:25 AM rue_mohr: but
12:25 AM rue_mohr: 1+1=3 for large values of 1
12:25 AM rue_mohr: so, what matters.
02:11 AM veverak: wow
02:12 AM veverak: rue_mohr got into neural networks too ? :)
02:15 AM z64555: he's gotta stay on top of the technology curve
02:15 AM z64555: damned things are going to be everywhere, now
02:17 AM veverak: buzzword technology
02:17 AM veverak: :)
02:21 AM z64555: that's practically all of tech, tbh
02:29 AM veverak: yup
02:41 AM veverak: I mean
02:41 AM veverak: I've neuron networks course at uni now
02:41 AM veverak: and it looks interesting
02:42 AM veverak: but definetly not "all solving problem"
02:44 AM sensille: i'm not really sure what this channel is about, but is anyone interested in talking about 2d motion planning and jerk control?
02:45 AM Triffid_Hunter: sensille: heh do plenty of that at the pub ;)
02:50 AM sensille: drunken masters
02:51 AM sensille: i've tried in several channels, but talking math seems to be quite unpopular ;)
03:00 AM veverak: lol
03:00 AM veverak: sensille: what 2d motion planning?
03:02 AM sensille: i'm building a stepper controller for a 3d printer and try to move the head with constant speed
03:02 AM sensille: the input are (currently) line segment, which i smooth with clothoids
03:02 AM sensille: that kind ;)
03:15 AM Triffid_Hunter: sensille: dunno what a clothoid is, but there's tons of firmwares that do segmented 2d motion planning :P
03:15 AM sensille: Triffid_Hunter: and i want to do it better
03:17 AM Triffid_Hunter: sensille: the trick is being able to do it in realtime with minimum 40k steps per second per motor
03:17 AM sensille: yeah. i'm doing 3M steps/s
03:17 AM Triffid_Hunter: yikes, with high order curves? using an fpga?
03:23 AM sensille: 5th order, fpga
03:23 AM sensille: but the mathematics make me headaches
03:23 AM sensille: and i need someone to talk it through
03:29 AM veverak: wow
03:29 AM * veverak just figured that clothoids exists
03:29 AM veverak: (they are cool btw )
03:30 AM Triffid_Hunter: sensille: I guess if I were doing it, I'd just write a math function that spits out the position in steps given all the state inputs, then match it with step counters and issue pulses at a few MHz
03:31 AM sensille: well, the 'math function' is an integral for which no closed form exists, fourier integrals
03:32 AM sensille: hence i only calculate a few points and try to approximate it with a 5th order polynomial
03:32 AM sensille: which i then execute in the fpga
03:33 AM sensille: this is how it looks for a circle: http://djfk.net/3dpfs/6/
03:33 AM sensille: all fine
03:34 AM sensille: this is where the trouble starts: http://djfk.net/3dpfs/11/
03:34 AM sensille: acceleration all over the place
03:36 AM sensille: hence 'talking math'
03:41 AM sensille: erm. s/fourier/fresnel/ oops.
04:28 AM * sensille waits patiently for the other half of the world to wake up
04:41 AM flav0r: looks like gibberish to me
07:45 AM VansFannel: Hi!
07:45 AM VansFannel: Is there a way to control a robot with keyboard in Gazebo? Thanks.
08:16 AM VansFannel: Is there a way to control a robot with keyboard in Gazebo? Thanks.
08:32 AM rue_bed: hmm
08:56 AM rue_mohr: sensille, trapazoilal velocity profiles?
08:57 AM rue_mohr: why would you try to write a motion controller for a 3d printer, its been done a million times
08:57 AM sensille: but none with proper jerk control
08:57 AM sensille: and none for higher microstepping
08:58 AM sensille: also, because i want too :)
08:58 AM sensille: i want to find out if there is still room for improvement
08:59 AM sensille: the current philosophie is more like 'if it can be done with 8 bit, it's not worth it'
09:00 AM sensille: the motion profile is s-curve, but i want to keep the head basically at constant ||v||
09:00 AM sensille: *can't be done
09:03 AM rue_mohr: whats proper jerk control?
09:03 AM sensille: bounded jerk
09:03 AM rue_mohr: maximum jerk?
09:03 AM sensille: yes
09:04 AM sensille: configurable upper limit
09:04 AM rue_mohr: you know marlin has that...
09:04 AM sensille: not really
09:04 AM rue_mohr: anyhow
09:04 AM rue_mohr: you want to use 64 bit
09:04 AM sensille: marlin doesn't even know what jerk is
09:04 AM sensille: they mis-use the term
09:04 AM rue_mohr: cause the highest word size is the only thing worth using...
09:04 AM sensille: hehe, the current implementation uses 208 bit
09:05 AM rue_mohr: but you have not worked with motion planning before?
09:05 AM sensille: no
09:05 AM rue_mohr: ah
09:05 AM rue_mohr: you made a model of the motion
09:06 AM rue_mohr: you apply your acceleration values, your velocity values, and your position values
09:06 AM rue_mohr: you take off, usually a time/step
09:06 AM rue_mohr: and issue the steps as per how the path dictates
09:06 AM sensille: yes, that already all works
09:07 AM sensille: acceleration, deceleration, straight lines, circles
09:07 AM sensille: but the trouble starts with clothoids
09:07 AM sensille: i can model them
09:07 AM rue_mohr: ah, so your writing a slicer too
09:07 AM sensille: not yet
09:07 AM rue_mohr: you must be
09:08 AM rue_mohr: slicer output is only line segments
09:08 AM sensille: currently i take gcode and model the transition between lines with clothoids
09:08 AM sensille: to get a smooth curve
09:08 AM rue_mohr: your writing a 3d suite from the ground up, thats a lot of work
09:08 AM sensille: not yet. currently i start with gcode-input
09:09 AM sensille: maybe i'll takle the rest later, when that works
09:09 AM rue_mohr: current slicers only ouput line segments
09:09 AM sensille: yes. i take those line segment
09:09 AM sensille: but the transition between lines is not smooth
09:09 AM sensille: so i insert a transition curve
09:09 AM sensille: and deviate slightly from the path
09:10 AM rue_mohr: oooh, your making a printer controller that doesn't regenerate the sliced model
09:10 AM rue_mohr: :)
09:10 AM sensille: every printer controller deviates from the path
09:11 AM sensille: but for curves, it might even come closer to the original than the line segments
09:11 AM rue_mohr: current slicers only ouput line segments
09:11 AM rue_mohr: and they have to
09:12 AM VansFannel: Is there a way to control a robot with keyboard in Gazebo? Thanks.
09:12 AM rue_mohr: casue the stl models contain no curves
09:12 AM sensille: i know
09:12 AM rue_mohr: current slicers only output line segments
09:12 AM sensille: and i work on them
09:12 AM rue_mohr: and most models that people make, are polygon'd to hell
09:13 AM sensille: not the models, only the stl exports of them
09:13 AM rue_mohr: they dont even adjust $fn to a descent value like 208
09:13 AM * veverak uses 64
09:13 AM veverak: or wait
09:13 AM veverak: $fn sucks
09:13 AM veverak: $fa/$fs much better
09:14 AM sensille: rue_mohr: even if i only have line segment, i have to move the print head somehow
09:14 AM rue_mohr: I agree, $fn sucks, but I just dial it to stupid values
09:14 AM veverak: use fa/fs than
09:14 AM sensille: and i have to smooth the path
09:14 AM rue_mohr: sensille, clydsdale horse?
09:15 AM rue_mohr: there is no smooth path
09:15 AM rue_mohr: current slicers only output line segments
09:15 AM sensille: what are you trying to tell me?
09:15 AM rue_mohr: doesn't matter anyhow
09:15 AM sensille: printers can't print line segments
09:15 AM rue_mohr: stepper motors have a resolution, so it all turns into tiny little line segments anyhow
09:16 AM sensille: mechanics have inertia
09:16 AM rue_mohr: your best case is whent eh line segment length is the size of the motor step
09:17 AM rue_mohr: sensille, and how do you calculate the amount of force applied to the carriage by the filament to the head?
09:17 AM rue_mohr: cuase it will throw of the lag in the motor
09:17 AM sensille: you're just trying to push me off-balance
09:18 AM rue_mohr: I'm trying to make you see that there is no such thing as perfection, and some levels of it are pointless to try to persue
09:18 AM sensille: and i think that level is not yet reached
09:18 AM veverak: rue_mohr: you could have said that directly
09:18 AM veverak: :)
09:18 AM sensille: he did initially
09:18 AM rue_mohr: what about the fact that the microstep sizes are not the same between two steps?
09:18 AM veverak: sensille: also, I would not like your thing if it smooths the paths
09:19 AM veverak: what if I want segmented path ?
09:19 AM veverak: and your code makes it smooth
09:19 AM veverak: sucks
09:19 AM sensille: every printer does that
09:19 AM rue_mohr: up, if I actaully want \/\/\/
09:19 AM sensille: they just don't tell you
09:19 AM sensille: you'll be able to control the deviation
09:19 AM sensille: tradeoff speed vs. deviation
09:20 AM rue_mohr: I'v written motor control software before
09:20 AM rue_mohr: my first cnc
09:20 AM rue_mohr: before there was public software for doing nc control
09:20 AM veverak: sensille: yeah, and they do it minimally
09:20 AM veverak: and it does makes me angry sometimes
09:21 AM sensille: veverak: otherwise you'd have to stop completely. and then the oozing whould make you angry
09:21 AM rue_mohr: grrrr oozing
09:21 AM sensille: see?
09:21 AM veverak: sensille: yup
09:22 AM veverak: I just don't agree with the balance marlin sometimes uses
09:22 AM rue_mohr: the 1.75 oozes less than the 3mm tho
09:22 AM rue_mohr: marlin is a pile of ****, but it works
09:22 AM rue_mohr: which is its main flaw
09:22 AM sensille: so you think just going all-in on each turn is the way to go?
09:23 AM rue_mohr: all in?
09:23 AM rue_mohr: you means "hard reacceleration"?
09:23 AM sensille: "just change direction, whatever it takes"
09:23 AM sensille: just feed it the new direction
09:23 AM rue_mohr: no, you have to cater to the motors braking/acceleration ability
09:23 AM sensille: without respecting the physics involved
09:24 AM rue_mohr: hah are you having problems with your printer dropping steps?
09:24 AM rue_mohr: the printers are all made wrong by the way
09:24 AM sensille: no
09:24 AM rue_mohr: the motor power profile does not match a printers lod profile
09:24 AM rue_mohr: load
09:24 AM rue_mohr: I add 2:1 to my printers and its closer
09:25 AM sensille: i can accelerate the head from 0 to 1000mm/s and back on 80mm
09:25 AM sensille: no lost steps
09:25 AM rue_mohr: mhm
09:26 AM rue_mohr: its still more speed than you need for good printing at the limit of the torque a well sized motor can put out
09:26 AM rue_mohr: so most people use stupidly large motors to compensate for the needed torque
09:27 AM sensille: you need torque to quickly get around corners
09:27 AM rue_mohr: if you print too fast, the whole thing is just jelly anyhow
09:27 AM rue_mohr: arg, I need to go to work..
09:29 AM sensille: yeah, anyhow
09:29 AM sensille: still want to bring that approximation to work
09:32 AM rue_mohr: make a trapazoidal velocity profiler and show me
09:34 AM sensille: have you seen this? http://djfk.net/3dpfs/11/
10:05 AM VansFannel: Is there a way to control a robot with keyboard in Gazebo? Thanks.
10:35 AM veverak: sure
10:35 AM veverak: you use ros keyboard control and ros communication with gazebo
11:13 AM VansFannel: veverak: thanks. I thought that there could be another way to control it without the need to use ROS.
08:54 PM peepsalot: what kinda motor? stepper?
08:54 PM Tom_itx is now known as Tom_L
08:55 PM rue_mohr: yep, 4 wire
08:55 PM peepsalot: makin a CNC router or somethin?
08:55 PM rue_mohr: over the next few years, prolly a few
08:57 PM peepsalot: cool. we're assembling something like that right now where I work
08:58 PM Tom_L: what sort of control?
08:58 PM peepsalot: using aluminum extrusion frame with linear rail bolted on, ballscrews. something like 3x4ft i think. arduino uno with grbl
08:59 PM Tom_L: router?
09:00 PM peepsalot: not sure what is going on the head actually, some chinese spindle of some sort i guess. its a build for a client, we're not keeping it
09:01 PM peepsalot: we have access to a 8x4 (maybe 10x5') with like 2.2kW spindle. cut a lot of plywood, melamine, aluminum composite panels etc for various jobs
09:02 PM peepsalot: i don't know the exact model or specs, i don't run that router myself
09:04 PM peepsalot: the one we're building is gonna use these https://www.omc-stepperonline.com/digital-stepper-driver-18~56a-20-50vdc-for-nema-23-24-34-stepper-motor-dm556t.html?search=stepper%20driver
09:06 PM orlock: peepsalot: Seen all the different little arduino-based controllers now?
09:07 PM orlock: 3 and 4 axis, without the heater drivers
09:09 PM peepsalot: i guess not. not sure what you are talking about. there are CNC shields for the UNO that take pololu style drivers, but that's not even needed with external drivers, just the uno board apparently is enough. they have another simliar small router that doesn't see much use, that the new build is more or less based on.
09:20 PM peepsalot: oh i was confused a bit about the "heater drivers" thing i guess you mean 3d printer hotends? so yeah if you mean the CNC shields for regular arduino UNO then I've seen those :)
09:22 PM peepsalot: most machines i've put together so far have been 3d printers using RAMPS
09:24 PM peepsalot: i just started working at this business a couple months ago, run by a friend that does a lot of various prototyping and consulting for people that needs stuff made
09:33 PM rue_mohr: peepsalot, cool