ROS สามารถทำงานกับ Raspberry Pi ได้หรือไม่?


28

ROSสามารถทำงานกับ Raspberry Pi ได้หรือไม่?

ROS ถูกลาออกเพื่อให้ทำงานบนเครือข่ายของเครื่องจักรด้วยเครื่องจักรที่ต่างกันแม้แต่แกนที่ต่างกันในเครื่องเดียวกันที่ทำงานต่างกัน หนึ่งในเครื่องเหล่านั้นสามารถเป็น Raspberry Pi ได้หรือไม่?

ฉันกำลังพิจารณาใช้ R-Pi เป็นEtherCAT master บนหุ่นยนต์มือถือสื่อสารกับพีซีหลักผ่าน WiFi โดยใช้ด็องเกิล

  • R-Pi สามารถเรียกใช้ ROS ได้หรือไม่?
  • R-Pi จะมีกำลังการประมวลผลเพียงพอที่จะใช้เซอร์โว 1kHz หรือไม่
  • เป็นไปได้ไหมที่จะใช้งาน servoing บนโฮสต์ผ่านการเชื่อมต่อ WiFi

คำตอบ:


16

ระบบปฏิบัติการ RaspberryPi อย่างเป็นทางการเป็นรุ่นของ Debian แต่ก็มีรุ่น ArchLinux บนเว็บไซต์ของพวกเขาด้วย

แม้ ROS จะอ้างว่าเป็น cross-platform แต่พวกเขาสนับสนุน Ubuntu อย่างเป็นทางการเท่านั้นในขณะนี้ อย่างไรก็ตามมีการติดตั้งทดลองสำหรับระบบปฏิบัติการต่อไปนี้ตามros.org :

  • OS X (Homebrew)
  • Fedora
  • Gentoo
  • OpenSUSE
  • Debian
  • Arch Linux
  • ของ windows

ในขณะที่ฉันไม่ได้มีประสบการณ์มือแรก ๆ (สอง Pis ของฉันจะประเจิดประเจ้อนั่งอยู่ในมุม) ros.org มีรวดเร็วและสกปรกคู่มือการตั้งค่า

มีคำแนะนำที่คล้ายกันในมีanswers.ros.org

ในกรณีที่คุณพบปัญหาฟอรัม RaspberryPiอาจช่วยได้เช่นกัน และแน่นอนว่า SE มีตัวเองเป็นPI.SE (ขอบคุณ @Jivings และ @ppumkin สำหรับการเตือนความจำ)

มิฉะนั้นเพียงแค่ google "ros raspberry pi" และคุณควรหาข้อมูลเพิ่มเติมมากมาย


IMO, Debian เป็นตัวเลือกที่ดีกว่าสำหรับ Raspberry Pi ฉันเชื่อว่าคุณจะพบว่าง่ายขึ้นและได้รับการสนับสนุนที่ดีขึ้นจากมุมมองของชุมชนเมื่อเทียบกับเคอร์เนลรสชาติอื่น ๆ
DogEatDog

3
@DogEatDog ฉันไม่เห็นด้วย Arch ยังได้รับการสนับสนุนเป็นอย่างดี นอกจากนี้ปลั๊กไร้ยางอายที่นี่; ปัญหา Raspberry Pi ใด ๆ จากคำถามนี้จะได้รับสุดซึ้งที่Raspberry Piรวมถึงฟอรัมอย่างเป็นทางการ
Jivings

@Jivings ฉันไม่อยากจะเชื่อเลยว่าฉันลืมตรวจสอบ RaspberryPi.SE ... แม้ว่าการค้นหาอย่างรวดเร็วสำหรับ ROS จะไม่ส่งผลใด ๆ ออกมาจนถึงตอนนี้ ;-)
ThomasH

@ThomasH - คุณคิดว่าคุณสามารถเพิ่มลิงก์สำหรับคำตอบเพื่อเข้ามาที่PI.SEเราได้รับคำตอบจำนวนมากที่นั่นและอาจมีวิธีแก้ปัญหาบางอย่างฉันไม่ต้องการแก้ไขคำตอบของคุณเนื่องจากมันถูกต้อง
Piotr Kula

