Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Alternative to inverse kinematics (?)
4 points by amatic on June 11, 2015 | hide | past | favorite | 2 comments
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.



Interesting - what is the advantage in not using inverse kinematics?

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.


The advantage is in reduced computational load on the calculating machine. Not so much for a small number of DoF, but for multi-jointed arms or humanoid robots, or hexapods and similar. If you use inverse kinematics, the computational load grows exponentially with the number of DoF. For cascaded loops, it should be smaller, since computation is local to the loops.

Second level loops need to be slower than first level loops, so that they don't cause conflicting setpoints. It works pretty good in simulations, so I'm thinking the vibrations are probably caused by mechanical deficiencies. Also, they come with increasing the gain of second level loops. Most vibrations die out after reducing the gain.

As for the local minima and being stuck, I haven encountered that problem with 4 or 5 degrees of freedom, or in the 14 dof arm.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: