I completed the mechanical construction of my AR3 a few months ago. I'm sure you've seen enough pictures of that process so I will spare you any more. Where my project differs from standard is mostly in the program. I'll start with the functions that are currently operational.
All motion control processing done in micro controller. (forward/reverse kinematics and motion profiling).
Code is non-blocking. There are no delay() calls or loops waiting for something to complete. This allows the micro controller to be processing other functions even while the arm is moving.
All motions are programmed in engineering units. So joint positions are degrees with speed using degrees/s and acceleration using degrees/s/s. Likewise for linear moves but using mm.
Synchronized joint motions require each joint to report the amount of time to reach destination then all joints adjust to match the longest time duration (all joints complete motion at the same time).
Converted to Teensy4.1 for higher speed and USB host capabilities. Reverse kinematics takes 22 microseconds on the Teensy4.1.
Connect PS3 controller directly to Teensy 4.1 for manual control.
Can use the PS3 analog sticks to control joints with velocity control so you can adjust the speed continually while moving each joint (and move multiple joints at once). There are enough controls on the PS3 controller to control all 6 joints without changing modes. Also using the controller "rumble" feature when a joint position limit is reached.
Use the PS3 analog sticks to control the robot in XYZ coordinate space. The left analog stick allows you to freely move around the XY plane while holding a constant Z position. The left/right analog triggers allow increasing and decreasing the Z position. The right analog stick adjusts the wrist orientation. All of these motions can occur at the same time which makes it fun to drive the robot around.
That's about all that has been done so far.
Create a way to set and store waypoints so the robot can complete a useful task without modifying the arduino code. This could be done over USB serial or maybe it could be web based over Wifi? undecided so far.
I'll try and update this thread as the program gets improved and maybe post some videos if there's any interest.