มีแพลตฟอร์มซอฟต์แวร์ / ระบบปฏิบัติการหุ่นยนต์ที่ดีอะไรบ้าง [ปิด]


19

บริษัท ของฉันจะเริ่มโครงการหุ่นยนต์ใหม่เร็ว ๆ นี้และเรายังคงพยายามตัดสินใจว่าเราควรออกแบบและกำหนดรหัสแพลตฟอร์มซอฟต์แวร์หุ่นยนต์ตั้งแต่เริ่มต้นหรือหากมีโครงการที่ดีอยู่แล้ว

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

เราต้องการให้แพลตฟอร์มซอฟต์แวร์สามารถ:

  • บูรณาการส่วนประกอบฮาร์ดแวร์หุ่นยนต์ใหม่ได้อย่างง่ายดาย
  • มีเครื่องมือการประมวลผลข้อมูลและการสร้างภาพมากมายอยู่แล้ว
  • ใช้ประโยชน์จากฮาร์ดแวร์คอมพิวเตอร์อย่างมีประสิทธิภาพ

5
นี่ไม่ใช่คำถามสำรวจที่เป็นอัตนัยใช่หรือไม่ ซึ่งขัดต่อจิตวิญญาณของ StackExchange blog.stackoverflow.com/2010/09/good-subjective-bad-subjective
Chris Mansley

2
แต่เราสามารถสร้างคุณภาพของ StackExchange นี้ได้ เราควรตั้งค่าแบบอย่างที่มีคุณภาพสูงคำถามตั้งเป้าหมายที่สามารถตอบและเรียนรู้ได้
Chris Mansley

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

4
หากเราจะปล่อยให้จุดยืนนี้อย่างน้อยก็ควรทำให้วิกิชุมชนเป็นที่ยอมรับโดยชุมชนวิกิพีเดียคำตอบเดียวพร้อมคำอธิบายที่ดีที่สุดทั้งหมด นี่จะดีกว่าคำตอบมากมายที่อธิบายตัวเลือกต่าง ๆ และ / หรือให้คำอธิบาย / ความคิดเห็นที่แตกต่างกันของตัวเลือกเดียวกัน
Mark Booth

5
ฉันคิดว่าคำถามแบบสำรวจนั้นยอดเยี่ยมจริง ๆ เพราะพวกเขาสามารถประหยัดเวลาได้มากสำหรับใครบางคนที่จะมองหา Googling จะไม่พบแม้แต่ตัวเลือกยอดนิยมทั้งหมดในหลาย ๆ กรณี ฉันคิดว่าการทำให้เป็นคำตอบของ Community Wiki นั้นเป็นผลดี
Jon Watte

คำตอบ:


20

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


หมายเหตุ: แม้ว่า ROS สามารถทำงานกับระบบปฏิบัติการส่วนใหญ่ได้ แต่ก็ผ่านการทดสอบอย่างละเอียดว่าทำงานกับการแจกจ่าย Ubuntu ของ Linux
giogadi

1
นอกจากนี้ฉันคิดว่าหน้าบทนำ ROSทำหน้าที่ได้อย่างยอดเยี่ยมในการครอบคลุมพื้นที่หลักและอุดมคติของแพลตฟอร์ม ROS จากมุมมองของนักพัฒนาแพลตฟอร์ม ROS สามารถใช้เป็น wrapper "thin" รอบ ๆ ไลบรารีที่มีอยู่ (เช่นไดรเวอร์) เพื่อเข้าถึงระบบ ROS ที่ใหญ่ขึ้นอย่างรวดเร็ว
mjcarroll

5

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

ดังที่คำตอบก่อนหน้านี้ชี้ให้เห็น ROS ส่วนใหญ่จะใช้เป็นห้องสมุดการสื่อสารที่บาง ชั้นองค์ประกอบของร็อคมีความหนามากขึ้นเพื่อให้เครื่องมือที่จำเป็นในการปรับขนาดระบบที่ซับซ้อน

สิ่งที่คุณต้องเข้าใจคือ: ในยุคนี้ซอฟต์แวร์หุ่นยนต์โอเพนซอร์ซเพียงแหล่งเดียวที่ควรพิจารณาคือกรอบการทำงานอิสระ (OpenCV, PCL, OpenRave, Gazebo, ... ) แม้แต่ Willow Garage ก็เข้าใจสิ่งนี้ในที่สุด ดังนั้นจึงสามารถรวมเข้ากับปริมาณงานน้อยที่สุดในกรอบงานใด ๆ

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


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

5

Orocos

