Hardware and conventions
The hardware, reference frames, and symbols used throughout the rest of the site.
Two right-handed Cartesian frames are used throughout. A world frame attached to the UR7e base, and a plate frame attached to the moving plate.
Fixed at the UR7e base. $\hat z_W$ points up against gravity. The manipulator Jacobian, the joint-state stream and all rigid-body transforms reported by the arm controller live in $\{W\}$.
Origin at the geometric centre of the plate. $\hat x_P$ runs along the plate's right edge as seen from the overhead camera, $\hat y_P$ along the upper edge, $\hat z_P$ along the plate normal. $\{P\}$ rotates with the wrist; the position of its origin in $\{W\}$ depends on the upper-arm joints.
The relative orientation of the two frames depends on the joint configuration $q \in \mathbb{R}^6$ and is encoded in a rotation matrix $R_{WP}(q) \in SO(3)$, with components of a vector $v$ transforming as $v^{W} = R_{WP}(q)\, v^{P}$. The inverse mapping is $R_{PW}(q) = R_{WP}(q)^{\top}$.
Writing a vector $\hat v$ with a trailing-superscript $\hat v^{F}$ indicates that its components are given in frame $F$. By construction $\hat e_x = (1, 0, 0)^{\top}$ in $\{P\}$, but its components in $\{W\}$ are the first column of $R_{WP}(q)$:
These two columns are the world-frame coordinates of the plate's local axes; they feed the wiring stage of the controller.
Rotation 3-vectors and the rotational manipulator Jacobian $J_r(q)$ are always expressed in the world frame $\{W\}$, so the trailing-superscript $^{W}$ is dropped from $\theta_{\text{tar}}$, $\Delta\theta$, and $J_r$ and retained only where the choice of frame is the point being made, as in the wiring stage, where the change of basis $R_{WP}$ is applied.
The ball is treated as a point in the plate plane, and its planar state is the 4-vector
with $(x, y)$ in metres in $\{P\}$ and $(\dot x, \dot y)$ in metres per second. The vision subsystem produces $X$ from the camera image (see the vision page); the controller consumes it.
A reference trajectory $r(t) = (x_r(t), y_r(t), \dot x_r(t), \dot y_r(t))$ is supplied from a small browser-based path designer. The reference is sampled at the controller rate and used to define the position and velocity tracking errors:
Five hardware components define the physical setup: the arm, the plate, the ball, the overhead camera, and the fiducial markers used to localise the plate in the camera image.
Six-axis collaborative arm. The joint configuration $q = (q_1, q_2, q_3, q_4, q_5, q_6) \in \mathbb{R}^6$ uses the canonical UR ordering: shoulder pan, shoulder lift, elbow, wrist 1, wrist 2, wrist 3.
A flat acrylic sheet bolted to the wrist tool flange through a custom adapter that fixes the plate centre at a known offset from the flange. The plate size sets the reachable workspace within which the ball can be balanced.
Standard regulation ball. The diameter sets the contact geometry for the rolling-without-slipping dynamics derived on the physics page; the mass enters the rolling equation only as a common factor that cancels.
Mounted overhead with optical axis approximately perpendicular to the plate. Only the colour stream is consumed by the perception pipeline; the depth channel is unused. The frame rate sets the upper bound on the perception update interval.
Printed at the plate corners with known coordinates in $\{P\}$. The perception subsystem detects all four in the camera image and uses them to fit a homography from image pixels to plate-frame metres.
During operation the upper-arm joints $q_1, q_2, q_3$ are held at their home values $q_{1,\text{home}}, q_{2,\text{home}}, q_{3,\text{home}}$. Only the three wrist joints $q_4, q_5, q_6$ articulate the plate. Two consequences follow.
First, the position of the plate centre is determined entirely by the locked joints and is constant during operation. The controller's job is to regulate the plate orientation alone; the control problem reduces to a three-dimensional rotation tracking problem.
Second, the inverse-kinematics step (described on the control page) reduces from a $3 \times 6$ underdetermined system to an effectively square $3 \times 3$ system on the wrist columns of the rotational Jacobian. This makes the IK well-conditioned at the home configuration and avoids the need for regularisation.