The main overarching design criteria for our cake-decorating robot are recognizing cake shapes, planning design trajectories, and dispensing icing over a complete design.
For our sensing section, the system needs to be able to identify how many corners a shape had to determine its shape. It also needs to locate the center and boundaries of that shape to be used in the planning phase. The planning section needs to intake the shape category and location and output a design that would remain within the boundaries of that shape. Finally, the actuation section of our system needs to trace out the corresponding trajectory accurately and dispense icing at a consistent and appropriate speed.
RealSense D435i taped onto 3D Printed PLA (white), screwed onto camera stand (pink)
Industrial collaborative robot
Our design consists of a RealSense camera, the UR7e Robot Arm, and a custom 3D printed syringe holding attachment for the robot's end effector. The camera is held in a specific spot above the work table by a tripod stand and 3D printed fixture, ensuring the transformation between the camera's frame and the base link of the robot remains consistent, as shown in the picture to the left.
The robot arm itself was unchanged apart from the addition of our syringe attachment, which removed one gripper from the end effector and allowed the other gripper to slowly depress the plunger. Planning for the icing designs was done using parameterized functions to plot the x and y waypoints for each line, with consistent z-height and end-effector orientation, and the actual trajectory was calculated and sent to the arm using inverse kinematics and the Move It framework.
The full system was controlled using ROS2 architecture.
Any design choice is going to have benefits and drawbacks. For example, choosing to have our camera be separate from the moving arm made it much easier for our vision system to consistently identify shapes, but it introduced a potential for error in the transformation between camera and robot frames if we didn't put the camera in exactly the same spot each time. Using a position-based controller referenced content we had learned in both class (inverse kinematics) and laboratory (Move It), so it felt more appropriate to go with that approach on our final project, but a velocity-based controller may have made for a smoother trajectory for our icing designs.
We also went with an incremental stepper motion for the icing dispensing because although it could be jerky at times, we knew we wouldn't be able to program a continuous plunger depression slow enough to work for the consistency of fake icing available to us. Lastly, we chose to have our vision-based topics like shape type and center location only publish once instead of running continuously. This limited the robustness of our program on start-up--we had to make sure everything was in place before we ran the launch file, and couldn't change out the shape afterwards, but it ensured the program would not get confused by changes to those topics introduced when the robot moved into view of the camera and potentially disrupted its shape detection ability.
By choosing to use a syringe, the designs were limited by the amount of icing that could be contained and dispensed. The syringe worked for a minimum viable product, but in real engineering applications, it would be a bottleneck in efficiency. A possible solution could include a system of pipelines connecting the syringe to an external tank of icing, although this furthers complexity of actuating the syringe. In addition, the choice to create a custom end effector using 3D printed PLA means that the part was easily broken. Adding pumps and solenoids instead could reduce reliance on a custom end effector and increase control over dispensing.
If we were to increase robustness without increasing complexity, future steps could be taken to choose materials like aluminum for the syringe fixture. The syringe itself would also need a material change, and add a way to better alignment between the end effector and the plunger of the syringe. Better alignment would reduce risk of the depressing in the wrong direction and breaking the syringe and syringe fixture.
Model of attachment pieces along with syringe in Solidworks
Photo of 3D printed PLA attachment on UR7e
Misalignment between plunger and end effector led to attachment fracturing, resulting in dispensing at an angle
To improve our system for future implementation of identifying and decorating multiple cakes in a row (without restarting the program), we would need to implement sensing of the robot arm and/or add timers. Information is only taken from the vision-based topics in the very beginning and then paused for actuation so that movement of the robot arm within the camera view doesn't disrupt the trajectory planning. Next steps would include detection of the robot arm to understand when actuation is occurred and stopped, either based on sensing of the arm and dispensed icing or knowing exact timing of each design. The vision-based topics would be continuously subscribed to and the robot can restart decorating when a new cake is sensed.