The Iron Dome is a projectile defense system using the Kuka LBR iiwa robot. The system dynamically identifies incoming projectiles headed toward a target, estimates their trajectories, and intercepts them in a fraction of a second.
Our vision system uses an off-the-shelf Kinect V2 to detect and label incoming projectiles. The measurements are sent through a Kalman filter and trajectory predictor to determine the intersecting time, position and orientation with the robot defensive zone. The robot is then commanded to move to the desired configuration in advance of the projectile(s), preventing them from hitting the target. To improve robustness, stability, and reliablity of the control of the robot, we run our task space position and orientation controller in software, adding a tangent potential field to push each joint away from reaching joint limit, and clamping position and orientation errors to avoid large motions. We then feed joint angles directly from our simulated result to the physical robot, which runs a very fast joint position controller. The result is a system which can dynamically respond to thrown projectiles from a distance of as little as three meters.
Creators:
Videos:
- Final Demo (video coming soon)
- Simulation Demo
- Intermediate Testing
Full documentation can be found in website/
or online here.
NOTE: The specifications of Kuka robots are not public, so we are not
able to include them in this repository. We have included the specification
for a Puma robot, so change to this robot in src/IronDomeApp.cpp
if you'd
like to compile the project.