13

2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux
Page 2: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux

2. สาระส าคญของโครงการ

ในโครงการนตองการทจะสราง Linux Application เปน Robot Simulator ทเพมประสทธภาพการท างานดวยการค านวณแบบ Parallel บนเครองคอมพวเตอรหลายๆเครอง ซงจะท าใหโปรแกรมเพมขดความสามารถในการจ าลองการท างานของหนยนตจ านวนมากไดพรอมกน เพราะภายในโปรแกรมSimulator ตองอาศยการค านวณทางฟสกสจ านวนมากเพอใหผลการท างานของหนยนตทไดออกมาสมจรง ดงนนการกระจายงานไปยงเครองคอมพวเตอรหลายๆเครองจงท าโปรแกรมใชเวลานอยลงในแตละรอบของการค านวณ

เพอแสดงใหเหนถงประสทธภาพของโปรแกรม เราจะน าไปประยกตใชในกบการศกษา Swarm Robot ซงเปนการใชหนยนตจ านวนมากเขามาชวยกนแกปญหา

ค าสญ (Keywords): Swarm Robot, Simulator, Parallel Computing, ODE engine, MPI Standard

3. หลกการและเหตผล

Simulator ส าหรบหนยนตถสรางขนเพอชวยในการพฒนาและทดลองความสามารถของหนยนตโดยทไมจ าเปนตองสรางของจรงขนมากอนซงท าใหชวยลดคาใชจายและเวลาในการพฒนา โดยทสามารถน าความรทไดจากการทดลองบน Simulator ไปใชในการพฒนาของจรงขนมาได หรอสามารถจ ากดความซบซอนของปญหาทเราตองการศกษาโดยเรมจากการจ าลองสภาพแวดลอมงายๆขนมากอน เชน จ าลองเฉพาะในสวนทสนใจ ในปจจปนม Simulator ส าหรบหนยนตหลายตวทท างานอยบน Linux และสามารถจ าลองการท างานหนยนตไดเชน Webots [1] เปนโปรแกรมทถกท าขายในเชงพาณชย เนนการสรางโมเดลหนยนตจ าลองเหมอนจรงทมขายอยในทองตลาดและม IDE ในการชวยพฒนาศกษาหนยนต นอกจากนแลวยงม Open Source Project ทมเปาหมายในการสราง Simulator ส าหรบศกษา Swarm Robot โดยเฉพาะ เชน Breve [2] และ Robot3D[3] เพอไดผลลพธการท างานหนยนตทเหมอนกบในโลกจรง และสามารถน าผลลพธมาประยกตใชได รายละเอยดความเหมอนจรงตางๆใน Simulator จงเปนสงทตองใหความส าคญอยางมาก ดงนนกฎทางฟสกสตางๆจงถกน ามาประยกตใชภายในโปรแกรม เชนแรงโนมถวง, การชนกนของวตถ, แรงเสยดทาน, โมเมนต ฯลฯ ซงกฏเหลานตองใชการค านวณทศนยมเปนจ านวนมาก ซงแมวาใจปจจบนความสามารถของหนวยประมวลผลจะพฒนาไปมาก แตเมอตองเจอกบการจ าลองโมเดลหนยนตขนมาพรอมกนจ านวนมากระดบรอยตวการประมวลในแตละรอบการค านวณจะเปนไปไดชาไมราบรน ทงนนยงขนอยกบปจจยความซบซอนของสวนประกอบหนยนตทน ามาจ าลองดวย

การประมวลผลแบบขนานหรอ Parallel Computing จงถกน ามาเปนแนวทางในการน ามาปรบใชเพอรบมอ กบการจ าลองการท างานของหนยนตจ านวนมากขนมาพรอมกน ซงเปนแนวคดทใชกบ high-performance computing คอการทเราน าปญหาขนานใหญมาแบงออกเปนสวนเลกๆทสามารถท าการค านวณเพอค าตอบไดโดยอสระตอกน จงท าใหเราสามารถทจะแบงปญหาเหลานไปหลายๆทเพอท าการแกหาค าตอบไปพรอมๆกนได ท าใหเราสามารถค านวณหาค าตอบของปญหาขนาดใหญไดในเวลาทสนลงอยางมนยส าคญ และดวย

Page 3: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux

เทคโนโลย การสงขอมลไปมาระหวางแตละหนวยทสามารถท าไดอยางรวดเรวในปจจบน การแบงงานไปยงแตละหนวยประมวลผลอยางเหมาะสมจะท าใหเราสามารถดงเอาทรพยากรทมอยมาใชไดอยางคมคา

