The Forward Kinematic Problem

By | September 13, 2020

Here is the summary of section 2 of Chapter 6; Robotics and Automatic Geometric Theorem Proving of the book {Ideals, Varieties, and Algorithms} By‎ David A. Cox , John Little and Donal O’Shea

The Forward Kinematic Problem

Can ‎we ‎give ‎explicit ‎description ‎or ‎formula ‎for‎ f: \mathcal{J} \to \mathcal{C} in terms of the joint setings (our coordinates on ‎ ‎\mathcal{J}‎ ‎) and the dimensions of the segments of the robot “arms”?‎‎

The ‎asnwer ‎is ‎”Yes”. ‎In ‎other ‎words, ‎we ‎can ‎determine ‎the ‎position ‎and ‎orientation ‎of ‎the ‎”hand” ‎from ‎joint ‎settings ‎of ‎the ‎”arms”, ‎by ‎describing ‎the ‎relation ‎positions ‎of ‎the ‎segments ‎on ‎either ‎side ‎of a‎ ‎joint.‎

‎[Note that when a planar robot arm has three (or more) revolute joints, the equation f(j) = c has several solutions.]

Constraint in Motion of Real World Robots

‎If ‎our ‎real ‎world ‎robot ‎is ‎to ‎work ‎in a‎ ‎space ‎containing ‎physical ‎obstacles ‎or ‎barriers ‎to ‎movement ‎in ‎certain ‎directions, ‎it ‎may b‎e ‎the ‎case ‎that ‎some ‎of ‎the ‎solution‎s of f: \mathcal{J} \to \mathcal{C} for a given c \in ‎\mathcal{C}‎ ‎correspond ‎to ‎positions ‎that ‎are ‎not ‎physically ‎reachable.‎‎

‎Relative Position

For ‎describing ‎the ‎relative ‎position‎s of the segments meeting at a joint, we introduce a local local rectangular coordinate system at each of revolute joints.‎

At a‎ ‎revolute ‎joint‎ ‎ i ‎, we introduce an (x_{i+1},y_{i+1}) ‎coordinate ‎system ‎in ‎the ‎following ‎way. ‎The ‎origin ‎is ‎placed ‎at ‎joint‎ ‎ i . ‎We ‎take ‎the ‎positive‎ x_{i+1} -axis ‎to ‎lie ‎along ‎the ‎direction ‎of ‎segment‎ ‎ i+1 ‎(in the robot’s current position). ‎Then ‎the ‎positive‎ ‎ y_{i+1} -axis ‎is ‎determined ‎to ‎form a‎ ‎normal ‎right‎-handed rectangular coordinate system. Note for each ‎ i \ge 2 , ‎the‎ ‎ (x_i,y_i) ‎coordinate ‎of ‎joint‎ ‎ i ‎are‎ ‎ (\ell_i,0) , ‎where‎ ‎ \ell_i ‎is ‎the ‎length ‎of ‎segment‎ ‎ i .‎‎

Now the ‎question‎ is; when we have a point in (x_{i+1},y_{i+1}) coordinate, how can we describe it in (x_i,y_i) coordinate?

The ‎answer‎ is;‎

Let‎ ‎ \theta‎_i ‎be ‎the ‎counterclockwise ‎angle ‎from ‎the‎ x_i ‎-axis to the ‎ x_{i+1} -axis‎, and ‎ q = (a_{i+1},b_{i+1}) , ‎then‎ ‎ q = (a_i,b_i) ‎in‎ (x_i,y_i) coordinate is:‎

\begin{bmatrix} a_i \\ b_i \\ \end{bmatrix} =‎ \begin{bmatrix} \cos ‎\theta‎_i & -\sin \theta_i \\ \sin \theta_i &\cos \theta_i \\ \end{bmatrix}‎ .‎ \begin{bmatrix} a_{i+1} \\ b_{i+1}\\ \end{bmatrix} ‎‎‎+‎ \begin{bmatrix} \ell_i \\ 0 \\ \end{bmatrix}

Generalization

consider a planar robot with a fixed segment ‎ 1 ,‎‎ n ‎revolute ‎joints ‎linking ‎segments ‎of ‎length‎ ‎ \ell_2, \ldots, \ell_n . ‎The ‎hand ‎is ‎segment‎ n+1 , attached ‎to ‎segment‎ ‎ n ‎by ‎joint‎ n ‎. Now by induction on ‎ n we can conclude that ‎‎‎the mapping f: \mathcal{J} \to \mathcal{C} for this robot has the following form‎:

‎‎ ‎f(‎\theta‎_1, \ldots, ‎\theta‎_n)‎ =‎ \begin{bmatrix} \sum\limits_{i=1}^{n-1} \ell_{i+1} \cos \big (\sum\limits_{j=1}^i ‎\theta‎_j \big ) \\ \sum\limits_{i=1}^{n-1} \ell_{i+1} \sin \big (\sum\limits_{j=1}^i \theta_j \big ) \\‎ \sum\limits_{i=1}^n \theta_i \end{bmatrix}

With using the notion of ‎ Algebraic Variety ‎we ‎have ‎defined a‎ ‎polynomial ‎mapping ‎from ‎the ‎variety‎ ‎\mathcal{J} = V \big ({x_1}^2 + {y_1}^2 - 1 , \ldots , {x_n}^2 + {y_n}^2 - 1\big ) ‎to‎ ‎ ‎\mathbb{R}^2‎ .‎‎‎‎

Leave a Reply

Your email address will not be published. Required fields are marked *