I have a kuka iiwa (7 joint robot arm). Attached to it is a circular aluminum platter with a steel ball on it. The goal of the project (for giggles/ challenge) was to use the internal torque sensors of the robot in order to balance the ball in the middle of the platter. Due to the fact that I was unable/ not allowed to use FRI (fast robot interface) whereby I can control the robot from C at about 3ms feedback loop, I can only update the robot position at about 4Hz... My quick and dirty solution consisted of the following:
Measure the torque on the final two axes of the arm and apply a mapping to generate the ball's position (filtration and hysteresis were well implemented to improve the data quality). If the ball velocity was sufficiently stable, generate a motion that would cancel out that velocity (with an impulse "go to angle and return to neutral position" motion). Overlaid on that was also a small proportional gain which would tend the ball towards the center of the platter.
My question: What is the professional/ correct solution to this situation (where your controller can only hit the system with impulses rather than continuous feedback)?