การเพิ่มแอคชูเอเตอร์หรือบังคับให้แบบจำลองร่างกายแข็งเกร็ง (Featherstone)


9

ฉันกำลังทำงานในโครงการที่ฉันต้องการสร้างแบบจำลองระบบที่ประกอบด้วยชุดของข้อต่อแบบลูกและซ็อกเก็ตที่ติดอยู่กับฐานซึ่งติดอยู่กับข้อต่อแบบแท่งปริซึม

ฉันได้อ่านRigid Body Dynamics Algorithmsของ Roy Featherstone แล้วและฉันยังอ่านส่วนDynamicsจากคู่มือ Springer ของ Robotics (เขียนโดย Featherstone)

ฉันใช้เวลานานกว่าจะคุ้นเคยกับการใช้สัญกรณ์ "ปริภูมิเวกเตอร์" และ "เมทริกซ์เชิงพื้นที่" ของเขา แต่หลังจากสร้างสัญกรณ์ทั้งหมดของเขาใหม่ด้วยมือเป็นแบบฝึกหัดมันทำงานได้ดี เมทริกซ์และเวกเตอร์ 3x1 เป็นเมทริกซ์และเวกเตอร์ 6x6 และ 6x1 คณิตศาสตร์ที่เขาประดิษฐ์เพื่อทำการดำเนินการอาจเป็นเรื่องที่น่าเบื่อในการอ่านขณะที่เขาจี้เครื่องหมายมาตรฐานบางอย่าง แต่ทุกอย่างโดยรวมมีขนาดเล็กมากและง่ายต่อการใช้งานใน MATLAB

ปัญหาของฉันคือ:ฉันจะเพิ่มแอคชูเอเตอร์เข้ากับโมเดลได้อย่างไร เขาเดินผ่านการกำหนดค่าคำจำกัดความร่วมลิงก์คำจำกัดความ ฯลฯ อย่างชัดเจน แต่เมื่อพูดถึงหรือกองกำลังที่ใช้เขาพูดอะไรบางอย่างเช่น "แค่เพิ่มที่นี่และบ๊อบเป็นลุงของคุณ!" - มันไม่ได้กล่าวถึงเลย ในHandbook of Roboticsเขาแนะนำให้แนะนำการเร่งความเร็วผิดฐานฐานคงที่เพื่อเพิ่มคำแรงโน้มถ่วง แต่ไม่แสดงวิธีการเพิ่มในพิกัดท้องถิ่นและเขาไม่พูดถึงวิธีการเพิ่มอินพุตแอคทูเอเตอร์τa

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

คำตอบ:


3

กองกำลัง Actuators

ฉันได้รับสิ่งนี้ถูกต้องหรือไม่: คุณมีแบบจำลองเชิงทฤษฎีของระบบ multibody ที่เข้มงวดและต้องการทำการคำนวณพลศาสตร์ของร่างกายที่เข้มงวด คุณได้ใช้โมเดลแล้วและตอนนี้ต้องการคำนวณว่าโมเดลทำงานอย่างไรเมื่อขับเคลื่อนโดยแอคทูเอเตอร์

อย่างไรก็ตามแอคทูเอเตอร์สำหรับคุณคืออะไร? มันเป็นเพียงแรงที่กระทำกับข้อต่อนั้นหรือไม่? เป็นรุ่นมอเตอร์กระแสตรงหรือไม่? มันเป็นตัวควบคุม PID หรือไม่?

อัลกอริทึมไดนามิกในหนังสืออธิบายไว้ในแง่ของตำแหน่งทั่วไป Qความเร็วทั่วไป Q˙ความเร็วทั่วไป Q¨และกองกำลังทั่วไป τ. หากคุณมีข้อต่อปริซึมซึ่งมีคำอธิบายการแปลของQผม แรงเชิงเส้นตรงที่ข้อต่อจะถูกอธิบายด้วย τผม. หากคุณมีข้อต่อ revolute (บานพับ) ซึ่งมีการอธิบายการหมุนโดยQJ แล้วก็ τJ แสดงถึงแรงบิดที่ข้อต่อ

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

หมายเหตุด้านข้าง: Featherstone ใช้τaเพื่อแสดงถึงกำลังปิดของลูปที่ใช้งานอยู่ จากคำอธิบายแบบจำลองของคุณดูเหมือนจะไม่เป็นลูปแบบ kinematic ใด ๆτa ใช้ไม่ได้

การเร่งความเร็วแรงโน้มถ่วง:

Featherstone ใช้การเร่งความเร็วความโน้มถ่วงที่ฐานและปล่อยให้มันแพร่กระจายโดยอัลกอริทึมผ่านต้นไม้ สิ่งนี้ทำใน RNEA ตารางที่ 5.1 ในบรรทัด

a0=-aก..

แทนที่จะทำเช่นนั้นคุณสามารถแก้ไขบรรทัดได้

ผมB=ผมผมaผม+โวลต์ผม×* * * *ผมผมโวลต์ผม

ถึง

ผมB=ผมผม(aผม-ผมX0aก.)+โวลต์ผม×* * * *ผมผมโวลต์ผม

