Light Painting Animation Robot

The goal of this project was to learn how to program industrial robots using the Robot Operating System (ROS). Within this scope our group decided to program the Franka Emika Panda robot arm to draw light painted images. This is traditionally done by hand by taking a long exposire photo in the dark while moving a light source around. By using a robot we could draw 3D objects, with light, much more acccuractey than a human could. By drawing several frames of the 3D object and changing the geometry slightly between each frame light painted animations could be produced. The butterfly animation shown above was the first succesful animation created.

︎Full Documentation and Code Here

//Method Overview

// 1 - Animation Sequencing and Coordinate Generation
The model sequence of the butterfly in flight was generated using Rhinoceros3D and the Grasshopper plugin, iteratively altering a low-poly mesh to give the effect of a butterfly flapping its wings. The frame sequence was then treated as individual frames, with the coordinates of each one being extracted and processed to eliminate duplicate points. The coordinates were organised to prevent duplicate paths.

// 2 - Motion Planning and Simulation
A motion plan was then generated for each frame using the coordinate list created in the previous step. Code to iterate over the list of frames and plan each motion was developed. All poses and time functions were simulated in RViz and Gazebo. RViz settings were altered to recreate light painting within the program’s viewport.

// 3 - Implementation and Image Capture
Once simulated successfully, the code was implemented using Franka Emika’s Panda robotic arm. An end-effector attachment containing a controllable LED was simultaneously developed and manufactured to facilitate light painting. Once the code successfully ran repeatedly on the Panda robot, long-exposure photographs were captured of the motion. These photographs were then collated and displayed in sequence to create an animation of a butterfly in flight.

//Tools Used
+ Robot Operating System
+ Python
+ Rhino
+ Franka Emika Panda Robot
+ Airtable
+ Tomáš Kňaze
+ David Prior Hope
+ Pauline Ng
+ Luke Hillery
+ Higor Alves De Freitas
+ March 2020