The physical robot arm has successfully been assembled. The servos can be actuated effectively to drive the robot arm to desired positions. ROBOCAM is successfully able to track a subject in real-time, and follow the subject / act with respect to the subject as it traverses through an operator-defined sequence of Keyframe poses constituting an overall trajectory. However, we faced challenges in reproducing the tracking behavior in a nonstationary subject environment in the physical world due to issues with latency and a resulting inability to update the reference frame of the subject w.r.t. to the end effector camera fast enough to move continuously as desired. The tracking functionality remains fully operational in a stationary subject environment, and works fully as intended in a nonstationary subject environment in simulation, as highlighted in the Results demonstration videos.
Since we are working remotely, one of the biggest challenge is coordinating design changes and getting components 3D printed. Since we did not have 3D printers our selves, we often had to send parts out to Jacobs institute and/or to friends that had 3D printers. Because of this extra step of out sourcing the 3D printing process, reprints took more time than we initially had expected.
Additionally, it was difficult to work on wiring/electronics when everything is remote. There were issues where on one person's Pi, the installation of ROS kinetic was simple and smooth but on another person's Pi there will be constant issues despite following the same guidelines. Debugging electronics/trouble shooting can only be done by the person with the electronics. It is a lot harder to debug any electronic/hardware issues via Zoom.
Because of the hardware nature of the project, there were unforeseen issues that we had to address that took up a lot of time. For instance, initially wrist servos were composed of only SG-90s. But through actual experiment, we determined that we actually needed more torque for one of the wrist joints. Thus, we had to go through a redesign and reprint process that took up a lot of time.
With the phone stand that we are using, there are two closed kinematic loops. Unfortunately, many of the existing inverse kinematic solvers can only solve open kinematic chains so we had to implement a custom solver.
Hardware
If we had more time, we would have tightened the tolerances on 3D printed parts to reduce slip/slack. We would have also redesign some components to balance out inertia/mass to reduce some of the jerky movements. Redesign some components to extend the overall reachability of our arm.
Software:
We attempted CSRT-based tracking, but resorted to ArUco tracking due to difficulties with estimating the current pose of the subject with CSRT.
Electronics:
If we had more time, we would have used the built-in potentiometers of our servos to hack a feedback loop for more precise control.