เนื่องจาก ROS ทำงานภายใต้ BSD - ไม่รองรับจนกว่าจะมี FreeBSD รุ่นล่าสุดและนอกแหล่ง ROS แน่นอนว่าจะต้องทำงานกับรหัส BSD ใหม่ล่าสุดด้วย มันเป็นเรื่องที่ต้องทำด้วย hard float และการอัพเดทไดรเวอร์บางอย่างสำหรับ ARM เฉพาะที่ทำโดย BroadCom (PS - ไดรเวอร์วิดีโอจาก BCM กำลังเปิดโอเพนซอร์สดังนั้นควรจะได้รับการสนับสนุนเพิ่มเติมในอนาคต)
Piotr Kula

6

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

ฉันมองเข้าไปเล็กน้อยและนี่คือความก้าวหน้าของฉัน:

Raspberry Pi ไม่รองรับ Ubuntu เพราะ ARM ซีพียูใช้ชุดคำสั่งที่เก่ากว่า (ARM v6 ที่ฉันเชื่อ?) และทีมงาน Ubuntu ได้ลดการสนับสนุนลงในปี 2009

Beaglebone นั้นคล้ายกับ Raspberry Pi ในหลาย ๆ ทางและมีชุดคำสั่งที่ใหม่กว่าซึ่งมันจะรัน Ubuntu อย่างไรก็ตามการแจกจ่าย Ubuntu ARM ที่ 'ดีที่สุด' นั้นออกมาจากโครงการ Linaro และพวกเขาไม่ได้รับการสนับสนุนจาก Beaglebone ในการแก้ไขบางส่วน (ล่าสุดคือ Linaro 12.03) เพราะใช้โปรเซสเซอร์ TI OMAP 3 รุ่นเก่า (ยินดีต้อนรับสู่โลกมหัศจรรย์ของสมาร์ทโฟนที่รวดเร็ว ความคืบหน้า)

ขั้นตอนต่อไปของฉันคือดูที่ TI Pandaboard ซึ่งใช้โปรเซสเซอร์ OMAP 4 รุ่นใหม่ที่ได้รับการสนับสนุนในปัจจุบัน แต่ราคาใกล้เคียงกับช่วง $ 200

แต่ตอนนี้อูบุนตูเปิดตัวเป็นทางการสำหรับ Nexus 7 ด้วยราคา 200 ดอลล่าร์สหรัฐ Nexus 7 ทำให้คุณได้รับทุกสิ่งที่ราสเบอร์รี่ Pi ให้บริการพร้อมอีกมากมาย โปรดทราบว่าแม้จะมี Raspberry Pi เมื่อคุณเพิ่มที่ชาร์จอะแดปเตอร์ไร้สายการ์ดเก็บข้อมูลและสายเคเบิลที่คุณกำลังคืบคลานเข้ามาใกล้ 100 ดอลลาร์กว่า 35 ดอลลาร์ดังนั้น imho Nexus 7 จึงเป็นข้อตกลงที่ดีกว่ามาก

สุดท้ายอย่าพยายามส่งสัญญาณ 1 khz ออกจากระบบปฏิบัติการแบบเรียลไทม์ แนบไมโครคอนโทรลเลอร์ราคาถูกด้วยตัวคุณเองเช่น PJRC Teensy (Arduino โคลน) และปล่อยให้มันจัดการกับงานเรียลไทม์ที่เรียบง่ายสำหรับคุณ วิธีนี้คุณจะอุทิศซีพียูราคาไม่แพงให้กับงานที่ต้องคำนึงถึงเวลาอย่างง่ายเหล่านี้ ที่ 16 MHz พร้อมรองรับตัวจับเวลาหลายตัว AVR MCU ตัวเล็ก ๆ สามารถจัดการกับงานครึ่งโหลเช่นนี้ได้โดยไม่มีปัญหา


1
ใช้งานหุ่นยนต์ของคุณกับ Ubuntu บน Nexus 7 เป็นไอเดียที่ยอดเยี่ยม! โดยบังเอิญคุณรู้หรือไม่เกี่ยวกับโครงการหุ่นยนต์ที่ใช้ Nexus ด้วยวิธีนี้
บิตโจรสลัด

5

