Hardware and conventions

Setup

The hardware, reference frames, and symbols used throughout the rest of the site.

§ 1Reference frames

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.

$\{W\}$ · world

World frame

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\}$.

$\{P\}$ · plate

Plate frame

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.

W W $\{W\}$ P P $\{P\}$
Figure 1. The two reference frames in context. World frame $\{W\}$ at the UR7e base; plate frame $\{P\}$ at the geometric centre of the plate. The plate frame rotates with the wrist.

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)$:

$$\hat x_P^{\,W}(q) \;=\; R_{WP}(q)\, \hat e_x, \qquad \hat y_P^{\,W}(q) \;=\; R_{WP}(q)\, \hat e_y.$$

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.

§ 2Ball state and reference trajectory

The ball is treated as a point in the plate plane, and its planar state is the 4-vector

$$X \;=\; \begin{pmatrix} x & y & \dot x & \dot y \end{pmatrix}^{\!\top} \;\in\; \mathbb{R}^4,$$

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:

$$e_p(t) = \begin{pmatrix} x - x_r \\ y - y_r \end{pmatrix}, \qquad e_v(t) = \begin{pmatrix} \dot x - \dot x_r \\ \dot y - \dot y_r \end{pmatrix}.$$
$\hat x_P$ $\hat y_P$ {P} target $r(t)$ ball $X$ $-e_p$
Figure 1. Plate frame $\{P\}$ as seen from the overhead camera. Origin at the plate centre, $\hat x_P$ to the right, $\hat y_P$ up. The four corners carry the ArUco fiducials. The arrow from ball to target is the negative position error $-e_p$.

§ 3Hardware

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.

Universal Robots UR7e

6-DOF · 850 mm reach · 7 kg payload

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.

$\{P\}$ $L = 45.7$ cm

Acrylic plate

square · side $L = 45.7$ cm

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.

$2\rho = 40$ mm

ITTF ping-pong ball

diameter $2\rho = 40$ mm · mass $m \approx 2.7$ g

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.

RealSense D435i

Intel RealSense D435i

overhead · 60 fps colour stream

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.

DICT_4×4_50

ArUco fiducial markers

four corners · known $\{P\}$-frame coordinates

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.

§ 4Joint locking

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.

$q_1$ shoulder LOCKED $q_2$ lift LOCKED $q_3$ elbow LOCKED $q_4$ wrist 1 FREE $q_5$ wrist 2 FREE $q_6$ wrist 3 FREE held at home articulate the plate
Figure 2. Joint locking. The three upper-arm joints are held at home; only the three wrist joints contribute to plate orientation.

§ 5Notation summary

$\{W\}$, $\{P\}$
world frame (UR base) and plate frame (plate centre).
$v^{F}$
vector $v$ with its components written in frame $F \in \{W, P\}$.
$R_{WP}(q) \in SO(3)$
rotation matrix that takes components of a vector in $\{P\}$ to components in $\{W\}$: $v^{W} = R_{WP}(q)\, v^{P}$.
$R_{PW}(q) = R_{WP}(q)^{\top}$
inverse mapping: $v^{P} = R_{PW}(q)\, v^{W}$.
$\hat x_P^{\,W}(q), \hat y_P^{\,W}(q)$
plate's local axes expressed in $\{W\}$; first two columns of $R_{WP}(q)$.
$X = (x, y, \dot x, \dot y)^\top$
ball state in $\{P\}$.
$r(t) = (x_r, y_r, \dot x_r, \dot y_r)$
reference trajectory in $\{P\}$.
$e_p, e_v$
position and velocity tracking errors in $\{P\}$.
$q \in \mathbb{R}^6$
UR joint configuration; $q_{1..3}$ locked at home, $q_{4..6}$ free.
$L = 0.457$ m
plate side length.
$\rho = 0.020$ m, $m \approx 0.0027$ kg
ball radius and mass.

§ 6References

  1. Garrido-Jurado, S., Muñoz-Salinas, R., Madrid-Cuevas, F. J., Marín-Jiménez, M. J. (2014). Automatic generation and detection of highly reliable fiducial markers under occlusion. Pattern Recognition, 47(6), 2280–2292. doi.org/10.1016/j.patcog.2014.01.005
  2. Romero-Ramirez, F. J., Muñoz-Salinas, R., Medina-Carnicer, R. (2018). Speeded up detection of squared fiducial markers. Image and Vision Computing, 76, 38–47. doi.org/10.1016/j.imavis.2018.05.004
  3. Zhang, Z. (2000). A flexible new technique for camera calibration. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(11), 1330–1334. doi.org/10.1109/34.888718
  4. Keselman, L., Woodfill, J. I., Grunnet-Jepsen, A., Bhowmik, A. (2017). Intel RealSense stereoscopic depth cameras. CVPR Workshops. arxiv.org/abs/1705.05548
  5. Murray, R. M., Li, Z., Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manipulation. CRC Press. cds.caltech.edu/~murray/mlswiki
  6. Universal Robots A/S (2024). PolyScope 5 User Manual — UR7e. Universal Robots A/S, doc. 733-466-00. universal-robots.com/manuals