ขณะนี้เรากำลังออกแบบแขนหุ่นยนต์มือถือ + ที่ติดตั้งพร้อมองศาอิสระมากมายและเซ็นเซอร์
ฉันกำลังพิจารณาสถาปัตยกรรมในสองส่วน:
ชุดตัวควบคุมเรียลไทม์ (เช่น Raspeberry Pis ที่ใช้ RTOS เช่น Xenomai หรือไมโครคอนโทรลเลอร์โลหะเปลือย) เพื่อควบคุมมอเตอร์แขนและตัวเข้ารหัส ให้เราเรียกเครื่องเหล่านี้ RTx โดยมี x = 1,2,3 ... ขึ้นอยู่กับจำนวนของไมโครคอนโทรลเลอร์ ลูปควบคุมนี้จะทำงานที่ 200Hz
เครื่องวานิลลาลินุกซ์ที่ทรงพลังใช้ ROS เพื่อคำนวณ SLAM, mocap และรันตรรกะระดับสูง (ตัดสินใจงานของหุ่นยนต์และคำนวณตำแหน่งและความเร็วของมอเตอร์ที่ต้องการ) ลูปควบคุมนี้จะทำงานที่ 30Hz
ฉันรู้ว่ากรอบงานของฉันต้องปรับขนาดได้เพื่อรองรับมอเตอร์มากขึ้นเซ็นเซอร์มากขึ้นพีซีมากขึ้น (เช่นสำหรับ mocap ภายนอก)
ปัญหาหลักของฉันคือการตัดสินใจว่าจะให้ RTx สื่อสารกับ PC1 แตกต่างกันอย่างไร ฉันได้ดูเอกสารที่เกี่ยวข้องกับสถาปัตยกรรมของหุ่นยนต์ (เช่นHRP2 ) บ่อยครั้งที่พวกเขาอธิบายสถาปัตยกรรมการควบคุมระดับสูง แต่ฉันยังไม่พบข้อมูลเกี่ยวกับวิธีการสื่อสารระดับต่ำกับระดับสูงและในวิธีที่ปรับขนาดได้ ฉันพลาดอะไรไปหรือเปล่า?
ในการเชื่อมต่อเครื่อง RT ที่รวดเร็วทำให้มั่นใจในการควบคุมมอเตอร์ด้วย PC1 ฉันได้พิจารณา TCP / IP, CAN และ UART:
- TCP / IP: ไม่ได้กำหนดไว้ล่วงหน้า แต่ง่ายต่อการติดตั้ง ไม่ใช่ปัจจัยกำหนดเป็นปัญหาจริง (เพราะจะใช้เฉพาะที่ความเร็วต่ำ 30Hz ต่อไป)?
- CAN: ช้าเชื่อถือได้มากตั้งเป้าไปที่รถยนต์ (เคยเห็นมีตัวอย่างบางส่วนที่ใช้ CAN กับหุ่นยนต์ แต่มันดูแปลกใหม่)
- UART: ถ้าฉันมีเครื่อง RT เพียงตัวเดียวสำหรับการควบคุมมอเตอร์ฉันจะพิจารณา UART แต่ฉันเดาว่าพอร์ตนี้ไม่ค่อยมีขนาดที่ดีกับ RTx หลาย ๆ ตัว TCP / IP เป็นอะไรที่ไม่ไปเพราะคุณสมบัติที่ไม่ได้กำหนดหรือไม่ มันใช้งานง่ายมาก ...
ในขณะนี้ยังไม่มีวิธีแก้ปัญหาที่ชัดเจนสำหรับฉัน และเนื่องจากฉันไม่สามารถหาตัวอย่างหุ่นยนต์ที่จริงจังได้โดยใช้โซลูชันที่เชื่อถือได้และปรับขนาดได้โดยเฉพาะฉันไม่รู้สึกมั่นใจที่จะเลือก
ใครบ้างมีมุมมองที่ชัดเจนในประเด็นนี้หรือวรรณกรรมให้ชี้ไปที่? มีการใช้โซลูชันการสื่อสารทั่วไปหรือกระแสหลักในหุ่นยนต์หรือไม่?