หุ่นยนต์ไม่เคยไปตรง


19

ฉันใช้มอเตอร์ DC 2ตัวและล้อละหุ่ง มอเตอร์จะเชื่อมต่อกับคนขับมอเตอร์ L293DและถูกควบคุมโดยRPI

หุ่นยนต์ไม่ตรง มันเลี้ยวออกไปทางขวา ผมใช้มอเตอร์ทั้งสองที่100% PWM

สิ่งที่ฉันพยายามแก้ไขข้อผิดพลาด:

  1. ฉันปรับ PWM ของวงล้อให้เร็วขึ้นเป็น99%แต่หุ่นยนต์เพิ่งหันไปอีกด้านหนึ่ง
  2. ฉันปรับน้ำหนักของหุ่นยนต์และปัญหายังคงมีอยู่

ฉันเคยพยายามเรียกใช้มอเตอร์โดยไม่มีภาระใด ๆ นั่นคือสาเหตุของสิ่งนี้ตามที่ฉันบอกในภายหลังว่าการใช้งานมอเตอร์ DC โดยไม่มีภาระทำให้เกิดความเสียหายหรือไม่

หากนั่นไม่ใช่สาเหตุโปรดบอกวิธีแก้ปัญหาโดยไม่ใช้เซ็นเซอร์เพื่อควบคุมมัน


ในการกำหนดค่าไดรฟ์ที่แตกต่างซึ่งฉันนึกภาพคือสิ่งที่คุณใช้สิ่งนี้มีโอกาสเกิดขึ้นได้มาก ความแตกต่างเล็กน้อยระหว่างมอเตอร์ทั้งสองจะทำให้หุ่นยนต์หมุน
Demetris

4
ยินดีต้อนรับสู่การควบคุมวงเปิด คุณต้องการเซ็นเซอร์ของคุณเอง (ตาของคุณ) เพื่อตรวจจับปัญหาด้วยตัวคุณเองคุณคิดว่าหุ่นยนต์จะสามารถตรวจจับได้โดยไม่มีเซ็นเซอร์เพิ่มเติมอย่างไร การปิดลูปควบคุมด้วยเซ็นเซอร์เป็นวิธีที่จะทำ
หน่วยดัด 22

1
มอเตอร์สเต็ปเปอร์อาจทำงานได้หากคุณต้องการหลีกเลี่ยงเซ็นเซอร์

@bdares - หากไม่มีเซ็นเซอร์หุ่นยนต์จะทราบได้อย่างไรว่าเมื่อใดที่จะต้องแก้ไขให้ถูกต้อง หากล้อหนึ่งกระทบกับพื้นที่ที่มีแรงเสียดทานต่ำ (เช่นฝุ่น) และสลิปหุ่นยนต์จะหมุนและจะไม่แก้ไข
Chuck

เมื่อคุณบอกว่าไม่มีเซ็นเซอร์นี่อาจหมายความว่าไม่มีการรับรู้จากภายนอกหรือคุณไม่รวมเครื่องเข้ารหัสบนล้อ เพราะนั่นเป็นวิธีแก้ปัญหาทั่วไปสำหรับปัญหานี้
JamesRyan

คำตอบ:


29

ผมโพสต์นี้เป็นคำตอบเพราะมันเป็นคำตอบ

คุณทำไม่ได้

ในฐานะ @ BendingUnit22 กล่าวถึงคุณกำลังพยายามควบคุม "open loop" เสียงรบกวนและการแปรปรวนจะหมายความว่าหุ่นยนต์ของคุณจะไม่ขับเป็นเส้นตรงอย่างสมบูรณ์

มอเตอร์อาจมีความต้านทานที่คดเคี้ยวแตกต่างกัน (ไดรฟ์กระแส / แรงบิดที่แตกต่างกัน), ล้ออาจมีขนาดแตกต่างกัน, ล้ออาจมีลักษณะการลากที่แตกต่างกัน, แบริ่งล้ออาจเป็น "แข็ง", ล้ออาจ พื้นอาจมีลักษณะของแรงเสียดทานพื้นผิวที่แตกต่างกัน (อ่าน: ฝุ่นหรือพรม) - รายการต่อไปเรื่อย ๆ

เพียงวิธีการบัญชีสำหรับสิ่งที่อยู่นอกเหนือการควบคุมของคุณ (สิ่งที่ฉันพูดถึงข้างต้น + เพิ่มเติม) คือการใช้เซ็นเซอร์ความคิดเห็น

คุณสามารถลองใช้ประสิทธิภาพวงรอบที่ดีขึ้นได้โดยแก้ไขปัญหาที่ฉันระบุไว้ แต่มีมากขึ้นและคุณก็ไม่สามารถควบคุมทุกอย่างได้


5
แน่นอน! ปัญหาอยู่ในคำแถลงว่า "ฉันใช้มอเตอร์ DC เหมือนกัน 2 ตัว" พวกเขาไม่เคยเหมือนกันอย่างสมบูรณ์และเป็น @Chuck กล่าวถึงมีโฮสต์ทั้งหมดของการพิจารณาอื่น ๆ สิ่งเดียวที่แน่นอนในวิทยาการหุ่นยนต์คือความผิดพลาดและเสียงดังจะเกิดขึ้น
Ryan Loggerythm

2
การใช้สองล้อบนแกนเดียวกันควรจะให้ผลลัพธ์ที่ดีกว่าการใช้มอเตอร์เดียวกันสองตัวใช่หรือไม่?
John Dvorak

