Hi!
Finished my build of the AR4 MK3 in Finland some time ago. Even recoded the time the build took me,
52.5 hours of slow, careful and deliberate work.
Ros2 is working thanks to ycheng @
Below's a sample with Chris' software (object recognition) and one with ros 2 collision aware IK.
https://anninrobotics.com/wp-content/uploads/2025/07/AR4-MK3-in-Finland.mp4
https://anninrobotics.com/wp-content/uploads/2025/07/AR4-MK3-in-Finland_2.mp4
Hi all,
brief update. I have done work on the ROS2 solution to include a linear track, Pilz Motion Planner and velocity control (instead of the original position control) for a huge increase in speed while maintaining tolerances, among many other things.
I replaced some of the limit switches with optical switches, added a voltage and amperage display and incorporated a panic button in the code.
https://anninrobotics.com/wp-content/uploads/2025/07/AR4-MK3-in-Finland_3.mp4
https://anninrobotics.com/wp-content/uploads/2025/07/AR4-MK3-in-Finland_4.mp4
I'm using PlotJuggler in testing to validate the velocities, positions and accelerations, it's very helpful.
https://anninrobotics.com/wp-content/uploads/2025/07/AR4-MK3-in-Finland_2.mp4
Great job! Can you provide more detail on the optical switches used and what parts you needed to change?
@jmarduino Hi, here's a few pictures of the limit switches on linear track and J2.
https://anninrobotics.com/wp-content/uploads/2025/07/AR4-MK3-in-Finland_6.avif
https://anninrobotics.com/wp-content/uploads/2025/07/AR4-MK3-in-Finland_7.avif
https://anninrobotics.com/wp-content/uploads/2025/07/AR4-MK3-in-Finland_8.avif
Jann,
Thanks for posting pictures. Was there any code or electronics changes needed for the optical switches?
@jmarduino No changes necessary, as long as the switches give the same output as the original - some work in reverse.
Looking great!
For anyone interested, here's what the newest velocity control implementation might look like in practice. It allows for over 10 times faster acceleration amd velocity than the original position based control, while maintaining smaller position and goal errors.
@ycheng517 is merging these new changes into his solution, see