Spherical Parallel Manipulator
This is my approach at making a spherical parallel manipulator (SPM); specifically, it is a coaxial (all inputs are coaxial), 3-RRR (3 closed chains with 3 revolute joints each + 3DOF) SPM. One of the interesting parts of an SPM is that the a point specified by the intersection of the revolute axis does not move; in other words, the end effector traverses the surface of a sphere about its center.
Typical inverse kinematics for many closed chain systems is either outright impossible or very difficult; as such, in this system, I utilized simulations in Matlab for my motion planning rather than outright inverse kinematics. I can extract position, velocity, and acceleration trajectories for use in my SPM
Results/testing at bottom of page
8/26/2025: Completed first prototype of mechanical design/link geometry and Matlab simscape multibody model. Future improvements will be made for the mechanical design, but I've been having a lot of trouble with trajectory following with my current ESP32/TMC2208 set up.
11/13/2025: Selected as NJIT URI Phase 1 (Track 1) grant finalist
1/17/2026: Working on implementation of a more robust control system using ROS2/Gazebo with the goal of live trajectory generation given input from a imu sensor, most likely through simulation rather than any kinematics.
6/20/2026: Found previous research solving inverse/forward kinematics. Implementing this using ROS2/Gazebo for simulation, then Teensy 4.1 for actual trajectory following. Working on second iteration focusing on maximizing rigidity namely through design change in sleeved shafts and more precise manufacturing methods
Coaxial design with sleeved bushings; machined out of delrin and aluminum with tight tolerances to increase rigidity over first iteration
belt driven design
Coaxial design with concentric shafts for each input. Stacked layers for each input when assembling
Gears -> sla (resin) printed for tolerances + properties (durable resin is lubricious)
Everything else -> fdm printed
Mechanically constrained due to intersection of revolute axis at probe tip (sphere center)
TMC2208 + esp32
Motion Planning + testing
Matlab simscape multibody
Specify motion from tip of probe with gimbal joint (euler angles)
Results + testing
Motion: circle
(cos(t),sin(t))
Parametrized (output) motion
Simulated motion
Position trajectories (inputs)
Each color is one of three inputs
Motion: 5 point hypocycloid (0.5:0.3)
Parametrized (output) motion
Simulated motion
(3x speed) sped up for smaller gif sizes
Position trajectories (inputs)
Position trajectories represent the simulated motion of each input, the spinning rings at the bottom
Motion: off axis rotation
Parametrized (output) motion
Simulated motion
(2x speed)
Position trajectories (inputs)
Motion: circle + opposite constant rotation
Parametrized (output) motion
Simulated motion
(2x speed)
Position trajectories (inputs)