Is it possible with any of machine learning methods to train machine to tie shoe lace? If possible how data should be interpreted for the training? If we are using reinforcement learning, how will it learn to reach the best rewards?
You would not believe how difficult this task is, assuming you want a humanoid robot to tie laces with humanoid hands. It’s possible of course but compared to what the current state of the art in machine learning is, this task is very very complex because it’s a physical system with unknown variables (Eg. coefficient of friction on laces), physical limitations (Eg. dexterity of robotic hands), and occluded vision (Eg. hand in front of laces) to name a couple of the issues one faces not to mention robots are expensive but I digress.
Robots can perform amazing preprogrammed sequences but if you wanted to have a robot to be able to tie any shoe in any situation, machine learning is the right approach.
Training data should include all of the things that humans use when they approach this problem:
proprioception (the location of joints in space aka where are your fingers)
a sense of touch, a robot would need a quite a few touch sensors
vision, although not actually necessary (because blind humans are capable of learning to do this task), it may speed up learning
Using reinforcement learning as a framework, one needs to be able to give the RL agent a signal that it is closer to tying the lace. This could be done in a few ways and it’s unclear what would be the best.
One method would be to train a separate model using supervised learning and pictures of shoes laced up to look at the current state of the bow (or lack thereof) and report if it looks like a tight bow. This method requires a whole other network but it may be the most versatile in the end although the RL agent may just learn how to place laces so it looks like a tight bow.
Although simple for humans, this is an interesting problem and thinking about how it could be implemented helps one understand how to apply ML in other areas.