Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore zuo9999

zuo9999

Published by 20698, 2019-09-11 02:39:56

Description: zuo9999

Search

Read the Text Version

โครงงานทางวศิ วกรรม เร่ือง ระบบห่นุ ยนต์หลายตวั สาหรับการควบคุมวัตถุ Multi-Robot System for Object Manipulation โดย 5031061821 นายรุ่งโรจน์ จินตเมธาสวัสด์ิ อาจารย์ที่ปรึกษาโครงงาน ผู้ช่วยศาสตราจารย์ ดร.อรรถวทิ ย์ สุดแสง อาจารย์ ดร.นัทที นิภานันท์ รายงานนีเ้ป็นสว่ นหนงึ่ ของการศกึ ษาวิชา โครงงานวิศวกรรมคอมพวิ เตอร์ หลกั สตู รปริญญาวศิ วกรรมศาสตรบณั ฑิต สาขาวศิ วกรรมคอมพวิ เตอร์ ภาควชิ าวิศวกรรมคอมพวิ เตอร์ คณะวศิ วกรรมศาสตร์ จฬุ าลงกรณ์มหาวิทยาลยั ปี การศกึ ษา 2553

บทคัดย่อ ปัจจบุ นั หนุ่ ยนต์ได้เข้ามามีบทบาทตอ่ ชีวิตเรามากขนึ ้ อยา่ งไรก็ดี หนุ่ ยนต์ที่มีประสทิ ธิภาพมากขนึ ้ ก็ ยอ่ มมีราคาแพงขนึ ้ แตก่ ็ไมไ่ ด้ทางานเร็วขนึ ้ มากนกั และถ้าหนุ่ ยนต์ตวั นนั้ เกิดขดั ข้อง งานที่เหลือท่ีหนุ่ ยนตย์ งั ทา ค้างอยู่ ก็จะดาเนินตอ่ ไปไมไ่ ด้เลย ผ้พู ฒั นาพบวา่ ปัญหาเรื่องคา่ ใช้จา่ ย เวลาในการทางาน และความทนทาน ตอ่ ความผิดพลาด เป็ นปัญหาท่ีสาคญั และยงั คงเกิดขนึ ้ กบั ระบบหนุ่ ยนต์ในปัจจบุ นั ดงั นนั้ ผ้พู ฒั นาจงึ ได้ศกึ ษา และพฒั นาระบบหนุ่ ยนต์ ที่สามารถแก้ไขปัญหาเหลา่ นีไ้ ด้ ระบบหนุ่ ยนต์ที่พฒั นาขนึ ้ ประกอบด้วยหนุ่ ยนตม์ ากกวา่ 1 ตวั และทกุ ตวั ต้องเป็นหนุ่ ยนตแ์ บบเดียวกนั (Homogeneous) โดยผ้พู ฒั นาจะใช้หนุ่ ยนตย์ ี่ห้อ Surveyor SRV-1 การทางานของระบบหนุ่ ยนตน์ ี ้ คือ หนุ่ ยนตภ์ ายในกลมุ่ ต้องทาหน้าท่ีเคล่ือนย้ายวตั ถุ 3 ชิน้ คือ ทรงกระบอกสีนา้ เงิน ทรงส่ีเหลี่ยมสีเขียว และ ปรึซมึ หน้าตดั รูปสามเหล่ียมสีแดง ไปยงั เป้ าหมายที่กาหนดไว้ให้ นอกจากนี ้ หนุ่ ยนต์ภายในกลมุ่ จะทางาน ภายในสนามพืน้ สีขาว และต้องตดิ ตอ่ ส่ือสารกนั ภายในเครือขา่ ยไร้สาย (Wireless LAN) เดียวกนั จากการทดสอบระบบหนุ่ ยนตห์ ลายตวั ท่ีพฒั นาขนึ ้ ผ้พู ฒั นาพบวา่ ระบบหนุ่ ยนต์หลายตวั สามารถ แก้ปัญหาได้ในเร่ืองของคา่ ใช้จา่ ย เวลาในการทางาน รวมทงั้ ความทนทานตอ่ ความผิดพลาด อยา่ งไรก็ตาม ความถกู ต้องและประสิทธิภาพของการทางาน ยงั ไมเ่ ป็นที่นา่ พอใจมากนกั เนื่องจากมีปัญหาทางกายภาพที่ เกิดจากตวั หนุ่ ยนต์เอง และปัญหาที่เกิดจากสภาพแวดล้อมภายนอกของห่นุ ยนต์ โครงงานวิศวกรรมคอมพวิ เตอร์ ปี การศกึ ษา 2553 ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวศิ วกรรมศาสตร์ จฬุ าลงกรณ์มหาวทิ ยาลยั ลายมือชื่อนิสิต___________________________________ ลายมือช่ืออาจารย์ที่ปรึกษาโครงงาน___________________________________ ลายมือชื่ออาจารย์ที่ปรึกษาโครงงาน___________________________________

Abstract Nowadays, robots deal with people’s daily life more. However, spending much more money to invent a new robot does not always result in a smarter robot. Moreover, single robot can fail easily, and if it fails, the remaining tasks will be ignored. We noticed that budget, execution time, and fault tolerance are the critical problems, and they still occur in many robot systems. Therefore, we would like to study for implementing a new robot system, where they could provide solutions for these problems. The developed robot system consists of more than one homogeneous Surveyor SRV-1 robot. The multi-robot system must bring 3 kinds of objects, a blue cylinder, a green cube, and a red triangle prism, to the specified destination. Besides, robots have to work in a white field, and communicate among themselves in group via the same wireless local area network (Wireless LAN). The experimental results show us that multi-robot system can solve budget, execution time, and fault tolerance problems. However, the accuracy and efficiency are not considered to be good enough because of the physical problems of robots themselves and the harsh environment outside the robots. Senior Project, Academic Year 2010 Department of Computer Engineering Faculty of Engineering, Chulalongkorn University Student’s Signature___________________________________ Project Advisor’s Signature___________________________________ Project Advisor’s Signature___________________________________

กติ ตกิ รรมประกาศ ในการจดั ทาโครงงานครัง้ นี ้ ผ้พู ฒั นาได้รับความอนเุ คราะห์จาก ผศ.ดร.อรรถวิทย์ สดุ แสง และ อ.ดร.นทั ที นภิ านนั ท์ ในการให้คาแนะนาท่ีเป็นประโยชน์ตอ่ การทาโครงงาน การนาเสนอโครงงาน รวมทงั้ การตอ่ ยอดโครงงานไปสงู่ านวจิ ยั อ่ืนๆ ขอขอบคณุ สานกั งานพฒั นาวทิ ยาศาสตร์และเทคโนโลยีแหง่ ชาติ ท่ีได้มอบทนุ วิจยั ระดบั ปริญญาตรี ให้แกผ่ ้พู ฒั นาตลอดระยะเวลาการศกึ ษา ขอขอบคณุ ภาควิชาวศิ วกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ จฬุ าลงกรณ์มหาวิทยาลยั ท่ีได้ ประสทิ ธ์ิประสาทวชิ าความรู้ตลอดระยะเวลาการศกึ ษา ขอขอบคณุ พ่ีๆ จากห้องวิจยั ISL2 ท่ีได้เอือ้ เฟื อ้ สถานที่ และอปุ กรณ์ตา่ งๆ ท่ีเก่ียวข้องกบั โครงงาน อีกทงั้ ยงั ให้คาแนะนาท่ีเป็นประโยชน์ และวธิ ีการแก้ไขปัญหาที่เกิดขนึ ้ ในระหวา่ งการทาโครงงาน สดุ ท้ายนี ้ขอขอบคณุ บิดา มารดา ท่ีคอยให้กาลงั ใจเสมอมา และคอยจดั หาอปุ กรณ์ในการทาโครงงาน ให้อยา่ งครบถ้วน รุ่งโรจน์ จนิ ตเมธาสวสั ด์ิ

สารบัญ บทท่ี 1 บทนา 1 1.1 ความเป็ นมาของโครงการ 1 1.2 วตั ถปุ ระสงค์ 1 1.3 ขอบเขตของโครงงาน 2 1.4 แนวทางการดาเนินงาน 2 1.5 ขนั้ ตอนและระยะเวลาการดาเนินงาน 4 1.6 ประโยชน์ที่คาดวา่ จะได้รับ 4 บทท่ี 2 ทฤษฎีและหลักการท่เี ก่ียวข้อง 5 2.1 งานวจิ ยั เบือ้ งต้น 5 2.1.1 Heterogeneous Multi-Robot Cooperation 5 2.1.2 Cooperative Localization and Control for Multi-Robot Manipulation 5 2.1.3 Multi-Robot Manipulation via Caging in Environments with Obstacle 6 2.1.4 Abstractions and Algorithms for Cooperative Multiple Robot Planar Manipulation 6 2.1.5 Behavior-Based Multi-Robot Collaboration for Autonomous Construction 6 7 2.2 การฉายภาพแบบทศั นมิติ (Perspective Projection) 9 2.3 การทาความตกลงแบบประชามติ (Consensus Agreement) 10 2.4 การตรวจหาวตั ถุ (Object Detection) 10 11 2.4.1 การแบง่ แยกสี (Color Segmentation) 14 2.4.2 การนบั จานวนองค์ประกอบในรูปภาพ (Connected Component Counting) 2.5 การหลีกเล่ียงการชนกนั ของหนุ่ ยนต์

2.6 การควบคมุ หนุ่ ยนต์ Surveyor SRV-1 (Controlling Surveyor SRV-1 Robot) 15 2.7 การตงั้ คา่ IP และการแบง่ Subnet (IP Assignment and Subnetting) 18 บทท่ี 3 รายละเอียดของการพฒั นา 20 3.1 เคร่ืองมือท่ีใช้ในการพฒั นา 20 3.1.1 ฮาร์ดแวร์ (Hardware) 20 3.1.2 ซอฟตแ์ วร์ (Software) 20 3.1.3 อปุ กรณ์เสริมอ่ืนๆ 20 20 3.2 Functional Specification 21 3.2.1 Functional Specification ของ Console 21 3.2.2 Functional Specification ของโปรแกรมผ้ใู ช้ 21 3.2.3 Functional Specification ของกลมุ่ หนุ่ ยนต์ 22 28 3.3 ขนั้ ตอนการทางานของระบบหนุ่ ยนต์หลายตวั 29 3.4 โครงสร้างของซอฟต์แวร์ 30 31 3.4.1 โครงสร้างซอฟตแ์ วร์ของ Console 31 3.4.2 โครงสร้างซอฟตแ์ วร์ของโปรแกรมผ้ใู ช้ 3.4.3 โครงสร้างซอฟต์แวร์ของกลมุ่ หนุ่ ยนต์ 32 3.5 ขอบเขตละข้อจากดั ของระบบที่พฒั นา 33 บทท่ี 4 ผลการทดสอบระบบ 34 35 4.1 การทดสอบความแมน่ ยาในการจบั วตั ถุ 36 4.2 การทดสอบความสามารถในการป้ องกนั การชน 39 4.3 การทดสอบความทนทานตอ่ ความผิดพลาด โดยทดลองปิ ดการทางานหนุ่ ยนต์ 1 ตวั 4.4 การทดสอบความถกู ต้องโดยรวม และเวลาที่ใช้ 4.5 วเิ คราะห์ผลการทดสอบ

บทท่ี 5 ปัญหาและอุปสรรค 41 5.1 ขอบเขตของโครงงานไมช่ ดั เจน 41 5.2 ผ้พู ฒั นาขาดความรู้ในการเขียนโปรแกรมบนตวั หนุ่ ยนต์ 41 5.3 ฟังก์ชนั การประมวลผลภาพในหนุ่ ยนต์ ไมส่ ามารถทางานได้ 42 ในกรณีที่มีส่งิ รบกวนในภาพมาก 42 5.4 แสงของวตั ถเุ ปล่ียนไป เม่ือห่นุ ยนต์เคลื่อนที่เข้าใกล้วตั ถุ 43 5.5 ไมม่ ีวิธีการหลบหลีกหนุ่ ยนต์ตวั อื่นท่ีดี 43 5.6 ลกั ษณะทางกายภาพของหนุ่ ยนตแ์ ตล่ ะตวั ไมเ่ หมือนกนั 44 5.7 ระบบเครือข่ายท่ีใช้มีความล่าช้า 45 บทท่ี 6 แนวทางการพัฒนาต่อในอนาคต 46 บทท่ี 7 ข้อสรุปและข้อเสนอแนะ 47 บทท่ี 8 เอกสารอ้างอิง 49 บทท่ี 9 ภาคผนวก 49 9.1 วธิ ีการตงั้ คา่ ระบบเครือขา่ ยไร้สาย 49 9.1.1 การตงั้ คา่ IP ให้กบั เครื่องคอมพวิ เตอร์ 50 9.1.2 การตงั้ คา่ IP ให้กบั หนุ่ ยนต์ Surveyor SRV-1 51 9.1.3 การตงั้ คา่ IP ของหนุ่ ยนต์ ให้กบั Console 52 9.2 วิธีการใช้งานระบบเบือ้ งต้น

