Hi HN,
This was my M.A. thesis, and I would appreciate some feedback from HN. It is a robot arm with a visual system. It did a tracking task - looking at a computer screen, following a red dot by moving a mouse.
https://www.youtube.com/watch?v=wQ6FGeSjN9c
The interesting thing is it doesn't use traditional inverse kinematics, instead there are multiple cascades of feedback loops, no internal models.
First level are just standard position control loops, just like any servo.
Second level loops are controlling relationships between arm points, they operate in parallel, simultaneously. For example - one of the loops maintains distance from fingertip to base (reach), and another one maintains the height from the fingertip to the surface. If the setpoint for reach changes, then the arm will start extending the elbow. That will disturb the height control system, and it will compensate to maintain its setpoint.
Third level is the visual system, it was used to maintain distance of cursor marker to target marker. If the target moves up, then the control system maintaining vertical distance sets a new setpoint for the height control system, which sets the shoulder servo to move, and that disturbs the reach system which then starts the elbow servo and so on.
It is actually an M.A. in psychology, on theories of motor control, testing perceptual control theory. It was very low budget and my mechanics skills are not yet polished. Hopefully, next one will be better. I was gonna record it doing the tracking task, but a couple of gears broke, and now I need to replace the gearbox.
Anyway.. anyone here read about perceptual control theory? There are some interesting simulations of arms with 14 degrees of freedom, also not using traditional inverse kinematics. I'm kinda weirder out by the lack of people who have heard about the theory, it's been around for quite a while, and seems like a pretty interesting approach.
I'd think with your second level loops with objective functions like you say, you'd be able to get the thing to work for small changes at low speed. At higher speeds, you'd have competing objectives - I think this could explain the vibrations you get at higher speeds? Perhaps also a risk of getting stuck in some local minima/maxima where your robot thinks it can't move to a better position - probably more of a danger with higher degrees of freedom.