Friday, January 22, 2021

My _Modern Robotics_ Book Arrived

My Modern Robotics book by Lynch and Park just arrived! It is truly the best bridge between manifold topology and Lagrangian mechanics ("mechanics on manifolds") to robotics I am likely to encounter (I think; I obviously haven't read it yet). It comes with a YouTube channel and a Coursera course and I'm as excited about it as I was my first course in control engineering at UW-Platteville.

(Somehow, some content got snipped off; I'll have to try to recreate it later - boo-hiss!)

Saturday, December 19, 2020

Transformation Matrices

So, I've been thinking about transformation matrices $_{i+1}^iT$ used in robotics engineering, their relationships to the representation of $SE(3) = \mathbb{R}^3 \rtimes SO(3)$ as $_{i+1}^iT = \begin{bmatrix} \begin{array}{c|c} U & \mathbf{\vec{v}} \\ \hline \mathbf{\vec{0}} & 1 \end{array}\end{bmatrix}$, how one would multiply $_{3}^0T = _{1}^0T _{2}^1T  _{3}^2T$, for instance, and how this relates to the underlying manifold topology.

So, if the first joint attached to the is a revolute joint (rotational along one axis only), the second one is a prismatic joint (translational along one axis only) and the third one is a again a revolute joint, one would have for the "first" manifold $Q_1 = S^1 \subseteq SE(3)$, for the "second" manifold $Q_2 = [0,l] \subseteq SE(3)$, and for the "third" manifold $Q_3 = S^1 \subseteq SE(3)$. One would then have for the "composition" manifolds $Q_1^1$, $Q_{12}^2 = Q_1 \times Q_2$, and then for the overall configuration manifold $Q^3 = Q_{123}^3 = Q_1 \times Q_2 \times Q_3$. Then one would have for any coordinate patches $\phi_1: I_1 \to Q_1$, $\phi_2: I_2 \to Q_2$, and $\phi_3: I_3 \to Q_3$, an "overall" coordinate patch $\phi: I_1 \times I_2 \times I_3 \to Q_1 \hookrightarrow Q_1 \times Q_2 \hookrightarrow Q_1 \times Q_2 \times Q_3$, and the transformation matrices "come" from the initial coordinate patch of $I_1$ about $Q_1$, then the composition of the inclusion maps $\iota_1: Q_1 \hookrightarrow Q_1 \times Q_2$ and $\iota_2: Q_1 \times Q_2 \hookrightarrow Q_1 \times Q_2 \times Q_3$ from each partial product into the larger partial product, together with the representation of the embeddings of the $Q_i$'s in $SE(3)$.

Friday, December 18, 2020

General Method of Applying Manifold Topology to System Dynamics/Control Engineering/Robotics

Here is my heuristic algorithm for applying manifold topology to system dynamics, control engineering, and (I think) robotics in general.

For each "moving part" in the dynamical system, we have a copy of $SE(3) = \mathbb{R}^3 \rtimes SO(3) (= Q_{\text{free}}$ in Bullo and Lewis's notation$)$. For $N$ moving parts, we have $N$ copies of $SE(3)$, $SE(3)^N$. The process for creating this is somewhat automated by Denavit-Hartenberg tables:


(The graphic is from this video series

We then have interconnections between the moving parts, which leads to an $n$ dimensional submanifold of $SE(3)^N$, $Q^n$, called the configuration space of the dynamical system.

This configuration space has a Riemannian metric $g$ it inherits as a submanifold of $SE(3)^N$. The Riemannian metric, $g$, then has a canonical lift $\tilde{g}$  to the tangent bundle, $TQ$, of $Q$, as outlined in do Carmo, for instance. With this lift of the Riemannian metric, we have a musical isomorphism between $TQ$ and $T^*Q$, the co-tangent bundle. Now, the co-tangent bundle is naturally a symplectic manifold, with canonical symplectic from $\omega$. Corresponding to $\tilde{g}$ and $\omega$, we have a canonical almost complex structure $J$ on $TQ$ (and/or $T^*Q$?), completing the canonical compatible triple, $(\tilde{g}, \omega, J)$, on (say) $TQ$.

Next, in a coordinate patch on $TQ$, we have a Lagrangian function $L$. We may then have a non-conservative force field acting additionally on the mechanical system, which we model as a differential 1-form $\mathcal{F}$. This lead to the system of first-order differential equations $$\begin{cases} \frac{d}{dt}\left\{\frac{\partial L}{\partial \dot{q}_1}\right\} - \frac{\partial L}{\partial q_1} = \mathcal{F}_1 \\ \ldots \\ \frac{d}{dt}\left\{\frac{\partial L}{\partial \dot{q}_n}\right\} - \frac{\partial L}{\partial q_n} = \mathcal{F}_n \end{cases}$$ Now, this system may have a critical point $(q, \dot{q})$. At this critical point, we can take the Jacobian matrix $A$ of the Lagrangian vector field/differential 1-form. This then becomes the plant function for a control engineering problem. The matrix $A$ should have $2n$ eigenvalues; because of a hypertechnical consideration, we will suppose none of them are purely imaginary, so the Hartman-Groβman Theorem applies. We then place a control feedback loop with proportional control gain matrix $K$ given as in this diagram.


We then use the gain matrix $K$ to place $2n-2$ of the eigenvalues of the closed-loop system to have real part between, say, -5 and -10 in the complex plane, then place the remaining two eigenvalues -- called the dominant eigenvalues or the dominant poles of the closed-loop system -- to have real part between, say, -2 and 0 and to satisfy the design requirements of the control engineering problem specifications.

Wednesday, December 16, 2020

My Understanding of The Hodge Conjecture

(So, this is an unbelievably naïve attempt at understanding the conjecture; I literally just heard about it for the first time today.)

(Before I begin, I would like to give major props to David Metzler and Aleph_0 for their wonderful videos explaining to me and introducing to me, respectively, The Hodge Conjecture.)

 So, it is a theorem of Bézout that if algebraic varieties $V$ and $W$ have degrees $n$ and $m$ respectively, they have $nm$ intersection points.

But, as David Metzler explains it, there are three major impediments to finding/counting the intersections of algebraic varieties. 1) The varieties may not have any real intersections, or, at least, fewer than are predicted by Bézout's Theorem; for this, we use complex varieties. 2) The varieties, like parallel lines in the plane, may not intersect in the finite portion of $\mathbb{R}^N$; for this, we use a projective space. Hence, to consider intersections of varieties, we use $\mathbb{C}P^N$ (for $N$ large) as an embedding space for all the varieties in question. Note that by a confluence of about 10 theorems, any complex submanifold $M$ of $\mathbb{C}P^N$ is Kähler. Finally, 3) an intersection may be a "multiple" intersection, and so to correctly "count" the number of intersection points, the intersection points may need to be "counted with multiplicities"; to get around this third point, we assume all complex varieties are smooth manifolds and make both varieties transverse.

So, in $\mathbb{C}P^N$, we consider a smooth complex variety $V$ with $2n$ intersections with any (and, hence, all) lines $L$, adjust $V$ to a complex manifold $M$ with $M$ transverse to $L$, so they genuinely intersect in $2n$ points. Now, consider an $H^{2n}(M; \mathbb{Q})$ Poincaré dual $w$ to $M$. As $M$ is Kähler, $w$ has a unique representation as harmonic differential forms $\sum_{p+q=2n}r_{p,q}\omega_{p,q}$. By black magic, the integrals $\displaystyle \int_{V'} \omega_{p,q} = 0$ for $(p,q) \neq (n,n)$, so, for reason to which I'll come back some other day, we need only consider $\omega_{n,n}$.

 The Hodge Conjecture asks if there is a collection of complex varieties $V_1, V_2, \ldots, V_m$ with $\omega_{n,n} = \sum_{i=1}^m q_i[V_i] \in H^{2n}(\mathbb{C}P^N; \mathbb{Q})$, where each $[V_i]$ is a rational Poincaré dual to $V_i$; that is, The Hodge Conjecture asks if $\omega_{n,n}$ must be algebraic.

I think this is the coolest open problem in manifold topology I have ever seen (with possible apologies to The Borel Conjecture).


 So, I had been told a bajillion times at topology math conferences that robotics is a big area for applications of manifold topology and geometric group theory, but I never really took the statements seriously: that was "applied math".

Low and behold, as I was Googling for applications of manifold topology and Larangian mechanics to geometric control theory, thisYouTube video playlist popped up and I don't think my life will ever be the same.

Robotics is the application of manifold topology and Lagrangian mechanics for which I had been looking for, I think, my whole life. So, their 4x4 transformation matrices, which are really representations of the special Euclidean group, $SE(3) = \mathbb{R}^3 \rtimes SO(3)$, are just wonderful mathematics, and DH tables are a fabulous ways of encoding and automating the process of creating transformation matrices.

So, I now have a new purpose in life. I am considering postponing my MS in Control Engineering at UW-Platteville to seek a (hopefully online) BS or BS Certificate in Mechanical Engineering and then, with that credential in place, completing an MS or Ph.D. in Control Engineering, either at UW-Platt or U Washington (in Washington State).

 I think a future in Robotics Engineering could be a very bright and rewarding future for me indeed.

Thursday, April 23, 2020

Books to Study After Calc III

Here is a list of books to study after Calc III (the books I wish I had studied in this order):

  1. Boyce/Diprima or Zill or Blanchard/Devaney/Hall
  2. Lay or Robbin (a personal favorite; his original manuscript for the book is even better)
  3. Baby Munkres
  4. Bott and Tu 
  5. Munkres 
  6. Hatcher 
  7. Kosinsiki 
  8. Davis and Kirk (Optional)
  9. do Carmo (Optional)
  10. Arnold (Self-Study/Skim)
  11. Abraham and Robbin (Self-Study?)
  12. Abraham and Marsden
  13. System Dynamics  (I have yet to read this)
  14. Fundamentals of Electrical Circuits (I have yet to read this)
  15. Dorf/Bishop and/or Nise
  16. Bullo and Lewis
  17. Brunton and Kutz

Monday, November 18, 2019

Routh Arrays

So, this week, we learned about Routh arrays. It's evidently a theorem about the sign changes of the real part of the roots of a polynomial based on the coefficients. I knew a few of these from my undergrad and graduate math days, but didn't think they were very important. I kind-of knew there would be some interest in the roots of polynomials, but didn't know exactly how it would come into play.

There's a MATLAB function someone evidently wrote to compute Routh arrays It's super-useful. I got my homework done this week in ~30-45 minutes using it, which I think that might have take 4 hours or more computing all the Routh arrays by hand.

I always knew there was more to Brandon Routh than met the eye, and now I found out what it is. I was always very sorry he never got to reprise his role as The Man of Steel, and was very happy to see he was cast in the Arroverse "Crisis on Infinite Earths" story arc. More "Arne Saknussemm" notes on my way to the center of the control engineering universe.