Search
Code Directory
ASP
ASP.NET
C/C++
CFML
CGI/PERL
Delphi
Development
Flash
HTML
Java
JavaScript
Pascal
PHP
Python
SQL
Tools
Visual Basic & VB.NET
XML
New Code
 The C# OCR Library 2020.11 SentiVeillance SDK Trial 7.3.2020.11.30 VaxVoIP WebPhone SDK 4.0.6.0 SentiMask SDK Trial 2.0_193121 C# QR Code Generator 2020.12 How to Read Text from an Image in C# 2020.12 The .Net PDF Library 2020.12.3 fsMediaLibrary.NET 2019.11.0 Entity Developer 6.9.1112 OrgChart JS 7.5.40 LinqConnect 4.9.2096 SSIS Data Flow Components 1.15 IP2Location Geolocation Database Oct.2020 Luxand FaceSDK 7.2 dbForge Data Compare for PostgreSQL 3.3.6
Top Code
 Uber Clone with Safety Measure Addons 2.0 Answers phpSoftPro 3.12 phpEnter 5.1. Quick Maps For Dynamics CRM 3.1 Single Leg MLM 1.2.1 Azizi search engine script PHP 4.1.10 Paste phpSoftPro 1.4.1 Extreme Injector 3.7 Apphitect Airbnb Clone Script 1.0 Deals and Discounts Website Script 1.0.2 Pro MLM 1 Solid File System OS edition 5.1 Classified Ad Lister 1.0 Aglowsoft SQL Query Tools 8.2 ICPennyBid Penny Auction Script 4.0

Version 1.7 (JASP) 12-Dec-2009

This is a library of blocks that allows manipulation of quaternions.

The available blocks are:

Quaternion Normalize
Quaternion Conjugate
Quaternion Multiply

Quaternion Propagation
Quaternion Vector Transform
Quaternion Vector Rotation

Quaternion Decomposition
Quaternion to DCM
DCM to Quaternion

Row Major to Matrix
Matrix to Row Major

For purposes of this library, a quaternion, q, is just a four element vector where q(1:3) is the "imaginary" or "vector" portion of the hypercomplex number, and q(4) is the "real" or "scalar" portion. Consequently, if q represents a rotation, then:

q(1) = v1*sin(phi/2)
q(2) = v2*sin(phi/2)
q(3) = v3*sin(phi/2)
q(4) = cos(phi/2)

where phi is the amount of rotation about the unit vector [v1 v2 v3].

The DCM's produced by the "Quaternion to DCM" block and used by the DCM to Quaternion block are written in row major form instead of normal MATLAB matrices. Back when this library was first developed, Simulink signals could not be matrices, so were written in the C-friendly row-major format. To prevent the breakage of models that were written to use the row major signals, the interface to the blocks have not been changed but two blocks were added to aid with the translation of matrices to/from row major format.

IMPORTANT NOTE: For purposes of quaternion/DCM equivalence, the relationship is chosen to be:

R v = q* v q

Therefore a "transform" is (q* v q) and a "rotation" is (q v q*). This follows the convention used in "Spacecraft Attitude Determination and Control", edited by James R. Wertz, Copyright 1978. Note that many recent uses of quaternions choose the opposite convention (the "left" quaternion being the equivalent), including many computer graphics libraries.

See also QUATERNIONS, the quaternion manipulation toolbox for the MATLAB command line. RM2MAT and MAT2RM functions provided by the Matrix Library for Simulink are also useful for handling row-major form matrices.

Back