คำถามนี้ได้รับการตอบรับอย่างดีจาก ThomasHแต่นอกจากนี้ฉันแค่ต้องการแนะนำความเป็นไปได้ในการเชื่อมต่ออินเทอร์เน็ตแบบไร้สายไปยังแล็ปท็อป นั่นคือเพียงแค่เขียนโปรโตคอลการสื่อสารไร้สาย (wifi ?, บลูทู ธ ) ที่ดีและรวดเร็วสำหรับ quadcopter จากนั้นทำซีพียูที่หนักหน่วงบนแล็ปท็อปพร้อมส่งคำแนะนำและเซ็นเซอร์สอบถามไปยัง R-PI เราลองใช้งานหลายอย่างและตั้งค่าในการตั้งค่าที่คล้ายกันสำหรับหุ่นยนต์ขนาดเล็กทั้งหมดของเรา นอกจากนี้ยังมีการติดตั้ง Quadcopter แบบกรามล่างทุกอันในลักษณะนี้ มันทำให้ชีวิตง่ายขึ้นและอนุญาตให้คุณใช้ไลบรารี่ขนาดใหญ่โดยไม่ต้องเสียสละความเร็ว

เอาเป็นว่าที่นี่ quadcopter นั้นมีแนวโน้มว่าจะไม่ได้รับนอกแล็ปท็อปของคุณ


เพื่อความชัดเจนเมื่อคุณพูดว่า "สิ่งที่ CPU หนัก" ที่นี่คุณหมายถึงการควบคุมระดับสูงที่เกี่ยวข้องกับจำนวนมาก crunching เช่น SLAM หรือคอมพิวเตอร์วิสัยทัศน์ การควบคุมการบินระดับต่ำจะต้องเกิดขึ้นแบบเรียลไทม์และที่ความถี่สูงพอที่จะไม่สามารถทำได้ผ่านการเชื่อมต่อไร้สาย
yoos

การควบคุมการบินดังเช่นในเซอร์โวเอาท์พุทจะต้องถูกสร้างขึ้นโดยอุปกรณ์อิเล็กทรอนิกส์ในตัวใช่ แต่คำสั่งของเที่ยวบินเช่นความเร็วของโรเตอร์ที่ต้องการและสามารถสร้างได้โดยพีซี tethered (บลูทู ธ นั้นน่าทึ่งมากสำหรับเรื่องนี้) แต่ก็ไม่มีเหตุผลอะไรที่คุณจะสามารถวิ่งบน R-Pi ได้ หากเป็นเช่นนั้นใช่ "สิ่งที่ซีพียูหนัก" หมายถึงการวางแผนระดับสูงการประสานงานหลายยานพาหนะ SLAM, CV และอื่น ๆ
Josh Vander Hook


4

แหล่งเก็บข้อมูลทดลองเพิ่งบรรจุด้วยแพคเกจ ROS Groovy สำหรับ Raspbian (เสียงฮืด) คำแนะนำในการใช้งานสามารถพบได้ที่นี่:

http://www.ros.org/wiki/groovy/Installation/Raspbian

พื้นที่เก็บข้อมูลมี 350+ แพ็คเกจและแพ็คเกจ ROS หลักสามารถติดตั้งได้ภายในไม่กี่นาทีในการติดตั้ง Raspbian ใหม่


2

ฉันจะตรวจสอบโครงการrosserial โดยทั่วไปจะสร้างรหัสสำหรับ Arduino สำหรับการสื่อสารผ่านอนุกรมกับโหนด ROS บนคอมพิวเตอร์ ฉันพนันว่าคุณสามารถแปลงเป็น Raspberry Pi เพื่อให้คุณสามารถใช้โปรโตคอลอื่น ๆ ในการสื่อสารระหว่าง Pi และโฮสต์คอมพิวเตอร์


2

ใช่. แน่ใจ เราทำมานานแล้ว
ROS ไม่ใช่ "OS" และมันก็ไม่ใหญ่ มันเป็นแค่ "มิดเดิลแวร์" ซึ่งทำงานได้ดีใน "raspbian"
เราเพิ่งเขียนด้วย raspbian อย่างเป็นทางการ (ดังนั้นเราหวังว่ามันจะทำให้เราทำงานบนสภาพแวดล้อม "เสถียร") และรวบรวม ROS กับแหล่งที่มา นี่คือลิงค์ทีละขั้นตอน (สำหรับ Kinetic):
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20on%20the%20Raspberry%20Pi
คุณสามารถลอง ros_comm หรือเดสก์ท็อป
ฉันลอง ros_comm แล้วเพิ่มแพ็คเกจอื่นในภายหลัง


