#robotics Logs

Dec 22 2020

#robotics Calendar

09:09 AM veverak: welp
09:16 AM veverak: I forgot how to tune PID ... again
09:17 AM mumptai: use a step stimuli
09:18 AM mumptai: set kp, ki, kd to zero
09:18 AM mumptai: and then start with kp
09:18 AM mumptai: then ki, and kd last
09:19 AM veverak: I know that one
09:19 AM veverak: I am more thinking about automating this
09:19 AM mumptai: there are multiple approaches
09:20 AM veverak: tricky thing is that the goal value constantly moves
09:20 AM veverak: it's position of servo, goal actually moves in each iteration
09:21 AM veverak: and I am controlling velocity of the thing
09:22 AM mumptai: if you can define a fitness function, a gradient-descent algorithm might just do it
09:23 AM mumptai: i'm also pretty sure there approaches that will converge much fast if they have a better model of the system that is observed
09:24 AM mumptai: also the step-response contain a lot of the system parameters
09:24 AM mumptai: (the step response of the system without the PID)
09:27 AM mumptai: i always did this manually, also because i usually also have to set values to some limiters and guess a feed-forward coefficient (or function)
09:49 AM veverak: hmm
09:49 AM veverak: it's in sim
09:49 AM veverak: i suppose I do not need I component here
01:24 PM mrdata_: veverak: i dont have much practical experience tuning PID but you want the thing to respond quickly enough but still prevent oscillation
01:24 PM veverak: I know that much
01:26 PM mrdata_: are you able to test lots of different settings?
01:27 PM mrdata_: if so you can jiggle parameters and compare performance; select best, then jiggle by smaller amounts
01:27 PM mrdata_: repeat
01:28 PM mrdata_: and that should work unless there are local optima
01:28 PM mrdata_: which for simple PID i think there shouldnt be
01:30 PM mrdata_: at minimum you'd be comparing 8 different combos each time
02:35 PM veverak: well
02:35 PM veverak: after more thought
02:35 PM veverak: I will write an util app for this
02:35 PM veverak: to manually control just one servo and set anything properly
02:35 PM veverak: (with Lua bindings)
02:35 PM veverak: this way I can test this easily