This is my current passion project.
My dream is to create a fully player controllable powered ragdoll character. It is powered by forces and torques at the joints. It needs to keep its own balance, be able to get up when it falls down, uneven terrain is difficult.
The player sets goals (direction, speed, turning speed, jump height etc…) using the keyboard. The trained brain knows what forces are needed to stand, walk, run, jump getup etc… in order to accomplish these goals.
The work is based on this paper:
Brains are trained in Unity environments using ML-Agents, by rewarding them for imitating reference animations while accomplishing goals.
Over the past few months steady progress has been made. First Attempt to walk (I think there were issues with the ragdoll joint setup for this one):
Trained a brain to walk in different directions but could not be steered:
The rig could be steered but would still stumble on uneven ground.
The rig could be steered over uneven ground without falling using limited raycast-vision.
Early attempts to getup:
The rig can jump but not in a controlled way
Currently I am working on improving the quality of these brains (there are edge cases that they should handle) and getting them to work together in a single character controller. I am improving the training harnesses. Next I intend to train brains for airbourne-landing, tumbling, attack, climbing.