เพื่อนำเอฟเฟกต์ความโน้มถ่วงมาใช้เป็นรายบุคคลในแต่ละร่างกาย สิ่งนี้แนะนำการคำนวณเพิ่มเติมและฉันไม่เห็นประโยชน์ใด ๆ ในการทำเช่นนั้น

พีชคณิตเชิงพื้นที่กับการต่อกันของเวกเตอร์ 3 มิติ

Spatial Algebra ไม่ได้เป็นเพียงการต่อเวกเตอร์สามมิติเข้าด้วยกัน อดีตแสดงการเคลื่อนไหวของร่างกายแข็งที่กรอบพิกัดคงที่ในขณะที่หลังจะแสดงที่จุดที่เคลื่อนที่ไปกับร่างกาย ผลที่ตามมาจากการเร่งความเร็วเชิงอวกาศคืออนุพันธ์เชิงเวลาของความเร็วเชิงพื้นที่ ในสัญกรณ์คลาสสิกโดยใช้สมการสามมิติสองกรณีนี้ไม่ใช่กรณี (ส่วน 2.11 ของหนังสือของ Featherstone):

หากร่างกายมีความเร็วเชิงมุมคงที่ ωจากนั้นจุดทั้งหมดบนร่างกายที่ไม่ได้อยู่ในแกนการหมุนจะมีการเร่งไปยังแกนการหมุน (จุดศูนย์กลางของการหมุนในกรณีภาพถ่าย) ในเชิงพื้นที่พีชคณิตร่างกายนี้มีศูนย์อวกาศเร่งอิสระจากกรอบอัตราเร่งที่จะแสดงใน

ความเร็วเชิงพื้นที่อธิบายความเร็วเชิงเส้นและเชิงมุมของจุดร่างกายที่ปัจจุบันสอดคล้องกับที่มาของกรอบอ้างอิง (คงที่) หากเฟรมนั้นถูกแสดงที่จุดศูนย์กลางมวลและเน้นด้วยกรอบอ้างอิงทั่วโลกดูเหมือนว่าจะเป็นการต่อกันแบบ 3 มิติเชิงเส้นและความเร็วเชิงมุมอย่างง่าย ๆ อย่างไรก็ตามนี่เป็นเพียงกรณีของกรอบอ้างอิงเฉพาะนี้ แสดงที่เฟรมอื่นคุณจะได้รับค่าที่แตกต่างกัน แต่ก็ยังแสดงถึงความเร็วเชิงพื้นที่เดียวกัน

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


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

สิ่งสุดท้ายที่ฉันทำคือข้อต่อทรงกลม - รับการเป็นตัวแทน quaternion และการเร่งความเร็ว สำหรับการทดลองนี้ฉันพยายามจำลองลูกตุ้ม Foucault โดยทำแบบจำลองโลกและวางลูกตุ้มด้วยข้อต่อทรงกลมบนพื้นผิว ในการทำเช่นนั้นฐานคงที่ของฉันคือศูนย์กลางของโลกซึ่งโลกหมุนรอบตัว จากศูนย์กลางการหมุนของโลกฉันสามารถหมุนขึ้น / ลงไปยังละติจูดใดก็ได้แปลไปยังพื้นผิวที่ฉันวางลูกตุ้มข้อต่อทรงกลมไว้
Chuck

ฉันต้องการวิธีในการเพิ่มแรงโน้มถ่วงเพราะฉันไม่สามารถวางมันลงบนแกน z บนฐานคงที่ของฉัน สิ่งนี้จะมีแรงโน้มถ่วงทำงานอย่างถูกต้องเฉพาะที่ขั้วโลกเหนือ โดยพื้นฐานแล้วฉันไม่สนใจเกี่ยวกับกองกำลังใต้พื้นผิวโลกฉันแค่แคร์ลูกตุ้ม precession
Chuck

ฉันถามคำถามที่เกี่ยวข้องเกี่ยวกับวิธีจัดการข้อต่อคงที่
Chuck

2

หากคุณยังไม่พบกับRigid Body Dynamics Library (RBDL)คุณอาจต้องการดูว่าพวกเขานำไปใช้อย่างไรและ / หรือติดต่อผู้เขียน Martin Felis


บาร์เร็ตต์ฉันพบ RBDL เมื่อไม่กี่สัปดาห์ที่ผ่านมาและในขณะที่ฉันพยายามรวบรวมข้อมูลบางครั้งก็เขียนใน C ++ ด้วยวิธีการที่ยากต่อการติดตามรหัส G.block(0,q_index,6,1) = base_to_body.apply(model.X_base[j].inverse().apply(model.S[j]));ตัวอย่างเช่นมีสายในรหัสจลนศาสตร์ที่อ่าน ดังนั้นฟังก์ชั่นapplyทำอะไร? ฉันต้องไปที่ไฟล์ส่วนหัวสำหรับคลาสใดก็ตามbase_to_bodyแต่นั่นคือข้อต่อหรือตัว? นอกจากนี้สิ่งต่าง ๆ เช่นmodel.base[j].inverse().apply(model.S[j])ไม่ชัดเจนโดยเฉพาะอย่างยิ่ง
Chuck

ซึ่งไม่ได้หมายความว่ามันไม่ได้มีประโยชน์ในบางครั้ง แต่สำหรับฉันที่จะได้รับความเข้าใจจาก RBDL ใช้ความพยายามอย่างมาก
Chuck

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