0
$\begingroup$

In a situation where I have two axis adjacent back to back (let's say a robotic arm) I can sometimes perform two rotations ($R_1, R_2$) such that the resulting position and direction is unchanged.

This is trivial in cases where two axis are identical -- having $R_2 = -R_1$.

In case the axis are orthogonal, there is no solution.

Third case being in between the two, where there is not a solution, but there is a "best" fit.


A more complex situation is having $~15$ of these axis.

What is the proper name for this concatenated rotation (so I can search better) and how would one model a counter rotation? I envision an algorithm along these lines, but I'd like a closed form solution:

For rotations $i$ through $j$

  1. Let $k$ = $j$
  2. Find best fit rotation for $k$..$j$
  3. If this is not a $0$-error solution
    • Set $k$ = $k - 1$
    • Goto #2

Additional Information as per comments below:

Achieving cumulative rotation of identity is a simplified version. This is more complex because rotations do not start at the same origin. They are concatenated -- so in real world a robot's arm of $15$ degrees of freedom, with each rod being, say, $12$ inches, may collide and prevent the rotation. I'm not worried about this collision for theory purposes.

So for full solution, I need final rotation to be identity, and translation of the last vector to be zero

  • 0
    Counter, as in "undo a rotation"? Note that rotation matrices are orthogonal ($\mathbf Q^T=\mathbf Q^{-1}$)...2011-09-02
  • 0
    Let me see if I can clarify: You have ~15 fixed axes about which you can rotate, and you want to find some non-trivial combination of 2 or more rotations about these axes that gets "close" to the identity? Are you also requiring that you rotate about these axes in order? Are you specifying the initial rotation about axis 1? Interesting problem.2011-09-02
  • 1
    If the (however many) rotations are about the same origin, the product of rotations is again a rotation, but the axis will not be either of the prior axes. So there will be a single rotation to bring you back. If you multiply the matrices for the rotations and transpose it, you have the rotation matrix to bring you back.2011-09-02
  • 0
    I've modified the OP with more information. @JM - of course "undo a rotation" is easy if you're on the same axis. This isn't the situation of my question.2011-09-02
  • 0
    I see; you've quite so many degrees of freedom, I'd be surprised if there's an easy solution...2011-09-02
  • 0
    Regardless of degrees of freedom at least 1 solution has to exist - the original configuration. If you're holding a chain with two hands and a second person is moving and twisting the chain -- that's the problem I'm describing.2011-09-02
  • 0
    A further clarification: Mikhail, are these axes mobile? If you're talking about a robotic arm with multiple joints, the axes move as you move each segment of the limb. In that case, a solvable subproblem is when all the joints lie are parallel; you just ask that the lengths of the limbs form an n-gon.2011-09-02
  • 0
    @Craig, Yes axes move with each preceding rotation. I don't have control over the angle between the limbs.2011-09-02

0 Answers 0