Kinematic Retargeting is a process by which a pose or motion may be translated from one platform (robot, human, or embodied virtual agent) to another. The challenge in this task is that platforms may have different limb lengths, numbers of limbs, or degrees of freedom in their joints, making it impossible to map directly from one platform to another. I have developed a kinematic retargeter, which is capable of optimal retargeting between a broad class of kinematic chains. To see it in action, take a look at the video below, which shows two very different robots performing a “waving” motion that has been retargeted from Kinect motion capture data on my own body.
|Notes on video: Motion Capture was done using a Microsoft Kinect and OpenNI. The two robots seen here are the humanoid PR2 at USC and a chain of four CKbots from the UPenn ModLab. What’s interesting about this demonstration is that the motion is preserved across two robot arms with very different degrees of freedom.|
This project began in the summer of 2011 at the University of Southern California Interaction Lab, led by Professor Maja Mataric, and was completed as my undergraduate thesis at Princeton under the advisorship of Professor Robert Stengel. Throughout the entire process, my REU mentor, graduate student Ross Mead, provided me with invaluable support. The Interaction Lab focuses on Socially Assisitive Robotics (SAR), a field in which robots engage in social interactions with people with special needs. Expressive gesturing is understandably important in SAR, but behaviors are usually specific to the robot used, inhibiting experimental repeatability and inter-lab collaboration. My research aims to solve this problem.
The retargeting problem is posed as an N-dimensional optimization, where N is the number of degrees of freedom of the target chain. The aim is then to develop some metric of pose correspondence between the source and target chain to serve as a cost function for optimal pose. My intuition in approaching this problem was to capture the shape of the source pose without respect to chain-specific constraints, such as limb lengths or joint types. My solution was to represent pose with a smooth function over all of space, using the position of the source links as boundary conditions on the function.
The first such function I used was a Laplacian potential field, defined using the source chain links as the surface of maximum potential, with zero potential at infinity. To find an optimal target pose, we configure the target chain so that the integral of this field over its surface is maximized. Intuitively, this is very much like applying opposite electric charges to the two chains and allowing the target to stick to the source in a configuration which minimizes electrical potential energy.
The potential field method proved effective, but the integral cost function was computationally expensive. To improve performance, the approach was simplified. The joint-total distance metric minimizes the sum of all distances between all source and target joints, plus a more heavily weighted term for the chain end-effectors. This proved more efficient and reliable than the potential field method.
Implementation and Release
The approach has been implemented and validated in MatLab, which was used to generate the movement trajectories shown in the video above. Work is currently being done to provide a Python package for retargeting as a part of ROS.
T. Tosun, R. Mead, and R. Stengel, “A general method for kinematic retargeting: Adapting poses between humans and robots,” in ASME 2014 International Mechanical Engineering Congress and Exposition, 2014. (PDF)