เป็นหนึ่งในกรอบโอเพ่นซอร์สที่เก่าแก่ที่สุดในวิทยาการหุ่นยนต์ภายใต้การพัฒนาตั้งแต่ปี 2544 และมีการใช้งานด้านอุตสาหกรรมและผลิตภัณฑ์ที่ใช้งานมาตั้งแต่ปี 2548 จุดสำคัญของ Orocos คือการให้เฟรมเวิร์กส่วนประกอบที่มีความสามารถแบบเรียลไทม์ เรียกว่าชุดเครื่องมือแบบเรียลไทม์ (RTT) ที่ใช้ใน C ++ - และเป็นอิสระมากที่สุดจากมิดเดิลแวร์การสื่อสารและระบบปฏิบัติการใด ๆ

ในฐานะ @BarretAmes กล่าวว่ามีการผสานรวมที่ช่วยให้การใช้งานระบบไฮบริดที่ Orocos และ Software Framework อื่นทำงานร่วมกัน


นอกจากนี้ยังมีวิธีในการจับคู่ Orocos กับกรอบอื่น ๆ ตัวอย่างเช่นการใช้ประโยชน์จาก ROS กับ Orocos
บาร์เร็ตต์อาเมส

1
FYI, Rock ใช้ Orocos / RTT เป็นส่วนประกอบในการใช้งาน - เพียงเพิ่มเครื่องมือและไลบรารีจำนวนมากรอบ ๆ ตัวมัน
sylvain.joyeux

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

3

แพลตฟอร์มที่ฉันชอบคือ ROS อย่างไรก็ตามมีคู่แข่งที่แข็งแกร่งอีกคนจาก ... กล้าพูดได้ ... Microsoft เรียกว่า Robotics Developer Studio (RDS) เริ่มการค้นหาของคุณที่นี่: http://www.microsoft.com/robotics/

มีแอปพลิเคชั่นที่น่าประทับใจมากมาย สำหรับฉันประโยชน์ที่ใหญ่ที่สุดคือการสนับสนุน Kinect ในตัวผ่านทาง Kinect SDK ของ Microsoft ในทางเทคนิคแล้ว ROS ที่ใช้จาก OpenNI นั้นมีความสามารถเหมือนกัน แต่ดูเหมือนว่าการรู้ SDK ที่ RDS ใช้นั้นเขียนโดย บริษัท เดียวกันที่ผลิตฮาร์ดแวร์


2

Player / Stageยังคงเป็นหนึ่งในโครงการหุ่นยนต์โอเพนซอร์สที่ได้รับความนิยมมากที่สุด เป็นเวลานานแล้วที่นักพัฒนาบางส่วนได้เริ่มดำเนินการเพื่อเริ่ม ROS แต่นั่นก็ไม่ได้เบี่ยงเบนความสนใจของผู้เล่น อันที่จริงทั้งสามองค์ประกอบหลัก Player (กรอบ) เวที (จำลอง 2D) และ Gazebo (จำลอง 3D), ได้รับการทำจะค่อนข้างเข้ากันได้กับ ROS


1

MOOS เป็น ROS อนาล็อกของอ๊อกซฟอร์ด http://www.robots.ox.ac.uk/~mobile/MOOS/wiki/pmwiki.phpมันใช้สำหรับแอพพลิเคชั่นทางเรือจำนวนมากตั้งแต่การกวาดล้างท่าเรือจนถึงการใช้พลังงานต่ำ UUVs จะรายงานในช่วงเวลาที่นับ ในเดือน


1

OpenRTM

OpenRTM-aist ได้รับการพัฒนาโดยสถาบันวิทยาศาสตร์และเทคโนโลยีอุตสาหกรรมขั้นสูงแห่งชาติของญี่ปุ่นซึ่งมีส่วนช่วยในการกำหนดมาตรฐาน RT-middleware

มันเป็นเฟรมเวิร์กที่ใช้ส่วนประกอบโอเพ่นซอร์สซึ่งให้ความสามารถแบบเรียลไทม์ นอกเหนือจากเฟรมเวิร์กแล้วเครื่องมือบางอย่างก็มีให้ใช้:

  • RTC Builder: เครื่องมือสำหรับการสร้างโครงกระดูก - รหัส มันเปิดตัวในสภาพแวดล้อมการพัฒนาคราส OpenRTM-aist รองรับเทมเพลต RTC ซึ่งเป็นเครื่องมือสร้างรหัสโครงกระดูกประเภทบรรทัดคำสั่ง
  • RT System Editor: toolchain ที่ใช้ Eclipse สำหรับการออกแบบส่วนประกอบและระบบที่ใช้คอมโพเนนต์
  • rtshell เป็นเครื่องมือบรรทัดคำสั่งที่ให้บริการดังต่อไปนี้
  • ดีบักเกอร์ RTC: เครื่องมือดีบั๊กสำหรับ RTC ดีบักเกอร์ RTC เป็นปลั๊กอิน Eclipse
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.