การคำนวณเมทริกซ์ Jacobian สำหรับ Inverse Kinematics


19

เมื่อคำนวณ Jacobian matrix เพื่อแก้ Inverse Kinematic นั้นฉันอ่านจากหลาย ๆ ที่ที่ฉันสามารถใช้สูตรนี้เพื่อสร้างคอลัมน์แต่ละข้อของข้อต่อใน Jacobian matrix:

Ji=eϕi=[[ai×(eposri)]T[ai]T]

ดังกล่าวที่เป็นแกนหมุนในพื้นที่โลกเป็นจุดหมุนในพื้นที่โลกและคือตำแหน่งของ effector ปลายในพื้นที่โลกarepos

อย่างไรก็ตามฉันไม่เข้าใจว่าวิธีนี้สามารถทำงานได้เมื่อข้อต่อมีมากกว่าหนึ่งอานนท์ ใช้ตัวอย่างต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

เป็นอานนท์หมุนที่เป็น effector ท้ายที่สุดเป็นเป้าหมายของ effector ท้ายที่สุดที่ ,และมีข้อต่อθegP1P2P3

ก่อนอื่นถ้าฉันต้องคำนวณเมทริกซ์ของจาโคเบียนตามสูตรข้างต้นสำหรับแผนภาพฉันจะได้อะไรแบบนี้

J=[((0,0,1)×อี)x((0,0,1)×(อี-P1))x((0,0,1)×(อี-P2))x((0,0,1)×อี)Y((0,0,1)×(อี-P1))Y((0,0,1)×(อี-P2))Y((0,0,1)×อี)Z((0,0,1)×(อี-P1))Z((0,0,1)×(อี-P2))Z000000111]

นี่คือการสันนิษฐานว่าแกนหมุนทั้งหมดคือและทั้งหมดมีแกนหมุนเพียงหนึ่งอานนท์ ดังนั้นผมเชื่อว่าแต่ละคอลัมน์เป็นหนึ่งอานนท์ในกรณีนี้ #(0,0,1)θ#

ทีนี้นี่คือปัญหา: จะเกิดอะไรขึ้นถ้าข้อต่อทั้งหมดมี 6 อานนท์เต็ม? พูดตอนนี้สำหรับทุกร่วมกันฉันมี DOFs หมุนในแกนทั้งหมด, ,และและยัง DOFs แปลในแกนทั้งหมด ,และt_zθxθYθZเสื้อxเสื้อYเสื้อZ

หากต้องการทำให้คำถามของฉันชัดเจนยิ่งขึ้นถ้าฉันจะ "บังคับ" ให้ใช้สูตรข้างต้นกับอานนท์ทั้งหมดของข้อต่อทั้งหมดแล้วฉันอาจจะได้รับเมทริกซ์จาโคเบียนเช่นนี้:

ป้อนคำอธิบายรูปภาพที่นี่

(คลิกเพื่อดูขนาดเต็ม)

แต่นี่เป็นสิ่งที่แปลกอย่างไม่น่าเชื่อเพราะทั้ง 6 คอลัมน์ของ DOF สำหรับการร่วมทุกครั้งกำลังทำสิ่งเดียวกันซ้ำ

ฉันจะใช้สูตรเดียวกันเพื่อสร้างเมทริกซ์ของยาโคบเบียนด้วยอานนท์ทั้งหมดได้อย่างไร? เมทริกซ์ของยาโคเบียนจะเป็นอย่างไรในกรณีนี้?


จริงๆแล้วฉันไม่แน่ใจว่าควรโพสต์คำถามนี้ที่นี่ในคณิตศาสตร์ใน GamesDev หรือในฟิสิกส์หรือไม่ ฉันรู้สึกว่าฉันโพสต์คำถามนี้ผิดที่
ซีนอน

ฉันคิดว่าข้อผิดพลาดของคุณคือคุณไม่ได้เปลี่ยน 'สำหรับ DOF แต่ละอันนั่นเป็นสาเหตุที่ทำให้พวกเขาดูเหมือนกันทั้งหมด

คำตอบ:


11

ฉันต้องยอมรับว่าฉันไม่ได้เห็นสูตรเฉพาะนั้นบ่อยนัก แต่การเดาของฉันจะเป็นเช่นนั้นในกรณีที่มีมากกว่าหนึ่งอานนท์คุณจะประเมินมันสำหรับข้อต่อทุกข้อในทุกคอลัมน์จากนั้นคูณผลลัพธ์เหล่านั้นด้วย แต่ละคอลัมน์

แต่ให้ฉันแนะนำ apporach ที่ง่ายกว่าให้กับ Jacobians ในบริบทของข้อ จำกัด หลายประการ: โดยทั่วไปแล้ว Jacobian จะบอกคุณว่าการเคลื่อนไหวของข้อต่อแต่ละครั้งนั้นไกลแค่ไหนถ้าคุณเลื่อนเฟรม effector ไปในทิศทางที่เลือกโดยพลการ ปล่อยให้เป็นจลนศาสตร์ไปข้างหน้าโดยที่เป็นข้อต่อ,เป็นส่วนหนึ่งของจลนศาสตร์ไปข้างหน้าและส่วนที่หมุนได้ จากนั้นคุณสามารถรับยาโคบเบียนได้โดยแยกความแตกต่างของจลนศาสตร์ไปข้างหน้าตามตัวแปรร่วม: θ = [ θ 1 , . . , θ n ] f pos f rot J = f(θ)θ=[θ1,...,θn]POSเน่าΔxΔθ=J-1Δx

J=θ=[POSθ1,POSθ2...,POSθnเน่าθ1,เน่าθ2...,เน่าθn]
เป็น Jacobian ของหุ่นยนต์ของคุณ Inverting มันจะทำให้คุณจลนศาสตร์ผกผันกับ respcet เพื่อความเร็ว มันก็ยังคงเป็น แต่มีประโยชน์ถ้าคุณต้องการที่จะรู้ว่าไกลร่วมกันมีการย้ายถ้าคุณต้องการที่จะย้าย effector ปลายของคุณโดยบางส่วนขนาดเล็กจำนวนในทิศทางใด (เพราะในระดับตำแหน่งนี้ได้อย่างมีประสิทธิภาพจะเป็นเชิงเส้นก) : Δx
Δθ=J-1Δx

หวังว่าสิ่งนี้จะช่วย


ขอบคุณสำหรับการตอบกลับ! แต่นี่จะหมายความว่าฉันจะต้องคำนวณค่าตัวเลข? ที่จริงฉันเห็นตัวอย่างการวิเคราะห์นี้จากgraphics.cs.cmu.edu/nsp/course/15-464/Fall09/handouts/IK.pdfจาก Slide 19 และgraphics.ucsd.edu/courses/cse169_w05/CSE169_13.pptบน Slide 78. จากสไลด์ดูเหมือนว่าฉันอาจไม่ต้องใช้วิธีการเชิงตัวเลข ในสถานการณ์เมื่อฉันไม่มีฟังก์ชั่นจริง ๆ ที่จะแยกความแตกต่างฉันสามารถใช้สูตรนี้ได้ แต่ปัญหาคือสิ่งที่เกิดขึ้นเมื่อฉันมีอานนท์มากขึ้นสำหรับการร่วมกัน
ซีนอน

ถ้าฉันเข้าใจสไลด์อย่างถูกต้องคุณจะต้องจัดการกับกรณีของข้อผิดพลาดหลาย ๆ แบบ (การหมุน) โดยการกำหนดเวกเตอร์สำหรับข้อต่อแต่ละข้อโดยที่เป็นตำแหน่งของข้อต่อ ดังนั้นถ้าคุณพูดข้อต่อ 46 คุณจะได้ยาโคเบียนที่มี 46 คอลัมน์และ 6 แถว (หรือ 3 ถ้าคุณละเลยการวางแนวของเอฟเฟกต์ท้าย) เรื่องสั้นแบบสั้น: คุณสามารถใช้สูตรนั้นกับข้อต่อจำนวนเท่าใดก็ได้และไม่ต้อง "รวม" กับข้อต่ออื่น ๆ P i(อีผม-Pผม)Pผม
Daniel Eberts

แต่จะเกิดอะไรขึ้นถ้าข้อต่อมีมากมายเช่น , ,และการแปลเช่น , , ? ตอนนี้ข้อต่อแต่ละอันมี 6 อานนท์ จากความเข้าใจของฉันเกี่ยวกับวิธีการทำงานของ Jacobian matrix สำหรับ IK คอลัมน์แรก 6 คอลัมน์จะเป็นอนุพันธ์ของ end-effector ที่เกี่ยวกับ 6 DOF ที่แตกต่างกันและ 6 คอลัมน์แรกเหล่านี้จะอธิบายข้อต่อแรก 6 คอลัมน์ถัดไปถัดไปจะอธิบายการเชื่อมต่อที่สองเกี่ยวกับ 6 DOFs และอื่น ๆ การใช้สมการหมายความว่า 6 คอลัมน์ของข้อต่อแต่ละข้อถูกบรรจุลงในคอลัมน์เดียวโดยอัตโนมัติหรือไม่ θ y θ z t x t y t z ( e i - P i )θxθYθZเสื้อxเสื้อYเสื้อZ(อีผม-Pผม)
ซีนอน