การแกปญหาดวย Swarm Robot ก าลงเปนสงทไดรบความสนใจมากในปจจบน เพราะถาเปนในยคกอนการแกปญหาของหนยนตมกท าในแนวทเปนการใชหนยนตทมความฉลาดเพยงตวเดยวเขามาท าการแกปญหาหรอจดการงานทไดรบการสงงานใหเสรจสน ซงท าใหเกดมขอจ ากดทส าคญคอ เมอปญหาทตองจดการมการเปลยนแปลงไป มจ านวณทมากขนหรอวาเพมขนาด ท าใหการสรางหนยนตเพยงตวเดยวขนมารบผดชอบแกไขปญหาตองมความซบซอนและใชการลงทนในการสรางทเพมขนตามไปดวยจนท าใหบางครงไมคมคากบการสราง ดวยเหตนจงเกดแนวคดในการแกปญหาอกแบบหนงขนมากคอ การใชของงายๆจ านวณมากเขามาแกไขปญหาทมขนาดใหญปญหาขนาดใหญ นนกคอ Swarm Robot นนเอง เปนการแกปญหาทไดรบแรงบนดาลใจมาจากธรรมชาตทใชการท างานรวมกนของสมาชกจ านวนมากเขามาในการแกปญหา ตวอยางเชน พฤตกรรมของมดในการกระจายตวเพออาหารและใชฟโรโมนในการสรางเสนทางระหวางแหลงอาหารถงรง ซงไดมการน าพฤตกรรมนมาประยตใชในการแกปญหาตางๆมากมาย เชน การแกปญหาในการรวมกนคนหาดวยหนยนตหลายๆตว[7], การคาหาเสนทางสนสด [8], การวางแผนการเคลอนทแบบกระจาย[9] ฯลฯ นอกจากนระบบแบบนมขอดในการปรบตวตอปญหาทมการเปลยนแปลง เพราะ สามารถเพมจ านวณสมาชกเขาไปเพอจดการกบปญหานนได และทนตอความเสยหายเนองจากสมาชกในระบบสามารถเขาไปท างานท าแทนกนไดเมอเกดปญหาชน

รปท 3.1 ตวอยางโปรแกรมจ าลองการท างานของหนยนต Webots

Page 4: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux

4. วตถประสงค วตถประสงคของโครงการนคอการสราง Robot Simulator ประสทธภาพสงลงบนระบบปฎบตการ Linux โดยใชแนวคดของ Parallel Computing

5. ปญหาหรอประโยชนทเปนเหตผลใหควรพฒนาโปรแกรม

Robot Simulator เปนเครองมอทเหมาะสมในการศกษาและพฒนาหนยนต แตในปจจบนยงไมม Simulator ทออกแบบมาเฉพาะทางส าหรบรองรบการท างานของหนยนตจ านวนมากพรอมๆกน ความสามารถของ Simulator ทมอยจงชนกบประสทธภาพเครองเทานน

การแกไขปญหาของโครงการนดวยการประมวลผลแบบขนานและการแบงงานไปยงเครองตางๆทเหมาะสม จงเปนทางเลอกทจะใชเครองคอมพวเตอรหลายๆเครองเขามาทดแทนการท างานของเครองประสทธภาพสงทมราคาแพงเครองเดยว โดยคาดหวงใหมประสทธภาพทดกวาโดยใชจ านวนเครองคอมพวเตอรเพมเตมใหนอยทสด

6. เปาหมายและขอบเขตของโครงการ

เปาหมายของโตรงการคอพฒนา Simulator ใหท างานไดบนระบบปฏบตการ Ubuntu Linux โดยสามารถท างานโดยใชเครองคอมพวเตอรตงแตสองเครองขนไปเขามาชวยกนท าหนาทประมวลผลจ าลองท างานของหนยนตใน Simulator น าเสนอตวอยางการท างานโดยการทดสอบจ าลองการท างานของหนยนตตงแต 100 ตวขนไปใหท างานรวมกนเชน การการะจายตวในพนท การคนหาเปาหมายทก าหนด การจดเรยงตวรปแบบตางๆ ซงงานเหลานเปนปญหาพนฐานของSwarm robot แบบ decentralized control

Page 5: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux

7. รายละเอยดของการพฒนา

7.1 เนอเรองยอ ตวอยางของโปรแกรม Robot Simulator ในปจจบน Simbad เปน Open Source project ทท างานอยบนพนฐานของ Java3D library มจดประสงคเพอการศกษาและการทดลองทางวทยาศาสตร เปน Simulator พนฐานทเหมาะส าหรบการศกษาเกยวกบระบบปญญาประดษฐของหนยนตโดยผใชสามารถปรบแตงการท างานของหนยนตและสภาพแวดลอมไดดวยตวเอง

Page 6: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux

Webots เปนโปรแกรมทชวยสรางสภาพแวดลอมในการพฒนาโปรแกรม และ จะลองหนยนตเคลอนท ภายในโปรแกรมผใชจะสามารถออกแบบตงคาความซบซอนของหนยนตทน ามาจ าลองได ส พนผว แรงเสยดทาน น าหนกของวสดตางๆ ภายในตว Simulator ผใชสามารถตงคาได ยงสามารถทจะเลอกตดตงตวรบรจ าลองลงหนยนตทตองการไดอกดวย

Page 7: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux

แนวคดของโปรแกรมทจะสรางขน เปนSimulator บนระบบปฏบตการ Linux ทมความสามารถในการท า Parallel Computing บนหนวยประมวลผลหลายๆหนวย ซงการจ าลองพฤตกรรมของหนยนตจะถกแบงกนไปท าบนแตละหนวยประมาลผลซงท าเราสามารถลดเวลาในการทจะตองใชประมวลหนยนตทกตวได จากนนผลลพธทไดจะถกสงกลบมาทหนวยประมวลผลกลาง โดยการสอสารแลกเปลยนขอมลกนระหวางหนวยจะใช MPI standard [4] การค านวณทางฟสกสและการ Render ภาพจ าลองสามมตออกมาทางจอภาพ จะใช ODE engine [5] เพอเปนการแสดงผลลพธ

รปท 7.1 Flowการท างานของของโปรแกรม

อานสถานะปจจบนของหนยนตแแตละตว

แบงงานการประมวลผลหนยนต ออกเปนสวนยอยๆแยกจากกน

แจกจายงานทไดไปยง แตละหนวยประมวลผลยอย

แตละเครองทไดรบงาน ท าการค านวณ สถานะใหมของหนยนตตามพฤตกรรมทก าหนด

และผลกระทบทเกดขนจากวตถและหนยนตทอยรอบ ๆ

รวบรวมสถานใหมของหนยนตแตละตว ทไดจากหนวยประมวลผลแตละหนวย

บนทกผลลพธทไดและแสดงผลการท างาน ในรอบนออกมาเปนโมเดลจ าลองสามมต

Page 8: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux

7.2เทคนคหรอเทคโนโลยทใช ในการพฒนาโปรแกรม มปญหาหลกๆ 3 อยางทใหความส าคญ คอ 1.การแบงงานกนระหวางหนวยประมวลผล 2.การตดตอกนระหวางหนวยประมวลผลทมประสทธภาพ 3.การจ าลองภาพเสมอนสามมตออกมาเปนผลลพธ

การแบงงานกนระหวางหนวยประมวลผล ซงแนนอนวาจะเปนการแบงหนยนตทตองรบผดชอบไปยงแตละหนวยประมวลผล ซงการแบงแบบงายๆอากท าไดสองลกษณะคอ การแบงตามหมายเลขก ากบ ทก าหนดไวซงมขอดคอไมจ าเปนตองมการเคลอนยายขอมลจ าเพาะของหนยนตแตละตวบอยๆ เพราะหนยนตทมหมายเลขก ากบใดๆจะถกประมวลผลบน หนวยเดมเสมอท าใหสามารถใชขอมลทเคยเกบไวในรอบทแลวมาใชตอได อกแนวคดหนงคอการแบงแจกแจงหนยนตตามจดทอยในโลกเสมอน ซง เกดจากสมมตฐานทวาหนยนตทอยใกลๆกนจะตองมการปฏสมพนธกนมากกวาหนยนตทอยไกลกน จงสงผลใหการท าวธนจะท าใหการคดถงผลกระทบทจะเกดขนกบหนตวทอยใกลๆกนเปนไปไดงายกวา

การตดตอกนระหวางหนวยประมวลผลทมประสทธภาพ เนองจากการท างาน แบบ Parallel จ าเปนจะตองมแจกจายงานไปยงหนวยประมวลผลตางๆ ถาใชการสงขอมลทไมเหมาะสมจะท าใหการแลกเปลยนขอมลกนระหวางหนวยประมวลผลกลายเปนคอขวดได การพฒนาโปรแกรมในโครงการนจงไดเลอก MPI standard ซงถกออกแบบมาใหท างานในลกษณะนมาใชเปนตวกลางในการสอสารระหวางหนวยประมาลผล

การจ าลองภาพเสมอนสามมตออกมาเปนผลลพธ นอกจากการจ าลองภาพเสมอมแลวยงตองค านงถงความสมพนธของวตถหรอหนยนตแตละชนทถกจ าลองใสลงไปในสภาพแวดลอมเสมอน ใหมความสมเหตสมผลในการเคลอนไหวสมพนธกบความเปนจรงซงตองอางองตามกฎทางฟสกส ดงนนการพฒนาจง ใช ODE engine ทมความสามารถท าไดทงสองอยางขางตนและ ยงเปนเครองมอทไดรบความนยมในการน าไปพฒนาท าเปน Simulator ตางๆ มากมาย

