Monthly Archives: August 2023

Robot Operating System(ROS) Part 3

Robot Operating System(ROS) Part 3 ภาษาในการพัฒนาแอปพลิเคชั่นใน ROS ROS ถูกพัฒนาขึ้นโดยใช้ภาษาสองภาษาหลักคือ C++ และ Python ซึ่งเป็นภาษาที่นิยมใช้มากที่สุดในการพัฒนาแอปพลิเคชันหุ่นยนต์ สามารถใช้ไลบรารี roscpp เพื่อเขียนโค้ดภาษา C++ และไลบรารี rospy เพื่อเขียนโค้ดภาษา Python นอกจากนี้ยังมีไลบรารีบางส่วนที่ช่วยสร้างการเชื่อมต่อกับกับภาษาอื่น ๆ เช่น rosjava สำหรับภาษา Java และ roslibjs หรือ rosnodejs สำหรับภาษา JavaScript รูปที่ 1 communication & Language layerใน ROS[2] … Continue reading

Posted in Blog 101 | Leave a comment

ROS (Robot Operating System) Part 2

Robot Operating System(ROS) Part 2 เครื่องมือสื่อสาร การพัฒนาหุ่นยนต์ด้วย ROS เราสามารถแยกส่วนต่างๆของโปรแกรมควบคุมหุ่นยนต์ของเราให้เป็นโปรแกรมย่อยๆหลายโปรแกรมที่ทำงานร่วมกันได้ โดยโปรแกรมย่อยๆแต่ละตัวนี้จะเรียกว่า Node การทำให้โปรแกรมหรือ Node ย่อยๆสื่อสารกันได้อย่างถูกต้องจะต้องใช้เครื่องมือสื่อสารของ ROS สำหรับจัดการการสื่อสารระหว่างแต่ละ Node  3 ส่วน ดังนี้: Topics: ใช้สำหรับส่งสตรีมข้อมูล (Data Stream) ระหว่าง Node ตัวอย่างเช่น เรากำลังตรวจสอบอุณหภูมิของมอเตอร์บนหุ่นยนต์ Node ที่ตรวจสอบอุณหภูมิของมอเตอร์นี้จะส่งสตรีมข้อมูลพร้อมค่าอุณหภูมิเข้าไปในระบบ Node อื่นๆ ที่ทำงานอยู่ สามารถติดตาม (Subscribe) หัวข้อ(topic) นี้และรับข้อมูลไปใช้งานได้ Services: เป็นส่วนที่ช่วยให้เราสร้างการสื่อสารระหว่างแต่ละ Node … Continue reading

Posted in Blog 101 | Leave a comment

ROS (Robot Operating System) Part 1

Robot Operting System(ROS)            ROS เป็นแพลตฟอร์มที่ถูกพัฒนาขึ้นเพื่อการพัฒนาซอฟต์แวร์ในด้านหุ่นยนต์ ซึ่งไม่ใช่ระบบปฏิบัติการจริงๆ หรือเฟรมเวิร์ค แต่ทำงานเสมือนเป็นมิดเดิลแวร์ (Middleware) ที่ทำหน้าที่เชื่อมต่อและจัดการการสื่อสารระหว่างโปรแกรมในระบบที่ทำงานร่วมกันหลายๆโปรแกรม       ROS ถูกออกแบบให้เป็นสถาปัตยกรรมที่รองรับการพัฒนาแบบมีโมดูลและสามารถนำโค้ดที่พัฒนาขึ้นมาใช้ซ้ำได้ ซึ่งช่วยลดเวลาและความยุ่งยากในการพัฒนาซอฟต์แวร์หุ่นยนต์ได้ ระบบนี้มีความยืดหยุ่นและสามารถใช้ได้กับหุ่นยนต์หลากหลายประเภท เช่น หุ่นยนต์เคลื่อนที่, แขนหุ่นยนต์, โดรน, เรือ, เครื่องขายของ เป็นต้น       ROS มีเครื่องมือการสื่อสารหลายอย่างเช่น topics, services, actions เพื่อช่วยในการสื่อสารระหว่างโปรแกรม และมีไลบรารีที่นำไปใช้งานได้หลากหลาย เช่น … Continue reading

Posted in Blog 101 | Leave a comment