3
อ่าฉันเข้าใจแล้ว ไม่ในกรณีนั้นสูตรจะไม่ทำงานเพราะมันถูกออกแบบมาสำหรับข้อต่อการหมุนด้วยการหมุนหนึ่งแกน หากคุณต้องการรักษาเช่นข้อต่อทรงกลมคุณอาจต้องการสูตรที่แตกต่างซึ่งปฏิบัติต่อข้อต่อชนิดนั้นโดยเฉพาะหรือคุณต้องการรูปแบบปิดของจลนศาสตร์ล่วงหน้าของหุ่นยนต์ หากคุณมีสิ่งนั้นคุณสามารถแยกแยะได้ว่าข้อต่อและรับยาโคบเบียน θ
Daniel Eberts

ขอบคุณ! :) แค่อยากรู้อยากเห็น Slide 58 อยู่ในgraphics.ucsd.edu/courses/cse169_w05/CSE169_13.pptบอกเป็นนัยว่ามันเป็นไปได้ไหมที่จะใช้สูตรสำหรับข้อต่อแบบหมุนด้วย 3 อานนท์? ซึ่งหมายความว่าถ้าการร่วมทุนไม่มีการแปลอานนท์และมี 3 อานนท์การหมุนทั้งหมดมันยังคงเป็นไปได้? แม้ว่าฉันจะไม่แน่ใจว่าทำไมมันถึงใช้เวลาในการคูณกับการหมุนที่หลากหลายเพื่อให้ได้ที่แตกต่างกัน (1,0,0,0)
ซีนอน

2

สูตรสำหรับข้อต่อ6 dof ของคุณสมมติว่าข้อต่อทั้งหมด 6 ตัวมีแกนในกรอบโลกและข้อต่อทั้งหมดเป็น revolute เนื่องจากข้อต่อทั้ง 6 จึงเหมือนกันคอลัมน์ใน Jacobian ก็เหมือนกัน(0,0,1)

เริ่มต้นกว่าสมมติว่าร่วมกันมีแกนจะผ่านจุดRให้เป็นตำแหน่งของ end-effector พิกัดของ ,และได้รับในกรอบโลกและกำลังได้รับการปรับปรุงเมื่อหุ่นยนต์กำลังถูกย้าย แกนมีความยาว1r e a r e a 1aRอีaRอีa1

ถ้าข้อต่อคือการเชิดชูคอลัมน์ของยาโคบเบียนสำหรับข้อต่อคือ

Jθ(a,R)=[a×(อี-R)a]

หากข้อต่อเป็นแท่งปริซึมคอลัมน์คือ

Jพี(a)=[a0]

สมมติว่าเรามีการร่วม6 อานนท์ซึ่งไม่เพียง แต่เป็นทรงกลม แต่สามารถแปลในอวกาศด้วย สมมติว่าแกนของข้อต่อคือ ,และและว่าแต่ละข้อหมุนรอบและปริซึมมีส่วนแบ่งเป็นแกนดังนั้น Jacobian สำหรับข้อต่อจะกลายเป็นa y a zaxaYaZ

J=[Jพี(ax)Jพี(aY)Jพี(aZ)Jθ(ax,R)Jθ(aY,R)Jθ(aZ,R)]

แกน ,และขึ้นอยู่กับจลนศาสตร์ล่วงหน้าของหุ่นยนต์ เพื่อแสดงให้เห็นถึงการเปลี่ยนแปลงของข้อต่อในกรอบโลกโดยa y a z kaxaYaZk

Fk=Πผม=1kLผมTผม

ที่แปลงเป็นค่าคงที่และการแปลง T ฉันขึ้นอยู่กับตัวแปรร่วม ให้ R c ( q )และ P c ( q )เป็นการแปลงที่หมุนและแปลโดย qเกี่ยวกับแกนพิกัดที่ชื่อ c (เช่น x , yหรือ z )LผมTผมR(Q)P(Q)QxYZ

