I have fixed the mechanical issues with the robotic arm by tightening the screws and filling the spaces between the servo motor arm and the plastic metal arm, but have run into some software and electrical issues. Sometimes the current draw of the servo motors spikes when the motors are under stall torque, causing the current to spike and voltage to drop. This leads the motors to stutter or sometimes not even move. While I don’t think this is a problem with the servo motor controller board (PCA9685), it could be an issue with the current draw that the lead-acid battery is capable of. I am holding off buying a lithium-ion battery that has a high current draw to power the servo motor controller board, because this voltage drop and current spike occurred after multiple hours and uses of the lead-acid battery, so the issue might be because the battery is not charged enough.
However, for the inverse kinematics, the accuracy of the system is still sometimes off by a couple of inches when the bounds of the robot’s range of motion are reached. The Matlab library seems to be more complicated than I need, so I have also tried to use a Python library for inverse kinematics called IKPy. This requires me to make a URDF file that is commonly used in ROS applications. In both applications, I am getting the angles I desire, but I have yet to test the IKPy library on the robotic arm. I am hoping the use of ROS and the URDF file, which is very standardized, can help me achieve some accuracy and precision. I also think I might have to simulate the entire KBBQ robot environment (dishes, grill, etc.), which will be easier with ROS.
In other minor updates, I have measured, planned out, and set the locations of the dishes, grill, robot, etc. This way, the robot will have an easier time being more precise within its range of motions.