สารบัญรูป รูปท่ี 1 Gantt chart แสดงขนั้ ตอนและระยะเวลาการดาเนนิ งาน 4 รูปท่ี 2 การเกิดภาพในกล้องรูเขม็ 7 รูปท่ี 3 (ซ้าย) เมื่อหนุ่ ยนต์อยไู่ กลวตั ถุ วตั ถจุ ะมีสีสด (ขวา) เมื่อหนุ่ ยนต์อยใู่ กล้วตั ถุ วตั ถจุ ะมีสีซีดลง 8 รูปท่ี 4 (ซ้าย) การทาความตกลงแบบประชามติ (ขวา) แสดงกรณีที่มีห่นุ ยนต์ภายในกลมุ่ เกิดขดั ข้อง 9 รูปท่ี 5 ขนั้ ตอนการตรวจหาวตั ถุ 10 รูปท่ี 6 (ซ้าย) ปริภมู สิ ี RGB (ขวา) ปริภมู สิ ี HSV 10 รูปท่ี 7 (ซ้าย) ภาพวตั ถสุ ีแดง (ขวา) ภาพวตั ถหุ ลงั จากผา่ นกระบวนการแบง่ แยกสี ซงึ่ เป็ นภาพขาวดา 11 รูปท่ี 8 ภาพขนาด 13 x 13 pixels ท่ีมี 2 องค์ประกอบ 12 รูปท่ี 9 แถบสีเขียว-นา้ เงิน ที่ติดตงั้ บนตวั หนุ่ ยนต์ 13 รูปท่ี 10 (บนซ้าย) สถานการณ์ท่ีหนุ่ ยนตส์ ามารถป้ องกนั การชนได้ (ลา่ งซ้าย) สถานการณ์ที่เกิดจากมมุ กล้องของหนุ่ ยนต์ไมก่ ว้างพอ 14 รูปท่ี 11 (ลา่ งขวา) สถานการณ์ที่กลมุ่ ของหนุ่ ยนตเ์ กิดการติดตาย 15 โปรแกรม TeraTerm ท่ีรองรับโปรโตคอล XMODEM

รูปท่ี 12 (บน) Console ที่พฒั นาขนึ ้ เพ่ือใช้สงั่ งานพืน้ ฐานให้กบั ห่นุ ยนต์ รูปท่ี 13 (ลา่ ง) Console ท่ีพฒั นาขนึ ้ เพ่ือใช้สาหรับโหลดโปรแกรมลงบนหนว่ ยความจาแฟลช 16-17 รูปท่ี 14 รูปท่ี 15 การออกแบบระบบ เพื่อให้หนุ่ ยนต์แตล่ ะตวั สามารถประสานงานกนั ได้ 19 รูปท่ี 16 รูปท่ี 17 ผงั การทางานแสดงขนั้ ตอนการทางานที่ 1 และ 2 23 รูปท่ี 18 ผงั การทางานแสดงขนั้ ตอนการทางานที่ 3 24 รูปท่ี 19 รูปท่ี 20 ผงั การทางานแสดงขนั้ ตอนการทางานที่ 4 25 รูปท่ี 21 รูปท่ี 22 ผงั การทางานแสดงขนั้ ตอนการทางานที่ 5, 6 และ 7 26 รูปท่ี 23 รูปท่ี 24 ผงั การทางานแสดงขนั้ ตอนการตรวจสอบความผดิ พลาด 27 รูปท่ี 25 ของหนุ่ ยนต์ในระบบที่จะทาให้เกิดกรณีพเิ ศษขนึ ้ มา รูปท่ี 26 รูปท่ี 27 โครงสร้างของซอฟต์แวร์ของ Console, โปรแกรมผ้ใู ช้ และกลมุ่ หนุ่ ยนต์ 28 รูปแสดงการบอกพิกดั ของวตั ถุ และหนุ่ ยนตใ์ นสนาม 32 ความลา่ ช้าในการสง่ั งานระบบหนุ่ ยนต์หลายตวั เทียบกบั หนุ่ ยนต์ตวั เดียว 44 วิธีการตงั้ คา่ IP ใค้กบั เคร่ืองคอมพวิ เตอร์ 49 การตงั้ คา่ Network ให้กบั หนุ่ ยนต์ Surveyor SRV-1 50 การตงั้ คา่ IP ให้กบั ห่นุ ยนต์ Surveyor SRV-1 51 หน้าตาเร่ิมต้นของโปรแกรมผ้ใู ช้ 52 หน้าตาเร่ิมต้นของ Console 52 การเปลี่ยนแปลงในฝั่ง Console (บน) และโปรแกรมผ้ใู ช้ (ลา่ ง) 53

รูปท่ี 28 Output แสดงคา่ สีของจดุ ภาพท่ีเก็บมา 54 รูปท่ี 29 54 รูปท่ี 30 Output แสดงคา่ สีของวตั ถทุ ่ีคานวณได้ 55 55-56 รูปท่ี 31 สว่ นแสดงภาพที่สามารถเปล่ียนรูปแบบการแสดงผล 56 ไปเป็นแบบจานวนองคป์ ระกอบ (ซ้าย) หรือตาแหนง่ ของวตั ถุ (ขวา) ได้ รูปท่ี 32 สถานะการทางานของระบบหนุ่ ยนต์จะถกู รายงาน ทงั้ ฝั่ง Console (ซ้าย) และฝ่ังโปรแกรมผ้ใู ช้ (ขวา) แสดงหน้าตา่ งของ Console ที่ใช้สาหรับการเขียนโปรแกรม ลงบนหนว่ ยความจาแฟลซของหนุ่ ยนต์

สารบัญตาราง ตารางท่ี 1 ผลการทดสอบความแมน่ ยาในการจบั วตั ถุ 33 ตารางท่ี 2 ผลการทดสอบความสามารถในการป้ องกนั การชน 34 ตารางท่ี 3 ผลการทดสอบความทนทานตอ่ ความผิดพลาด 35 ตารางท่ี 4 ผลการทดสอบความถกู ต้องโดยรวม และเวลาท่ีใช้ 36-38 ตารางท่ี 5 ตารางการเปรียบเทียบความถกู ต้องและเวลาในการทางาน ของจานวนหนุ่ ยนต์ในกรณีตา่ งๆ 39

1 บทท่ี 1 บทนา 1.1ความเป็ นมาของโครงการ ทกุ วนั นี ้ หนุ่ ยนต์ได้เข้ามามีบทบาทในการดารงชีวติ ของมนษุ ย์มากขนึ ้ ดงั จะเห็นได้จากการนาหนุ่ ยนต์ มาใช้งานในหลายด้านด้วยกนั เชน่ ในงานการผลติ แบบอตุ สาหกรรม งานชว่ ยเหลือผ้ปู ระสบภยั งาน ลาดตระเวนพืน้ ที่เสี่ยงภยั ในภตั ตาคาร หรือแม้กระทงั่ นาหนุ่ ยนต์มาใช้ในบ้าน เพื่อให้ทางานบ้านเล็กๆ น้อยๆ อีกด้วย อยา่ งไรก็ตาม หากต้องการให้หนุ่ ยนตม์ ีความสามารถหลากหลาย ราคาของตวั หนุ่ ยนต์เองก็ย่อมแพง ขนึ ้ ไปด้วย เพราะการประดิษฐ์หนุ่ ยนต์แบบนี ้ อาจจาเป็ นต้องใช้อปุ กรณ์ชนิดพิเศษ และเมื่อหนุ่ ยนตเ์ กิดความ ผดิ พลาด งานท่ีเหลือที่กาลงั ดาเนินอยนู่ นั้ ก็จะหยดุ ชะงกั ทนั ที ในทางกลบั กนั หากกระจายงานให้ห่นุ ยนตห์ ลายๆ ตวั โดยท่ีแตล่ ะตวั รับผดิ ชอบงานเพียงบางสว่ นตาม ความสามารถของหนุ่ ยนต์ตวั นนั้ โอกาสท่ีงานจะสาเร็จลลุ ว่ งไปได้ก็ยอ่ มมีมากขนึ ้ เพราะหากมีหนุ่ ยนต์ตวั ใดตวั หนง่ึ เกิดขดั ข้อง หนุ่ ยนต์ตวั อ่ืนก็ยงั สามารถทางานที่เหลือตอ่ ไปได้ และเนื่องจากหนุ่ ยนต์แตล่ ะตวั ถกู ออกแบบ มาให้มีความสามารถเทา่ ท่ีจาเป็น ดงั นนั้ ชิน้ สว่ นท่ีเป็นองคป์ ระกอบของตวั หนุ่ ยนต์เอง ก็ยอ่ มมีราคาถกู เพราะ สามารถหาซือ้ ได้ตามท้องตลาด 1.2วัตถปุ ระสงค์ เพ่ือสร้างระบบห่นุ ยนต์หลายตวั ท่ีชว่ ยกนั นาวตั ถุ 3 ชิน้ คอื ทรงกระบอก ทรงสี่เหลี่ยม และปริซมึ หน้าตดั รูปสามเหลี่ยม ไปรวมกนั ณ ตาแหนง่ ปลายทางท่ีได้กาหนดไว้ให้

2 1.3 ขอบเขตของโครงงาน 1. ระบบหนุ่ ยนตส์ ามารถขนย้ายวตั ถไุ ด้ 3 แบบ คือ ทรงกระบอก ทรงส่ีเหล่ียม และปริซมึ หน้าตดั รูป สามเหล่ียม โดยวตั ถแุ ตล่ ะชิน้ มีสีนา้ เงิน เขียว และแดงตามลาดบั 2. หนุ่ ยนต์แตล่ ะตวั สามารถรับรู้รายละเอียดของวตั ถทุ งั้ 3 แบบได้ โดยใช้กล้องท่ีตดิ ตงั้ อยดู่ ้านหน้าของ ตวั หนุ่ ยนต์ และสามารถค้นหาวตั ถไุ ด้ โดยการหมนุ รอบตวั เองแล้วคอยตรวจสอบภาพท่ีได้รับจาก กล้องมาเรื่อยๆ จนกวา่ จะเจอภาพของวตั ถทุ ี่ต้องการ หนุ่ ยนตจ์ งึ หยดุ หมนุ รอบตวั เอง 3. หนุ่ ยนตแ์ ตล่ ะตวั ไมร่ ู้วา่ ตวั เองอยู่ ณ ตาแหนง่ ใดในสนาม หนุ่ ยนต์รู้เพียงแคว่ า่ วตั ถแุ ตล่ ะชนิ ้ เป้ าหมายที่จะนาวตั ถไุ ปวาง รวมทงั้ หนุ่ ยนต์ตวั อื่นในสนาม อยใู่ กล้ หรือไกลจากตวั มนั เองมากแคไ่ หน 4. หนุ่ ยนต์ทกุ ตวั จะต้องรู้สถานะการทางานของตนเองและหนุ่ ยนต์ตวั อ่ืน โดยอาศยั การสง่ ข้อความ ตดิ ตอ่ กนั เป็นระยะๆ ภายในเครือข่ายไร้สาย (Wireless LAN) 5. เม่ือมีหนุ่ ยนต์ตวั ใดตวั หนงึ่ เกิดขดั ข้อง หนุ่ ยนตต์ วั อื่นจะต้องรับรู้ และเข้าไปทางานแทนหนุ่ ยนตต์ วั นนั้ 1.4 แนวทางการดาเนินงาน 1. ศกึ ษาค้นคว้าข้อมูลท่ีเก่ียวข้อง ในขนั้ ตอนนี ้จะทาการศกึ ษาการตงั้ คา่ IP ให้หนุ่ ยนต์ การเขียนโปรแกรมลงบนห่นุ ยนต์ และการใช้ กล้องของหนุ่ ยนต์ 2. จัดเตรียมวัสดทุ ่เี ก่ียวข้องกับการทาโครงงาน ในขนั้ ตอนนี ้ จะทาการเตรียมอปุ กรณ์ท่ีเกี่ยวข้อง ได้แก่ การเตรียมสนาม วตั ถุ และหนุ่ ยนต์ Surveyor SRV-1 รวมทงั้ ออกแบบแขนสาหรับจบั วตั ถุ ซง่ึ จะถกู นาไปตดิ ตงั้ ท่ีด้านหน้าของหนุ่ ยนต์ ในภายหลงั

3 3. พัฒนาโปรแกรมสาหรับจัดการระบบหุ่นยนต์หลายตัว ในขนั้ ตอนนี ้ จะทาการศกึ ษา Library ท่ีใช้สาหรับการควบคมุ หนุ่ ยนต์ และนา Library มาพฒั นา ตอ่ ยอดให้เป็นโปรแกรมที่ใช้ควบคมุ ระบบหนุ่ ยนต์ หรือท่ีเรียกวา่ Console อีกทีหนงึ่ 4. พฒั นาระบบตรวจจับวัตถุ ในขนั้ ตอนนี ้ จะทาการพฒั นาสว่ นที่ใช้ในการตรวจจบั ชนิดของวตั ถุ โดยพจิ ารณาจากสีของวตั ถใุ น ภาพ ถ้าตรวจพบสีแดง แสดงวา่ พบวตั ถปุ ริซมึ หน้าตดั รูปสามเหลี่ยม ถ้าตรวจพบสีเขียว แสดงว่าพบวตั ถุ ทรงสี่เหลี่ยม และถ้าตรวจพบสีนา้ เงิน แสดงวา่ พบวตั ถทุ รงกระบอก นอกจากนี ้ ยงั ทาการพฒั นาสว่ นท่ีใช้ ในการหาทิศทางของวตั ถเุ ทียบกบั ตวั หนุ่ ยนต์อีกด้วย โดยพจิ ารณาจากตาแหนง่ ของวตั ถทุ ่ีปรากฎในภาพ 5. ออกแบบวธิ ีการเคล่ือนท่ีห่นุ ยนต์ ในขนั้ ตอนนี ้ จะทาการออกแบบวิธีการเคลื่อนท่ีของหนุ่ ยนต์ ในสถานการณ์ตา่ งๆ เพื่อให้หนุ่ ยนต์ เคล่ือนท่ีไปยงั ตาแหนง่ ปลายทางได้ถกู ต้องและไมช่ นสิง่ กีดขวาง 6. พัฒนาห่นุ ยนต์หน่ึงตวั เพ่ือให้สามารถนาวัตถไุ ปวางไว้ ณ ตาแหน่งท่ถี กู ต้องได้ ในขนั้ ตอนนี ้ จะทาการทดลองเพ่ือให้หนุ่ ยนตเ์ พียงหนง่ึ ตวั นาวตั ถไุ ปวางไว้ ณ ตาแหนง่ ปลายทางได้ถกู ต้อง 7. พัฒนาระบบหุ่นยนต์หลายตวั เพ่อื ให้สามารถนาวัตถไุ ปวางไว้ ณ ตาแหน่งท่ีถูกต้องได้ เมื่อหนุ่ ยนต์หนง่ึ ตวั ทางานได้ถกู ต้องแล้ว ก็จะทาการเพมิ่ จานวนหนุ่ ยนตใ์ ห้มีตงั้ แต่ 2 ตวั ขนึ ้ ไป โดย ทาการพฒั นาให้หนุ่ ยนตม์ ีการประสานงานกนั เพ่ือชว่ ยกนั นาวตั ถไุ ปวางไว้ในตาแหน่งปลายทางได้ถกู ต้อง 8. เปรียบเทยี บผลการทางานท่ไี ด้ ระหว่างระบบห่นุ ยนต์หลายตัว กับห่นุ ยนต์ตัวเดยี ว ทาการเปรียบเทียบประสิทธิภาพที่ได้ ระหวา่ งหนุ่ ยนต์ตวั เดียว กบั ระบบหนุ่ ยนต์หลายตวั และทา การเปรียบเทียบเวลาท่ีใช้เคลื่อนย้ายวตั ถทุ งั้ หมดในสนามไปยงั ตาแหนง่ ปลายทาง ระหวา่ งหนุ่ ยนต์ ตวั เดียว กบั หนุ่ ยนตห์ ลายตวั

