Vibration-minimizing motion retargeting for robotic characters
la.disneyresearch.com
la.disneyresearch.com
Makes me think for actual animations they should simulate physical systems and then apply optimized control inputs to approximate the animation which the animator inputs. It would result in more grounded and realistic feeling animations.
As an amateur roboticist/professional dilettante I've often been tempted to consider a robot as little more than a 'Normal Line in R3' (essentially an end effector's pitch/roll/yaw at x/y/z in effector state i from 1...n) and motion planning as little more than crow flying with zero consideration for 2nd or 3rd order effects.
While this may be true for simple industrial applications with robot arms of infinite structural rigidity... I have learned two things from this post:
[1] Physical qualities of the robot arm (beyond range of freedom) can materially affect path planning
[2] Sometimes there is more to a robot than an end effector doing work (e.g. rapping robot's funky dance moves). Raises the question though... does the entire robot arm effectively become an end-effector? Can we consider delighting an audience with cool dance moves 'work' being performed?
Thanks for sharing, and hats off to the Disney team! Great work!
So how much of this is actually adressing the wrong problem, that is targeting the actuation instead of how the model should be build to achieve the result i.e. dampening oscillations?
Here's the machine-learning stick figure walking model that most likely all of you know. How much of the problem with getting them to walk decently is a wrong model with bad contraints regarding angles at joints or length of limbs? Shouldn't that be evolved iteratively as well to achieve the best results possible?
https://www.kurzweilai.net/images/humanoid-walking-training.... (not trained well yet btw)
I think that people limping has more to do with avoiding pain than damaged 'hardware'. An example being people who are on large amounts of drugs being able to push through pain and further injuring themselves.
> So how much of this is actually adressing the wrong problem
I think this paper addresses the right problem. By modeling the robot as a flexible system instead of a rigid system, performance improvements can be made in many scenarios.
Because there is no such thing as a perfectly rigid material (well at least within the realm of feasibility), even if the robot was designed to have extremely rigid and perfectly optimized joint angles and limb lengths, this technique would be beneficial.
Of course, where it really shines is when applied to a low cost, low weight system like the ones demonstrated in the paper. In the world of engineering, keeping things simple, low-cost and light opens many doors for using cheaper hardware and simplifying the design process.
If every time Disney wanted a new animatronic robot they had to get custom fabricated joints and limbs, the costs would be exorbitant. If instead they could just reach into their standard limbs box and slap it together, and then let the software fix it they save money and effort.
Toddlers are a good example of the opposite (fall down quite a bit even with "good hardware"). Seems intuitive that you benefit from having good control of the hardware, even if you can also improve it.
I see this as another tool to use to get 'ideal' motion. Sure, build your robot out of better parts, but then use this software to continue to prevent oscillation, even in your 'better-designed' hardware.
I assume Disney chose to separate the constraints by going with simple hardware shapes, yielding a predictable cost and an easy construction. A good hardware optimizer would also need to engineer assembly, which seems nontrivial.
Software costs of optimizing motion for existing hardware are more predictable (~19 minutes of an i7-7700 w/ 32GB, per second of animation).
That being said, they acknowledge in their paper that they could optimize certain properties of the robot, like rod size or joint position.
This seems like it could also help deliver something similar to what Disney has done (or possibly improve it)
[1] https://www.reddit.com/r/robotics/comments/cjy77r/r_vibratio...
- there's a stronger timing constraint to the positioning (more than in CNC/3D printers)
- the arms/body are significantly more wobbly
- Apparently you don't need to model the wobbly response "by hand"
Hopefully the algorithms (and code) they're using get Open Sourced at some point, so they can be looked over and possibly incorporated in things.