1
ทำไมคุณไม่ใช้ Ubuntu Mate และเพียงแค่ติดตั้ง ROS จากแพ็คเกจ?
FooTheBar

เนื่องจาก Ubuntu Mate ทำงานช้าบนชิป ARM บนราสเบอร์รี่ทั้ง Pi2 และ Pi3 Raspbian เป็น lite debian และทำงานได้ดีบนชิป ARM @FooBar
Nick Qian

แหล่งข้อมูลใดสำหรับสิ่งนั้น? ฉันไม่ได้ประสบปัญหาความเร็วใด ๆ
FooTheBar

ฉันไม่ได้ลองอีกแล้วหลังจากเลือกราสเบียน บางทีตอนนี้ Ubuntu Mate dist สำหรับราสเบอร์รี่ดีกว่าและใช้งานได้อย่างราบรื่น ฉันสนใจที่จะลองอีกครั้งเพราะใน Ubuntu การจัดการซอฟต์แวร์นั้นดี แต่แล้ว GPIO ล่ะ? บางทีอูบุนตูรุ่นเอกซิฟใหม่ยังมีการสนับสนุน GPIO, ฉันไม่ทราบ ....
นิคเควน

1
เหตุใดคุณจึงบอกว่าช้าถ้าคุณไม่ได้ทดสอบ
FooTheBar

1

มีโครงการที่เรียกว่าROSpberry Pi คุณสามารถตรวจสอบได้ และ บริษัท ในพาซาดีน่าที่ชื่อว่าAcroboticกำลังขายภาพ SD ของ ROSpberry ที่ติดตั้งล่วงหน้า


1

ในทางตรงกันข้ามกับสิ่งที่ได้รับการกล่าวในอื่น ๆ (ล้าสมัยค่อนข้าง) คำตอบที่ผมได้ประสบความสำเร็จพยายามทำงาน ROS ทั้งRaspbianหรืออูบุนตูกับราสเบอร์รี่ Pi 2 รุ่น B

หลังจากกลับไปกลับมาฉันจะใช้ Ubuntu: ในขณะที่ฉันไม่สามารถเข้าถึงโมดูลกล้อง Raspberry ด้วย Ubuntu ได้ฉันเห็นข้อดีที่สำคัญในการจัดการแพ็คเกจที่เหนือกว่าและเข้ากันได้กับ ROS คุณต้องการฟีเจอร์ใหม่ของ ROS บ้างไหม? เพียงแค่sudo aptitude installแพ็คเกจและคุณก็พร้อมแล้ว


0

ฉันมีประสบการณ์การติดตั้ง ROS บน Raspi โดยใช้Ubuntu Mateเป็นระบบปฏิบัติการ โดยพื้นฐานแล้วมันเป็นระบบปฏิบัติการอูบุนตูทั่วไป แต่ใช้อุปกรณ์แขน มันสามารถติดตั้ง ROS ผ่านไบนารีที่สร้างไว้ล่วงหน้า ไม่จำเป็นต้องกำหนดค่าใด ๆ มากกว่าแลปท็อป Ubuntu ทั่วไป ฉันรู้ว่ามี Pi รุ่นหนึ่งที่ไม่ได้รับการสนับสนุนอย่างเป็นทางการ (ฉันคิดว่ามันเป็น 3B + มันเป็นเวลานานแล้วตั้งแต่การติดตั้งขอบคุณ) แต่บางคนก็คิดว่าจะแก้ไขปัญหานี้ได้อย่างไร


เชื่อมโยงไปยังโพสต์ฟอรั่ม?
drerD

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

-1

คุณสามารถลองบทช่วยสอนนี้สำหรับ ROS ที่รันบน Raspberry Pi มันใช้งานได้แล้ว http://www.instructables.com/id/Raspberry-Pi-and-ROS-Robotic-Operating-System/


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

-2

ใช่,

ค้นหาดาวน์โหลดได้ที่นี่:

http://answers.ros.org/question/200504/raspbian-jessie-ros-indigo-download-image/

รวมถึงไดร์เวอร์ framebuffer สำหรับจอแสดงผล TFT C-Berry


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