The criteria with which we are judging our project is how closely the robot can draw out the intended target of the image after filtering out all the noise from the image. Drawyer should be able to complete all of its three goals (as mentioned on the introduction page) well enough such that the final result sufficiently resembles the raw image. As such, we mostly assessed the efficacy of our project visually, seeing if Sawyer's drawn image looks similar to the actual face.
Our design process was split up into four main sections:
When we formulated our design, we wanted to work using forward kinematics so that we can simply go to a particular position the world frame and go to the relevant positions. This would give us a faster process compared to our working inverse kinematics solver which we need to add one more step for every point in the path as we need to convert every 3D point to a list of 7 joint angles and then go to that position. The forward kinematics solver, though faster, does not work as intended as it doesn't take the shortest path to a particular and will very frequently travel along a long curve to reach a particular point.
In addition, we tried using ROS and the usb_cam package initially for the image capture (very similar to lab4 except we added the ability for a user to press a key and capture an image). However, because we were using roslaunch, which we could only end by pressing Ctrl+C, we kept ending our entire project wrapper script. To deal with that, we switched to using OpenCV to read camera input and save an image, since it would automatically stop after finishing. While it provided a smoother user experience, the camera feed was definitely more laggy than it was using ROS. This may have been due to the lab computer it was running on; in practical engineering applications with a highly efficient computer, the real-time camera feed would probably not lag at all.
Another design choice we made for better functionality was to use a brush pen instead of a regular pen or marker, since a brush pen allowed for minor differences in gripper height to be negligible. We ended up taping a brush pen to one arm of Sawyer's gripper attachment and using that, due to time and budget constraints. Although it worked for our purposes, having a brush pen taped to Sawyer's gripper would not be very reliable or durable in a real engineering application. Thus, as we mention later with our other future improvements, we might 3D design and print a specialized end effector that can hold a brush pen in the future.