// เวกเตอร์ · ส่วนที่ 3 · Vectors in robot arms
เวกเตอร์ในแขนกล: จลนศาสตร์ Jacobian และแรงบิดข้อต่อ
แขนกลในโรงงานประกอบรถยนต์ แขนหยิบชิ้นงานบนสายพาน หรือแขนหุ่นยนต์ที่นักศึกษาสร้างจากเซอร์โว ล้วนคือโซ่ของเวกเตอร์ ตำแหน่งปลายแขนคือผลบวกเวกเตอร์ของข้อแขน ความเร็วปลายแขนคือผลรวมของ ω × r และแรงบิดที่มอเตอร์ต้องให้คือโมเมนต์ของแรงที่ปลายแขน บทนี้เชื่อมทุกเรื่องที่เรียนมา — บวกเวกเตอร์ กฎโคไซน์ cross product และการหมุนแกน — ให้กลายเป็นเครื่องมือออกแบบแขนกลและเลือกมอเตอร์ได้จริง
- — มุมของท่อนที่สองสะสมจากท่อนแรก
- IK: (กฎโคไซน์) มีสองท่า
- , คอลัมน์ของ J = ; เอกฐานเมื่อ
- : แรงบิดข้อต่อคือโมเมนต์ของแรงปลายแขนรอบข้อต่อนั้น
1. แขนกลคือโซ่ของเวกเตอร์ พื้นฐาน
แขนกลแบบข้อต่อหมุน (revolute) ประกอบด้วยข้อแขนแข็งเกร็งต่อกันด้วยมอเตอร์ เมื่อรู้มุมของมอเตอร์ทุกตัว ข้อแขนแต่ละท่อนคือเวกเตอร์ที่มีความยาวคงที่และทิศตามมุมสะสม ตำแหน่งปลายแขน (end-effector) จึงเป็นผลบวกหัวต่อหางของเวกเตอร์เหล่านี้ — กฎเดียวกับ การบวกเวกเตอร์ ที่เรียนในบทแรก
2. Forward kinematics ของแขน 2 ข้อต่อในระนาบ พื้นฐาน
A1 Forward kinematics (2R planar) ตำแหน่งปลายแขนจากมุมข้อต่อ
θ₂ วัดเทียบกับท่อนแรก (เอนโค้ดเดอร์ที่ข้อศอกวัดแบบนี้) ทิศของท่อนสองเทียบโลกจึงเป็น θ₁ + θ₂
A2 Workspace พื้นที่ทำงาน
มาจากอสมการสามเหลี่ยมของเวกเตอร์ เป็นวงแหวน ถ้า L₁ = L₂ ปลายแขนแตะฐานได้ (ระยะใน = 0)
L₁ = 0.5 m, L₂ = 0.4 m, θ₁ = 30°, θ₂ = 60° จงหาตำแหน่งปลายแขน
ท่อนแรก: m
ท่อนสองชี้ที่ 30° + 60° = 90°: m
m ระยะจากฐาน 0.781 m อยู่ใน [0.1, 0.9] ✓
m — ค่าเริ่มต้นของแล็บด้านล่าง
3. Inverse kinematics: กฎของโคไซน์ในชีวิตจริง กลาง
ฐาน ข้อศอก และปลายแขนเป็นสามเหลี่ยมที่รู้ความยาวทั้งสามด้าน (L₁, L₂, ‖p‖) มุมที่ข้อศอกหาได้จาก กฎของโคไซน์ — ตัวเดียวกับที่ใช้รวมแรง เพราะ ก็คือ “แรงลัพธ์” ของเวกเตอร์ข้อแขนสองท่อน
A3 Inverse kinematics (2R planar) หามุมข้อต่อจากตำแหน่ง
θ₂ บวก = ข้อศอกลง (elbow-down) θ₂ ลบ = ข้อศอกขึ้น (elbow-up) สำหรับเป้าหมายในควอดแรนต์แรก ถ้า |cos θ₂| > 1 เป้าหมายอยู่นอกพื้นที่ทำงาน
แขน L₁ = 0.5 m, L₂ = 0.4 m ต้องไปที่ (0.6, 0.3) m จงหามุมข้อต่อทั้งสองท่า
ท่าข้อศอกลง (θ₂ = +84.26°):
ท่าข้อศอกขึ้น (θ₂ = −84.26°):
ตรวจด้วย A1: ทั้งสองท่าให้ (0.600, 0.300) ✓ เลือกท่าที่ไม่ชนสิ่งกีดขวางหรือใกล้ท่าปัจจุบันที่สุด
(θ₁, θ₂) = (−9.83°, 84.26°) หรือ (62.96°, −84.26°)
4. แล็บแขนกล 2 ข้อต่อ พื้นฐาน
โหมด Forward ปรับมุม θ₁ θ₂ แล้วดูเวกเตอร์ข้อแขนรวมกันเป็น p โหมด Inverse คลิกหรือลากบนภาพเพื่อย้ายเป้าหมาย (กากบาทแดง) แขนจะคำนวณ IK ทันที ติ๊ก “ลากเส้นทาง” แล้วลองวาดตัวอักษร สังเกตว่าเมื่อเหยียดแขนสุดเข้าใกล้ขอบวงแหวน ระบบจะเตือนภาวะเอกฐาน
5. ความเร็วปลายแขนและ Jacobian กลาง
ข้อต่อหมุนด้วยความเร็วเชิงมุม รอบแกน z ทำให้ทุกจุดที่อยู่ปลายน้ำของข้อต่อนั้นเคลื่อนที่ด้วยความเร็ว (ดู ความเร็วจาก cross product) รวมผลของทุกข้อต่อได้ Jacobian
A4 Jacobian and tip velocity Jacobian และความเร็วปลายแขน
คอลัมน์ i คือความเร็วปลายแขนเมื่อหมุนข้อต่อ i ด้วย 1 rad/s — ตั้งฉากกับเวกเตอร์จากข้อต่อนั้นไปปลายแขนเสมอ
A5 Kinematic singularity ภาวะเอกฐาน
สองคอลัมน์ของ J ขนานกัน ปลายแขนขยับในแนวรัศมีไม่ได้ และ พุ่งไม่จำกัดเมื่อเข้าใกล้ ตัวควบคุมหุ่นยนต์จริงจึงต้องหลีกเลี่ยงหรือใช้ damped least squares
ที่ท่า A-1 ข้อต่อฐานหมุน rad/s ข้อศอกนิ่ง จงหาความเร็วปลายแขน
(คอลัมน์ 1 = )
m/s, m/s
ตรวจ: ✓ และ
: ไม่อยู่ในภาวะเอกฐาน
v = (−0.325, 0.217) m/s ตั้งฉากกับ p
6. แรงบิดข้อต่อ τ = JᵀF: ทำไมมอเตอร์ฐานต้องแรงที่สุด ขั้นสูง
หลักงานเสมือน (virtual work): ถ้าปลายแขนดันวัตถุด้วยแรง F และข้อต่อขยับนิด ๆ δθ งานที่มอเตอร์ทำ ต้องเท่ากับงานที่ปลายแขนทำ สำหรับทุก δθ จึงได้
A6 Static joint torques แรงบิดข้อต่อจากแรงที่ปลายแขน
รูปขวาคือโมเมนต์ของแรงปลายแขนรอบข้อต่อ i (S2) ตรงกับสามัญสำนึก: ยิ่งปลายแขนอยู่ไกลจากข้อต่อในแนวตั้งฉากกับแรง แรงบิดยิ่งมาก
A7 Motor sizing through a gearbox เลือกมอเตอร์ผ่านเกียร์
N = อัตราทด η = ประสิทธิภาพเกียร์ = ค่าคงที่แรงบิดของมอเตอร์ (N·m/A) เผื่อค่าความปลอดภัย 1.5–2 เท่าสำหรับความเร่งและแรงเสียดทาน
ที่ท่า A-1 ปลายแขนถือของ 2 kg นิ่ง (ไม่คิดน้ำหนักแขน) จงหาแรงบิดข้อต่อ แล้วเลือกมอเตอร์ฐานผ่านเกียร์ 50:1 (η = 0.8, K_t = 0.1 N·m/A)
แขนต้องออกแรงขึ้นต้านน้ำหนัก: N
N·m
ทำไม τ₂ = 0? ท่อนสองตั้งดิ่ง (30° + 60° = 90°) แรงแนวดิ่งผ่านข้อศอกพอดี แขนโมเมนต์เป็นศูนย์
มอเตอร์ฐาน: N·m กระแส ≈ 0.212/0.1 = 2.1 A — เผื่อ 2 เท่า เลือกมอเตอร์ที่ให้ต่อเนื่อง ≥ 0.42 N·m
ท่าที่แย่ที่สุด: แขนเหยียดแนวนอน τ₁ = 19.62 × 0.9 = 17.7 N·m (มากกว่าเกือบสองเท่า) ต้องออกแบบด้วยท่านี้
τ = (8.50, 0) N·m ที่ท่านี้ · ออกแบบด้วยท่าเหยียดแนวนอน 17.7 N·m
7. แขน 3 มิติ: ฐานหมุน + แขนในระนาบแนวดิ่ง กลาง
แขนแบบ articulated ที่พบบ่อยที่สุดมีข้อต่อฐานหมุนรอบแกนตั้ง (q₁) แล้วมีไหล่ (q₂) และศอก (q₃) หมุนในระนาบแนวดิ่ง ฐานหมุนพาระนาบนั้นทั้งระนาบไปด้วย จึงคิดเป็นสองขั้น: หาระยะเอื้อมแนวราบ ρ และความสูง z ในระนาบแขนก่อน แล้วหมุนด้วย q₁ เหมือนการแตกแรงสองขั้นใน K6
A8 3-DOF articulated arm แขน 3 ข้อต่อ (ฐาน-ไหล่-ศอก)
A9 Homogeneous transforms เมทริกซ์แปลงเอกพันธ์ (หมุน + เลื่อน)
รวมเมทริกซ์หมุน (T4) กับเวกเตอร์เลื่อนไว้ในเมทริกซ์ 4×4 เดียว คูณต่อกันตามข้อต่อ — ตารางพารามิเตอร์ Denavit–Hartenberg เป็นวิธีมาตรฐานเขียน T แต่ละข้อ
h = 0.4 m, L₂ = 0.6 m, L₃ = 0.5 m, q₁ = 30°, q₂ = 40°, q₃ = −60° จงหาตำแหน่งปลายแขน
m
m
หมุนด้วยฐาน: , m
m — ลองตั้งค่าเดียวกันในฉาก 3 มิติด้านล่าง
8. มุมมองวิศวกรไฟฟ้า: จากเวกเตอร์สู่กระแสมอเตอร์ กลาง
เอนโค้ดเดอร์ → θ
เอนโค้ดเดอร์ 4096 พัลส์ต่อรอบ ความละเอียด 0.088° ที่ระยะ 0.9 m ทำให้ปลายแขนคลาดได้ 1.4 mm — คำนวณจาก
9. ข้อผิดพลาดที่พบบ่อย
| ข้อผิดพลาด | วิธีป้องกัน |
|---|---|
| ใช้ θ₂ เป็นมุมของท่อนสองเทียบโลก | θ₂ เป็นมุมสัมพัทธ์ ใช้ θ₁ + θ₂ |
| ใช้ arctan(y/x) แทน atan2 | ควอดแรนต์ผิดเมื่อ x < 0 แขนจะเลี้ยวผิดข้าง |
| ลืมว่า IK มีสองคำตอบ | เลือกท่าตามสิ่งกีดขวางและความต่อเนื่องของการเคลื่อนที่ |
| ใช้ J แทน Jᵀ หาแรงบิด | มิติไม่ตรงในแขน 3 ข้อต่อ 2 มิติ (J เป็น 2×3) ทันที |
| เลือกมอเตอร์จากท่าเดียว | หาท่าที่แรงบิดสูงสุด (มักเหยียดแนวนอน) และรวมน้ำหนักแขน |
10. แบบฝึกหัดพร้อมเฉลย
- L₁ = L₂ = 0.3 m, θ₁ = 90°, θ₂ = −90° จงหา p
- แขนเดียวกัน ต้องการ p = (0.3, 0.3) จงหา θ₂ และ θ₁ (ท่าข้อศอกลง)
- แขนเหยียดแนวนอน (θ₁ = θ₂ = 0) L₁ = 0.5, L₂ = 0.4 ปลายถือ 1 kg จงหา τ₁, τ₂ และ det J
- τ ที่ข้อต่อฐาน 12 N·m เกียร์ 100:1 ประสิทธิภาพ 0.7 มอเตอร์ต้องให้แรงบิดเท่าไร?
เปิดเฉลย
- (0, 0.3) + (0.3cos0°, 0.3sin0°) = (0.3, 0.3) m
- cos θ₂ = (0.18 − 0.18)/0.18 = 0 → θ₂ = 90°; θ₁ = 45° − atan2(0.3, 0.3) = 0° (และท่าอีกแบบคือ θ₁ = 90°, θ₂ = −90° จากข้อ 1)
- F = (0, 9.81): τ₁ = 0.9 × 9.81 = 8.83 N·m, τ₂ = 0.4 × 9.81 = 3.92 N·m; det J = 0 เพราะ θ₂ = 0 (เอกฐาน แต่ยังถือของนิ่งได้)
- 12/(100 × 0.7) = 0.171 N·m
11. สรุปสูตร
12. แหล่งอ้างอิงและอ่านต่อ
- Lynch & Park, Modern Robotics (ฉบับเปิดพร้อมวิดีโอ) — บทที่ 4–6 forward/inverse kinematics และ Jacobian
- Peter Corke, Robotics Toolbox (Python/MATLAB) — เครื่องมือระดับโลกสำหรับจำลองแขนกล ใช้ตรวจตัวอย่างในหน้านี้ได้
- J. J. Craig, Introduction to Robotics: Mechanics and Control — ตำรามาตรฐาน DH parameters
ต่อไป: แรงแม่เหล็กที่สร้างแรงบิดในมอเตอร์ข้อต่อใน เวกเตอร์ในสนามไฟฟ้าและแม่เหล็ก หรือทดลองครบชุดใน แล็บกลศาสตร์
คำถามที่พบบ่อย
Forward kinematics ของแขนกลสองข้อต่อคืออะไร?
คือการหาตำแหน่งปลายแขนจากมุมข้อต่อ โดยบวกเวกเตอร์ของข้อแขนแต่ละท่อน p = L₁(cos θ₁, sin θ₁) + L₂(cos(θ₁+θ₂), sin(θ₁+θ₂)) มุมของท่อนที่สองต้องใช้ θ₁+θ₂ เพราะวัดเทียบกับท่อนแรก
Inverse kinematics หามุมข้อต่ออย่างไร?
ใช้กฎของโคไซน์กับสามเหลี่ยมฐาน-ข้อศอก-ปลายแขน cos θ₂ = (x² + y² − L₁² − L₂²)/(2L₁L₂) ได้สองคำตอบ (ข้อศอกขึ้นหรือลง) แล้ว θ₁ = atan2(y, x) − atan2(L₂ sin θ₂, L₁ + L₂ cos θ₂) ถ้า cos θ₂ อยู่นอก [−1, 1] เป้าหมายอยู่นอกพื้นที่ทำงาน
Jacobian ของแขนกลใช้ทำอะไร?
เชื่อมความเร็วข้อต่อกับความเร็วปลายแขน v = J θ̇ และเชื่อมแรงที่ปลายแขนกับแรงบิดข้อต่อ τ = Jᵀ F เมื่อ det J = 0 (ภาวะเอกฐาน) แขนขยับปลายในบางทิศไม่ได้ และต้องใช้ความเร็วข้อต่อสูงมากเมื่อเข้าใกล้
เลือกมอเตอร์ข้อต่ออย่างไร?
หาแรงบิดสูงสุดที่ข้อต่อจาก τ = JᵀF ในท่าที่แย่ที่สุด (มักเป็นแขนเหยียดแนวนอน) รวมน้ำหนักข้อแขนเอง หารด้วยอัตราทดเกียร์และประสิทธิภาพ แล้วเผื่อค่าความปลอดภัย กระแสมอเตอร์ประมาณจาก τ_motor = K_t i