ให้เป็นรางที่คำนวณโดยความช่วยเหลือของจาโคเบียนสำหรับฉัน TH ร่วม ให้Δ T = P x ( Δ พีx ) P Y ( Δ P Y ) P Z ( Δ พีZΔQ=(Δพีx,ΔพีY,ΔพีZ,Δθx,ΔθY,ΔθZ)ผมและปรับปรุงการเปลี่ยนแปลงของท้องถิ่นร่วมกันโดย:ΔT=Px(Δพีx)PY(ΔพีY)PZ(ΔพีZ)Rx(Δθx)RY(ΔθY)RZ(ΔθZ)

TผมTผมΔT

ในการกำหนดของกลศาสตร์การเคลื่อนไหวไปข้างหน้านี้แกนx , YและZของการร่วมทุนผมจะตรงคอลัมน์ของเมทริกซ์หมุนของFฉัน นอกจากนี้ยังมีตำแหน่งRเป็นเวกเตอร์การแปลของFฉันaxaYaZผมFผมRFผม


0

เท่าที่ฉันเข้าใจคำถามของคุณว่าคุณต้องการเมทริกซ์จาโคเบียนสำหรับข้อต่อ 6 อานนท์

ให้ฉันเริ่มต้นด้วยพื้นฐานของหุ่นยนต์ คุณอยู่ในช่วงเริ่มต้นของการเรียนรู้หุ่นยนต์ที่แตกต่างกันไป คุณต้องเข้าใจว่าข้อต่อแต่ละอันแสดงถึงอานนท์เดี่ยว ๆ ไม่ว่าจะเป็นการร่วมประเวณีหรือปริซึม

เท่าที่ความกังวลเกี่ยวกับทรงกลมมันสามารถแปลงเป็นข้อต่อ 3 revolute กับสามแกนตั้งฉากซึ่งกันและกัน ดังนั้นตอนนี้คุณได้ลดความซับซ้อนของข้อต่อทรงกลมของคุณ

ก้าวไปข้างหน้าสู่เมทริกซ์จาโคเบียน มันมี 6 แถว 3 แถวแรกแสดงถึงการวางแนวและ 3 แถวสุดท้ายระบุตำแหน่งโดยอ้างอิงกับระบบพิกัดเฉพาะ แต่ละคอลัมน์ในเมทริกซ์บ่งบอกถึงข้อต่อเดียว จำนวนข้อต่อ / อานนท์คุณมีคอลัมน์จำนวนเดียวกันกับที่คุณมีในเมทริกซ์จาโคเบียน

นี่คือมุมมองที่ชัดเจนมากขึ้นสำหรับคำถามของคุณ: ข้อต่อเดียวไม่เคยตอบสนองมากกว่าหนึ่งอานนท์เพราะมันซับซ้อนการควบคุมร่วมและการควบคุมที่แม่นยำจะไม่บรรลุ แม้ว่าเราจะพิจารณาข้อต่อที่มีสมมุติฐานมากกว่าหนึ่งอานนท์ แต่คุณต้องแปลงข้อต่อนั้นเป็นข้อต่อหลาย ๆ อันด้วย 1 อานนท์แต่ละอันเพื่อทำให้คณิตศาสตร์และการแก้ปัญหาง่ายขึ้น

หุ่นยนต์ 6 DOF ที่มีข้อต่อ revolute 6 ชิ้นส่วนใหญ่สำหรับปัญหาจริง แต่ตามคำถามของคุณคุณได้พิจารณาหุ่นยนต์ร่วม 6 ตัวโดยแต่ละข้อมี 3 อานนท์ที่ทำหุ่นยนต์ 18 อานนท์ สิ่งนี้จะให้อานนท์ซ้ำซ้อน (เช่น 18-6 = 12 ซ้ำซ้อนอานนท์) ดังนั้นในการเข้าถึงหุ่นยนต์ผู้สร้างเอฟเฟกต์ไปยังตำแหน่งใด ๆ ด้วยการวางแนวใด ๆ คุณจะมีวิธีแก้ปัญหาที่แตกต่างกันไม่สิ้นสุด (โซลูชันหมายถึงการหมุนของข้อต่อแต่ละข้อ) ดังนั้นแก้ปัญหาจลศาสตร์ผกผันชนิดนี้คุณจะต้องใช้วิธีวนซ้ำของจลนศาสตร์ผกผัน

หวังว่าฉันได้ตอบคำถามของคุณชัดเจนยิ่งขึ้น หากต้องการเรียนรู้หุ่นยนต์ขั้นพื้นฐานคุณสามารถอ้างอิง John J. Craig - รู้เบื้องต้นเกี่ยวกับกลไกและการควบคุมหุ่นยนต์ - Pearson Education, Inc.

ขอแสดงความนับถือ Manan Kalasariya

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.