Robotics Laboratory

Department of Computer Science | Iowa State University

Batting an Object to the Target

Translations: Russian | Hindi

Striking an in-flight object such as a ball or a square to a target location is a skillful maneuver that requires a great deal of practice for a human being to learn. For a robot, this task challenges its sensing, planning, and control to the extent that full coordination is required in just a fraction of a second. The task involves an object being thrown at a two-link robot arm with a bat attached, and the arm's motion being planned to hit the object along a trajectory, to the target.

Impact dynamics model the change in motion of the bat and object, which produces a post-impact state of the object that can be evaluated subject to the constraint of flying to the target. In this work, two-dimensional impact is considered, in which the trajectories of the robot arm and object are constrained to a vertical plane. A solution to the inverse impact problem is then developed, in which a desired post-impact trajectory of the object through the target leads to a desired change in its motion during impact, and eventually to the batting motion necessary to produce the change. The video below demonstrates results obtained from various batting instances.

The Batting System

To successfully execute the batting task, several additional components of batting must be realized, such as manipulator kinematics, flight mechanics, and motion estimation of the object. The figure below illustrates how these components work together in our batting system:

Projectile mechanics of each object are considered, where Aerodynamic effects of drag and Magnus are approximated from state estimation and used in predicting the trajectory of the object before and after impact. In addition, Kinematics of the robot arm in conjunction with Impact Dynamics contribute constraints to the Motion Planning algorithm, which continually outputs a desired joint trajectory to the robot arm.

Motion Estimation

Computer vision is an essential components of the batting task that is necessary for the robot to perceive the object's position and orientation by processing images from a camera, while motion estimation is needed to track the object's velocities. A hybrid motion estimator is implemented by employing least squares fitting of the object's orientation, and an extended Kalman Filter that considers aerodynamic forces of drag and Magnus. Involving aerodynamics allows for accurate prediction of the object's position trajectory before and after impact, which is crucial for the robot to execute the task with a respectable success rate. Meanwhile, least squares fitting of the object's orientation provides an estimate of the angular velocity once differentiated. This makes up for the lack of a model of angular velocity, and again allows for an improved prediction of the object's orientation.

Frictional Impact in 2D

Impact between the bat and the object is modeled with impulse while considering Coulomb's law of friction. Energy-based restitution is used, such that during the short period of impact, kinetic energy is partially transferred between the bat and object, and partially lost to heat, light, sound, and other forms of energy. Additionally, with friction considered under Coulomb's law, the state of contact between the two objects changes depending on their velocities and physical parameters, resulting in a combination of the objects sliding, sticking, and reverse sliding. The figure below shows a moment of impact, as well as two different cases of the impact in terms of their impulse curves. The objects are initially sliding, where in the first case, they transition into sticking, and in the second case, they transition into reverse sliding.

Impact Planning

Planning the robot arm's motion consists of determining the bat's position and velocity to satisfy a desired impact outcome, translating them into joint positions and velocities via inverse kinematics, and repeating this process to keep the robot's motion up-to-date and accurate. Additionally, it must be ensured throughout the arm's motion that the robot is not exceeding the position, velocity, and acceleration limits of its joints. These constraints combined with others sum up to a total of sixteen constraints on the space of arm states that can complete the task. Many of these constraints are propagated across multiple cycles of the algorithm as the arm's joint trajectories are pieced together to form a spline of quartic polynomials. The figures below respectively show a plot of the joint trajectories within one cycle of the algorithm, and the state space of solutions for one instance of the batting problem.


For more information, we refer to the following papers:


This material is based upon work supported by the National Science Foundation under Grant IIS-1421034.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Last updated on April 5, 2017.