Junctions with more than two rotation axes

Now consider modeling a more complicated collection of attached links. The main novelty is that one link may have joints attached to it in more than two locations, as in $ {\cal A}_7$ in Figure 3.22. A link with more than two joints will be referred to as a junction.

If there is only one junction, then most of the complications arising from junctions can be avoided by choosing the junction as the root. For example, for a simple humanoid model, the torso would be a junction. It would be sensible to make this the root of the tree, as opposed to the right foot. The legs, arms, and head could all be modeled as independent chains. In each chain, the only concern is that the first link of each chain does not attach to the same point on the torso. This can be solved by inserting a fixed, fictitious link that connects from the origin of the torso to the attachment point of the limb.

Figure 3.23: The junction is assigned two different frames, depending on which chain was followed. The solid axes were obtained from transforming $ {\cal A}_9$, and the dashed axes were obtained from transforming $ {\cal A}_{13}$.
\begin{figure}\begin{center}
\centerline{\psfig{file=figs/linkjunct2.eps,width=3.0in}}
\end{center}
\end{figure}

The situation is more interesting if there are multiple junctions. Suppose that Figure 3.22 represents part of a 2D system of links for which the root, $ {\cal A}_1$, is attached via a chain of links to $ {\cal A}_5$. To transform link $ {\cal A}_9$, the tools from Section 3.3.1 may be directly applied to yield a sequence of transformations,

$\displaystyle T_1 \cdots T_5 T_6 T_7 T_8 T_9 \begin{pmatrix}x  y  1  \end{pmatrix} ,$ (3.68)

for a point $ (x,y) \in {\cal A}_9$. Likewise, to transform $ T_{13}$, the sequence

$\displaystyle T_1 \cdots T_5 T_6 T_7 T_{12} T_{13} \begin{pmatrix}x  y  1  \end{pmatrix}$ (3.69)

can be used by ignoring the chain formed by $ {\cal A}_8$ and $ {\cal A}_9$. So far everything seems to work well, but take a close look at $ {\cal A}_7$. As shown in Figure 3.23, its body frame was defined in two different ways, one for each chain. If both are forced to use the same frame, then at least one must abandon the nice conventions of Section 3.3.1 for choosing frames. This situation becomes worse for 3D trees because this would suggest abandoning the DH parameterization. The Khalil-Kleinfinger parameterization is an elegant extension of the DH parameterization and solves these frame assignment issues [524].

Steven M LaValle 2020-08-14