Numbers touch karne se pehle, ek reminder plain words mein. Ek DCM ek 3×3 table of numbers hai jo ek vector ko doosre mein badalta hai; ek quaternion 4 numbers (q0,q1,q2,q3) hain jo ek twist ka axis aur half the angle store karte hain; Euler angles (ϕ,θ,ψ) teen ordinary turn-amounts (roll, pitch, yaw) hain. Teeno ek hi same physical turn describe karte hain.
Har conversion problem jo tumhe di ja sakti hai, in mein se kisi ek cell mein aati hai. Neeche ke worked examples us cell ke saath tagged hain jo woh cover karta hai.
Pehle half-angle. Kyun yeh step? Quaternion hamesha Φ/2 store karta hai (sandwich qvq−1 twist ko do baar apply karta hai; halving us doubling ko cancel karta hai). 2Φ=30°.
C(q) build karo. Toolbox C(q) mein plug in kyun? Yeh neutral hub hai jiske through har representation convert hoti hai. q1=q2=0 ke saath Toolbox matrix ki har wo term jo q1 ya q2 carry karti hai woh zero ho jaati hai, sirf yeh bachta hai:
C=q02−q32−2q0q302q0q3q02−q32000q02+q32=21−23023210001
Rodrigues ke pieces. Kyun? Toolbox formula C=IcosΦ+[e^]×sinΦ+e^e^⊤(1−cosΦ) ko cos120°=−21, sin120°=23, 1−cos120°=23 chahiye.
Outer product term. Kyun? e^e^⊤ ki har entry 31 hai, 23 se multiply karne par har jagah 21 milta hai.
Cross-product term[e^]×sin120°. Sign kyun yahan hai? Antisymmetric [e^]× with e^=31(1,1,1) ko 23 se scale karne par off-diagonal ±21 milte hain.
Jodo. Diagonal: −21+21=0. Hamare body-from-inertial, column convention mein teeno terms mil ke woh cyclic permutation deti hain jo z→y→x→z bheji hai:
C=010001100
Axis undefined hai — aur yeh theek hai. Kyun? Φ=0 se, sin2Φ=0, toh e^sin2Φ=0 chahe e^ kuch bhi ho. Euler's theorem kehta hai "axis exist karta hai" sirf tab jab koi turn ho; 0° turn ka koi unique axis nahi hota. Quaternion isko sidestep karta hai — woh vector part mein 0 store karta hai aur kabhi nahi puchta ki axis kaun sa tha.
Khatre ko dekho. Kyun? q0=211+trC=211−1=0. Toolbox ka qi=(Cjk−Ckj)/(4q0) zero se divide karta hai.
Sabse bada diagonal chuno — general leading-component formula use karke. Kyun? Shepperd ka rule: us qi se lead karo jo provably sabse bada ho, taaki denominator zero se door rahe. Sabse bada diagonal entryC33=+1 hai, jo q3 ki taraf point karta hai. Toolbox formula qi=211+Cii−Cjj−Ckk apply karo (i,j,k)=(3,1,2) ke saath:
q3=211+C33−C11−C22=211+1+1+1=1
Baaki bharo — index order spell out karke. Kyun? Jab hum q3 se lead karte hain, baaki slots cyclic triple (i,j,k)=(3,1,2) ko 4q3 se divide karke aate hain. Concretely: q0=(C12−C21)/(4q3), q1=(C31+C13)/(4q3), q2=(C23+C32)/(4q3) (plus signs isliye kyunki q3-led rows symmetric off-diagonal pair use karti hain). Inke saare numerators yahan 0 hain, isliye q0=q1=q2=0. Toh q=(0,0,0,1).
Verify:q=(0,0,0,1) ke saath C(q)diag(q02+q12−q22−q32,…)=diag(−1,−1,1) deta hai ✓.
Lock detect karo. Undefined kyun? θ=90° par Toolbox row 1 hai (cθcψ,cθsψ,−sθ)=(0,0,−1), isliye C11=C12=0 aur ψ=atan2(0,0) undefined hai. Yaw aur roll axes parallel ho gayi hain — Gimbal Lock.
Determined combination par collapse karo. Yahan ϕ−ψ kyun bachta hai? θ=90° (sθ=1) ko C21=sϕsθcψ−cϕsψ=sϕcψ−cϕsψ=sin(ϕ−ψ) mein substitute karo, aur C22=sϕsψ+cϕcψ=cos(ϕ−ψ). Toh θ=+90° par matrix sirf differenceϕ−ψ par depend karta hai. Convention se ϕ=0 set karo, phir:
−ψ=atan2(C21,C22)=atan2(−0.5,0.866)=−30°⇒ψ=30°,ϕ−ψ=−30°.
Case (b): θ=−90°.
Doosre pole par pitch. Sign flip kyun? θ=−arcsin(+1)=−90°, isliye sθ=−1. Row-1 zeros (C11=C12=0) abhi bhi hold karte hain — yeh phir se lock hai.
Fused combination ab ϕ+ψ hai. Difference nahi, sum kyun? sθ=−1 ko same entries mein daalo: C21=−sϕcψ−cϕsψ=−sin(ϕ+ψ) aur C22=−sϕsψ+cϕcψ=cos(ϕ+ψ). Toh θ=−90° par sirf ϕ+ψ determined hai. ϕ=0 set karo:
atan2(−C21,C22)=atan2(0.5,0.866)=30°⇒ϕ+ψ=30°⇒ψ=30°.
Loss report karo (dono poles). Zabar se kyun kehna padega? Sirf ek combined number real hai: ϕ−ψ at +90°, ϕ+ψ at −90°. Ise ek specific ϕ aur ψ mein todna ek arbitrary choice hai. Representation ka ek DOF kissi bhi pole par chala jaata hai; physical attitude bilkul theek hai.
Dono build karo. Kyun? Toolbox C(q) ki har entry do q-components ka product hai (quadratic). Har sign flip karne par (−1)×(−1)=+1 hota hai — koi change nahi.
Concretely2q0q3: q se yeh 2(0.866)(0.5)=0.866 hai; −q se 2(−0.866)(−0.5)=0.866 hai. Identical.
Unique representative.q0≥0 enforce kyun karein? "Shortest-arc" twist pick karne ke liye aur ek database mein ek attitude ke do naam avoid karne ke liye.
Verify:C(q)=C(−q) entrywise; dono Example 1 ki 60°-about-z matrix ke barabar hain ✓.
Do elementary quaternions. Compose karne ke liye quaternions kyun? Quaternion multiplication rotations ko cleanly compose karta hai (180° ambiguity nahi). Yaw ψ=90° about z: qψ=(cos45°,0,0,sin45°)=(0.7071,0,0,0.7071). Pitch θ=30° about y: qθ=(cos15°,0,sin15°,0)=(0.9659,0,0.2588,0).
Sahi order mein multiply karo.qψ⊗qθ kyun? Ek 3-2-1 chain ke liye total C=RyRz (pitch yaw ke baad apply hoti hai); matching quaternion product q=qψ⊗qθ hai Hamilton product (a0b0−a⋅b,a0b+b0a+a×b) use karke.
Compute karo.
Scalar: 0.7071(0.9659)−0=0.6830.
Vector: 0.7071(0,0.2588,0)+0.9659(0,0,0.7071)+(0,0,0.7071)×(0,0.2588,0). Cross term (0,0,0.7071)×(0,0.2588,0)=(0(0)−0.7071(0.2588),0.7071(0)−0(0),0(0.2588)−0(0))=(−0.1830,0,0).
Sum vector =(−0.1830,0.1830,0.6830).
q≈(0.6830,−0.1830,0.1830,0.6830)
Verify:∥q∥2=0.68302+0.18302+0.18302+0.68302≈1.000 ✓ (unit quaternions ka composite unit hota hai).
Convention mismatch pehchano. Kyun care karna? Hamara locked convention (definition box dekho) body-from-inertial hai vbody=Cvinertial ke saath. Ek inertial-from-body matrix uska transpose C⊤ hota hai. Galat wala feed karne par har rotation reverse ho jaati hai.
Transpose karo. Kyun? Ccorrect=C⊤=010−100001.
q nikalo. Toolbox q0-branch use karke: tr=1⇒q0=212=0.7071; q3=(C12−C21)/4q0=(−1−1)/(2.828)=−0.7071. Toh q=(0.7071,0,0,−0.7071) — ek −90° yaw, woh reverse jo un-transposed matrix se milta.
Verify: un-transposed ne ψ=+90° diya tha (Ex 1-style); transposed ne ψ=−90° diya. Angles exact negatives hain ✓; ∥q∥=1 ✓.
Small-angle limit. Taylor-expand kyun? Φ→0 ke liye, cos2Φ→1 aur sin2Φ→2Φ. Toh q→(1,0,2Φ,0)=(1,0,0.01,0). Yeh linearised form hai jo Quaternion Kinematics & Propagation mein use hoti hai.
Limit ki sanity. Propagation ke liye yeh kyun matter karta hai? Ek integration step pe update lagbhag q≈(1,21ωdt) hoti hai; use match karna propagator ko first-order accurate rakhta hai aur dikhata hai ki renormalization kyun zaroori hai (exact q0=0.99995=1 norm ko drift karta hai).
Verify:sin(0.01)=0.00999983 vs approximation 0.01 — relative error ≈1.7×10−5, tiny as claimed ✓. cos(0.01)2+sin(0.01)2=1 ✓.
Recall Self-test: cell ka naam bolo
Sirf trC=−1 diya ho toh kaunsa extraction branch use karoge? ::: Shepperd's largest-diagonal branch (Cell E) — q0=0, sabse bade qi se lead karo qi=211+Cii−Cjj−Ckk ke zariye.
Tumne yaw padha aur dono atan2 arguments negative hain — kaunsa quadrant? ::: Third (Cell C); plain atan180°-galat first-quadrant answer deta.
θ=+90° vs θ=−90° par, kaun sa Euler combination bachta hai? ::: ϕ−ψ at +90°, ϕ+ψ at −90° (Cell F, gimbal lock — dono poles).
Kya q aur −q kabhi alag DCMs dete hain? ::: Nahi — C(q) mein q quadratic hai (Cell G).