Nine Linked Rings Puzzle

The "Nine Linked Rings" puzzle (Chinese Ring Puzzle) is an ancient topological puzzle about removing all rings from a beam. Solving it as a human requires a decent amount of human dexterity, spatial awareness and a few basic logical insights.1 Due to its intricate rigid body dynamics, which are virtually unpredictable in practice, the system can derail into many conceptually different states which require different manipulation strategies to bring the system back into a canonical state. See Video 1 below to see a human hand solving the puzzle dealing with some of the derailments.
This makes it difficult, if not virtually impossible, to solve this practically unpredictable dynamical system with a robot in a hard-coded fashion, even with perfect 3D perception. For this reason the problem serves as an interesting research testbed to probe the limits of AI techniques such as motion planning, imitation learning and reinforcement learning. In particular, it requires a fair amount of spatial understanding. The right video above (teleoped with the Haply Inverse3) shows that the required dexterity is not so much about the "end-effector form factor". Mainly only the manipulation strategy for pulling the rings up through the beam cannot rely on a sliding motion like a human hand. But this can be compensated by grasping through the beam from above. As the Panda hand is to large for that I extended the gripper fingers by a shaft. When removing more than three rings they hang down even lower. The shaft would have to be even longer, or ideally extendable on demand.
Footnotes
The insights are: (i) The first ring can always be removed or attached to the beam. (ii) Any other ring can change its state if, and only if, the ring directly before it on the beam and all rings before that one are off the beam. (iii) From the first two insights it follows that at any given time are there exactly two possible moves. After the first move there is not really an exploration problem anymore since one of the two moves necessarily just reverses the previous move which does not get us anywhere. So basically the problem is to find out in which of the two possible directions to run. After that it is merely autopilot. (iv) We can reason about which direction is the right one with a top-down approach. To this end, let's number the rings from 1 to 9 and let's denote by [1...i] the state where in which 1 to i are off the beam and i+1 to 9 are on the beam. To get all rings off the beam we have to remove the ninth ring at some point which can be done only in state [1...7]. To get there we have to solve the subproblem [1...5] first. This in turn requires first solving [1...3], and before that [1...1]. So the first correct move is to remove the first ring first and then turn on autopilot. Instead one can of course also think of this problem as recursively solving subproblems. Fun fact: If we instead remove the second one first and then "go into that direction", we run into a dead end where only the last ring is on the beam and the only option is to rewind everything. ↩