3.5.9 · D3 · Physics › Guidance, Navigation & Control (GNC) › Quaternion kinematics — q̇ = ½ Ξ(q) ω
Intuition Ye page kyun hai
Parent note ne formula prove kiya tha. Lekin ek formula jo sirf "easy" case mein chalao — wo ek trap hai. Yahaan hum ise har tarah ke input se hit karte hain: zero spin, har axis ke saath spin, ek quaternion jo identity nahi hai, ek case jahan q ˙ 0 = 0 , ek pure-vector quaternion, ek real satellite word-problem, aur ek exam twist. Jab tum finish karo, koi bhi scenario surprise nahi karna chahiye.
Kisi bhi number se pehle, do cheezein jo hum machine ko feed karte hain unka ek reminder:
Recall The two ingredients (open if rusty)
Ek unit quaternion q = ( q 0 , q 1 , q 2 , q 3 ) jisme q 0 2 + q 1 2 + q 2 2 + q 3 2 = 1 — ye ek orientation store karta hai. Ek angular velocity ω = ( ω 1 , ω 2 , ω 3 ) rad/s mein — ye batata hai body abhi kitni fast spin kar rahi hai, body frame mein measure ki gayi. Rate ye hai:
q ˙ = 2 1 Ξ ( q ) ω , Ξ ( q ) = − q 1 q 0 q 3 − q 2 − q 2 − q 3 q 0 q 1 − q 3 q 2 − q 1 q 0 .
Definition Notation jo hum use karenge
Vector part q v = ( q 1 , q 2 , q 3 ) : quaternion ke aakhri teen numbers. Pehla number q 0 scalar part hai. Toh q = ( q 0 , q v ) .
q v ⋅ ω ordinary dot product hai q 1 ω 1 + q 2 ω 2 + q 3 ω 3 (ek single number).
q v × ω ordinary cross product hai (ek 3-vector). Notation [ q v × ] ka matlab hai "wo 3 × 3 matrix jo × ω karta hai."
Block form mein kinematics padhti hai q ˙ = 2 1 [ − q v ⋅ ω q 0 ω + q v × ω ] — upar wali entry q 0 ko drive karti hai, neeche ki teen q v ko drive karti hain.
S 3 (jahan q rehta hai)
Ek unit quaternion ke chaar numbers q 0 2 + q 1 2 + q 2 2 + q 3 2 = 1 satisfy karte hain. Ye bilkul 4-dimensional space mein radius 1 ke sphere ki equation hai — mathematicians ise 3-sphere kehte hain aur == S 3 == likhte hain. Jaise x 2 + y 2 + z 2 = 1 wale points 3-D mein ball ki ordinary 2-D surface banate hain, waise ∥ q ∥ = 1 wale points 4-D ke andar ek curved 3-D surface banate hain. Har valid attitude is surface ka ek point hai; jab body spin karta hai, q S 3 ke saath slide karta hai aur kabhi bhi isse bahar nahi jaana chahiye (warna ∥ q ∥ = 1 aur rotation corrupt ho jaata hai). Hum figures mein ise ek circle ke roop mein picture karte hain — ek faithful low-dimensional stand-in.
Definition Hamilton product
⊗ (Ex 8 ke liye zaroori)
p ⊗ q quaternion multiplication hai — do rotations kaise ek mein compose hote hain. p = ( p 0 , p v ) aur q = ( q 0 , q v ) ke liye,
p ⊗ q = [ p 0 q 0 − p v ⋅ q v p 0 q v + q 0 p v + p v × q v ] .
Ye commutative nahi hai (p ⊗ q = q ⊗ p generally) — kyunki pehle rotation p phir q karna, q phir p se alag hota hai. Cross-product term p v × q v exactly wahi hai jo us order-sensitivity ko encode karta hai. Ek pure quaternion ( 0 , v ) mein zero scalar part hota hai; ( 0 , ω ) angular-velocity quaternion hai.
Definition Inertial-frame matrix
Ω ( ω ) (Ex 8 ke liye zaroori)
Jab ω body frame ki jagah inertial frame mein diya jaata hai, hum left-multiply karte hain: q ˙ = 2 1 ( 0 , ω ) ⊗ q = 2 1 Ω ( ω ) q , jahaan
Ω ( ω ) = 0 ω 1 ω 2 ω 3 − ω 1 0 − ω 3 ω 2 − ω 2 ω 3 0 − ω 1 − ω 3 − ω 2 ω 1 0 .
Parent note wali same physics; Ω ( ω ) mein q factor out hota hai jahan Ξ ( q ) mein ω factor out hota hai. Hum ise sirf ek baar invoke karte hain, exam-twist example mein.
Is topic ke har case ka answer in cells mein se ek mein aata hai. Neeche ke examples cell tag ke saath hain jo unhe cover karti hai.
#
Cell (kya special hai)
Example
A
Zero input — ω = 0 (degenerate: kuch bhi spin nahi karta)
Ex 1
B
Single body axis ke baare mein spin , q identity par
Ex 2
C
Same spin, teeno axes — Ξ ka sign pattern check karo
Ex 3
D
q identity NAHI hai — interesting case, q ˙ 0 = 0
Ex 4
E
Sign / direction reversal — ω → − ω
Ex 5
F
Limiting / linearity — ω scale karo, super-fast spin behaviour
Ex 6
G
Pure-vector quaternion q 0 = 0 — top-row formula stress test
Ex 7
H
Real-world word problem — ek satellite detumble reading
Ex 8
I
Exam twist — inertial-frame ω , Ω ( ω ) q par switch karna zaroori
Ex 9
Worked example Example 1 — Cell A · Zero angular velocity
Ek satellite apne thrusters off karke float kar raha hai: ω = ( 0 , 0 , 0 ) , current attitude q = ( 0.6 , 0 , 0.8 , 0 ) (ek valid unit quaternion). q ˙ kya hai?
Forecast: agar kuch bhi spin nahi karta, toh orientation change nahi honi chahiye. Aage padhne se pehle q ˙ = 0 guess karo.
Formula likho. q ˙ = 2 1 Ξ ( q ) ω .
Ye step kyun? Hamesha ek sach se shuru karo; "kuch nahi hota" ke baare mein reason mat karo — math ko bolne do.
ω = 0 substitute karo. Zero 3-vector se ek 4 × 3 matrix ka product zero 4-vector hota hai.
Ye step kyun? Ξ ( q ) koi bhi numbers ho sakti hai — zero column se multiply karne par sab mar jaate hain. q ki value irrelevant hai.
q ˙ = 2 1 Ξ ( q ) 0 0 0 = 0 0 0 0 .
Verify: q ˙ = 0 ka matlab attitude frozen hai — exactly wahi jo "no rotation" dena chahiye. Units: Ξ dimensionless hai, ω rad/s hai, toh q ˙ (1/s) mein hai, aur 0 ⋅ kuch bhi phir bhi 0 hai. ✔
Worked example Example 2 — Cell B · Identity se single-axis spin
Identity q = ( 1 , 0 , 0 , 0 ) par shuru karo, sirf body x ke baare mein spin karo: ω = ( 0.1 , 0 , 0 ) rad/s. q ˙ dhundho.
Forecast: vector ka x -part (q 1 ) jaagna chahiye. Guess karo q ˙ ki kaunsi entry nonzero hai.
Identity par Ξ ( q ) banao. q 0 = 1 , q 1 = q 2 = q 3 = 0 ke saath:
Ξ ( q ) = 0 1 0 0 0 0 1 0 0 0 0 1 .
Ye step kyun? Identity par vector part zero hota hai, toh saare q v terms drop ho jaate hain aur Ξ ek clean "stack" mein collapse ho jaati hai — zero row ke neeche 3 × 3 identity.
Multiply karo aur half karo.
q ˙ = 2 1 Ξ ( q ) 0.1 0 0 = 2 1 0 0.1 0 0 = 0 0.05 0 0 .
Ye step kyun? Sirf Ξ ka pehla column pick out hota hai (kyunki sirf ω 1 = 0 hai), aur ½ parent derivation ka half-angle factor hai.
Verify: q ˙ 0 = 0 — norm is instant par change nahi ho sakta, q ⊤ q ˙ = 1 ⋅ 0 = 0 se consistent. Sirf q 1 badhta hai, yani x ke baare mein roll on ho raha hai. Neeche tangent-arrow picture dekho. ✔
Upar wala arrow q ˙ hai jo unit sphere S 3 par q ke tangent pe rehta hai — dekho kaise ye surface ke saath point karta hai, kabhi bahar ki taraf nahi. Ye norm-preservation fact visible banaya gaya hai.
Worked example Example 3 — Cell C · Teeno axes ek saath (sign pattern)
Identity q = ( 1 , 0 , 0 , 0 ) par hi, lekin ab ω = ( ω 1 , ω 2 , ω 3 ) general hai. q ˙ ka har component dikhao.
Forecast: har body-rate apni khud ki vector slot feed karegi, cleanly. Guess karo q ˙ v = 2 1 ω .
Identity par Ξ reuse karo (Ex 2 se), multiply karo:
q ˙ = 2 1 0 1 0 0 0 0 1 0 0 0 0 1 ω 1 ω 2 ω 3 = 2 1 0 ω 1 ω 2 ω 3 .
Ye step kyun? Ye "linearized" attitude update hai jo EKFs pasand karte hain: identity ke paas, q ˙ v = 2 1 ω aur q ˙ 0 = 0 . Attitude EKF exactly is small-angle picture ko use karta hai.
Sign pattern padho. Koi minus signs nazar nahi aate kyunki q v = 0 ne skew (cross-product) block [ q v × ] ko remove kar diya.
Ye step kyun? General Ξ mein minus signs us skew block se aate hain; q v ko kill karne par dikhta hai ki pattern arbitrary nahi hai — ye rotation non-commutativity encoded hai.
Verify: ω = ( 0.1 , 0.2 , − 0.3 ) ke liye, q ˙ = ( 0 , 0.05 , 0.10 , − 0.15 ) . Norm rate q ⊤ q ˙ = 1 ⋅ 0 = 0 . ✔
Worked example Example 4 — Cell D · Ek quaternion jo identity NAHI hai
Ye woh case hai jisse log darte hain. q = ( 2 2 , 2 2 , 0 , 0 ) lo (x ke baare mein 90° roll, unit norm: 0.5 + 0.5 = 1 ). Body x ke baare mein spin karo: ω = ( 0.1 , 0 , 0 ) . q ˙ dhundho.
Forecast: ab q v = 0 hai, toh Ξ ki top row (wo − q v ⊤ row) alive hai — q ˙ 0 = 0 expect karo. Uska sign guess karo.
Ξ ( q ) puri tarah likho. q 0 = q 1 = 2 2 ≈ 0.707 , q 2 = q 3 = 0 ke saath:
Ξ ( q ) = − 0.707 0.707 0 0 0 0 0.707 0.707 0 0 − 0.707 0.707 .
Ye step kyun? Har entry ab filled hai — koi shortcut nahi. Ye formula ka honest test hai.
ω = ( 0.1 , 0 , 0 ) se multiply karo (sirf column 1 survive karta hai), phir half karo:
q ˙ = 2 1 − 0.707 0.707 0 0 ( 0.1 ) = − 0.0354 0.0354 0 0 .
Ye step kyun? Ab q ˙ 0 = − 0.0354 = 0 : jaise q 1 badhta hai, length fixed rakhne ke liye q 0 ko shrink karna padega — sphere curve kar rahi hai.
Verify: norm rate q ⊤ q ˙ = 0.707 ( − 0.0354 ) + 0.707 ( 0.0354 ) + 0 + 0 = 0 . ✔ Do nonzero terms cancel hote hain kyunki q ˙ tangent hai. Figure dekho: ek tilted q par, tangent arrow mein − q 0 ke along ek component hota hai.
Worked example Example 5 — Cell E · Spin direction reverse karo
Ex 4 wala same q = ( 2 2 , 2 2 , 0 , 0 ) , lekin spin flip karo: ω = ( − 0.1 , 0 , 0 ) . q ˙ dhundho.
Forecast: kyunki q ˙ ω mein linear hai, ω reverse karne par q ˙ exactly reverse hona chahiye. Vector guess karo.
Linearity use karo. q ˙ ( − ω ) = 2 1 Ξ ( q ) ( − ω ) = − 2 1 Ξ ( q ) ω = − q ˙ ( ω ) .
Ye step kyun? Humne Ex 4 mein q ˙ ( ω ) already compute kiya; matrix product dobara karne ki zaroorat nahi — minus sirf carry through hota hai.
Likho.
q ˙ = 0.0354 − 0.0354 0 0 .
Ye step kyun? Ab q 0 badhta hai aur q 1 shrinks — roll khud ko undo kar raha hai, geometrically Ex 4 ka mirror.
Verify: norm rate 0.707 ( 0.0354 ) + 0.707 ( − 0.0354 ) = 0 . ✔ Aur q ˙ ( − ω ) = − q ˙ ( ω ) sign-symmetry confirm karta hai. ✔
Worked example Example 6 — Cell F · Scaling aur fast-spin limit
q = ( 1 , 0 , 0 , 0 ) fix karo. Pehle ω ko ( 0.1 , 0 , 0 ) se ( 0.2 , 0 , 0 ) tak double karo. Phir pucho: jaise ω 1 → ∞ , ∥ q ˙ ∥ kya karta hai?
Forecast: ω double karna q ˙ double karta hai (linearity). Aur jaise spin blow up hota hai, ∥ q ˙ ∥ unbounded badhta hai. Check karne se pehle dono guess karo.
Scaling. Ex 2 se, q ˙ ( 0.1 ) = ( 0 , 0.05 , 0 , 0 ) . Toh q ˙ ( 0.2 ) = 2 ⋅ ( 0 , 0.05 , 0 , 0 ) = ( 0 , 0.1 , 0 , 0 ) .
Ye step kyun? Ξ ( q ) ω par depend nahi karta, toh q ˙ ω ka seedha linear map hai — ye poori wajah hai ki Ξ ek matrix hai, RK4 stepping mein usable.
Limit. Identity par ∥ q ˙ ∥ = 2 1 ∥ ω ∥ = 2 1 ∣ ω 1 ∣ → ∞ jaise ω 1 → ∞ .
Ye step kyun? Tangent velocity magnitude literally spin speed ki aadhi hai. Tez spin → S 3 ke saath tez slide; picture kabhi nahi tootri, lekin fixed timestep Δ t eventually ise under-sample kar leta hai — practically renormalize karne aur step size cap karne ki wajah.
Verify: q ˙ ( 0.2 ) = ( 0 , 0.1 , 0 , 0 ) = 2 q ˙ ( 0.1 ) . ✔ Aur 2 1 ∥ ( 10 , 0 , 0 ) ∥ = 5 , yani ∥ q ˙ ∥ = 5 for ω 1 = 10 . ✔
Worked example Example 7 — Cell G · Pure-vector quaternion (
q 0 = 0 )
Ξ ki top row ke liye stress test. q = ( 0 , 1 , 0 , 0 ) lo — ek valid unit quaternion (norm = 1 ) jisme zero scalar part hai (x ke baare mein 180° rotation represent karta hai). Body x ke baare mein spin karo: ω = ( 0.2 , 0 , 0 ) . q ˙ dhundho.
Forecast: top-row driver − q v ⋅ ω hai. Yahaan q v = ( 1 , 0 , 0 ) ω ke parallel hai, toh dot product nonzero aur bada hai — q ˙ 0 = 0 aur dominant expect karo. Uska sign guess karo.
q 0 = 0 , q 1 = 1 , q 2 = q 3 = 0 ke saath Ξ ( q ) likho.
Ξ ( q ) = − 1 0 0 0 0 0 0 1 0 0 − 1 0 .
Ye step kyun? q 0 = 0 ke saath bottom block ka poora q 0 I part vanish ho jaata hai; sirf skew (cross-product) entries vahaan survive karti hain, aur top row − q v ⊤ = ( − 1 , 0 , 0 ) ab maximal hai.
ω = ( 0.2 , 0 , 0 ) se multiply karo (sirf column 1), phir half karo:
q ˙ = 2 1 − 1 0 0 0 ( 0.2 ) = − 0.1 0 0 0 .
Ye step kyun? q ˙ 0 = − 0.1 dominate karta hai: ek 180° attitude par, usi axis ke baare mein spin karna q 0 ko sabse fast neeche pull karta hai, q ko sphere ke doosri taraf drive karta hai.
Verify: norm rate q ⊤ q ˙ = 0 ( − 0.1 ) + 1 ( 0 ) + 0 + 0 = 0 . ✔ Sirf scalar part move karta hai — exactly woh top-row behaviour jo hum isolate karna chahte the. Units rad/s. ✔
Worked example Example 8 — Cell H · Real satellite detumble reading
Ek CubeSat ka gyro body rates report karta hai ω = ( 0.02 , − 0.05 , 0.03 ) rad/s. Uska current attitude estimate q = ( 0.9 , 0.2 , − 0.3 , 0.244949 ) hai. (Check: 0.81 + 0.04 + 0.09 + 0.06 = 1.00 , unit.) Agle RK4 tick ke liye q ˙ compute karo.
Forecast: q ˙ ke charon components nonzero honge (dono q v aur full ω active hain). Guess karo q ˙ 0 + hai ya − , − q v ⋅ ω se.
Top entry q ˙ 0 = 2 1 ( − q v ⋅ ω ) = 2 1 ( − ( 0.2 ) ( 0.02 ) − ( − 0.3 ) ( − 0.05 ) − ( 0.244949 ) ( 0.03 ) ) .
Ye step kyun? Ξ ki pehli row − q v ⊤ hai; ye measure karta hai ki spin kitna current vector part ke "along" point karta hai, jo scalar q 0 ko change karta hai.
q ˙ 0 = 2 1 ( − 0.004 − 0.015 − 0.0073485 ) = 2 1 ( − 0.0263485 ) = − 0.01317.
Vector part q ˙ v = 2 1 ( q 0 ω + q v × ω ) .
Ye step kyun? Ye bottom 3 × 3 block q 0 I + [ q v × ] hai jo ω par act kar raha hai — Rodrigues -style scalar-plus-cross structure.
Cross product q v × ω with q v = ( 0.2 , − 0.3 , 0.244949 ) , ω = ( 0.02 , − 0.05 , 0.03 ) :
q v × ω = ( ( − 0.3 ) ( 0.03 ) − ( 0.244949 ) ( − 0.05 ) , ( 0.244949 ) ( 0.02 ) − ( 0.2 ) ( 0.03 ) , ( 0.2 ) ( − 0.05 ) − ( − 0.3 ) ( 0.02 ) )
= ( 0.0032475 , − 0.0051010 , − 0.004 ) .
Phir q 0 ω = ( 0.018 , − 0.045 , 0.027 ) , sum = ( 0.0212475 , − 0.0501010 , 0.023 ) , times ½:
q ˙ v = ( 0.0106237 , − 0.0250505 , 0.0115 ) .
Verify: full q ˙ = ( − 0.01317 , 0.0106237 , − 0.0250505 , 0.0115 ) . Norm rate q ⊤ q ˙ 0 hona chahiye: 0.9 ( − 0.01317 ) + 0.2 ( 0.0106237 ) + ( − 0.3 ) ( − 0.0250505 ) + 0.244949 ( 0.0115 ) = 0 (numerical precision tak). ✔ Units sab rad/s. ✔
Worked example Example 9 — Cell I · Exam twist: inertial-frame
ω
Trap question: "ω = ( 0 , 0 , 0.4 ) rad/s inertial frame mein diya gaya hai, q = ( 1 , 0 , 0 , 0 ) . Ek student likhta hai q ˙ = 2 1 q ⊗ ( 0 , ω ) . Kya ye sahi hai? Sahi q ˙ do."
Forecast: body-rate formula post-multiply karta hai; inertial rate ko pre -multiply karna padta hai. Guess karo ki numeric answer yahaan bhi alag hoga ya nahi.
Error diagnose karo. Inertial ω ke liye left multiplication use karo: q ˙ = 2 1 ( 0 , ω ) ⊗ q = 2 1 Ω ( ω ) q , upar definition callout mein diya gaya Ω ( ω ) ke saath (aur ⊗ wo Hamilton product hai jo pehle define kiya gaya).
Ye step kyun? ω ka frame multiplication side dictate karta hai — ek classic flight-software bug (aur gimbal lock se bhi bura kyunki ye silently fail hota hai). Student ne body form use kiya.
Sahi compute karo. ω = ( 0 , 0 , 0.4 ) ke liye Ω ( ω ) ke saath aur q = ( 1 , 0 , 0 , 0 ) :
Ω ( ω ) q = 0 0 0 0.4 0 0 − 0.4 0 0 0.4 0 0 − 0.4 0 0 0 1 0 0 0 = 0 0 0 0.4 , q ˙ = 0 0 0 0.2 .
Ye step kyun? Identity par, body aur inertial frames coincide karte hain, toh yahaan dono formulas ( 0 , 0 , 0 , 0.2 ) dete hain — twist ye hai ki ye agreement q = identity ki coincidence hai, general truth nahi.
Verify: body form 2 1 Ξ ( q ) ω identity par bhi ( 0 , 0 , 0 , 0.2 ) deta hai (Ξ ke third column ko 0.4 se multiply karo, half karo). ✔ Ye sirf tabhi match karte hain jab q identity ho — kisi bhi tilted q ke liye ye diverge karte hain, yahi trap ka point hai. ✔
Recall Self-test (try karne ke baad open karo)
Agar ω = 0 ho, toh q ˙ kya hai? ::: Zero 4-vector, kisi bhi q ke liye.
Identity quaternion par, q ˙ 0 kya hota hai? ::: Hamesha 0 (− q v ⋅ ω row vanish ho jaati hai kyunki q v = 0 ).
q ˙ ( − ω ) = − q ˙ ( ω ) kyun hota hai? ::: Kyunki q ˙ = 2 1 Ξ ( q ) ω ω mein linear hai.
Ek pure-vector quaternion q 0 = 0 ke liye q v ke parallel axis ke baare mein spin karo, toh q ˙ ka kaunsa component dominate karta hai? ::: Scalar part q ˙ 0 , kyunki − q v ⋅ ω tab maximal hota hai.
Inertial-frame ω ke liye, kaunsa formula? ::: q ˙ = 2 1 Ω ( ω ) q (left multiply).
Mnemonic Ek-line memory hook
"Zero spin, frozen; identity, q 0 still; flip spin, flip rate; wrong frame, wrong side."