4 1.5ขัน้ ตอนและระยะเวลาการดาเนินงาน รูปท่ี 1 Gantt chart แสดงขนั้ ตอนและระยะเวลาการดาเนินงาน 1.6ประโยชน์ท่คี าดว่าจะได้รับ 1. ระบบหนุ่ ยนต์หลายตวั สามารถลดข้อผดิ พลาดท่ีเกิดจากการทางานของหนุ่ ยนตเ์ พียงตวั เดียวได้ 2. ระบบหนุ่ ยนต์หลายตวั สามารถแก้ปัญหาข้อจากดั ทางด้านฮาร์ดแวร์ท่ีมีอยใู่ นปัจจบุ นั ได้ 3. ระบบหนุ่ ยนต์หลายตวั สามารถลดคา่ ใช้จา่ ยในการออกแบบและประดษิ ฐ์หนุ่ ยนตไ์ ด้ 4. ระบบหนุ่ ยนต์หลายตวั มีความยืดหยนุ่ สงู กลา่ วคอื สามารถเพ่ิมจานวนของหนุ่ ยนตภ์ ายในกลมุ่ ได้ โดยไมจ่ าเป็ นต้องแก้ไขระบบมากนกั

5 บทท่ี 2 ทฤษฎีและหลักการท่เี ก่ยี วข้อง 2.1งานวิจัยเบอื้ งต้น 2.1.1 Heterogeneous Multi-Robot Cooperation [2] งานวิจยั นี ้ ได้ทาการวเิ คราะห์ข้อผดิ พลาดของระบบหนุ่ ยนตห์ ลายตวั อนั เกิดจากการที่หนุ่ ยนตเ์ กิด ขดั ข้องในระหวา่ งการทางาน หนุ่ ยนตไ์ มม่ ีความสามารถเพียงพอในการทางาน หรือสภาพแวดล้อมได้ เปล่ียนแปลงไปจากเดมิ งานวิจยั นีไ้ ด้ทาการพฒั นาสถาปัตยกรรมที่ช่ือวา่ ALLIANCE ซง่ึ เป็นสถาปัตยกรรม ของระบบหนุ่ ยนตห์ ลายตวั ท่ีออกแบบมาเพ่ือให้สามารถตรวจสอบและแก้ไขข้อผิดพลาดท่ีเกิดขนึ ้ ได้ โดยอาศยั หลกั การของการเผยแพร่ข้อมลู สถานะการทางานของหนุ่ ยนต์แตล่ ะตวั ไปให้ห่นุ ยนต์ทกุ ตวั ในกลมุ่ รับทราบ นอกจากนี ้ งานวิจยั ยงั ได้พฒั นาสถาปัตยกรรมหนุ่ ยนต์หลายตวั ท่ีชื่อวา่ L-ALLANCE ซงึ่ เป็นสถาปัตยกรรมที่ เปิดโอกาสให้หนุ่ ยนต์เรียนรู้จากประสบการณ์ที่พบก่อนหน้านนั้ ได้ ทาให้หนุ่ ยนต์ทางานได้มีประสทิ ธิภาพมาก ขนึ ้ และลดปริมาณงานในการตงั้ คา่ พารามเิ ตอร์ให้กบั หนุ่ ยนตแ์ ตล่ ะตวั 2.1.2 Cooperative Localization and Control for Multi-Robot Manipulation [3] งานวจิ ยั นี ้ได้ออกแบบโมเดลในการหาตาแหนง่ และทิศทางของหนุ่ ยนต์ภายในกลมุ่ โดยให้หนุ่ ยนต์ตวั หนง่ึ เป็นจดุ อ้างองิ ของหนุ่ ยนต์ทงั้ หมด การหาตาแหนง่ ของหนุ่ ยนต์ จะมีประเดน็ หลกั อยู่ 2 อย่าง คือ 1. การหาตาแหน่ง และทิศทางของห่นุ ยนต์แต่ละตวั ห่นุ ยนต์แตล่ ะตวั จะรับภาพจากกล้องท่ีสามารถ มองเหน็ ได้โดยรอบ (Omni-Camera) ท่ีตดิ ตงั้ บนตวั หนุ่ ยนต์ จากนนั้ ภาพท่ีรับมา จะถกู นาไป ประมวลผลเพื่อหาตาแหนง่ และทศิ ทางของหนุ่ ยนต์ตวั อื่นอีกทีหนงึ่ 2. การรกั ษาการจดั วางตวั ของห่นุ ยนต์แต่ละตวั หนุ่ ยนตแ์ ตล่ ะตวั จะต้องอยู่ ณ ตาแหนง่ ท่ีเหมาะสม เพ่ือให้การจดั วางตวั ของหนุ่ ยนตภ์ ายในกลมุ่ ไมผ่ ดิ เพีย้ นจนเกินไป เชน่ ถ้าหนุ่ ยนต์ทงั้ 3 ตวั จะต้องจดั วางตวั กนั เป็นรูปสามเหลี่ยมหน้าจว่ั หนุ่ ยนตแ์ ตล่ ะตวั จะต้องอยู่ ณ ตาแหนง่ ที่เป็นจดุ ยอดของรูป สามเหลี่ยม

6 2.1.3 Multi-Robot Manipulation via Caging in Environments with Obstacle [4] งานวจิ ยั นี ้ ได้ทาการออกแบบอลั กอริทมึ ในการเคล่ือนย้ายวตั ถุโดยใช้ระบบหนุ่ ยนต์หลายตวั โดย หนุ่ ยนต์แตล่ ะตวั จะไมร่ ู้ขนาดของกลมุ่ และความสามารถของหนุ่ ยนต์ตวั อ่ืนเลย รวมทงั้ จะต้องมีการสื่อสารกนั ภายในกลมุ่ ให้น้อยที่สดุ การทาเชน่ นี ้ ทาให้ระบบหนุ่ ยนตห์ ลายตวั มีความทนตอ่ ข้อผิดพลาดสงู ง่ายตอ่ การ ควบคมุ และเสียเวลาน้อยในการสื่อสาร หนุ่ ยนต์แตล่ ะตวั ภายในระบบนี ้จะมีสถานะอยู่ 3 สถานะด้วยกนั คอื 1. Approach เป็นสถานะท่ีทาการค้นหาวตั ถุ ในขณะเดียวกนั ก็ต้องหลีกเลี่ยงการชนสงิ่ กีดขวาง และ หนุ่ ยนต์ตวั อื่นด้วย 2. Surround เป็นสถานะที่หนุ่ ยนต์ตรวจพบวตั ถุ และกาลงั จะไปควมคมุ วตั ถชุ ิน้ นนั้ ในขณะเดียวกนั ก็ ต้องหลีกเลี่ยงการชนสิ่งกีดขวาง และหนุ่ ยนต์ตวั อื่นด้วย 3. Transport เป็นสถานะที่หนุ่ ยนตก์ าลงั เคล่ือนย้ายวตั ถไุ ปยงั ตาแหนง่ เป้ าหมาย 2.1.4 Abstractions and Algorithms for Cooperative Multiple Robot Planar Manipulation [5] งานวจิ ยั นี ้ได้ทาการออกแบบอลั กอริทมึ อยา่ งง่าย ในการเคล่ือนย้ายวตั ถบุ นระนาบ 2 มติ ิ ที่มีส่งิ กีด ขวางอยู่ โดยใช้หนุ่ ยนต์ 2 ตวั อลั กอรึทมึ นีม้ ีความทนทานตอ่ สภาวะการณ์ที่ไมป่ กติ เชน่ แรงเสียดทานบนพืน้ หรือข้อจากดั ของเซนเซอร์บนตวั หนุ่ ยนต์ 2.1.5 Behavior-Based Multi-Robot Collaboration for Autonomous Construction Tasks [6] งานวจิ ยั นี ้ได้ทาการออกแบบระบบ RCC (Robot Construction Crew) สาหรับระบบหนุ่ ยนต์หลายตวั โดยท่ีหนุ่ ยนต์แตล่ ะตวั มีหน้าท่ีแตกตา่ งกนั RCC เป็นระบบท่ีมีพืน้ ฐานมาจากการแบง่ งานเป็นลาดบั ชนั้ งาน ระดบั ลา่ ง จะถกู ควมคมุ โดยงานระดบั บนอีกทีหนงึ่ เชน่ การสงั่ ให้หนุ่ ยนต์เคลื่อนแขน (งานระดบั บน) จะทาให้ มอเตอร์หมนุ (งานระดบั ลา่ ง) แตง่ านวิจยั นีไ้ ด้ใช้วิธีลดความผดิ พลาดที่เกิดขนึ ้ ในระบบโดยการควบคมุ ความเร็วของมอเตอร์ให้เหมาะสม