7.3 เครองมอทใชในการพฒนา

ระบบปฏบตการ : Ubuntu Linux

ภาษาทใชพฒนา : C++

เครองมอในการพฒนา : Code Block IDE Library :

ODE engine จ าลองโมเดลทางฟสกส และ สรางภาพสามมต[5] MPICH2 Implementation ของ MPI standard ใชในการสงขอมล

7.4รายละเอยดของโปรแกรมทจะพฒนา

Input /output specification Input : จะเปนพฤตกรรมและโมเดลของหนยนต ทตองการจะศกษาหรอทดลอง

Output : ผลของการจ าลองพฤตกรรมของหนยนตแตละตวเมอท างานรวมกน ซงจะแสดงออกมาเปนโมเดลสามมตของการท างานในแตละรอบการท างานของโปรแกรม

Page 9: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux

Functional specification - โปรแกรมพฤตกรรมของหนยนตแตละตวได - แสดงผลการจ าลองการท างานออกมาเปนโมเดลสามมต

โครงสรางซอฟตแวร

Software structure

7.5 ขอบเขตและขอจ ากดของโปรแกรมทจะพฒนา

ขอจ ากดทางดานฮารแวร มหนวยประมวลผลทางดานกราฟฟกส(GPU) Network LAN Interface เครองคอมพวเตอรทกเครองจะตองอยในวง LAN เดยวกน ขอจ ากดทางดานซอฟทแวร ท างานบนระบบปฏบตการ Ubuntu Linux Library MPICH2 Library ODE engine

Page 10: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux

บรรณานกรม [1] http://www.cyberbotics.com/ [2] http://www.spiderland.org/node/3210

[3] http://launchpad.net/robot3d [4] http://www.mcs.anl.gov/research/projects/mpi/ [5] http://www.ode.org/ [6] http://www.mcs.anl.gov/research/projects/mpich2/ [7] Daniel J. Pack, Barry E. Mullins. “Toward Finding an Universal Search Algorithm for Swarm Robots”. Proceedings of the IEEE/RSJ Intl. Conference on Intelligent Robots and Systems 2003 [8] M. Szymanski, T. Breitling, J. Seyfried and H. Wörn. “Distributed Shortest-Path Finding my Micro-robot Swarm”, Lecture Notes in Computer Science, Volume 4150/2006, 404-411, 2006

[9] Jean-Claude Latombe, Christopher M. Clark & Stephen M. Rock “Motion planning for multiple mobile robots using dynamic networks” Proceedings of ICRA ‘03 IEEE Int. Conf. on Robotics and Automation, p. 4222 – 4227, 2003

Page 11: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux

Personal detail First Name Tapana Surname Voravoothiwat Home Address 1797 Supalai ville, Srinakarin Road, Bangna, Bangkok 10260, Thailand Date of Birth 31 JULY 1989 Home Town Bangkok, Thailand Mobile Telephone +66 8 (0) 550 2831 Email: [email protected]

Technical Skill Programming Languages: C++, Java, C, Verilog, Assembly

Applications: MS Visual Studio, Eclipse, Code::Block, Altium

Operating Systems: Linux, Windows

Others: - Image Processing

- Low Level Hardware Control Programming - Emended Linux - PCB Circuit Design - Android Application Programming

Language Skill Thai, English, and Mandarin

Achievement

2010 Quarter Finalist in Humanoid Robot League World Robocup in Singapore as a Team Leader

2007 Runner-Up of Cubic Robocode National Tournament 2006 4th Prize Winner World Robot Olympiad at Nanning, People Republic of China

2005 - 2006 First Prize Winner of IPST National Robot Competition 2 consecutive years 2005 Second prize World Robot Olympiad Thailand 2005 Technical Excellence prize at International Junior Robot Challenge for The King’s

Cup Competition Awards and Scholarships 2006 – Present JSTP scholarship award from Ministry of Science and Technology to study

from Bachelor degree to Doctorate 2002 – 2007 Bangkok Christian College Academic Merit Scholarship covering full tuition

fee. Work Experience Mar 2011 – May 2011 Internship at Chemnitz University of Technology, Germany, working as researcher assistance in robotic and embedded system field

Page 12: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux
Page 13: 2. · 2018. 6. 5. · 2. สาระส าคัญของโครงการ ในโครงการนี้ต้องการที่จะสร้าง Linux