https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Quaternion_estimator_algorithm
Quaternion estimator algorithm - Revision history
2025-05-29T10:49:58Z
Revision history for this page on the wiki
MediaWiki 1.45.0-wmf.2
https://en.wikipedia.org/w/index.php?title=Quaternion_estimator_algorithm&diff=1235956895&oldid=prev
OAbot: Open access bot: hdl updated in citation with #oabot.
2024-07-22T03:24:45Z
<p><a href="/wiki/Wikipedia:OABOT" class="mw-redirect" title="Wikipedia:OABOT">Open access bot</a>: hdl updated in citation with #oabot.</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 03:24, 22 July 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 173:</td>
<td colspan="2" class="diff-lineno">Line 173:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Three-axis attitude determination from vector observations|year=1981|journal=Journal of Guidance and Control|volume=4|pages=70–77|issue=1|last1=Shuster|first1=M.D.|last2=Oh|first2=S.D.|doi=10.2514/3.19717|bibcode=1981JGCD....4...70S}}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Three-axis attitude determination from vector observations|year=1981|journal=Journal of Guidance and Control|volume=4|pages=70–77|issue=1|last1=Shuster|first1=M.D.|last2=Oh|first2=S.D.|doi=10.2514/3.19717|bibcode=1981JGCD....4...70S}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Fast linear quaternion attitude estimator using vector observations|year=2017|journal=IEEE Transactions on Automation Science and Engineering|volume=15|pages=307–319|issue=1|publisher=IEEE|last1=Wu|first1=Jin|last2=Zhou|first2=Zebo|last3=Gao|first3=Bin|last4=Li|first4=Rui|last5=Cheng|first5=Yuhua|last6=Fourati|first6=Hassen|doi=10.1109/TASE.2017.2699221|s2cid=3455346|url=https://hal.inria.fr/hal-01513263/file/bare_jrnl.pdf}}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Fast linear quaternion attitude estimator using vector observations|year=2017|journal=IEEE Transactions on Automation Science and Engineering|volume=15|pages=307–319|issue=1|publisher=IEEE|last1=Wu|first1=Jin|last2=Zhou|first2=Zebo|last3=Gao|first3=Bin|last4=Li|first4=Rui|last5=Cheng|first5=Yuhua|last6=Fourati|first6=Hassen|doi=10.1109/TASE.2017.2699221|s2cid=3455346|url=https://hal.inria.fr/hal-01513263/file/bare_jrnl.pdf}}</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=A simplified quaternion-based algorithm for orientation estimation from earth gravity and magnetic field measurements|year=2008|journal=IEEE Transactions on Instrumentation and Measurement|volume=57|pages=638–650|issue=3|publisher=IEEE|last1=Yun|first1=Xiaoping|last2=Bachmann|first2=Eric R|last3=McGhee|first3=Robert B|doi=10.1109/TIM.2007.911646|s2cid=15571138}}</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=A simplified quaternion-based algorithm for orientation estimation from earth gravity and magnetic field measurements|year=2008|journal=IEEE Transactions on Instrumentation and Measurement|volume=57|pages=638–650|issue=3|publisher=IEEE|last1=Yun|first1=Xiaoping|last2=Bachmann|first2=Eric R|last3=McGhee|first3=Robert B|doi=10.1109/TIM.2007.911646|s2cid=15571138<ins style="font-weight: bold; text-decoration: none;">|hdl=10945/46081|hdl-access=free</ins>}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td>
</tr>
</table>
OAbot
https://en.wikipedia.org/w/index.php?title=Quaternion_estimator_algorithm&diff=1169879608&oldid=prev
97.113.187.176: Adding the word "conjugate" to clarify for people who are not as familiar with the * notation in the domain of conjugates.
2023-08-11T21:49:36Z
<p>Adding the word "conjugate" to clarify for people who are not as familiar with the * notation in the domain of conjugates.</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 21:49, 11 August 2023</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 131:</td>
<td colspan="2" class="diff-lineno">Line 131:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>that gives the quaternion representation of the optimal rotation as</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>that gives the<ins style="font-weight: bold; text-decoration: none;"> conjugate</ins> quaternion representation of the optimal rotation as</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> \mathbf{q}^* = \frac{1}{\sqrt{\gamma^2 + \left| \mathbf{x} \right|^2}} (\mathbf{x}, \gamma)^\top </math></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> \mathbf{q}^* = \frac{1}{\sqrt{\gamma^2 + \left| \mathbf{x} \right|^2}} (\mathbf{x}, \gamma)^\top </math></div></td>
</tr>
</table>
97.113.187.176
https://en.wikipedia.org/w/index.php?title=Quaternion_estimator_algorithm&diff=1096076964&oldid=prev
SunDawn: Importing Wikidata short description: "Algorithm to solve Wahba's problem"
2022-07-02T04:36:42Z
<p>Importing Wikidata <a href="/wiki/Wikipedia:Short_description" title="Wikipedia:Short description">short description</a>: "Algorithm to solve Wahba's problem"</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 04:36, 2 July 2022</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{Short description|Algorithm to solve Wahba's problem}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''quaternion estimator algorithm''' ('''QUEST''') is an [[algorithm]] designed to solve [[Wahba's problem]], that consists of finding a [[rotation matrix]] between two coordinate systems from two sets of observations sampled in each system respectively. The key idea behind the algorithm is to find an expression of the loss function for the Wahba's problem as a [[quadratic form]], using the [[Cayley–Hamilton theorem]] and the [[Newton's method|Newton–Raphson method]] to efficiently solve the eigenvalue problem and construct a [[numerical stability|numerically stable]] representation of the solution.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''quaternion estimator algorithm''' ('''QUEST''') is an [[algorithm]] designed to solve [[Wahba's problem]], that consists of finding a [[rotation matrix]] between two coordinate systems from two sets of observations sampled in each system respectively. The key idea behind the algorithm is to find an expression of the loss function for the Wahba's problem as a [[quadratic form]], using the [[Cayley–Hamilton theorem]] and the [[Newton's method|Newton–Raphson method]] to efficiently solve the eigenvalue problem and construct a [[numerical stability|numerically stable]] representation of the solution.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
</table>
SunDawn
https://en.wikipedia.org/w/index.php?title=Quaternion_estimator_algorithm&diff=1075320079&oldid=prev
Citation bot: Alter: journal. Add: url, s2cid, bibcode, doi. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 300/387
2022-03-05T03:19:34Z
<p>Alter: journal. Add: url, s2cid, bibcode, doi. | <a href="/wiki/Wikipedia:UCB" class="mw-redirect" title="Wikipedia:UCB">Use this bot</a>. <a href="/wiki/Wikipedia:DBUG" class="mw-redirect" title="Wikipedia:DBUG">Report bugs</a>. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 300/387</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 03:19, 5 March 2022</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 167:</td>
<td colspan="2" class="diff-lineno">Line 167:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Sources ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Sources ==</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Survey of nonlinear attitude estimation methods|year=2007|journal=Journal of <del style="font-weight: bold; text-decoration: none;">guidance</del>, <del style="font-weight: bold; text-decoration: none;">control</del>, and <del style="font-weight: bold; text-decoration: none;">dynamics</del>|volume=30|pages=12–28|issue=1|last1=Crassidis|first1=John L|last2=Markley|first2=F Landis|last3=Cheng|first3=Yang}}</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Survey of nonlinear attitude estimation methods|year=2007|journal=Journal of <ins style="font-weight: bold; text-decoration: none;">Guidance</ins>, <ins style="font-weight: bold; text-decoration: none;">Control</ins>, and <ins style="font-weight: bold; text-decoration: none;">Dynamics</ins>|volume=30|pages=12–28|issue=1|last1=Crassidis|first1=John L|last2=Markley|first2=F Landis|last3=Cheng|first3=Yang<ins style="font-weight: bold; text-decoration: none;">|doi=10.2514/1.22452|bibcode=2007JGCD...30...12C</ins>}}</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Quaternion attitude estimation using vector observations|year=2000|journal=The Journal of the Astronautical Sciences|volume=48|pages=359–380|issue=2|publisher=Springer|last1=Markley|first1=F Landis|last2=Mortari|first2=Daniele}}</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Quaternion attitude estimation using vector observations|year=2000|journal=The Journal of the Astronautical Sciences|volume=48|pages=359–380|issue=2|publisher=Springer|last1=Markley|first1=F Landis|last2=Mortari|first2=Daniele<ins style="font-weight: bold; text-decoration: none;">|doi=10.1007/BF03546284|bibcode=2000JAnSc..48..359M</ins>}}</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Attitude-determination filtering via extended quaternion estimation|year=2000|journal=Journal of Guidance, Control, and Dynamics|volume=23|pages=206–214|issue=2|last1=Psiaki|first1=Mark L}}</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Attitude-determination filtering via extended quaternion estimation|year=2000|journal=Journal of Guidance, Control, and Dynamics|volume=23|pages=206–214|issue=2|last1=Psiaki|first1=Mark L<ins style="font-weight: bold; text-decoration: none;">|doi=10.2514/2.4540|bibcode=2000JGCD...23..206P</ins>}}</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Three-axis attitude determination from vector observations|year=1981|journal=Journal of <del style="font-weight: bold; text-decoration: none;">guidance</del> and Control|volume=4|pages=70–77|issue=1|last1=Shuster|first1=M.D.|last2=Oh|first2=S.D.}}</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Three-axis attitude determination from vector observations|year=1981|journal=Journal of <ins style="font-weight: bold; text-decoration: none;">Guidance</ins> and Control|volume=4|pages=70–77|issue=1|last1=Shuster|first1=M.D.|last2=Oh|first2=S.D.<ins style="font-weight: bold; text-decoration: none;">|doi=10.2514/3.19717|bibcode=1981JGCD....4...70S</ins>}}</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Fast linear quaternion attitude estimator using vector observations|year=2017|journal=IEEE Transactions on Automation Science and Engineering|volume=15|pages=307–319|issue=1|publisher=IEEE|last1=Wu|first1=Jin|last2=Zhou|first2=Zebo|last3=Gao|first3=Bin|last4=Li|first4=Rui|last5=Cheng|first5=Yuhua|last6=Fourati|first6=Hassen}}</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Fast linear quaternion attitude estimator using vector observations|year=2017|journal=IEEE Transactions on Automation Science and Engineering|volume=15|pages=307–319|issue=1|publisher=IEEE|last1=Wu|first1=Jin|last2=Zhou|first2=Zebo|last3=Gao|first3=Bin|last4=Li|first4=Rui|last5=Cheng|first5=Yuhua|last6=Fourati|first6=Hassen<ins style="font-weight: bold; text-decoration: none;">|doi=10.1109/TASE.2017.2699221|s2cid=3455346|url=https://hal.inria.fr/hal-01513263/file/bare_jrnl.pdf</ins>}}</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=A simplified quaternion-based algorithm for orientation estimation from earth gravity and magnetic field measurements|year=2008|journal=IEEE Transactions on <del style="font-weight: bold; text-decoration: none;">instrumentation</del> and <del style="font-weight: bold; text-decoration: none;">measurement</del>|volume=57|pages=638–650|issue=3|publisher=IEEE|last1=Yun|first1=Xiaoping|last2=Bachmann|first2=Eric R|last3=McGhee|first3=Robert B}}</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=A simplified quaternion-based algorithm for orientation estimation from earth gravity and magnetic field measurements|year=2008|journal=IEEE Transactions on <ins style="font-weight: bold; text-decoration: none;">Instrumentation</ins> and <ins style="font-weight: bold; text-decoration: none;">Measurement</ins>|volume=57|pages=638–650|issue=3|publisher=IEEE|last1=Yun|first1=Xiaoping|last2=Bachmann|first2=Eric R|last3=McGhee|first3=Robert B<ins style="font-weight: bold; text-decoration: none;">|doi=10.1109/TIM.2007.911646|s2cid=15571138</ins>}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td>
</tr>
</table>
Citation bot
https://en.wikipedia.org/w/index.php?title=Quaternion_estimator_algorithm&diff=1074556984&oldid=prev
Tino: Rename vector Q to v for consistency (to have all vectors denoted with lowercase letters, and all matrices denoted with uppercase)
2022-02-28T21:34:19Z
<p>Rename vector Q to v for consistency (to have all vectors denoted with lowercase letters, and all matrices denoted with uppercase)</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 21:34, 28 February 2022</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 19:</td>
<td colspan="2" class="diff-lineno">Line 19:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>where <math>\mathbf{B} = \textstyle \sum_i a_i \mathbf{w}_i \mathbf{v}_i^\top</math> is known as the attitude profile matrix.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>where <math>\mathbf{B} = \textstyle \sum_i a_i \mathbf{w}_i \mathbf{v}_i^\top</math> is known as the attitude profile matrix.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>In order to reduce the number of variables, the problem can be reformulated by parametrising the rotation as a unit [[quaternion]] <math>\mathbf{q} = \left( <del style="font-weight: bold; text-decoration: none;">Q_1</del>, <del style="font-weight: bold; text-decoration: none;">Q_2</del>, <del style="font-weight: bold; text-decoration: none;">Q_3</del>, q\right)</math> with vector part <math>\mathbf{<del style="font-weight: bold; text-decoration: none;">Q</del>} = \left( <del style="font-weight: bold; text-decoration: none;">Q_1</del>, <del style="font-weight: bold; text-decoration: none;">Q_2</del>, <del style="font-weight: bold; text-decoration: none;">Q_3</del> \right)</math> and scalar part <math>q</math>, representing the rotation of angle <math>\theta = 2 \cos^{-1} q</math> around an axis whose direction is described by the vector <math>\textstyle \frac{1}{\sin \frac{\theta}{2}} \mathbf{<del style="font-weight: bold; text-decoration: none;">Q</del>}</math>, subject to the unity constraint <math>\mathbf{q}^\top \mathbf{q} = 1</math>. It is now possible to express <math>\mathbf{A}</math> in terms of the quaternion parametrisation as</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>In order to reduce the number of variables, the problem can be reformulated by parametrising the rotation as a unit [[quaternion]] <math>\mathbf{q} = \left( <ins style="font-weight: bold; text-decoration: none;">v_1</ins>, <ins style="font-weight: bold; text-decoration: none;">v_2</ins>, <ins style="font-weight: bold; text-decoration: none;">v_3</ins>, q\right)</math> with vector part <math>\mathbf{<ins style="font-weight: bold; text-decoration: none;">v</ins>} = \left( <ins style="font-weight: bold; text-decoration: none;">v_1</ins>, <ins style="font-weight: bold; text-decoration: none;">v_2</ins>, <ins style="font-weight: bold; text-decoration: none;">v_3</ins> \right)</math> and scalar part <math>q</math>, representing the rotation of angle <math>\theta = 2 \cos^{-1} q</math> around an axis whose direction is described by the vector <math>\textstyle \frac{1}{\sin \frac{\theta}{2}} \mathbf{<ins style="font-weight: bold; text-decoration: none;">v</ins>}</math>, subject to the unity constraint <math>\mathbf{q}^\top \mathbf{q} = 1</math>. It is now possible to express <math>\mathbf{A}</math> in terms of the quaternion parametrisation as</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>:<math> \mathbf{A} = \left( q^2 - \mathbf{<del style="font-weight: bold; text-decoration: none;">Q</del>} \cdot \mathbf{<del style="font-weight: bold; text-decoration: none;">Q</del>} \right) \mathbf{I} + 2 \mathbf{<del style="font-weight: bold; text-decoration: none;">Q</del>}\mathbf{<del style="font-weight: bold; text-decoration: none;">Q</del>}^\top + 2 q \mathbf{<del style="font-weight: bold; text-decoration: none;">Q</del>}_\times </math></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>:<math> \mathbf{A} = \left( q^2 - \mathbf{<ins style="font-weight: bold; text-decoration: none;">v</ins>} \cdot \mathbf{<ins style="font-weight: bold; text-decoration: none;">v</ins>} \right) \mathbf{I} + 2 \mathbf{<ins style="font-weight: bold; text-decoration: none;">v</ins>}\mathbf{<ins style="font-weight: bold; text-decoration: none;">v</ins>}^\top + 2 q \mathbf{<ins style="font-weight: bold; text-decoration: none;">V</ins>}_\times </math></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>where <math>\mathbf{<del style="font-weight: bold; text-decoration: none;">Q</del>}_\times</math> is the [[skew-symmetric matrix]]</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>where <math>\mathbf{<ins style="font-weight: bold; text-decoration: none;">V</ins>}_\times</math> is the [[skew-symmetric matrix]]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>:<math> \mathbf{<del style="font-weight: bold; text-decoration: none;">Q</del>}_\times =</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>:<math> \mathbf{<ins style="font-weight: bold; text-decoration: none;">V</ins>}_\times =</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\begin{pmatrix}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\begin{pmatrix}</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> 0 & <del style="font-weight: bold; text-decoration: none;">Q_3</del> & -<del style="font-weight: bold; text-decoration: none;">Q_2</del> \\</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> 0 & <ins style="font-weight: bold; text-decoration: none;">v_3</ins> & -<ins style="font-weight: bold; text-decoration: none;">v_2</ins> \\</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>-<del style="font-weight: bold; text-decoration: none;">Q_3</del> & 0 & <del style="font-weight: bold; text-decoration: none;">Q_1</del> \\</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>-<ins style="font-weight: bold; text-decoration: none;">v_3</ins> & 0 & <ins style="font-weight: bold; text-decoration: none;">v_1</ins> \\</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> <del style="font-weight: bold; text-decoration: none;">Q_2</del> & -<del style="font-weight: bold; text-decoration: none;">Q_1</del> & 0 \\</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> <ins style="font-weight: bold; text-decoration: none;">v_2</ins> & -<ins style="font-weight: bold; text-decoration: none;">v_1</ins> & 0 \\</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\end{pmatrix}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\end{pmatrix}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math>.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math>.</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 81:</td>
<td colspan="2" class="diff-lineno">Line 81:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>where <math>\mathbf{y} = \textstyle \frac{1}{q} \mathbf{<del style="font-weight: bold; text-decoration: none;">Q</del>}</math> is the [[Rodrigues' rotation formula|Rodrigues vector]]. Substituting <math>\mathbf{y}</math> in the second equation with the first, it is possible to derive an expression of the [[characteristic polynomial|characteristic equation]]</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>where <math>\mathbf{y} = \textstyle \frac{1}{q} \mathbf{<ins style="font-weight: bold; text-decoration: none;">v</ins>}</math> is the [[Rodrigues' rotation formula|Rodrigues vector]]. Substituting <math>\mathbf{y}</math> in the second equation with the first, it is possible to derive an expression of the [[characteristic polynomial|characteristic equation]]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> \lambda = \sigma + \mathbf{z}^\top \left( (\lambda + \sigma) \mathbf{I} - \mathbf{S} \right)^{-1} \mathbf{z} </math>.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> \lambda = \sigma + \mathbf{z}^\top \left( (\lambda + \sigma) \mathbf{I} - \mathbf{S} \right)^{-1} \mathbf{z} </math>.</div></td>
</tr>
</table>
Tino
https://en.wikipedia.org/w/index.php?title=Quaternion_estimator_algorithm&diff=1074555613&oldid=prev
Tino: fix typo: lambda is the (scalar valued) maximum value of the loss, not the (matrix valued) argument of the maximum
2022-02-28T21:24:19Z
<p>fix typo: lambda is the (scalar valued) maximum value of the loss, not the (matrix valued) argument of the maximum</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 21:24, 28 February 2022</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 85:</td>
<td colspan="2" class="diff-lineno">Line 85:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> \lambda = \sigma + \mathbf{z}^\top \left( (\lambda + \sigma) \mathbf{I} - \mathbf{S} \right)^{-1} \mathbf{z} </math>.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> \lambda = \sigma + \mathbf{z}^\top \left( (\lambda + \sigma) \mathbf{I} - \mathbf{S} \right)^{-1} \mathbf{z} </math>.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Since <math>\lambda_{\text{max}} = <del style="font-weight: bold; text-decoration: none;">\arg</del>\max g\left(\mathbf{A}\right)</math>, it follows that <math>\lambda_{\text{max}} = 1 - <del style="font-weight: bold; text-decoration: none;">\arg</del>\min l\left(\mathbf{A}\right)</math> and therefore <math>\lambda_{\text{max}} \approx 1</math> for an optimal solution (when the loss <math>l</math> is small). This permits to construct the optimal quaternion <math>\mathbf{q}^*</math> by replacing <math>\lambda_{\text{max}}</math> in the Rodrigues vector <math>\mathbf{y}</math></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Since <math>\lambda_{\text{max}} = \max g\left(\mathbf{A}\right)</math>, it follows that <math>\lambda_{\text{max}} = 1 - \min l\left(\mathbf{A}\right)</math> and therefore <math>\lambda_{\text{max}} \approx 1</math> for an optimal solution (when the loss <math>l</math> is small). This permits to construct the optimal quaternion <math>\mathbf{q}^*</math> by replacing <math>\lambda_{\text{max}}</math> in the Rodrigues vector <math>\mathbf{y}</math></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> \mathbf{q}^* = \frac{1}{\sqrt{1 + \left| \mathbf{y}_{\lambda_{\text{max}}} \right|^2}} (\mathbf{y}, 1)^\top </math>.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> \mathbf{q}^* = \frac{1}{\sqrt{1 + \left| \mathbf{y}_{\lambda_{\text{max}}} \right|^2}} (\mathbf{y}, 1)^\top </math>.</div></td>
</tr>
</table>
Tino
https://en.wikipedia.org/w/index.php?title=Quaternion_estimator_algorithm&diff=1074356998&oldid=prev
Tino: fix bilinear form -> quadratic form, brief comparison with other methods, more applications
2022-02-27T21:04:53Z
<p>fix bilinear form -> quadratic form, brief comparison with other methods, more applications</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 21:04, 27 February 2022</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker"><a class="mw-diff-movedpara-right" title="Paragraph was moved. Click to jump to old location." href="#movedpara_4_0_lhs">⚫</a></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_0_0_rhs"></a>The '''quaternion estimator algorithm''' ('''QUEST''') is an [[algorithm]] designed to solve [[Wahba's problem]], that consists of finding a [[rotation matrix]] between two coordinate systems from two sets of observations sampled in each system respectively. The key idea behind the algorithm is to find an expression of the loss function for the Wahba's problem as a <ins style="font-weight: bold; text-decoration: none;">[[quadratic</ins> form<ins style="font-weight: bold; text-decoration: none;">]]</ins>, using the [[Cayley–Hamilton theorem]] and the [[Newton's method|Newton–Raphson method]] to efficiently solve the eigenvalue problem and construct a [[numerical stability|numerically stable]] representation of the solution.</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{one source|date=February 2022}}</div></td>
<td colspan="2" class="diff-empty diff-side-added"></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The algorithm was introduced by [[Malcolm D. Shuster]] in 1981, while working at [[Computer Sciences Corporation]].<ref name="shuster">Shuster and Oh (1981)</ref> While being in principle less robust than other methods such as Davenport's q method or [[singular value decomposition]], the algorithm is significantly faster and reliable in practical applications,<ref name="markley_and_mortari">Markley and Mortari (2000)</ref><ref>Crassidis (2007)</ref> and it is used for [[flight dynamics|attitude determination]] problem in fields such as [[robotics]] and [[avionics]].<ref>Psiaki (2000)</ref><ref>Wu et al. (2017)</ref><ref>Xiaoping et al. (2008)</ref></div></td>
</tr>
<tr>
<td class="diff-marker"><a class="mw-diff-movedpara-left" title="Paragraph was moved. Click to jump to new location." href="#movedpara_0_0_rhs">⚫</a></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_4_0_lhs"></a>The '''quaternion estimator algorithm''' ('''QUEST''') is an [[algorithm]] designed to solve [[Wahba's problem]], that consists of finding a [[rotation matrix]] between two coordinate systems from two sets of observations sampled in each system respectively. The key idea behind the algorithm is to find an expression of the loss function for the Wahba's problem as a <del style="font-weight: bold; text-decoration: none;">bilinear</del> form, using the [[Cayley–Hamilton theorem]] and the [[Newton's method|Newton–Raphson method]] to efficiently solve the eigenvalue problem and construct a [[numerical stability|numerically stable]] representation of the solution.</div></td>
<td colspan="2" class="diff-empty diff-side-added"></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td colspan="2" class="diff-empty diff-side-added"></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The algorithm has applications to the [[flight dynamics|attitude determination]] problem in fields such as [[avionics]], and it was introduced by [[Malcolm D. Shuster]] in 1981, while working at [[Computer Sciences Corporation]].<ref name="shuster">Shuster and Oh (1981)</ref></div></td>
<td colspan="2" class="diff-empty diff-side-added"></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Formulation of the problem ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Formulation of the problem ==</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 35:</td>
<td colspan="2" class="diff-lineno">Line 33:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math>.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math>.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Substituting <math>\mathbf{A}</math> with the quaternion representation and simplifying the resulting expression, the gain function can be written as a [[<del style="font-weight: bold; text-decoration: none;">bilinear</del> form]] in <math>\mathbf{q}</math></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Substituting <math>\mathbf{A}</math> with the quaternion representation and simplifying the resulting expression, the gain function can be written as a [[<ins style="font-weight: bold; text-decoration: none;">quadratic</ins> form]] in <math>\mathbf{q}</math></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> g(\mathbf{q}) = \mathbf{q}^\top \mathbf{K} \mathbf{q} </math></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> g(\mathbf{q}) = \mathbf{q}^\top \mathbf{K} \mathbf{q} </math></div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 58:</td>
<td colspan="2" class="diff-lineno">Line 56:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>This <del style="font-weight: bold; text-decoration: none;">bilinear</del> form can be optimised under the unity constraint by adding a [[Lagrange multiplier]] <math>-\lambda \mathbf{q}^\top \mathbf{q}</math>, obtaining an unconstrained gain function</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>This <ins style="font-weight: bold; text-decoration: none;">quadratic</ins> form can be optimised under the unity constraint by adding a [[Lagrange multiplier]] <math>-\lambda \mathbf{q}^\top \mathbf{q}</math>, obtaining an unconstrained gain function</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> \hat{g} \left( \mathbf{q} \right) = \mathbf{q}^\top \mathbf{K} \mathbf{q} - \lambda \mathbf{q}^\top \mathbf{q} </math></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math> \hat{g} \left( \mathbf{q} \right) = \mathbf{q}^\top \mathbf{K} \mathbf{q} - \lambda \mathbf{q}^\top \mathbf{q} </math></div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 66:</td>
<td colspan="2" class="diff-lineno">Line 64:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math>\mathbf{K} \mathbf{q} = \lambda \mathbf{q}</math>.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:<math>\mathbf{K} \mathbf{q} = \lambda \mathbf{q}</math>.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>This implies that the optimal rotation is parametrised by the quaternion <math>\mathbf{q}^*</math> that is the [[eigenvector]] associated to the largest [[eigenvalue]] <math>\lambda_{\text{max}}</math> of <math>\mathbf{K}</math>.<ref name="shuster"/></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>This implies that the optimal rotation is parametrised by the quaternion <math>\mathbf{q}^*</math> that is the [[eigenvector]] associated to the largest [[eigenvalue]] <math>\lambda_{\text{max}}</math> of <math>\mathbf{K}</math>.<ref name="shuster<ins style="font-weight: bold; text-decoration: none;">"/><ref name="markley_and_mortari</ins>"/></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Solution of the characteristic equation ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Solution of the characteristic equation ==</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 159:</td>
<td colspan="2" class="diff-lineno">Line 157:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></math></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>whose root can be efficiently approximated with the [[Newton–Raphson method]], taking 1 as initial guess of the solution in order to converge to the highest eigenvalue (using the fact, shown above, that <math>\lambda_{\text{max}} \approx 1</math> when the quaternion is close to the optimal solution).<ref name="shuster"/></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>whose root can be efficiently approximated with the [[Newton–Raphson method]], taking 1 as initial guess of the solution in order to converge to the highest eigenvalue (using the fact, shown above, that <math>\lambda_{\text{max}} \approx 1</math> when the quaternion is close to the optimal solution).<ref name="shuster<ins style="font-weight: bold; text-decoration: none;">"/><ref name="markley_and_mortari</ins>"/></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== See also ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== See also ==</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 169:</td>
<td colspan="2" class="diff-lineno">Line 167:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Sources ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Sources ==</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Survey of nonlinear attitude estimation methods|year=2007|journal=Journal of guidance, control, and dynamics|volume=30|pages=12–28|issue=1|last1=Crassidis|first1=John L|last2=Markley|first2=F Landis|last3=Cheng|first3=Yang}}</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Quaternion attitude estimation using vector observations|year=2000|journal=The Journal of the Astronautical Sciences|volume=48|pages=359–380|issue=2|publisher=Springer|last1=Markley|first1=F Landis|last2=Mortari|first2=Daniele}}</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Attitude-determination filtering via extended quaternion estimation|year=2000|journal=Journal of Guidance, Control, and Dynamics|volume=23|pages=206–214|issue=2|last1=Psiaki|first1=Mark L}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Three-axis attitude determination from vector observations|year=1981|journal=Journal of guidance and Control|volume=4|pages=70–77|issue=1|last1=Shuster|first1=M.D.|last2=Oh|first2=S.D.}}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Three-axis attitude determination from vector observations|year=1981|journal=Journal of guidance and Control|volume=4|pages=70–77|issue=1|last1=Shuster|first1=M.D.|last2=Oh|first2=S.D.}}</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=Fast linear quaternion attitude estimator using vector observations|year=2017|journal=IEEE Transactions on Automation Science and Engineering|volume=15|pages=307–319|issue=1|publisher=IEEE|last1=Wu|first1=Jin|last2=Zhou|first2=Zebo|last3=Gao|first3=Bin|last4=Li|first4=Rui|last5=Cheng|first5=Yuhua|last6=Fourati|first6=Hassen}}</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* {{cite journal|title=A simplified quaternion-based algorithm for orientation estimation from earth gravity and magnetic field measurements|year=2008|journal=IEEE Transactions on instrumentation and measurement|volume=57|pages=638–650|issue=3|publisher=IEEE|last1=Yun|first1=Xiaoping|last2=Bachmann|first2=Eric R|last3=McGhee|first3=Robert B}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td>
</tr>
</table>
Tino
https://en.wikipedia.org/w/index.php?title=Quaternion_estimator_algorithm&diff=1074321343&oldid=prev
John B123: Added tags to the page using Page Curation (one source)
2022-02-27T17:08:54Z
<p>Added tags to the page using <a href="/wiki/Wikipedia:Page_Curation" title="Wikipedia:Page Curation">Page Curation</a> (one source)</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:08, 27 February 2022</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{one source|date=February 2022}}</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''quaternion estimator algorithm''' ('''QUEST''') is an [[algorithm]] designed to solve [[Wahba's problem]], that consists of finding a [[rotation matrix]] between two coordinate systems from two sets of observations sampled in each system respectively. The key idea behind the algorithm is to find an expression of the loss function for the Wahba's problem as a bilinear form, using the [[Cayley–Hamilton theorem]] and the [[Newton's method|Newton–Raphson method]] to efficiently solve the eigenvalue problem and construct a [[numerical stability|numerically stable]] representation of the solution.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''quaternion estimator algorithm''' ('''QUEST''') is an [[algorithm]] designed to solve [[Wahba's problem]], that consists of finding a [[rotation matrix]] between two coordinate systems from two sets of observations sampled in each system respectively. The key idea behind the algorithm is to find an expression of the loss function for the Wahba's problem as a bilinear form, using the [[Cayley–Hamilton theorem]] and the [[Newton's method|Newton–Raphson method]] to efficiently solve the eigenvalue problem and construct a [[numerical stability|numerically stable]] representation of the solution.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
</table>
John B123
https://en.wikipedia.org/w/index.php?title=Quaternion_estimator_algorithm&diff=1074149693&oldid=prev
Tino: title
2022-02-26T17:53:48Z
<p>title</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:53, 26 February 2022</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The '''quaternion <del style="font-weight: bold; text-decoration: none;">estimation</del> algorithm''' ('''QUEST''') is an [[algorithm]] designed to solve [[Wahba's problem]], that consists of finding a [[rotation matrix]] between two coordinate systems from two sets of observations sampled in each system respectively. The key idea behind the algorithm is to find an expression of the loss function for the Wahba's problem as a bilinear form, using the [[Cayley–Hamilton theorem]] and the [[Newton's method|Newton–Raphson method]] to efficiently solve the eigenvalue problem and construct a [[numerical stability|numerically stable]] representation of the solution.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The '''quaternion <ins style="font-weight: bold; text-decoration: none;">estimator</ins> algorithm''' ('''QUEST''') is an [[algorithm]] designed to solve [[Wahba's problem]], that consists of finding a [[rotation matrix]] between two coordinate systems from two sets of observations sampled in each system respectively. The key idea behind the algorithm is to find an expression of the loss function for the Wahba's problem as a bilinear form, using the [[Cayley–Hamilton theorem]] and the [[Newton's method|Newton–Raphson method]] to efficiently solve the eigenvalue problem and construct a [[numerical stability|numerically stable]] representation of the solution.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The algorithm has applications to the [[flight dynamics|attitude determination]] problem in fields such as [[avionics]], and it was introduced by [[Malcolm D. Shuster]] in 1981, while working at [[Computer Sciences Corporation]].<ref name="shuster">Shuster and Oh (1981)</ref></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The algorithm has applications to the [[flight dynamics|attitude determination]] problem in fields such as [[avionics]], and it was introduced by [[Malcolm D. Shuster]] in 1981, while working at [[Computer Sciences Corporation]].<ref name="shuster">Shuster and Oh (1981)</ref></div></td>
</tr>
</table>
Tino
https://en.wikipedia.org/w/index.php?title=Quaternion_estimator_algorithm&diff=1074149622&oldid=prev
Tino: Tino moved page Quaternion estimation algorithm to Quaternion estimator algorithm: accurate name
2022-02-26T17:53:21Z
<p>Tino moved page <a href="/wiki/Quaternion_estimation_algorithm" class="mw-redirect" title="Quaternion estimation algorithm">Quaternion estimation algorithm</a> to <a href="/wiki/Quaternion_estimator_algorithm" title="Quaternion estimator algorithm">Quaternion estimator algorithm</a>: accurate name</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<tr class="diff-title" lang="en">
<td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:53, 26 February 2022</td>
</tr><tr><td colspan="2" class="diff-notice" lang="en"><div class="mw-diff-empty">(No difference)</div>
</td></tr></table>
Tino