@JanDvorak - ฉันไม่แน่ใจว่าคุณหมายถึงอะไรเมื่อคุณพูดว่า "สองล้อบนแกนเดียวกัน" แต่ฉันเชื่อว่ามันเข้าใจ / บอกเป็นนัย ๆ ว่าล้อทั้งสองอยู่ในแกนเรขาคณิตเดียวกัน หากคุณหมายถึงแกนควบคุมเดียวกัน (เช่นเดียวกับมอเตอร์หนึ่งตัว) หรือเพลา (หมายถึงอีกมอเตอร์หนึ่ง) ฉันจะชี้ให้เห็นว่ามันเป็นไปไม่ได้ที่จะทำการบังคับเลี้ยวของเฟืองท้ายด้วยเพลาล็อค สำหรับมอเตอร์หนึ่งตัวที่จะควบคุมล้อทั้งสองด้วยความเร็วที่แตกต่างกันนั้นต้องใช้ดิฟเฟอเรนเชียล (และอุปกรณ์อื่น ๆ ) และเฟืองแตกเพลาอย่างมีประสิทธิภาพเป็นสองชิ้นและคุณกลับมาที่สี่เหลี่ยมจัตุรัส
Chuck

ฉันหมายถึงหนึ่งเพลาขอโทษ ฉันไม่ทราบว่ามีความต้องการที่จะไปไม่ตรง?
John Dvorak

2
@JanDvorak - ฉันเชื่อว่าหุ่นยนต์ของ OP เป็นยานพาหนะสไตล์ micromouse แม้ว่ามันจะต้องไปทางตรงและใช้เพลาเดียวแหล่งความผิดพลาดอื่น ๆ ทั้งหมดยังคงมีผลอยู่ หากหนึ่งล้อเป็น 0.1% มีขนาดใหญ่เส้นผ่าศูนย์กลางกว่าที่อื่น ๆ แล้วมันจะเดินทางยาวเส้นทางที่เป็น 0.1% ไกลกว่ายางขนาดเล็กต่อการปฏิวัติ ยกตัวอย่างเช่นขนาดล้อปกติคือ 10 ซม. และระยะห่างของล้อคือ 10 ซม. ยางที่มีขนาดใหญ่เป็น 10.01cm และเดินทาง 0.0314cm ไกลต่อการปฏิวัติ สำหรับฐานล้อหุ่นยนต์เปิด 0.12 องศาต่อการปฏิวัติล้อ 0.01cm อาจมาจากฝุ่นบนยางเส้นเดียวได้อย่างง่ายดาย
Chuck

6

เนื่องจากมีการกล่าวถึงปัญหาลูปแบบปิดแล้วฉันจะให้ความเห็นกับ "ฉันเคยพยายามเรียกใช้งานมอเตอร์กระแสตรงโดยไม่ต้องโหลด"
ใช่คุณอาจสร้างความเสียหายให้กับมอเตอร์ของคุณ แต่คุณสามารถทำลายหรือทำลายมอเตอร์ของคุณด้วยการโหลด การทำลายมาจากกระแสและอุณหภูมิที่เกิดขึ้น หากไม่มีควันและมีกลิ่นที่เห็นได้ชัดจากมอเตอร์ก็น่าจะไม่เกิดความเสียหาย จากประสบการณ์ของฉันฉันสามารถบอกได้ว่ามอเตอร์กระแสตรงขนาดงานอดิเรกจะเริ่มลดลงที่อุณหภูมิมากกว่า 100 ° C และคุณจะสังเกตเห็นอุณหภูมิอย่างแน่นอน

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


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

ไม่มีควันดังกล่าวหรือความเสียหายที่มองเห็นได้ ดังนั้นอาจจะไม่ได้รับความเสียหายในขณะที่ฉันวิ่งมันน้อยกว่าครึ่งนาที
เม้าส์

2

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

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

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

อย่างไรก็ตามเป็นวิธีหนึ่งในการบรรลุความต้องการของคุณโดยไม่มีเซ็นเซอร์เพิ่มเติม


1

แม้ว่ามันจะไม่สมบูรณ์แบบ แต่อาจมีวิธีง่ายๆในการทำให้มันตรงไปกว่านี้

หากที่ 100% -100% รถจะเลี้ยวซ้ายเสมอและที่ 100% -99% รถจะเลี้ยวขวาเสมอคุณควรจะสามารถปรับปรุงมันได้โดยการลองใช้ค่าระหว่าง

เริ่มต้นด้วย 100% -99.5% และดำเนินการต่อด้วย 100% -99.75% หรือ 100% -99.25% ขึ้นอยู่กับผลลัพธ์ ในไม่ช้านี้ควรจะมาบรรจบกันกับสถานการณ์ที่คุณจะเข้าสู่ 'โดยเฉลี่ย'


0

ถ้าปัญหาไม่ได้อยู่ในความแตกต่างของฮาร์ดแวร์หรือซอฟต์แวร์สำหรับแต่ละล้อนั่นอาจเป็นปัญหากับความไม่สมบูรณ์ตามธรรมชาติไม่ว่าคุณจะสร้างหุ่นยนต์หรือวิธีการผลิตมอเตอร์ การเชื่อมต่ออาจไม่เสถียรหรือ RPI อาจไม่ส่งสัญญาณออกในปัจจุบันเดียวกัน คุณอาจต้องการใช้ตัวควบคุมความเร็ว ลองก่อน

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


2
การใช้ตัวควบคุมมอเตอร์ที่เหมือนกันจะไม่สามารถแก้ไขปัญหาได้ ปัญหาอยู่ที่แกนกลางของหุ่นยนต์ซึ่ง "ฉันจะแก้ไขข้อผิดพลาดได้อย่างไร"
Ryan Loggerythm

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

-2

ล้อที่มีมอเตอร์ dc ควรขที่ด้านหน้า และล้อคอสเตอร์ที่ด้านหลัง จากนั้นมันจะเคลื่อนที่ตรงไปในทิศทางไปข้างหน้าเท่านั้น


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