ROS 2 vs ROS 1

Pawarit Sand
Super AI Engineer
Published in
2 min readFeb 1, 2021

ก่อนอื่นต้องกล่าวถึง ROS คืออะไร ?

Robot Operating System (ROS หรือ ros) เป็น open source frameworks สำหรับหุ่นยนต์ที่ใช้เชื่อมต่ออุปกรณ์หลายๆตัวได้ เพื่อลดความซับซ้อนในการสร้างและพัฒนาหุ่นยนต์ โดยการทำงานของระบบของ ROS จะสื่อสารกันผ่าน node เราเรียกว่า rosnode โดยจะคุยผ่านหัวข้อ rostopic อีกทั้งยังมี Package และ Tools มากมายสนับสนุนในการสร้าง Project ต่างๆ ไปจนถึง การ simulation

Tools แนะนำ http://wiki.ros.org/Tools

  1. 3D Visualization: RVIZ
  2. Live plotting: rqt_plot
  3. System visualization: rqt_graph

ความเป็นมาของ ROS

ในช่วงแรก ก่อนปี ค. ศ.2007 ที่มหาวิทยาลัยสแตนฟอร์ด Eric Berger และ Keenan Wyrobek นักศึกษาปริญญาเอกห้องปฏิบัติการหุ่นยนต์ภายใต้ Kenneth Sailsbury เป็นผู้นำโครงการหุ่นยนต์ พบปัญหาที่ว่าคนที่มีความรู้เฉพาะด้านมีข้อจำกัดหลายอย่างในการพัฒนาหุ่นยนต์ที่ต้องการความรู้ที่หลากหลายจึงได้เริ่มพัฒนาระบบพื้นฐานที่ทุกๆคนสามารถเริ่มต้นทำหุ่นยนต์ได้แม้ว่าจะมาจากศาสตร์ความรู้ที่แตกต่างกัน ในตอนแรกทั้งสองได้พัฒนาระบบเพื่อนำมาใช้กับหุ่น PR1 ต่อมาในปี ค. ศ.2007 Eric Berger และ Keenan Wyrobek พบกับ Scott Hassan ผู้ก่อตั้ง Willow Garage ศูนย์วิจัยหุ่นยนต์ที่มีวิสัยทัศน์กว้างไกล Hassan แบ่งปันวิสัยทัศน์ของ Berger และ Wyrobek เกี่ยวกับ “ Linux for robotics” และเชิญพวกเขามาทำงานที่ Willow Garage ในเดือนมกราคม ค.ศ. 2007 และมีการอัพโหลด ROS code ครั้งแรกบน SourceForge ในวันที่ 7 พฤศจิกายน ค.ศ. 2007

หลังจากนั้น Willow Garage เริ่มพัฒนาหุ่นยนต์ PR2 โดยพัฒนาจากต้นแบบ PR1 และ ROS หลังจากนั้นเริ่มมีการรวมกลุ่มกันจากสถาบันต่างๆกว่า 20 แห่ง เพื่อให้การสนับสนุนพัฒนาซอฟต์แวร์และแพ็กเกจที่ทำงานร่วมกับ ROS เพื่อสร้างสังคมซอฟต์แวร์ที่ใหญ่ขึ้น ต่อมาไม่นาน ROS รุ่นแรก (0.4 Mango Tango)ก็ได้ถือกำเนิดขึ้น และในเดือนสิงหาคม ปี ค.ศ.2008 เว็บไซต์ ROS.org เว็บไซต์ที่รวบรวมข้อมูลและ tutorials ต่างๆ ของ ROS ก็ได้เปิดใช้เป็นครั้งแรก จนในปี ค.ศ.2010 ROS 1.0 ก็ประกาศเปิดตัวและถูกพัฒนาต่อมาจนถึงรุ่นของ ROS2 “Ardent Apalone” ใน ปี ค.ศ.2017

ในปัจจุบัน ปี 2021 ถึงแม้ว่า ROS 2 จะได้รับการเปิดตัวมาหลายปีแล้วROS1 ก็ยังได้รับความนิยมและยังคงถูกพัฒนาต่อมาเรื่อยๆ

ข้อจำกัด ROS1

ข้อจำกัดสำคัญของ ROS คือ

  • ไม่รองรับหุ่นยนต์หลายตัวที่มี Master node เหมือนกัน ซึ่งในตอนแรก ROS ถูกพัฒนาด้วยหุ่นยนต์ PR จึงไม่ตอบโจทย์ต่อการควบคุมหุ่นยนต์ครั้งละมากๆ
  • ROS ไม่สามารถทำงานแบบ real-time operation ได้จริงๆ ไม่เหมาะต่องานที่ต้องให้ความสำคัญกับเวลามากๆ
  • ROS ต้องการทรัพยากรที่สูงในการคำนวณและการเชื่อมต่อ
  • การจัดการหุ่นยนต์ที่มีการเชื่อมต่อกันทำได้ยาก

ถึงแม้ว่า ROS จะใช้งานได้ดีในปัจจุบันแต่ก็ยังมีข้อจำกัดในหลายๆด้าน จึงได้มีการพัฒนาเพื่อแก้ไขจุดอ่อนนี้ กลายเป็น ROS2

ROS1 VS ROS2

สรุป

ในตอนนี้ ปี 2021 ถ้าจะลองศึกษา ROS คิดว่าลองเริ่มจาก ROS1 ก่อนสำหรับคนที่ไม่เคยรู้จักหรือไม่เคยใช้ ROS มาก่อนเพราะจะได้รู้จัก Package และ Tools ต่างๆที่สามารถทำโปรเจคอื่นๆได้ด้วยไม่จำเป็นว่าต้องทำหุ่นยนต์อย่างเดียว ซึ่งโปรเจคโดยทั่วไป ROS1 ตอบโจทย์ได้ดีแล้วและมีสังคมที่มีมานานกว่าการแก้ปัญหาต่างๆแทบจะมีคนเคยเจอมาแล้วครับสำหรับมือใหญ่เป็นเรื่องที่ง่ายกว่าที่จะกระโดไปเรียนรู้ROS2เลยถ้าไม่มีคนคอยแนะนำน่าจะงบนานมาก หลังจากนั้นค่อยๆ ขยับมาเรียนรู้ ROS2 แต่สำหรับคนที่เคยเล่น ROS1 มาแล้ว คงต้องลองมาเล่น ROS2 ดูครับ เนื่องจากข้อดีที่มีมากกว่าและยังสามารถเชื่อมกับ ROS1 ได ้ก็น่าจะไม่มีปัญหาสำหรับคนที่เริ่ม ROS1 ไปไกลแล้วครับ

อ้างอิง

--

--