Our group has had an incredible journey piecing together our robot together over the last 6 weeks. After building the CNC machine from scratch, we had to develop an idea that changed the nature of the CNC and used it in a completely new way than what was intended by it’s creators.
Concept: Create a robot that take a picture of the user, and then draw that user’s face as a character on a movie poster.
Our team had various design challenges we had to overcome. Some of the considerations we had to think about included:
- Designing a method by which to hold a writing utensil. This is important as we needed the unit to flex just enough to provide a natural artistic stroke to the robotic gantry.
- Designing the CNC bed to provide ample support, pressure and texture to the pen from above.
- Determining the proper writing utensil
- Converting an image from it’s original format to SVG, making it Black and White, then editing it so that the image is only composed of outlines.
- Making sure the camera recognizes the user’s face
- Determining where to place the cropped and converted image of a user’s face into the appropriate area on the movie poster
Method to Hold the Pen
We experimented with various types of ways to hold the pen using the original router holder. We ended up designing our own plate and 3D printing our pen holders for maximum flexibility and precision.
Designing the CNC Bed
We wanted to provide the proper surface for the pen to write on the bed. We created a bed out of acrylic, to make sure that the holes were covered. We then placed a thin sheet of foam and thicker poster paper on top to provide a firm, cushy and smooth surface to put paper on so the pen would easily glide while drawing.
Deciding the Proper Writing Utensil
We tested with various types of pens and markers. The way our machine is set up, it made the marker lines way too thick, so we opted to go with a ball-point pen, as it easily glides along the paper.
Computer Vision, Image Conversion and Process Flow
Our process flow is the following:
Select movie poster. Title it ‘poster.jpg’
Take image of user
Python script detects the user face on the movie posters
Select the face you want to swap with and swap faces
Convert File to Black and White & SVG
1) Refine and stabilize the pen plotter so that the pen is more secure
2) Draw a complex image and figure out file convesions from PNG to SVG
3) Experiment with various pens/markers
One thing we were impressed by was the level of precisions of the pen. Below you can see how precise fhe pen is.
We were impressed by the level of precision by the pen. If you can see below, the lines are incredily close together. We chose the dog image for it’s relative simplicity and then the following image of the girl to see if we could draw something thatbhad a few layers in the outline. The girl image took roughly 15-20 minutes to complete, so we can expect the movie poster to take that long.
We need to figure out if we can use the Gcode to speed upthe drawing process.
We got our robot drawing! We had to mess around with the wiring a bit, but we now have the robot drawing.
The Pen Plotter
We 3D printed the pen holder with 2 holes for the screw mounts.
We took the measurements from the steel plate and laser cut a new one with various holes for adjustment purposes. This set up works ideally for what we want to do.
We also lser cut a board that matched up with the screw holes on the base. This was to make sure that the surface was completely flat for drawing. 4 out of 6 of our holes were off, but that does not affect the positioning of the base plate as it’s held in place pretty firmly.