7 2.2การฉายภาพแบบทศั นมติ ิ (Perspective Projection) หลกั การของการได้ภาพมานนั้ แสดงได้ดงั รูปที่ 2 รูปท่ี 2 การเกิดภาพในกล้องรูเขม็ (ท่ีมา: http://jde.gsyc.es/index.php/JDEROBOT_4.3.0:Manual) จากรูป จะพบวา่ รังสีของแสง (Optical Ray) ทกุ เส้น จะผา่ นจดุ ศนู ย์กลางของการฉาย (Center of Projection) และจะไปตกกระทบท่ีฉากรับภาพ (Image Plane) โดยภาพที่ได้จากการฉายภาพเชน่ นี ้ จะเป็น ภาพหวั กลบั และเราสามารถคานวณหาขนาดของภาพได้ โดยใช้หลกั การของสามเหล่ียมคล้าย ดงั นี ้ โดยท่ี O’C แทนความยาวโฟกสั ของกล้อง OC แทนระยะหา่ งระหวา่ งวตั ถกุ บั เลนส์กล้อง O’P แทนขนาดของภาพ OP แทนขนาดของวตั ถุ

8 จากความสมั พนั ธ์ดงั กลา่ ว จะพบวา่ เม่ือวตั ถอุ ยไู่ กลกล้อง หากเลื่อนวตั ถใุ ห้เข้าใกล้กล้อง ขนาดของ ภาพวตั ถจุ ะเพม่ิ ไมม่ ากนกั แตถ่ ้าวตั ถอุ ยใู่ กล้กล้อง หากเล่ือนวตั ถใุ ห้ใกล้กล้องเข้ามาอีก ขนาดของภาพจะ ใหญ่ขนึ ้ มาก ดงั นนั้ เราสามารถคานวณได้ว่า วตั ถอุ ยหู่ า่ งจากหนุ่ ยนต์เทา่ ใด โดยคานวณระยะหา่ ง OC ตามรูป ด้านบน และดอู ตั ราการเปล่ียนแปลงของขนาดของภาพ อยา่ งไรก็ตาม เม่ือนาวิธีการนีไ้ ปใช้จริง กลบั ไมไ่ ด้ผลตามท่ีคาดไว้ ทงั้ นีเ้พราะเมื่อห่นุ ยนตเ์ คลื่อนท่ีเข้า ใกล้วตั ถมุ ากขนึ ้ สีของวตั ถกุ ็ยอ่ มเปลี่ยนไป ทาให้ห่นุ ยนต์ไมส่ ามารถตรวจจบั วตั ถไุ ด้อยา่ งถกู ต้อง ดงั เชน่ รูปที่ 3 เป็นผลทาให้เกิดความคลาดเคล่ือนในการหาวตั ถุ ดงั นนั้ ผ้พู ฒั นาจงึ ใช้วิธีการหาความกว้างโดยประมาณของ วตั ถุ ควบคไู่ ปกบั ขนาดโดยประมาณของวตั ถุ เพ่ือให้มีความแมน่ ยามากขนึ ้ การหาความกว้างและขนาด โดยประมาณของวตั ถุ จะกลา่ วถงึ ในหวั ข้อท่ี 2.4 การตรวจหาวตั ถุ (Object Detection) รูปท่ี 3 (ซ้าย) เมื่อหนุ่ ยนต์อยไู่ กลวตั ถุ วตั ถจุ ะมีสีสด (ขวา) เมื่อหนุ่ ยนต์อยใู่ กล้วตั ถุ วตั ถจุ ะมีสีซีดลง

9 2.3การทาความตกลงแบบประชามติ (Consensus Agreement) [1] ระบบหนุ่ ยนต์หลายตวั ที่ออกแบบ สามารถทางานได้แม้กระทง่ั ในกรณีท่ีเกิดข้อผดิ พลาดกบั หนุ่ ยนต์ ภายในกลมุ่ กลา่ วคอื หากหนุ่ ยนตต์ วั ใดตวั หนง่ึ เกิดขดั ข้องแบบที่หนุ่ ยนตต์ วั อ่ืนไมส่ ามารถติดตอ่ กบั หนุ่ ยนต์ ตวั นีไ้ ด้ หนุ่ ยนต์ตวั ท่ีเหลือจะต้องไปชว่ ยทาหน้าที่แทนหนุ่ ยนต์ตวั ท่ีขดั ข้อง การตรวจสอบว่าหนุ่ ยนต์ตวั ใดใน ระบบขดั ข้องในระหวา่ งการทางาน สามารถทาได้โดยใช้วธิ ีการท่ีเรียกวา่ การทาความตกลงแบบประชามติ (Consensus Agreement) R1 Hold Blue, R2 R2 R1 Hold Blue, R2 R2 Hold Green, R1 Hold Green, R1 Hold Green, R1 Hold Red, Hold Blue, R2 Hold Green, R1 Abort Hold Blue, R2 R3 R3 R3 รูปท่ี 4 (ซ้าย) การทาความตกลงแบบประชามติ (ขวา) แสดงกรณีท่ีมีหนุ่ ยนต์ภายในกลมุ่ เกิดขดั ข้อง จากรูป ให้ R1, R2 และ R3 แทนหนุ่ ยนต์ทงั้ 3 ตวั หนุ่ ยนตแ์ ตล่ ะตวั จะสง่ ข้อความกระจายไปให้ หนุ่ ยนตท์ ่ีเหลือภายในกลมุ่ รับทราบ ทงั้ ข้อมลู ของงานที่ทา และสถานะการทางานที่บอกวา่ ตวั มนั เองยงั สามารถทางานได้อยู่ ดงั รูปท่ี 4 ทางด้านซ้าย หนุ่ ยนตแ์ ตล่ ะตวั จะสง่ ข้อความไปบอกหนุ่ ยนตท์ กุ ตวั ในกลมุ่ วา่ หนุ่ ยนต์ตวั นนั้ กาลงั จะไปหยิบวตั ถสุ ีอะไร เพื่อที่วา่ หนุ่ ยนตต์ วั อ่ืนจะได้ไม่ทาหน้าที่ซา้ กบั หนุ่ ตวั นนั้ แตห่ ากมี หนุ่ ยนต์ตวั ใดตวั หนงึ่ เกิดขดั ข้อง (จากรูปที่ 4 ทางด้านขวา คือหนุ่ ยนต์ R3) หนุ่ ยนต์ตวั นนั้ ก็จะไมส่ ามารถสง่ ข้อความกระจายไปให้หนุ่ ยนตต์ วั ท่ีเหลือได้ เม่ือหนุ่ ยนต์ตวั ท่ีเหลือ ไมไ่ ด้รับข้อความจากหนุ่ ยนต์ตวั นนั้ ภายใน เวลาที่กาหนด ก็จะทราบทนั ทีวา่ หนุ่ ยนต์ตวั นนั้ เกิดข้อผิดพลาด หนุ่ ยนต์ตวั ที่วา่ งงานอยู่ ก็จะไปรับหน้าท่ีแทน หนุ่ ยนต์ตวั ที่เกิดขดั ข้อง

10 2.4การตรวจหาวัตถุ (Object Detection) ขนั้ ตอนการตรวจหาวตั ถุ สามารถแบง่ ได้เป็น 2 ขนั้ ตอนใหญ่ๆ คอื ขนั้ ตอนการแบง่ แยกสี (Color Segmentation) และขนั้ ตอนการนบั จานวนองค์ประกอบในรูปภาพ (Connected Component Counting) Color Connected Component Segmentation Counting 2 องค์ประกอบ รูปท่ี 5 ขนั้ ตอนการตรวจหาวตั ถุ 2.4.1 การแบ่งแยกสี (Color Segmentation) เน่ืองจากวตั ถแุ ตล่ ะชนิด มีสีที่แตกตา่ งกนั และสนามของหนุ่ ยนต์มีพืน้ และขอบเป็นสีขาวทงั้ หมด ดงั นนั้ ผ้พู ฒั นาจงึ ใช้วิธีการจาแนกวตั ถุ โดยใช้สีของวตั ถเุ ป็นเกณฑ์ในการแบง่ อย่างไรก็ตาม ภาพท่ีรับเข้ามา จากกล้อง จะเป็ นภาพที่อยใู่ นปริภมู ิสี RGB โดยท่ี R (Red) แทนความเข้มของสีแดง G (Green) แทนความเข้ม ของสีเขียว และ B (Blue) แทนความเข้มของสีนา้ เงิน ซงึ่ ปริภมู ิสี RGB ไมเ่ หมาะสาหรับใช้จาแนกสี ผ้พู ฒั นาจงึ ต้องแปลงปริภมู สิ ีให้เป็นแบบ HSV แทน โดยที่ H (Hue) แทนคา่ สี S (Saturation) แทนความอม่ิ ตวั ของสี และ V (Value) แทนความสวา่ งของสี ปริภมู ิ RGB และ HSV แสดงได้ดงั รูปด้านลา่ ง รูปท่ี 6 (ซ้าย) ปริภมู ิสี RGB (ขวา) ปริภมู สิ ี HSV (ที่มา: http://msdn.microsoft.com/en-us/library/aa511283.aspx)

11 ในทางทฤษฎี คา่ H เพียงอยา่ งเดียว ก็เพียงพอสาหรับการบอกสีของวตั ถุ แตเ่ ม่ือนามาใช้จริง กลบั ไม่ ได้ผลตามที่คาดหวงั ไว้ เพราะบริเวณพืน้ หรือขอบสนามที่อยใู่ กล้ๆ วตั ถมุ าก ก็จะมีคา่ H ท่ีใกล้เคียงกบั วตั ถดุ ้วย ดงั นนั้ ผ้พู ฒั นาจงึ ต้องใช้ทงั้ คา่ H, S และ V ในการจาแนกวตั ถุ การแยกภาพวตั ถอุ อกจากพืน้ หลงั ทาได้โดยพิจารณาวา่ จดุ ภาพ (Pixel) ใดในภาพ เป็นจดุ ภาพของ วตั ถทุ ี่กาลงั พิจารณาอยู่ โดยดวู า่ จดุ ภาพที่เลือกมานนั้ มีคา่ H, S และ V อยใู่ นชว่ งเดียวกบั คา่ H, S และ V ของ วตั ถนุ นั้ หรือไม่ ถ้าคา่ ทงั้ สามอยใู่ นชว่ งเดียวกนั แสดงว่าจดุ ภาพนนั้ เป็นสว่ นหนง่ึ ของภาพวตั ถุ ให้แทนด้วยจดุ ภาพสีขาว ในทางกลบั กนั ถ้ามีคา่ ใดคา่ หนงึ่ ไมอ่ ยู่ในชว่ ง ก็แสดงวา่ จดุ ภาพนนั้ ไมไ่ ด้เป็นสว่ นหนงึ่ ของภาพวตั ถุ ให้แทนด้วยจดุ ภาพสีดา รูปที่ 7 แสดงการแยกวตั ถอุ อกจากพืน้ หลงั ด้วยวธิ ีการแบง่ แยกสี รูปท่ี 7 (ซ้าย) ภาพวตั ถสุ ีแดง (ขวา) ภาพวตั ถหุ ลงั จากผ่านกระบวนการแบง่ แยกสี ซง่ึ เป็ นภาพขาวดา 2.4.2 การนับจานวนองค์ประกอบในรูปภาพ (Connected Component Counting) หลงั จากท่ีได้ภาพขาวดาจากการบวนการแบง่ แยกสีแล้ว กระบวนการตอ่ ไป คือ การนบั จานวน องค์ประกอบภายในภาพเดียวกนั การหาจานวนองค์ประกอบ ทาได้โดยการกวาดจดุ ภาพทกุ จดุ ภาพ จากซ้าย ไปขวา และบนลงลา่ ง เมื่อใดท่ีเจอจดุ สีขาว ก็จะพจิ ารณาจุดภาพรอบๆ จดุ นนั้ ทงั้ 4 ทศิ วา่ จดุ ภาพทิศใดบ้างท่ี มีสีขาว ถ้าจดุ ภาพในทิศใดมีสีขาว ก็จะทาการแผข่ ยายไปตอ่ ในทิศทางนนั้ ทาเชน่ นีไ้ ปเร่ือยๆ จนกระทง่ั ไม่

12 สามารถแผข่ ยายไปได้อีก (จดุ ภาพทงั้ 4 ทิศเป็นสีดาหมด) การแผข่ ยายจงึ หยดุ และจะได้วา่ ในองคป์ ระกอบนนั้ มีจดุ ภาพใดบ้าง และมีจานวนจดุ ภาพกี่จดุ ข้อมลู เหลา่ นี ้ทาให้สามารถหาตาแหนง่ จดุ ศนู ย์กลาง ขนาด และมติ ิ ขององค์ประกอบนนั้ ได้ รูปท่ี 8 แสดงจานวนองค์ประกอบในรูปภาพ โดยที่จดุ ภาพสีเดียวกนั จะอยใู่ น องคป์ ระกอบเดียวกนั รูปท่ี 8 ภาพขนาด 13 x 13 pixels ที่มี 2 องค์ประกอบ (ท่ีมา: http://en.wikipedia.org/wiki/File:Two-pass_connected_component_labeling.svg) ข้อมลู ของแตล่ ะองค์ประกอบ จะประกอบด้วย ตาแหนง่ จดุ ศนู ย์กลาง (cx, cy) ขนาด (A) และมิติ (ความกว้าง (w), ความสงู (h)) ให้ C เป็นองคป์ ระกอบ และให้ I[r, c] เป็นจดุ ภาพ ณ ตาแหนง่ (r, c) จะได้วา่ ข้อมลู ของแตล่ ะองค์ประกอบ จะถกู เก็บอยใู่ นแถวลาดบั ความสาคญั (Priority Queue) ซงึ่ จดั ลาดบั ความสาคญั ตามขนาดขององคป์ ระกอบ กลา่ วคือ ข้อมลู ท่ีจะถกู ดงึ ออกมาจากแถวลาดบั กอ่ น จะเป็ นข้อมลู ขององค์ประกอบท่ีมีขนาดใหญ่ที่สดุ ท่ีทาเชน่ นีเ้พราะองคป์ ระกอบที่ใหญ่ท่ีสดุ มีแนวโน้มที่จะเป็ นวตั ถุที่

13 ต้องการมากที่สดุ และสาหรับองคป์ ระกอบที่มีขนาดเลก็ เกินไป ก็จะไมถ่ กู เก็บเข้าแถวลาดบั เลย เพราะมี แนวโน้มสงู มากที่จะเป็นส่งิ รบกวนจากภายนอก นอกจากนี ้ ระบบห่นุ ยนตห์ ลายตวั ต้องมีการจดั การไมใ่ ห้หนุ่ ยนตเ์ คลื่อนท่ีชนกนั ผ้พู ฒั นาจงึ เลือกสี เขียว และสีนา้ เงิน มาประกอบกนั เป็นแถบสี และนาไปตดิ ตงั้ บนหนุ่ ยนตท์ กุ ตวั ดงั รูปท่ี 9 เพ่ือเป็นสญั ลกั ษณ์ แทนตาแหนง่ ของหนุ่ ยนต์ รูปท่ี 9 แถบสีเขียว-นา้ เงิน ท่ีตดิ ตงั้ บนตวั หนุ่ ยนต์ ดงั นนั้ เมื่อหนุ่ ยนต์ตรวจพบวตั ถทุ งั้ สีเขียวและสีนา้ เงิน จะต้องทาการตรวจสอบวา่ เป็นวตั ถทุ ่ีหนุ่ ยนต์ จะต้องไปเก็บ หรือเป็ นเพียงแคแ่ ถบสีท่ีใช้แทนตาแหนง่ หุ่นยนต์เทา่ นนั้ วธิ ีการตรวจสอบวา่ ภาพวตั ถทุ ่ีมองเห็น นนั้ เป็นแถบสี ทาได้ดงั นี ้ ให้ G(x1, y1) และ B(x2, y2) เป็นจดุ ศนู ย์กลางขององค์ประกอบสีเขียว และสีสีนา้ เงิน ตามลาดบั ถ้า หรือ หรือกลา่ วอีกนยั หนง่ึ คือ พบองคป์ ระกอบสีนา้ เงิน อยบู่ นองคป์ ระกอบสีเขียว หรือพบองค์ประกอบสี เขียว อยบู่ นองค์ประกอบสีนา้ เงินนน่ั เอง แสดงวา่ องค์ประกอบสีเขียวและสีนา้ เงินที่เห็นนนั้ เป็นแถบสีบนตวั หนุ่ ยนต์ นน่ั คอื มีหนุ่ ยนต์ตวั อื่นกาลงั ขวางแนวการเดนิ ของหนุ่ ยนต์ตวั นีอ้ ยู่

14 2.5การหลีกเล่ียงการชนกันของห่นุ ยนต์ ระบบหนุ่ ยนต์ท่ีออกแบบนี ้ สามารถป้ องกนั ไมใ่ ห้หนุ่ ยนต์เคล่ือนท่ีชนกนั เองได้ แตไ่ ด้เพียงบางกรณี เทา่ นนั้ ดงั รูปที่ 10 R2 รูปท่ี 10 (บนซ้าย) สถานการณ์ท่ีหนุ่ ยนตส์ ามารถป้ องกนั การชนได้ (ลา่ งซ้าย) สถานการณ์ท่ีเกิดจากมมุ กล้องของหนุ่ ยนต์ไมก่ ว้างพอ R1 (ลา่ งขวา) สถานการณ์ท่ีกลมุ่ ของหนุ่ ยนต์เกิดการติดตาย R1 R1 R2 R3 R2 จากรูปบนซ้าย หนุ่ ยนต์ R1 เหน็ แถบสีของหนุ่ ยนต์ R2 แตห่ นุ่ ยนต์ R2 ไมเ่ ห็นแถบสีของหนุ่ ยนต์ R1 ดงั นนั้ หนุ่ ยนต์ R1 จะหยดุ การเคล่ือนท่ี และให้หนุ่ ยนต์ R2 เคล่ือนที่ผา่ นไปจนกวา่ จะพ้นมมุ กล้องของหนุ่ ยนต์ R1 หนุ่ ยนต์ R1 จงึ จะกลบั มาเคล่ือนที่ใหมอ่ ีกครัง้ รูปลา่ งซ้าย เกิดจากการที่มมุ กล้องของหนุ่ ยนต์ไมก่ ว้างพอ ทาให้หนุ่ ยนตท์ งั้ 2 ตวั ไมเ่ ห็นแถบสี และทา ให้หนุ่ ยนตเ์ คล่ือนที่ตอ่ ไปเร่ือยๆ จนมาบรรจบกนั และชนกนั ในท่ีสดุ สว่ นรูปลา่ งขวา เกิดจากการที่หนุ่ ยนต์แตล่ ะ ตวั ตา่ งก็เหน็ แถบสีของหนุ่ ยนตต์ วั อื่นซง่ึ กนั และกนั ทาให้หนุ่ ยนต์ทกุ ตวั ในกลมุ่ นีห้ ยดุ การเคล่ือนท่ี และจะหยดุ รอไปเรื่อยๆ ไมม่ ีที่สนิ ้ สดุ สถานการณ์เชน่ นี ้เรียกวา่ การตดิ ตาย (Deadlock)

15 2.6การควบคุมห่นุ ยนต์ Surveyor SRV-1 (Controlling Surveyor SRV-1 Robot) เนื่องจากหนุ่ ยนต์ Surveyor SRV-1 เป็นหนุ่ ยนต์ Open Source ที่ใช้ระบบปฏิบตั กิ าร Linux ดงั นนั้ ผ้พู ฒั นาทกุ คนจงึ มีสิทธ์ิพฒั นาโปรแกรมที่ใช้ควบคมุ หนุ่ ยนต์ หรือที่เรียกวา่ Console หรือพฒั นา Library เพ่ือ ใช้ควบคมุ หนุ่ ยนตไ์ ด้เอง นอกจากนีย้ งั สามารถแก้ไข Firmware ภายในตวั หนุ่ ยนต์ได้อีกด้วย การสง่ั งานหนุ่ ยนต์ Surveyor SRV-1 สามารถทาได้ 2 แบบ คือ 1. โดยการสง่ คาสงั่ ไปในรูปแบบของ Byte Array ผา่ นโปรโตคอล TCP หรือ UDP สาหรับรูปแบบของ คาสง่ั สามารถดไู ด้ที่ http://www.surveyor.com/SRV_protocol.html [9] 2. โดยการเขียนโปรแกรมลงบนตวั หนุ่ ยนต์โดยตรง โดยใช้ภาษา PicoC [12] การสง่ โปรแกรมจากคอมพวิ เตอร์ไปเก็บลงในหนว่ ยความจาแฟลซของหนุ่ ยนต์ สามารถทาได้ 2 วธิ ีหลกั คอื 1. ใช้โปรโตคอล XMODEM [10] ซงึ่ เป็นโปรโตคอลอยา่ งงา่ ยที่ใช้ในการสง่ ไฟล์ และมีความสามาร ตรวจสอบข้อผดิ พลาดท่ีเกิดจากการสง่ โปรแกรมท่ีรองรับการสง่ ไฟล์ผา่ นโปรโตคอล XMODEM เชน่ โปรแกรม TeraTerm [11] ดงั แสดงในรูปท่ี 11 2. ใช้วิธีการสร้าง Console โดย Console จะเรียกใช้โปรโตคอลของหนุ่ ยนต์ Surveyor SRV-1 เพื่อทาการ สง่ Byte Array ไปบอกหนุ่ ยนต์ที่จะโหลดโปรแกรมใสก่ อ่ น จากนนั้ Console จงึ คอ่ ยสง่ โปรแกรมไป รูปท่ี 11 โปรแกรม TeraTerm ท่ีรองรับโปรโตคอล XMODEM

16 เน่ืองจากโครงงานของผ้พู ฒั นาเป็นงานเฉพาะทาง ที่จาเป็นต้องใช้ Console ท่ีมีรูปแบบการทางาน แตกตา่ งจาก Console ที่มีอยแู่ ล้ว กลา่ วคือ Console ต้องสามารถประสานงานกบั หนุ่ ยนต์ตวั อื่นๆ ได้ อีกทงั้ ยงั มี Library เป็นจานวนมาก ที่สามารถนามาใช้สร้าง Console ได้อยา่ งสะดวก และนอกจากนี ้ ผ้พู ฒั นาพบวา่ การใช้โปรแกรม TeraTerm ในการสง่ ไฟล์ มีความยงุ่ ยากกวา่ การสร้าง Console ขนึ ้ มาใช้เอง ทงั้ นีเ้นื่องจาก การสง่ โปรแกรมผา่ นโปรแกรม TeraTerm จะต้องนาโปรแกรมเก็บลงไฟล์ก่อน แล้วจงึ คอ่ ยสง่ ไฟล์ไป และหาก ต้องการให้โปรแกรมบนหนุ่ ยนต์ทางาน จะต้องเรียกใช้โปรแกรม TeraTerm อีกครัง้ หนงึ่ แตถ่ ้าเป็น Console ท่ี เขียนขนึ ้ เอง ผ้พู ฒั นาสามารถออกแบบ Console ให้มีที่วา่ งสาหรับใช้แก้ไขโปรแกรม และมีป่ มุ สาหรับโหลด โปรแกรมลงบนตวั หนุ่ ยนต์ รวมทงั้ มีป่ มุ สง่ั ให้โปรแกรมบนตวั หนุ่ ยนตท์ างานอีกด้วย ผ้พู ฒั นาจงึ ตดั สนิ ใจสร้าง Console ใช้เอง โดยอ้างอิงจากซอร์สโค้ดของ Console ท่ีมีอยแู่ ล้ว ผ้พู ฒั นาจะใช้ Library ของ AForge.NET [7] เพื่อพฒั นา Console และ Console ท่ีพฒั นาขนึ ้ จะมี ความสามารถในการสงั่ งานหนุ่ ยนตเ์ บอื ้ งต้น เชน่ การควบคมุ Motor การสง่ั งาน Laser การรับภาพจากกล้อง บนตวั หนุ่ ยนต์มาแสดงผลและประมวลผล เป็นต้น และมีความสามารถในการเขียนโปรแกรมลงใน หนว่ ยความจาแฟลซของตวั หนุ่ ยนต์ หน้าตาของ Console ท่ีพฒั นาขนึ ้ แสดงดงั รูปท่ี 12

17 รูปท่ี 12 (บน) Console ที่พฒั นาขนึ ้ เพ่ือใช้สง่ั งานพืน้ ฐานให้กบั ห่นุ ยนต์ (ลา่ ง) Console ที่พฒั นาขนึ ้ เพ่ือใช้สาหรับโหลดโปรแกรมลงบนหนว่ ยความจาแฟลช อยา่ งไรก็ตาม ผ้พู ฒั นาไมส่ ามารถนาโปรแกรมการตรวจหาวตั ถุ ตามหวั ข้อ 2.4 ท่ีเขียนด้วยภาษา PicoC ไปใสไ่ ว้ในหนว่ ยความจาแฟลซ และให้หนว่ ยประมวลผล (Processor) บนตวั หนุ่ ยนต์ทาการ ประมวลผลได้ ทงั้ นีเ้น่ืองจากหนว่ ยความจาบนตวั หนุ่ ยนต์น้อยเกินไป เป็นผลทาให้การประมวลผลผิดพลาด และหากนา Library สาหรับการตรวจหาวตั ถทุ ่ีมีอยแู่ ล้วในภาษา PicoC มาใช้ ก็ไมส่ ามารถทาได้ เพราะ เน่ืองจากจานวนองคป์ ระกอบในภาพมากกินไป (อ้างอิงจากบริษัทผ้ผู ลติ หนุ่ ยนต์ Surveyor SRV-1) และต้องมี การคานวณเพ่ิมเตมิ จงึ จะใช้ Library ได้ แตก่ ็ยงั ทาให้การประมวลผลช้าลงไปมาก ปัญหาเหลา่ นี ้ สามารถดู รายละเอียดเพิม่ เตมิ ได้ในบทที่ 7 ปัญหาและอปุ สรรค ดงั นนั้ ผ้พู ฒั นาจงึ ตดั สินใจออกแบบให้ Console กลายเป็นหนว่ ยประมวลผลของหนุ่ ยนต์แทน โดย Console หนง่ึ Console สามารถเชื่อมตอ่ กบั หนุ่ ยนต์ได้เพียงตวั เดียวเทา่ นนั้ และจะทาหน้าท่ีประมวลผลทกุ อยา่ งเกี่ยวกบั หนุ่ ยนต์ตวั ท่ีเช่ือมตอ่ กบั Console นีอ้ ยู่ รวมทงั้ การประมวลผลภาพด้วย และ Console แตล่ ะ

18 Console สามารถตดิ ตอ่ ส่ือสารกบั Console อื่นๆ ได้ ทงั้ นีเ้พื่อให้เกิดการประสานงานกนั ระหวา่ งหนุ่ ยนต์ ภายในกลมุ่ สาหรับตวั หนุ่ ยนต์เอง ก็เพียงแตร่ ับคาสงั่ ท่ีได้รับการประมวลผลแล้วจาก Console เทา่ นนั้ กรณีท่ี Console ต้องทาการตดิ ตอ่ กบั ห่นุ ยนต์ มีอยู่ 2 กรณี ดงั นี ้ 1. การส่ังงานท่วั ไป การสงั่ งานทว่ั ไป สามารถทาได้โดยการสง่ ข้อความในรูปแบบท่ีกาหนดให้ ผา่ นโปรโตคอล TCP หรือ UDP เชน่ หากต้องการสงั่ ให้ Motor เดนิ หน้าเป็นเวลา 0.7 วนิ าที จะต้องสง่ Byte Array เป็น 0x4D 0x32 0x46 0x14 (หรือเขียนอยใู่ นรูปข้อความอกั ขระได้เป็น “M22F”) หรือหากต้องการสง่ั เปิ ด Laser จะต้องสง่ Byte Array เป็น 0x6C (หรือเขียนอยใู่ นรูปข้อความอกั ขระได้เป็น “l”) เป็นต้น 2. การเขียนโปรแกรมลงบนหน่วยความจาแฟลซ การเขียนโปรแกรมลงบนหนว่ ยความจาแฟลซ สามารถทาได้โดยมีขนั้ ตอนดงั นี ้ 1. สง่ ข้อความ “zc” เพื่อทาการล้างข้อมลู เดมิ ในหนว่ ยความจาแฟลซออกให้หมด 2. สง่ ข้อความ “E” เพ่ือเข้าสโู่ หมด Editor สาหรับแก้ไขข้อมลู ในหนว่ ยความจาแฟลซ 3. สาหรับแตล่ ะบรรทดั ของโปรแกรม ให้สง่ ข้อความ “I” ไปบอกหนุ่ ยนต์ก่อน เพ่ือบอกวา่ จะทาการเพิ่ม ข้อมลู ลงในหนว่ ยความจาแฟลซ 4. สง่ โปรแกรมบรรทดั นนั้ เข้าไป 5. สง่ ข้อความ 0x1B หรือเป็ นข้อความแสดงการกด Esc Key เพื่อออกจากโหมดการเพิ่มข้อมลู 6. ทาขนั้ ตอนที่ 3-5 เรื่อยๆ จนสง่ โปรแกรมครบทกุ บรรทดั 2.7การตงั้ ค่า IP และการแบ่ง Subnet (IP Assignment and Subnetting) หนุ่ ยนต์ Surveyor SRV-1 รองรับการตดิ ตอ่ ส่ือสารผา่ น Wireless LAN 802.11g ดงั นนั้ เพื่อท่ีจะให้ หนุ่ ยนตต์ ิดตอ่ ส่ือสารกนั ได้ภายในกลมุ่ ผ้พู ฒั นาจาเป็นต้องออกแบบระบบเครือขา่ ย รูปที่ 13 แสดงออกแบบ ระบบเครือข่าย โดยการตงั้ คา่ IP ให้กบั แตล่ ะสว่ น

R1: 10.0.0.13 User Program: 19 10.0.0.19 C1: 10.0.0.14 R2: 10.0.0.15 R1 R1 C2: 10.0.0.16 R3: 10.0.0.17 C3: 10.0.0.18 R2 R2 R3 R3 Subnet Mask = 255.255.255.224 Subnet Address = 10.0.0.0 Broadcast Address = 10.0.0.31 รูปท่ี 13 การออกแบบระบบ เพ่ือให้หนุ่ ยนตแ์ ตล่ ะตวั สามารถประสานงานกนั ได้ จากการตงั้ Subnet Mask ทาให้สามารถกาหนด IP ในเครือขา่ ยนีไ้ ด้แตกตา่ งกนั 32 แบบ แตเ่ ครือขา่ ย นี ้ จะต้องเสียไป 2 IP สาหรับ Subnet Address และ Broadcast Address ดงั นนั้ ในเครือขา่ ยนี ้ จะมีหนุ่ ยนต์ ได้มากที่สดุ 28 ตวั โดยกรณีท่ีสามารถใช้หนุ่ ยนตไ์ ด้ 28 ตวั คอื ให้ Console และโปรแกรมผ้ใู ช้ ทางานในเครื่อง คอมพิวเตอร์เคร่ืองเดียวกนั ให้หมด Console หนง่ึ Console ทาหน้าท่ีควบคมุ หนุ่ ยนต์ 1 ตวั ดงั ท่ีได้กลา่ วไปแล้วในหวั ข้อ 2.5 จากรูปท่ี 13 C1, C2 และ C3 ทาหน้าที่ควบคมุ ห่นุ ยนต์ R1, R2 และ R3 ตามลาดบั Console ตา่ งๆ รวมทงั้ โปรแกรมท่ีใช้ เร่ิมระบบการทางานหนุ่ ยนต์ (User Program) สามารถทางานบนเครื่องคอมพวิ เตอร์เครื่องเดียวกนั หรือตา่ ง เครื่องกนั ก็ได้ โดย Console และ User Program จะตดิ ตอ่ ส่ือสารกนั ด้วยโปรโตคอล TCP (Transmission Control Protocol)

20 บทท่ี 3 รายละเอียดของการพฒั นา 3.1เคร่ืองมือท่ใี ช้ในการพฒั นา 3.1.1 ฮาร์ดแวร์ (Hardware)  หนุ่ ยนต์ Surveyor SRV-1 จานวน 2 ตวั ขนึ ้ ไป  Cisco Aironet 1100 Series Wireless Access Point สาหรับใช้เป็นศนู ย์รวมการรับ-สง่ ข้อมลู ทงั้ หมด 3.1.2 ซอฟต์แวร์ (Software)  ระบบปฏิบตั กิ าร Windows 7  Microsoft Visual Studio 2010 สาหรับใช้เขียนภาษา C#  AForge.NET Framework เวอร์ชนั 2.1.5 สาหรับใช้ตดิ ตอ่ กบั หนุ่ ยนต์ Surveyor SRV-1 3.1.3 อุปกรณ์เสริมอ่ืนๆ  สนามฟิวเจอร์บอร์ดสีขาว ท่ีมีความกว้าง และความยาว มากกวา่ 1 เมตรขนึ ้ ไป แตไ่ มเ่ กิน 2 เมตร  วตั ถทุ รงสี่เหล่ียม ทรงกระบอก และปริซมึ หน้าตดั รูปสามเหล่ียม ที่มีขนาดที่บรรจไุ ด้พอดใี นทรง ลกู บาศ์กขนาด 6 x 6 x 6 ลกู บาศ์กเซนตเิ มตร  วตั ถทุ รงกระบอก ท่ีจะใช้เป็ นเป้ าหมายให้หนุ่ ยนต์นาวตั ถมุ าวาง และมีขนาดเส้นผา่ นศนู ย์กลาง 10 เซนตเิ มตร สงู 20 เซนตเิ มตร 3.2Functional Specification Functional Specification ของระบบห่นุ ยนตห์ ลายตวั สามารถแบง่ ได้ออกเป็น 3 สว่ น ตามหน้าที่การ ทางาน คอื Functional Specification ของ Console ของโปรแกรมผ้ใู ช้ และของกลมุ่ หนุ่ ยนต์

21 3.2.1 Functional Specification ของ Console 1. Console สามารถสงั่ งานพืน้ ฐานแกห่ นุ่ ยนต์ได้ เชน่ สงั่ ให้มอเตอร์หมนุ สงั่ เปิด Laser หรือสงั่ ให้รับภาพ จากกล้องที่ตดิ ตงั้ บนตวั หนุ่ ยนต์ และ Console ต้องสามารถรองรับการเขียนโปรแกรมภาษา PicoC ลง หนว่ ยความจาแฟลชบนตวั หนุ่ ยนต์ได้ 2. ผ้ใู ช้สามารถกาหนดคา่ สีของวตั ถตุ า่ งๆ โดยการเก็บจดุ ภาพตวั อยา่ งของวตั ถุ จากภาพใน Console รวมทงั้ นาเข้า หรือจดั เก็บคา่ สีของวตั ถไุ ด้ 3. Console ต้องมีความสามารถในการประมวลผลภาพ (Image Processing) เพ่ือใช้ใน การตรวจหาวตั ถุ 4. ผ้ใู ช้สามารถเขียนโปรแกรมสงั่ งานหนุ่ ยนต์ได้ โดยการเขียนโปรแกรมภาษา C# ในไฟล์ RobotExecutionCode.cs ซง่ึ เป็นไฟล์เก็บซอร์สโค้ดการทางานของหนุ่ ยนต์ และเป็นสว่ นหนง่ึ ของ ซอร์สโค้ดทงั้ หมดของโปรแกรม Console ดงั นนั้ เมื่อมีการแก้ไขไฟล์นี ้จะต้องทาการคอมไพล์โปรแกรม Console ใหมท่ งั้ หมด 5. Console ท่ีพฒั นาขนึ ้ มา รวมทงั้ ซอร์สโค้ดในไฟล์ RobotExecution.cs สามารถนาไปใช้กบั หนุ่ ยนต์ตวั ใดก็ได้ (Write once, run anywhere) 3.2.2 Functional Specification ของโปรแกรมผู้ใช้ 1. ผ้ใู ช้สามารถเรียกดสู ถานะการทางานของระบบหนุ่ ยนตไ์ ด้ 2. ผ้ใู ช้สามารถเร่ิมการทางาน หรือหยดุ การทางานของระบบหนุ่ ยนต์หลายตวั ได้ทกุ เมื่อ 3.2.3 Functional Specification ของกลุ่มห่นุ ยนต์ 1. ในกรณีที่มีหนุ่ ยนต์ภายในกลมุ่ เกิดข้อผิดพลาด ระบบจะต้องรายงานให้ผ้ใู ช้ทราบ และหนุ่ ยนต์ตวั ที่ สามารถทางานได้ จะต้องมาทางานแทนที่หนุ่ ยนต์ตวั ท่ีขดั ข้อง 2. หนุ่ ยนต์ภายในสนาม สามารถหลบหลีกหนุ่ ยนต์ตวั อ่ืนได้ ตามรูปแบบท่ีได้อธิบายไว้ในหวั ข้อ 2.4 3. ระบบหนุ่ ยนต์หลายตวั จะต้องรองรับการเพิม่ -ลดจานวนหนุ่ ยนต์ได้ โดยไมจ่ าเป็นต้องปรับแก้ระบบแต่ อยา่ งใด อยา่ งไรก็ตาม ระบบหนุ่ ยนตห์ ลายตวั สามารถรองรับจานวนหนุ่ ยนต์ได้ไมเ่ กิน 5 ตวั

22 3.3ขัน้ ตอนการทางานของระบบห่นุ ยนต์หลายตัว ขนั้ ตอนการทางานของระบบหนุ่ ยนต์ สามารถแบง่ ได้เป็น 7 ขนั้ ตอน ดงั นี ้ 1. ผ้ใู ช้สง่ั เร่ิมระบบหนุ่ ยนต์หลายตวั โดยผา่ นทางโปรแกรมผ้ใู ช้ 2. หนุ่ ยนต์แตล่ ะตวั หมนุ รอบตวั เองเพ่ือหาวตั ถทุ ่ีตวั มนั เองจะต้องไปจบั 3. เม่ือหนุ่ ยนตพ์ บวตั ถทุ ี่ต้องการแล้ว หนุ่ ยนต์ก็จะมงุ่ หน้าไปยงั วตั ถชุ ิน้ นนั้ 4. เม่ือหนุ่ ยนต์จบั วตั ถไุ ด้แล้ว ห่นุ ยนต์จะต้องหาตาแหนง่ เป้ าหมายที่จะนาวตั ถไุ ปวางตอ่ 5. เมื่อหนุ่ ยนตพ์ บตาแหนง่ เป้ าหมายแล้ว หนุ่ ยนต์จะต้องนาวตั ถไุ ปวางไว้ ณ ตาแหนง่ เป้ าหมาย 6. เม่ือหนุ่ ยนตท์ างานเสร็จแล้ว หนุ่ ยนต์ตวั นนั้ จะรายงานให้หนุ่ ยนตต์ วั อื่นทราบ 7. เม่ือหนุ่ ยนตท์ กุ ตวั ทางานเสร็จสิน้ แล้ว ก็จะแจ้งให้ผ้ใู ช้ทราบผา่ นทางโปรแกรมผ้ใู ช้ ขนั้ ตอนท่ี 1 และ 2 สามารถแสดงได้โดยผงั การทางานตามรูปที่ 14 ขนั้ ตอนท่ี 3 สามารถแสดงได้โดยผงั การทางานตามรูปที่ 15 ขนั้ ตอนท่ี 4 สามารถแสดงได้โดยผงั การทางานตามรูปท่ี 16 ขนั้ ตอนที่ 5, 6 และ 7 สามารถแสดงได้โดยผงั การทางานตามรูปท่ี 17 สาหรับกรณีเฉพาะ ท่ีทาให้ขนั้ ตอนการทางานของระบบห่นุ ยนต์หลายตวั ไมต่ รงตามท่ีได้เขียนไว้ มีอยู่ 2 กรณี คือ 1. หนุ่ ยนตไ์ มส่ ามารถหาวตั ถทุ ่ีจะไปจบั ได้ภายในระยะเวลาที่กาหนด ทงั้ ที่เกิดจากการท่ีหนุ่ ยนต์ตวั อ่ืนบงั วตั ถุ และการที่ไมม่ ีวตั ถเุ หลือให้ห่นุ ยนต์ตวั นีเ้ข้าไปจบั เลย โดยหนุ่ ยนต์ตวั นีจ้ ะหยดุ การ ค้นหา และจะไมท่ าอะไรตอ่ แตจ่ ะรอทางานในกรณีที่มีหนุ่ ยนต์ตวั อ่ืนเกิดข้อผิดพลาด 2. หนุ่ ยนต์ภายในกลมุ่ ตรวจพบวา่ มีหนุ่ ยนต์ภายในกลมุ่ เกิดขดั ข้อง ทาให้หนุ่ ยนตต์ วั ท่ีทางานเสร็จ แล้ว หรือตวั ท่ีทางานได้ ต้องเข้ามารับงานแทนท่ีหนุ่ ยนต์ท่ีขดั ข้อง กรณีพิเศษทงั้ 2 กรณี สามารถแสดงได้โดยผงั การทางานตามรูปท่ี 18

23   5           B รูปท่ี 14 ผงั การทางานแสดงขนั้ ตอนการทางานที่ 1 และ 2

B 24 WIDTH = รูปท่ี 15 ผงั การทางานแสดงขนั้ ตอนการทางานที่ 3 XCENTER = WIDTH / 2 C cx =  w= A= A > 10000 pixels  D w > 0.5 * WIDTH  C   cx > XCENTER + 40  cx < XCENTER - 40

25 D   E รูปท่ี 16 ผงั การทางานแสดงขนั้ ตอนการทางานท่ี 4

26 E  WIDTH =  XCENTER = WIDTH / 2 F cx =  w= A= A > 7000 pixels   w > 0.5 * WIDTH  F   cx > XCENTER + 40  cx < XCENTER - 40  รูปท่ี 17 ผงั การทางานแสดงขนั้ ตอนการทางานที่ 5, 6 และ 7

27 G  G 5    ID    ID     G รูปท่ี 18 ผงั การทางานแสดงขนั้ ตอนการตรวจสอบความผดิ พลาดของหนุ่ ยนตใ์ นระบบ ท่ีจะทาให้เกิดกรณีพเิ ศษขนึ ้ มา

28 3.4 โครงสร้ างของซอฟต์ แวร์ รูปท่ี 19 โครงสร้างของซอฟต์แวร์ของ Console, โปรแกรมผ้ใู ช้ และกลมุ่ หนุ่ ยนต์

29 โครงสร้างของซอฟต์แวร์ (Software Architecture) ของระบบหนุ่ ยนตห์ ลายตวั ดงั รูปที่ 19 ประกอบด้วยโครงสร้างซอฟต์แวร์ของ 3 สว่ นยอ่ ย คือ 1. โครงสร้างซอฟต์แวร์ของ Console 2. โครงสร้างซอฟต์แวร์ของโปรแกรมผ้ใู ช้ 3. โครงสร้างซอฟต์แวร์ของกลมุ่ หนุ่ ยนต์ โดยท่ีแตล่ ะสว่ น ประกอบด้วยโมดลู (Module) ตา่ งๆ ดงั นี ้ 3.4.1 โครงสร้างซอฟต์แวร์ของ Console 1. TCP Communication Module TCP Communication Module เป็นโมดลู ที่ใช้ในการรับ-สง่ ข้อความสง่ั งาน หรือข้อความรายงาน สถานะการทางานตา่ งๆ กบั ระบบหนุ่ ยนต์ และโปรแกรมผ้ใู ช้ ภายในโมดลู นี ้ จะมีโมดลู ยอ่ ยที่ช่ือวา่ Message Interpretation Module สาหรับใช้ตีความข้อความ ที่ถกู สง่ มาในรูปแบบตา่ งๆ ว่าเป็นคาสง่ั หรือสถานะการ ทางานประเภทใดนนั่ เอง 2. Image Processing Module Image Processing Module เป็นโมดลู ท่ีทาหน้าท่ีรับภาพจากกล้องของหนุ่ ยนต์ มาทาการประมวลผล โดยเร่ิมแรก ผ้ใู ช้จะต้องกาหนดคา่ สีของวตั ถใุ ห้กบั โปรแกรมกอ่ น โดยผา่ นทางไฟล์ข้อความ (Text File) หรือ ผา่ นทาง Console โมดลู นี ้ประกอบด้วย 2 โมดลู ยอ่ ยคือ a. Object Detection Module เป็นโมดลู ท่ีทาหน้าท่ีหาตาแหนง่ ทิศทาง และขนาด ของวตั ถแุ ละปลายทาง b. Collision Detection Module เป็นโมดลู ท่ีทาหน้าท่ีคอยตรวจสอบวา่ มีหนุ่ ยนต์ตวั อ่ืนขวางแนวการ เดนิ หรือไม่ โดยใช้วิธีการหาตาแหนง่ ทศิ ทาง และขนาดของแถบสีที่ตดิ อยบู่ นตวั ห่นุ ยนต์

30 3. Core Module Core Module เป็นโมดลู ที่ทาหน้าที่รับข้อมลู จากโมดลู TCP Communication และ Image Processing มาทาการประมวลผลตอ่ โดยข้อมลู ท่ีรับเข้ามา คือ คาสงั่ ท่ีใช้สง่ั งานหนุ่ ยนต์ สถานะการทางาน ของหนุ่ ยนตภ์ ายในกลมุ่ และข้อมลู ตาแหนง่ ทิศทาง และขนาดของทงั้ วตั ถแุ ละปลายทาง โมดลู นี ้ประกอบด้วย 3 โมดลู ยอ่ ย คือ a. Robot Execution Module เป็นโมดลู ท่ีกาหนดขนั้ ตอนการทางานของห่นุ ยนต์ และเป็นโมดลู ท่ี สามารถแก้ไขได้ เพ่ือให้หนุ่ ยนต์มีการทางานเป็ นไปตามที่ผ้ใู ช้ต้องการ b. Fault Tolerance Module เป็นโมดลู ที่คอยจดั การเก่ียวกบั ความผิดพลาดที่เกิดขนึ ้ กบั หนุ่ ยนต์ภายใน ระบบ และทาหน้าที่ก้คู ืนระบบให้กลบั สสู่ ภาพปกตเิ ทา่ ท่ีจะเป็นไปได้ c. Coordination and Agreement Module ทาหน้าที่เก็บสถานะการทางานของหนุ่ ยนตท์ กุ ตวั ภายใน กลมุ่ และถ้าหากเกิดการเปลี่ยนแปลงกบั ระบบห่นุ ยนต์ โมดลู นี ้ จะต้องปรับปรุงคา่ สถานะให้เป็ น สถานะลา่ สดุ ของระบบด้วย 3.4.2 โครงสร้างซอฟต์แวร์ของโปรแกรมผู้ใช้ 1. TCP Communication Module TCP Communication Module เป็นโมดลู ท่ีใช้ในการรับ-สง่ ข้อความสง่ั งาน หรือข้อความรายงาน สถานะการทางานตา่ งๆ กบั Console ภายในโมดลู นี ้จะมีโมดลู ยอ่ ยท่ีชื่อวา่ Message Interpretation Module สาหรับใช้ตคี วามข้อความ ท่ีถกู สง่ มาในรูปแบบตา่ งๆ วา่ เป็นคาสงั่ หรือสถานะการทางานประเภทใดนน่ั เอง นอกจากนี ้ โมดลู นีย้ งั ทาหน้าท่ีรับคาสง่ั จากผ้ใู ช้ มาทาการวิเคราะห์ และสง่ั งานให้ Console รวมทงั้ กลมุ่ หนุ่ ยนต์ ทางานตามท่ีผ้ใู ช้ต้องการ

31 3.4.3 โครงสร้างซอฟต์แวร์ของกลุ่มห่นุ ยนต์ 1. TCP Communication Module TCP Communication Module เป็นโมดลู ที่ใช้ในการรับข้อความสง่ั งานจาก Console และสง่ ข้อมลู ภาพให้กบั Console 3.5ขอบเขตละข้อจากดั ของระบบท่พี ฒั นา 1. ระบบหนุ่ ยนต์หลายตวั ท่ีพฒั นาขนึ ้ มานี ้ สามารถทางานได้ภายในสนาม ท่ีมีพืน้ และขอบสนามเป็นสีขาว เทา่ นนั้ หากทางานภายในสภาวะแวดล้อมอ่ืน ระบบหนุ่ ยนต์จะทางานผดิ พลาด เพราะมีแสงรบกวนจาก ภายนอกมาก 2. ระบบหนุ่ ยนต์หลายตวั สามารถป้ องกนั การชนได้บางกรณีเทา่ นนั้ กล่าวคอื ห่นุ ยนต์สามารถป้ องกนั การ ชนได้ ก็ตอ่ เม่ือหนุ่ ยนต์ต้องเหน็ แถบสีที่ติดตงั้ บนหนุ่ ยนต์ตวั อื่น การเกิดมมุ อบั ของกล้อง ทาให้หนุ่ ยนตไ์ ม่ สามารถตรวจสอบตาแหนง่ ของหนุ่ ยนต์ตวั อ่ืนได้ 3. ระบบหนุ่ ยนต์หลายตวั สามารถทนตอ่ ความผิดพลาดแบบแครช (Crash) ได้เทา่ นนั้ ไมส่ ามารถทนตอ่ ความผิดพลาดแบบอาร์บทิ รารี่ (Arbitrary) ได้ กลา่ วคือ หนุ่ ยนต์ภายในกลมุ่ สามารถเข้าไปชว่ ยเหลือ หนุ่ ยนต์ท่ีหยดุ การตอบสนองได้ แตจ่ ะไมส่ ามารถเข้าไปช่วยเหลือหนุ่ ยนตท์ ี่ทางาน แตท่ างานผดิ พลาดได้ 4. หนุ่ ยนต์สามารถทางานรวมกนั ได้ เม่ือหนุ่ ยนต์อยภู่ ายในเครือข่ายท่ีกาหนดไว้ให้เทา่ นนั้ 5. ระบบหนุ่ ยนตส์ ามารถรองรับหนุ่ ยนต์ได้ไมเ่ กิน 5 ตวั

32 บทท่ี 4 ผลการทดสอบระบบ การทดสอบระบบ จะเริ่มจากการทดสอบความถกู ต้องของหนว่ ยการทางานย่อยๆ ก่อน แล้วจงึ คอ่ ย ทดสอบระบบโดยรวมในภายหลงั เพื่อเปรียบเทียบความถกู ต้อง ระยะเวลาท่ีใช้ และประสิทธิภาพระหวา่ ง หนุ่ ยนตต์ วั เดยี ว กบั ระบบหนุ่ ยนต์หลายตวั ดงั นนั้ การทดสอบระบบจะแบง่ ออกเป็น 4 ชดุ การทดสอบ แต่ ก่อนท่ีจะกลา่ วถึงรายละเอียดของการทดสอบ ผ้พู ฒั นาขอนยิ ามการระบตุ าแหนง่ และวตั ถใุ นสนาม โดยใช้ Configuration ซงึ่ การหา Configuration มีขนั้ ตอนดงั นี ้ +x(cm) B R G R1 R2 +y(cm) รูปท่ี 20 รูปแสดงการบอกพิกดั ของวตั ถุ และหนุ่ ยนต์ในสนาม ให้ R, G, B เป็นตาแหนง่ ของวตั ถสุ ีแดง, สีเขียว, สีนา้ เงิน, และ Ri เป็นตาแหนง่ ของหนุ่ ยนต์ตวั ที่ i Configuration ของสนามนี ้คือ (R, G, B, R1, R2, …) และหากวตั ถใุ ดหรือหนุ่ ยนต์ตวั ใดไมม่ ีในสนาม ก็ใช้คา่ null แทน

33 4.1การทดสอบความแม่นยาในการจบั วัตถุ Configuration ครัง้ ท่ี ผลการทดสอบ ((90, 10), null, null, (10, 90), null) 1 หนุ่ ยนตห์ าวตั ถไุ มพ่ บ (null, (90, 10), null, (10, 90), null) 2 หนุ่ ยนต์หาวตั ถไุ มพ่ บ (null, null, (90, 10),(10, 90), null) 3 หนุ่ ยนตห์ าวตั ถไุ มพ่ บ ((80, 30), null, null, (10, 90), null) 4 หนุ่ ยนตห์ าวตั ถไุ มพ่ บ (null, (80, 30), null, (10, 90), null) 5 หนุ่ ยนตห์ ยิบวตั ถสุ ีเขียวได้ (null, null, (80, 30),(10, 90), null) 6 หนุ่ ยนตห์ าวตั ถไุ มพ่ บ ((85, 50), null, null, (10, 90), null) 7 หนุ่ ยนตห์ ยิบวตั ถสุ ีแดงได้ (null, (85, 50), null, (10, 90), null) 8 หนุ่ ยนต์หยิบวตั ถสุ ีเขียวได้ (null, null, (85, 50),(10, 90), null) 9 หนุ่ ยนต์หาวตั ถไุ มพ่ บ ((50, 50), null, null, (10, 90), null) 10 หนุ่ ยนตห์ ยิบวตั ถสุ ีแดงได้ (null, (50, 50), null, (10, 90), null) 11 หนุ่ ยนต์หยิบวตั ถสุ ีเขียวไมไ่ ด้ (null, null, (50, 50),(10, 90), null) 12 หนุ่ ยนตห์ ยิบวตั ถสุ ีนา้ เงินได้ ((40, 75), null, null, (10, 90), null) 13 หนุ่ ยนตห์ ยิบวตั ถสุ ีแดงได้ (null, (40, 75), null, (10, 90), null) 14 หนุ่ ยนต์หยิบวตั ถสุ ีเขียวได้ (null, null, (40, 75),(10, 90), null) 15 หนุ่ ยนตห์ ยิบวตั ถสุ ีนา้ เงินได้ ตารางท่ี 1 ผลการทดสอบความแมน่ ยาในการจบั วตั ถุ

34 4.2การทดสอบความสามารถในการป้ องกันการชน Configuration ครัง้ ท่ี ผลการทดสอบ (null, (30, 0), (100, 70)), 1 หนุ่ ยนต์ R1 และ R2 ชนกนั ตงั้ แตเ่ ริ่มการทางาน (20, 70), (30, 80)) 2 หนุ่ ยนต์ R1 และ R2 ชนกนั ตงั้ แตเ่ ร่ิมการทางาน (null , (30, 0), (100, 50), 3 หนุ่ ยนต์ R2 หยดุ รอหนุ่ ยนต์ R1 ให้เคล่ือนท่ีผา่ นไปก่อน (20, 50), (30, 80)) 4 หนุ่ ยนต์ R2 หยดุ รอหนุ่ ยนต์ R1 ให้เคลื่อนท่ีผา่ นไปกอ่ น null , (30, 0), (100, 30), 5 หนุ่ ยนต์ R2 ไมเ่ หน็ หนุ่ ยนต์ R1 แตไ่ มเ่ กิดการชนกนั (20, 30), (30, 80)) 6 หนุ่ ยนต์ R2 ไมเ่ หน็ หนุ่ ยนต์ R1 แตไ่ มเ่ กิดการชนกนั (null , (50, 0), (100, 70), 7 หนุ่ ยนต์ R2 หยดุ รอหนุ่ ยนต์ R1 ให้เคล่ือนที่ผา่ นไปก่อน (20, 70), (50, 80)) 8 หนุ่ ยนต์ R2 หยดุ รอหนุ่ ยนต์ R1 ให้เคล่ือนที่ผา่ นไปก่อน (null , (50, 0), (100, 50), 9 หนุ่ ยนต์ R1 และ R2 ชนกนั ตรงกลางสนาม (20, 50), (50, 80)) 10 หนุ่ ยนต์ R1 และ R2 ชนกนั ตรงกลางสนาม (null , (50, 0), (100, 30), 11 หนุ่ ยนต์ R2 หยดุ รอหนุ่ ยนต์ R1 ให้เคลื่อนที่ผา่ นไปก่อน (20, 30), (50, 80)) 12 หนุ่ ยนต์ R2 หยดุ รอหนุ่ ยนต์ R1 ให้เคล่ือนที่ผา่ นไปก่อน (null , (70, 0), (100, 70), 13 หนุ่ ยนต์ R2 วิ่งเข้าหาหนุ่ ยนต์ R1 เพราะคดิ ว่าเป็นวตั ถสุ ีนา้ เงิน (20,70), (70, 80)) 14 หนุ่ ยนต์ R2 วง่ิ เข้าหาหนุ่ ยนต์ R1 เพราะคดิ ว่าเป็นวตั ถสุ ีนา้ เงิน (null , (70, 0), (100, 50), 15 หนุ่ ยนต์ R2 หยดุ รอหนุ่ ยนต์ R1 ให้เคลื่อนท่ีผา่ นไปก่อน (20, 50), (70, 80)) 16 หนุ่ ยนต์ R2 หยดุ รอหนุ่ ยนต์ R1 ให้เคลื่อนท่ีผา่ นไปก่อน (null , (70, 0), (100, 30), 17 หนุ่ ยนต์ R1 และ R2 ชนกนั ตรงบริเวณวตั ถุ (20, 30), (70, 80)) 18 หนุ่ ยนต์ R1 และ R2 ชนกนั ตรงบริเวณวตั ถุ ตารางท่ี 2 ผลการทดสอบความสามารถในการป้ องกนั การชน

35 4.3การทดสอบความทนทานต่อความผดิ พลาด โดยทดลองปิ ดการทางานห่นุ ยนต์ 1 ตัว การทดสอบนี ้จะทดลองปิ ดสวิตซ์ที่หนุ่ ยนต์ตวั ท่ี 2 ณ สถานะการทางานตา่ งๆ ของระบบหนุ่ ยนต์ จากนนั้ จงึ สงั เกตการตอบสนองของหนุ่ ยนต์ตวั ที่ 1 สถานะการทางานของห่นุ ยนต์ ครัง้ ท่ี ผลการทดสอบ หนุ่ ยนต์ตวั ท่ี 2 ยงั หาวตั ถทุ ่ี 1 หนุ่ ยนต์ตวั ท่ี 1 ทางานตอ่ จนเสร็จ จะเข้าไปจบั ไมเ่ จอ หนุ่ ยนตต์ วั ที่ 2 หาวตั ถทุ ี่จะเข้าไปจบั ได้แล้ว 2 เม่ือหนุ่ ยนตต์ วั ท่ี 1 ทางานเสร็จแล้ว และหนุ่ ยนตต์ วั ที่ 1 กาลงั ทางานอยู่ จงึ จะไปชว่ ยหนุ่ ยนต์ตวั ที่ 2 ทางาน หนุ่ ยนตต์ วั ที่ 2 หาวตั ถทุ ่ีจะเข้าไปจบั ได้แล้ว 3 หนุ่ ยนต์ตวั ที่ 1 เริ่มการทางานอีกครัง้ แตห่ นุ่ ยนต์ตวั ที่ 1 วา่ งงาน โดยจะไปชว่ ยหนุ่ ยนต์ตวั ที่ 2 ทางาน หนุ่ ยนต์ตวั ท่ี 2 วา่ งงาน 4 หนุ่ ยนต์ตวั ท่ี 1 ทางานตอ่ จนเสร็จ ตารางท่ี 3 ผลการทดสอบความทนทานตอ่ ความผดิ พลาด

36 4.4การทดสอบความถกู ต้องโดยรวม และเวลาท่ใี ช้ Configuration ครัง้ ท่ี ผลการทดสอบ ((40, 60), (50, 30), (70, 60), (30, 80), null) 1 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 37.3 วนิ าที ((40, 60), (50, 30), (70, 60), (30, 80), (80, 80)) 2 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 38.7 วินาที ((40, 60), (50, 30), (70, 60), 3 หนุ่ ยนต์ R1 และ R2 ชนกนั เพราะเกิดจากมมุ อบั กล้อง (30, 80), (80, 80), (20, 20)) 4 หนุ่ ยนต์ R2 หยบิ วตั ถสุ ีนา้ เงินไมไ่ ด้ ((40, 60), (50, 30), (70, 60), (20, 80), null) 5 หนุ่ ยนต์ R2 และ R3 ชนปะทะกนั เพราะแผงตงั้ กล้องบนตวั หนุ่ ((40, 60), (50, 30), (70, 60), บดบงั แถบสี (20, 80), (80, 80)) 6 หนุ่ ยนต์ R2 จบั วตั ถสุ ีนา้ เงินไมไ่ ด้ ((40, 60), (50, 30), (70, 60), (20, 80), (80, 80), (80, 20)) 7 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 35.2 วินาที ((40, 60), (50, 30), (70, 60), 8 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 38.1 วนิ าที (60, 50), null) 9 หนุ่ ยนต์ R2 ไมย่ อมปลอ่ ยวตั ถสุ ีนา้ เงิน ((40, 60), (50, 30), (70, 60), (60, 50), (70, 50)) 10 หนุ่ ยนต์ทงั้ สองตวั ชว่ ยกนั ทางานเสร็จในเวลา 34.0 วนิ าที ((40, 60), (50, 30), (70, 60), 11 หนุ่ ยนต์ R2 และ R3 ชนปะทะกนั แตก่ ็เคล่ือนท่ีตอ่ ไปได้ ทาให้ (60, 50), (70, 50), (40, 50)) หนุ่ ยนต์ทงั้ สามตวั ทางานเสร็จในเวลา 24.3 วนิ าที 12 หนุ่ ยนต์ R2 ถกู R1 ขวางอยู่ แต่ R2 ไมส่ ามารถตรจวจสอบได้ เพราะมมุ อบั ของกล้อง 13 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 37.0 วินาที 14 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 34.5 วนิ าที 15 หนุ่ ยนต์ R2 ขวางทาง R1 ในณะท่ีหนุ่ ยนต์ R1 จะไปหยิบวตั ถสุ ี แดง ทาให้เกิดการชนกนั 16 หนุ่ ยนต์ R2 ขวางทาง R1 ในณะที่หนุ่ ยนต์ R1 จะไปหยิบวตั ถสุ ี แดง ทาให้เกิดการชนกนั 17 หนุ่ ยนต์ R3 ไมส่ ามารถเคล่ือนท่ีตอ่ ไปได้ เพราะตดิ แขนของ หนุ่ ยนต์ R1 18 หนุ่ ยนต์ทงั้ สามตวั ช่วยกนั ทางานเสร็จในเวลา 18.5 วนิ าที

37 Configuration ครัง้ ท่ี ผลการทดสอบ ((80, 50), (50, 20), (50, 50), (30, 80), null) 19 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 34.2 วินาที ((80, 50), (50, 20), (50, 50), (30, 80), (80, 80)) 20 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 42.2 วินาที ((80, 50), (50, 20), (50, 50), (30, 80), (80, 80), (20, 20)) 21 หนุ่ ยนต์ R1 จบั วตั ถสุ ีเขียวไมไ่ ด้ ((80, 50), (50, 20), (50, 50), (20, 80), null) 22 หนุ่ ยนต์ R1 จบั วตั ถสุ ีนา้ เงินไมไ่ ด้ และหนุ่ ยนต์เกิดการชนกนั ((80, 50), (50, 20), (50, 50), (20, 80), (80, 80)) 23 หนุ่ ยนต์ R1 ถอยหลงั ชน R3 ((80, 50), (50, 20), (50, 50), 24 หนุ่ ยนต์ R2 ตดิ ขอบสนาม (20, 80), (80, 80), (80, 20)) 25 หนุ่ ยนต์ R1 จบั วตั ถสุ ีเขียวไมไ่ ด้ ((80, 50), (50, 20), (50, 50), (60, 50), null) 26 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 35.4 วนิ าที ((80, 50), (50, 20), (50, 50), (60, 50), (70, 50)) 27 หนุ่ ยนต์ R1 จบั วตั ถสุ ีเขียวไมไ่ ด้ ((80, 50), (50, 20), (50, 50), (60, 50), (70, 50), (40, 50)) 28 หนุ่ ยนตท์ งั้ สองตวั ชว่ ยกนั ทางานเสร็จในเวลา 33.9 วนิ าที 29 หนุ่ ยนต์ R2 และ R3 ชนปะทะกนั เพราะแผงตงั้ กล้องบนตวั หนุ่ บดบงั แถบสี 30 หนุ่ ยนต์ R2 และ R3 ชนปะทะกนั เพราะแผงตงั้ กล้องบนตวั หนุ่ บดบงั แถบสี 31 หนุ่ ยนต์ R1 จบั วตั ถสุ ีเขียวไมไ่ ด้ 32 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 30.6 วินาที 33 หนุ่ ยนต์ R1 และ R2 ชนกนั ตงั้ แตต่ อนเริ่มงาน 34 หนุ่ ยนต์ R1 และ R2 ชนกนั ตงั้ แตต่ อนเร่ิมงาน 35 หนุ่ ยนต์ทงั้ สามตวั หยิบวตั ถไุ ด้ แตว่ ง่ิ ชนกนั ทกุ ตวั 36 หนุ่ ยนต์ทงั้ สามตวั หยิบวตั ถไุ ด้ แตว่ ่ิงชนกนั ทกุ ตวั

38 Configuration ครัง้ ท่ี ผลการทดสอบ ((30, 70), (70, 30), (50, 50), (30, 80), null) 37 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 36.6 วนิ าที ((30, 70), (70, 30), (50, 50), 38 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 42.1 วินาที (30, 80), (80, 80)) 39 หนุ่ ยนต์ R1 และ R2 ชนกนั เพราะเกิดจากมมุ อบั กล้อง ((30, 70), (70, 30), (50, 50), (30, 80), (80, 80), (20, 20)) หนุ่ ยนต์ R1 ถกู ขวางโดยหนุ่ ยนต์ R2 หนุ่ ยนต์ R1 จงึ ต้องรอเป็น ((30, 70), (70, 30), (50, 50), 40 เวลานาน ทาให้ห่นุ ยนตท์ งั้ สองตวั ชว่ ยกนั ทางานเสร็จในเวลา (20, 80), null) ((30, 70), (70, 30), (50, 50), 122.3 วนิ าที (20, 80), (80, 80)) 41 หนุ่ ยนตท์ งั้ สามตวั ชว่ ยกนั ทางานเสร็จในเวลา 25.2 วินาที ((30, 70), (70, 30), (50, 50), (20, 80), (80, 80), (80, 20)) 42 หนุ่ ยนต์ R1 ไมส่ ามารถเคลื่อนท่ีตอ่ ไปได้ เพราะตดิ แขนของ หนุ่ ยนต์ R3 ((30, 70), (70, 30), (50, 50), (60, 50), null, null) 43 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 40.9 วินาที ((30, 70), (70, 30), (50, 50), (60, 50), (70, 50), null) 44 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 45.6 วนิ าที ((30, 70), (70, 30), (50, 50), 45 หนุ่ ยนต์ทงั้ สองตวั ชว่ ยกนั ทางานเสร็จในเวลา 27.8 วินาที (60, 50), (70, 50), (40, 50)) 46 หนุ่ ยนต์ทงั้ สองตวั ชว่ ยกนั ทางานเสร็จในเวลา 26.9 วินาที 47 หนุ่ ยนต์ R1 และ R2 ชนกนั เพราะเกิดจากมมุ อบั กล้อง 48 หนุ่ ยนต์ R2 ไมส่ ามารถเคลื่อนที่ตอ่ ไปได้ เพราะตดิ แขนของ หนุ่ ยนต์ R3 49 หนุ่ ยนต์ R1 จบั วตั ถสุ ีเขียวไมไ่ ด้ 50 หนุ่ ยนต์ R1 ทางานเสร็จในเวลา 40.6 วินาที 51 หนุ่ ยนต์ R1 และ R2 ชนกนั เพราะเกิดจากมมุ อบั กล้อง 52 หนุ่ ยนต์ R1 และ R2 ชนกนั เพราะเกิดจากมมุ อบั กล้อง 53 หนุ่ ยนต์ R1 และ R3 ชนปะทะกนั เพราะแผงตงั้ กล้องบนตวั หนุ่ บดบงั แถบสี 54 หนุ่ ยนต์ R1 ไมส่ ามารถเคล่ือนที่ตอ่ ไปได้ เพราะตดิ แขนของ หนุ่ ยนต์ R3 ตารางท่ี 4 ผลการทดสอบความถกู ต้องโดยรวม และเวลาท่ีใช้

39 จานวนห่นุ ยนต์ ผลการทดสอบ เวลาท่ใี ช้โดยเฉล่ีย ส่วนเบ่ียงเบนมาตรฐาน 1 จานวน 18 ครัง้ (กรณีท่ีทางานถกู ต้อง) 3.71 3.32* ทางานสาเร็จ 15 ครัง้ 37.9 2.97 2 ทางานสาเร็จ 5 ครัง้ 30.6* 3 ทางานสาเร็จ 3 ครัง้ 22.7 *คดิ จากคา่ การทดสอบ 4 ครัง้ และตดั ผลการทดสอบ 1 ครัง้ ทมี่ คี า่ สงู ผิดปกตอิ อกไป ตารางท่ี 5 ตารางการเปรียบเทียบความถกู ต้อง และเวลาในการทางาน ของจานวนหนุ่ ยนตใ์ นกรณีตา่ งๆ 4.5 วิเคราะห์ผลการทดสอบ จากการทดสอบระบบหนุ่ ยนตห์ ลายตวั ทงั้ 4 หวั ข้อนนั้ ผ้พู ฒั นาพบวา่ ประสทิ ธิภาพ และระยะเวลา การทางานของระบบหนุ่ ยนต์หลายตวั ไมเ่ ป็นไปตามที่ผ้พู ฒั นาได้ตงั้ สมมตฐิ านไว้ ผ้พู ฒั นาจงึ นาผลการ ทดสอบมาวิเคราะห์ และพบวา่ ปัญหาเหลา่ นี ้ทาให้ระบบหนุ่ ยนตไ์ มส่ ามารถทางานได้ถูกต้อง 1. เมื่อวตั ถอุ ยไู่ กลจากหนุ่ ยนต์มากเกินไป หนุ่ ยนตจ์ ะมองไมเ่ หน็ วตั ถุ ทาให้หนุ่ ยนต์หาวตั ถไุ มพ่ บ (อ้างอิง จากการทดสอบที่ 4.1) 2. ขณะที่หนุ่ ยนตต์ ้องการจะเข้าไปหยบิ วตั ถุ อาจเกิดความลา่ ช้าของระบบเครือขา่ ย หรือแสงของวตั ถุ เปล่ียนไปก็ได้ ทาให้หนุ่ ยนต์ประมวลผลภาพผิดพลาด หรือประมวลผลไมท่ นั ทาให้ห่นุ ยนต์ไมส่ ามารถ เข้าไปจบั วตั ถไุ ด้อยา่ งแมน่ ยา (อ้างองิ จากการทดสอบท่ี 4.1) 3. หนุ่ ยนตส์ ามารถป้ องกนั การชนได้เพียงบางกรณีเทา่ นนั้ ตามท่ีได้อธิบายในหวั ข้อ 2.3.2 นอกจากนี ้ หนุ่ ยนต์อาจเกิดข้อผดิ พลาด โดยการมองแถบสีเป็นวตั ถุก็ได้ (อ้างอิงจากการทดสอบที่ 4.2)


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook