2
$\begingroup$

In a robot or spacecraft attitude representation, using quaternion is relevant. The kinematic equation is as below

$$ \begin{bmatrix} \dot{q}_0 \\ \dot{q} \end{bmatrix} = \frac{1}{2} \begin{bmatrix} -q^\top \\ q_0\,I_3 + q^\times \end{bmatrix} \omega=H(q) \omega $$

is there any way to solve this equation based on $\omega$ and $q$? actually I want to integrate the quaternion, but the nonlinear property of the equation makes it hard and complicate.

edit: as @fibonatic proved in this post, $$ \omega = 4\,H(q)^\top \dot{\textbf{q}} $$ so we can write $$ \omega.dt= 4\,H(q)^\top .d\textbf{q} $$ but I can't integrate $4\,H(q)^\top$ respect to $\textbf{q}$, because $\textbf{q}$ is a vector and I don't know how integrate based on a vector.


explaining why I want to do above calculation:

in a robotic problem I have below kinematic and dynamic equations: $$ \begin{cases} \dot{\textbf{q}} = H\omega \\ \dot{\omega} = -J^{-1} \omega^\times J \omega + J^{-1} u = f(\omega) + J^{-1} u \end{cases} \qquad \qquad (1) $$ the input %u% is designed such that, $\omega$ and $\textbf{q}$ follow a desired values, $\omega_{d}$ and $\textbf{q}_{d}$ // in a complicated process, I have define new $\Omega$ $$ \Omega = \nu(\omega) $$

which $\nu$ is a nonlinear function of $\omega$. I rederive the kinematic and dynamic equations for new $\Omega$ $$ \begin{cases} \dot{\textbf{q}_{new}} = H(q_{new})\Omega \\ \dot{\Omega} = g(\omega) + J^{-1} u \end{cases} \qquad \qquad (2) $$ which $\nu(\omega)$ is a nonlinear function of $\omega$. as you see, I have new quaternion calculation which differs from real quaternion in $equation (1)$. if we want to $\textbf{q}_{new}$ to reach $\textbf{q}_{d}$, it create steady state error in real quaternion, $\textbf{q}$. therefore, I should change the desired value of new quaternion, $\textbf{q}_{new\ d}$ such than real quaternion,$\textbf{q}$ reaches desired value $\textbf{q}_{d}$.

to find the $\textbf{q}_{new\ d}$, I should calculate $\dot{\textbf{q}_{new}} = H(q_{new})\Omega$

I wish, you understand what I want to calculate.

$\endgroup$
10
  • $\begingroup$ Can you clarify if the input (values that you have at the beginning) are q(0) and w(t) and you want to find q(t) ? Then the problem is one dimensional integration based on the variable t. Is it enough to find the result q(t) numerically ? Then the problem is quite straightforward. $\endgroup$
    – AJN
    Jun 6, 2021 at 6:03
  • $\begingroup$ @AJN, in a problem, I have a virtual $\omega$ which differs slightly from real $\omega$. when I put the virtual $\omega$ to kinematic, gets virtual quaternion. I use matlab for simulation. I want to path planning for virtual quaternion based on real quaternion path, $\omega$ and t. I want to solve the kinematic analytically not using matlab numerical solver. $\endgroup$
    – King
    Jun 6, 2021 at 7:35
  • $\begingroup$ in this problem, we have the instant value of the parameters and the initial values, $\omega(0)$, $q(0)$, $\omega(current)$, $q(current)$ and $t$. do you see the comment I wrote for Mike? I have explain the problem and why I want to calculate %q%. $\endgroup$
    – King
    Jun 6, 2021 at 7:45
  • $\begingroup$ calculating (integrating) the kinematic equation is completely mathematical problem. I said the application to clarify why I want to do that. $\endgroup$
    – King
    Jun 6, 2021 at 9:49
  • $\begingroup$ "if we want to qnew to reach qd, it create steady state error in real quaternion, q". In most practical scenarios, the steady state error is not solved by using an adjusted target, but using some type of integral term in the controller. But you are solving kinematics, i wonder why there should be a steady error. $\endgroup$
    – AJN
    Jun 6, 2021 at 9:50

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.