การแปลหุ่นยนต์เป็นจำนวนมาก


9

ฉันมีห้อง 300 ซม. x 300 ซม. พร้อมเพดานสูง 25 ซม. (ใช่ยี่สิบห้าเซนติเมตร) ประกอบด้วยหุ่นยนต์ล้อเล็ก 50 ตัว (ประมาณ 20 ซม. x 20 ซม.) คอมพิวเตอร์ส่วนกลางจะเตรียมการเคลื่อนไหวของหุ่นยนต์โดยใช้เครือข่ายไร้สายเพื่อส่งคำสั่งตำแหน่งไปยังพวกเขา หุ่นยนต์จะทำการควบคุมตำแหน่งลูปแบบปิดของตนเองเพื่อประหยัดแบนด์วิดท์ไร้สาย หุ่นยนต์มีไมโครคอนโทรลเลอร์ ARM 32 บิต พวกเขามีเซ็นเซอร์ตำแหน่งล้อและความสามารถในการควบคุมล้อที่แม่นยำ

ปัญหา: หุ่นยนต์ไม่สามารถทำได้จริง ๆ เพราะพวกเขาไม่มีวิธีวัดตำแหน่งของพวกเขาในห้อง

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


โรบอทมีเซ็นเซอร์ชนิดใดและมีกำลังการคำนวณเท่าใด
DaemonMaker

1
@DaemonMaker - เพิ่มข้อมูลนั้นและพยายามชี้แจงคำถาม
Rocketmagnet

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

การปิดกั้นไม่ให้มองเห็นเส้น xy หรือ z ด้วยหรือไม่ เช่นถ้าคุณมีเส้นเลเซอร์หรือกระจกบนเพดานหุ่นยนต์จะสามารถมองเห็นได้หรือไม่?
James Waldby - jwpat7

@ jwpat7 - เนื่องจากเพดานต่ำมากและหุ่นยนต์สัมผัสได้จริงจึงไม่มีแนวสายตาในทิศทาง Z
Rocketmagnet

คำตอบ:


4

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

ออปติคอล

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

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

อาร์เรย์เซ็นเซอร์หรือกล้องในชั้นหรือเพดานสามารถค้นหาตำแหน่งของหุ่นยนต์จากนั้นคุณสามารถส่งตำแหน่งของหุ่นยนต์ได้

เซ็นเซอร์ออปติคัลการหมุนบางประเภทที่สามารถค้นหาทิศทางของสัญญาณออปติคัล (เช่น LED)

เสียง

คุณสามารถมีสัญญาณบีคอนสองสามรอบรอบเสียงเจี๊ยบอัลตราซาวด์ หากมีการซิงโครไนซ์ทั้งหมด (เช่นความล่าช้าคงที่ระหว่างพวกเขา) จากนั้นระบุตำแหน่งของพวกเขาคุณสามารถใช้เวลาในการคำนวณการบินเพื่อกำหนดตำแหน่งของหุ่นยนต์ หลายปีที่ผ่านมาฉันได้ทำงานกับอัลตร้าซาวด์ดิจิไทเซอร์ที่มีความแม่นยำประมาณ 1 มม. ในระยะทางประมาณ 1 เมตรดังนั้นจึงดูเหมือนในสนามเบสบอล ทั้งนี้ขึ้นอยู่กับรูปร่างของหุ่นยนต์ของคุณและการกำหนดค่าของการสะท้อนฝูงและสิ่งกีดขวางอาจหรือไม่อาจมีปัญหา คุณจะต้องทำการทดลอง แต่ความรู้สึกของฉันคือมีบีคอนเพียงพอที่คุณจะทำได้ดี

อัลตร้าซาวด์ Finders ช่วงในทุกหุ่นยนต์ (หมุน?) สามารถแมประยะทางกับหุ่นยนต์หรือกำแพงอื่นได้

หากเสียงเหล่านี้น่าสนใจฉันสามารถลองพัฒนาความคิดเหล่านั้นได้อีกเล็กน้อย


ฉันชอบวิธีอัลตร้าซาวด์ ฉันสงสัยว่าฉันสามารถส่งมันผ่านพื้นเพื่อให้สามารถเดินทางได้โดยไม่ถูกรบกวนหรือสะท้อนจากฝูง
Rocketmagnet

@Rocketmagnet: คุณสามารถส่งมันผ่านพื้น ปัญหาคือการมีเพศสัมพันธ์อย่างถูกต้องซึ่งมักจะทำกับเจล อาจจะยุ่งยากสำหรับการสมัครของคุณ หากปราศจากการมีเพศสัมพันธ์อย่างถูกต้องอัลตราซาวนด์ก็จะกระเด็นออกจากพื้นผิว บางทีล้อของหุ่นยนต์ของคุณอาจทำกลอุบายได้
Guy Sirton

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

@necromancer คุณควรจะสามารถซื้อเครื่องส่งสัญญาณ / ตัวรับสัญญาณเช่นดูdigikey.ca/product-detail/en/MA40S4R/490-7706-ND/4358146และอื่น ๆ ในประเภทเดียวกัน ...
Guy Sirton

@GuySirton ขอบคุณมาก ช่วยใหญ่!
ผู้วิเศษ

4

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

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

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

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


+1 แม้ว่าฉันจะอ่านคำตอบของคุณก่อนโพสต์ของฉันฉันยังโพสต์คำตอบเดียวกันเกี่ยวกับ fiducials ค่อนข้างมาก ... ฉันตำหนิการนอนไม่พอ
ThomasH

@ โธมัสขอบคุณ! ผมแปลกใจ OP ไม่ได้ลงมติใด ๆ ของคำตอบซึ่งทั้งหมดให้บางข้อมูลที่เป็นประโยชน์
James Waldby - jwpat7

4

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

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

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

สรุปแล้วมันเป็นความท้าทายที่ยาก แต่น่าสนใจมาก ถ้าเป็นการทำงานฉันคิดว่าคุณไม่สามารถบอกเราถึงวัตถุประสงค์ของโครงการได้ แต่มันฟังดูน่าสนใจ :)


ขอบคุณสำหรับคำตอบ. น่าผิดหวังมีน้อยมากที่ฉันสามารถเปิดเผยเกี่ยวกับโครงการที่ทำให้ยากมากที่จะถามคำถาม
Rocketmagnet

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

3

หากระบบ viconหมดคำถามคุณสามารถใช้ระบบกล้องปรับเทียบเพื่ออ่านเครื่องหมายที่อยู่ด้านบนของหุ่นยนต์

  1. วางกล้องที่ดีที่สุดที่คุณสามารถทำได้รอบ ๆ ฉันใช้เว็บแคมราคา $ 20 จาก amazon.com
  2. ใช้เครื่องมือสอบเทียบของ OpenCV เพื่อสอบเทียบกล้อง
  3. วางเครื่องหมายไว้ด้านบนของหุ่นยนต์
  4. กล้องรู้ตำแหน่งสัมพัทธ์ของพวกเขาในสภาพแวดล้อมดังนั้นโดยการวิเคราะห์ตำแหน่งเครื่องหมายพวกเขาสามารถส่งออกตำแหน่งและทิศทางของเครื่องหมายได้อย่างแม่นยำ

สิ่งที่นักวิจัยเหล่านี้ทำในบทความนี้ (ดูหน้า 16)

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


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