คำถามติดแท็ก algorithm

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

2
RRT * รับประกันการเพิ่มประสิทธิภาพแบบไม่แสดงอาการสำหรับการวัดต้นทุนขั้นต่ำหรือไม่?
อัลกอริธึมการวางแผนการเคลื่อนไหวแบบสุ่มตัวอย่างที่ดีที่สุด (อธิบายไว้ในบทความนี้ ) แสดงให้เห็นว่าเส้นทางที่ไม่มีการชนกันของข้อมูลนั้นมาบรรจบกับเส้นทางที่ดีที่สุดเมื่อเวลาในการวางแผนเพิ่มขึ้น อย่างไรก็ตามเท่าที่ฉันเห็นการพิสูจน์และการทดลองในแง่ดีได้สันนิษฐานว่าการวัดต้นทุนเส้นทางคือระยะทางแบบยุคลิดในพื้นที่กำหนดค่า Can RRT *ยังให้ผลผลิตคุณสมบัติ optimality สำหรับตัวชี้วัดคุณภาพเส้นทางอื่น ๆ เช่นการเพิ่มการกวาดล้างขั้นต่ำจากอุปสรรคตลอดเส้นทางหรือไม่RRT* * * *RRT∗\text{RRT}^*RRT* * * *RRT∗\text{RRT}^* ในการกำหนดการกวาดล้างขั้นต่ำ: เพื่อความง่ายเราสามารถพิจารณาหุ่นยนต์แบบจุดเคลื่อนที่ในอวกาศยูคลิด สำหรับการกำหนดค่าใด ๆที่อยู่ในพื้นที่กำหนดค่าที่ไม่มีการชนกันของข้อมูลให้กำหนดฟังก์ชั่นd ( q )ซึ่งจะส่งคืนระยะห่างระหว่างหุ่นยนต์และอุปสรรค C ที่ใกล้ที่สุด สำหรับเส้นทางσ , กวาดล้างขั้นต่ำmin_clear ( σ )เป็นค่าต่ำสุดของd ( Q )สำหรับทุกQ ∈ σ ในการวางแผนการเคลื่อนไหวที่ดีที่สุดเราอาจต้องการเพิ่มระยะห่างขั้นต่ำจากสิ่งกีดขวางตามเส้นทาง นี่จะหมายถึงการกำหนดตัวชี้วัดต้นทุนQqqd( q)d(q)d(q)σσ\sigmamin_clear ( σ)min_clear(σ)\text{min_clear}(\sigma)d( q)d(q)d(q)Q∈ σq∈σq \in \sigmaซึ่ง cเพิ่มขึ้นเมื่อระยะห่างขั้นต่ำลดลง หนึ่งฟังก์ชั่นที่เรียบง่ายจะเป็นค( σ …

2
เป็นวิธีที่มีประสิทธิภาพในการเยี่ยมชมทุกพื้นที่ที่เข้าถึงได้ในตารางที่มีอุปสรรคที่ไม่รู้จักคืออะไร?
ฉันกำลังพยายามสร้างแผนที่ของอุปสรรคในพื้นที่กริด 2D แบบหยาบโดยใช้การสำรวจ ฉันค้นหาสิ่งกีดขวางโดยพยายามย้ายจากพื้นที่หนึ่งไปยังพื้นที่ที่อยู่ติดกันและหากสิ่งนั้นล้มเหลวก็จะมีสิ่งกีดขวางในพื้นที่ปลายทาง (ไม่มีแนวคิดของเซ็นเซอร์ระยะไกลในปัญหานี้) ตัวอย่างตาราง http://www.eriding.net/resources/general/prim_frmwrks/images/asses/asses_y3_5d_3.gif (ตัวอย่าง) กระบวนการนี้เสร็จสมบูรณ์เมื่อมีการเยี่ยมชมช่องสี่เหลี่ยมที่เข้าถึงได้ทั้งหมด กล่าวอีกนัยหนึ่งช่องว่างบางอย่างอาจไม่สามารถเข้าถึงได้อย่างสมบูรณ์แม้ว่าจะไม่มีสิ่งกีดขวางเพราะล้อมรอบ คาดว่าจะเป็นแบบนี้ ในกรณีที่ง่ายที่สุดฉันสามารถใช้อัลกอริทึม DFSแต่ฉันกังวลว่าการดำเนินการนี้จะใช้เวลานานเกินกว่าจะเสร็จสมบูรณ์ - หุ่นยนต์จะใช้เวลาย้อนรอยมากกว่าการสำรวจดินแดนใหม่ ฉันคาดว่าสิ่งนี้จะเป็นปัญหาโดยเฉพาะอย่างยิ่งเมื่อพยายามเข้าถึงสแควร์สที่ไม่สามารถเข้าถึงได้เพราะหุ่นยนต์จะหมดทุกตัวเลือก ในวิธีการที่ซับซ้อนมากขึ้นเป็นสิ่งที่เหมาะสมในการทำดูเหมือนว่าจะมีการสลายตัวของเซลล์ Boustrophedon อย่างไรก็ตามฉันไม่สามารถหาคำอธิบายที่ดีเกี่ยวกับอัลกอริธึมการสลายตัวของเซลล์ Boustrophedon (นั่นคือคำอธิบายที่สมบูรณ์ในคำง่าย ๆ ) มีทรัพยากรเช่นเป็นคนนี้ , หรือนี้เพิ่มเติมทั่วไปเกี่ยวกับการสลายตัวของเซลล์ในแนวตั้งพวกเขาไม่ได้มีความเข้าใจมากในขั้นตอนวิธีการระดับสูงหรือระดับต่ำโครงสร้างข้อมูลที่เกี่ยวข้อง แต่ ฉันจะเยี่ยมชม (แผนที่) กริดนี้อย่างมีประสิทธิภาพได้อย่างไร ถ้ามีฉันต้องการอัลกอริทึมที่ทำงานได้ดีกว่าเทียบกับจำนวนรวมของกริดสแควร์ ( เช่นดีกว่าสำหรับกริด )O(n2)O(n2)O(n^2)O ( n 4 ) n ∗ nO(n4)O(n4)O(n^4)n∗nn∗nn*n

2
นำทาง Quadrotor สู่เป้าหมาย
ฉันกำลังทำงานกับควอดโรเตอร์ ฉันรู้ตำแหน่งของมัน -ที่ซึ่งฉันต้องการไป - ตำแหน่งเป้าหมายและจากนั้นฉันคำนวณเวกเตอร์ - เวกเตอร์หน่วยที่จะพาฉันไปยังเป้าหมายของฉัน:aaabbbccc c = b - a c = normalize(c) เนื่องจาก quadrotor สามารถเคลื่อนที่ในทิศทางใดก็ได้โดยไม่มีการหมุนสิ่งที่ฉันพยายามทำคือ หมุนโดยมุมเอียงของหุ่นยนต์ccc แยกออกเป็นองค์ประกอบx,yx,yx, y ส่งพวกเขาไปยังหุ่นยนต์เป็นมุมม้วนและระดับเสียง ปัญหาคือว่าถ้าหันเหเป็น 0 °± 5 แล้วก็ใช้งานได้ แต่ถ้าหันไปใกล้ +90 หรือ -90 มันจะล้มเหลวและหันไปทิศทางที่ผิด คำถามของฉันคือฉันขาดอะไรบางอย่างชัดเจนที่นี่?
9 quadcopter  uav  navigation  slam  kinect  computer-vision  algorithm  c++  ransac  mobile-robot  arduino  microcontroller  machine-learning  simulator  rcservo  arduino  software  wifi  c  software  simulator  children  multi-agent  ros  roomba  irobot-create  slam  kalman-filter  control  wiring  routing  motion  kinect  motor  electronics  power  mobile-robot  design  nxt  programming-languages  mindstorms  algorithm  not-exactly-c  nxt  programming-languages  mindstorms  not-exactly-c  raspberry-pi  operating-systems  mobile-robot  robotic-arm  sensors  kinect  nxt  programming-languages  mindstorms  sensors  circuit  motion-planning  algorithm  rrt  theory  design  electronics  accelerometer  calibration  arduino  sensors  accelerometer 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.