Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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 คอการทเราน าปญหาขนานใหญมาแบงออกเปนสวนเลกๆทสามารถท าการค านวณเพอค าตอบไดโดยอสระตอกน จงท าใหเราสามารถทจะแบงปญหาเหลานไปหลายๆทเพอท าการแกหาค าตอบไปพรอมๆกนได ท าใหเราสามารถค านวณหาค าตอบของปญหาขนาดใหญไดในเวลาทสนลงอยางมนยส าคญ และดวย
เทคโนโลย การสงขอมลไปมาระหวางแตละหนวยทสามารถท าไดอยางรวดเรวในปจจบน การแบงงานไปยงแตละหนวยประมวลผลอยางเหมาะสมจะท าใหเราสามารถดงเอาทรพยากรทมอยมาใชไดอยางคมคา
การแกปญหาดวย Swarm Robot ก าลงเปนสงทไดรบความสนใจมากในปจจบน เพราะถาเปนในยคกอนการแกปญหาของหนยนตมกท าในแนวทเปนการใชหนยนตทมความฉลาดเพยงตวเดยวเขามาท าการแกปญหาหรอจดการงานทไดรบการสงงานใหเสรจสน ซงท าใหเกดมขอจ ากดทส าคญคอ เมอปญหาทตองจดการมการเปลยนแปลงไป มจ านวณทมากขนหรอวาเพมขนาด ท าใหการสรางหนยนตเพยงตวเดยวขนมารบผดชอบแกไขปญหาตองมความซบซอนและใชการลงทนในการสรางทเพมขนตามไปดวยจนท าใหบางครงไมคมคากบการสราง ดวยเหตนจงเกดแนวคดในการแกปญหาอกแบบหนงขนมากคอ การใชของงายๆจ านวณมากเขามาแกไขปญหาทมขนาดใหญปญหาขนาดใหญ นนกคอ Swarm Robot นนเอง เปนการแกปญหาทไดรบแรงบนดาลใจมาจากธรรมชาตทใชการท างานรวมกนของสมาชกจ านวนมากเขามาในการแกปญหา ตวอยางเชน พฤตกรรมของมดในการกระจายตวเพออาหารและใชฟโรโมนในการสรางเสนทางระหวางแหลงอาหารถงรง ซงไดมการน าพฤตกรรมนมาประยตใชในการแกปญหาตางๆมากมาย เชน การแกปญหาในการรวมกนคนหาดวยหนยนตหลายๆตว[7], การคาหาเสนทางสนสด [8], การวางแผนการเคลอนทแบบกระจาย[9] ฯลฯ นอกจากนระบบแบบนมขอดในการปรบตวตอปญหาทมการเปลยนแปลง เพราะ สามารถเพมจ านวณสมาชกเขาไปเพอจดการกบปญหานนได และทนตอความเสยหายเนองจากสมาชกในระบบสามารถเขาไปท างานท าแทนกนไดเมอเกดปญหาชน
รปท 3.1 ตวอยางโปรแกรมจ าลองการท างานของหนยนต Webots
4. วตถประสงค วตถประสงคของโครงการนคอการสราง Robot Simulator ประสทธภาพสงลงบนระบบปฎบตการ Linux โดยใชแนวคดของ Parallel Computing
5. ปญหาหรอประโยชนทเปนเหตผลใหควรพฒนาโปรแกรม
Robot Simulator เปนเครองมอทเหมาะสมในการศกษาและพฒนาหนยนต แตในปจจบนยงไมม Simulator ทออกแบบมาเฉพาะทางส าหรบรองรบการท างานของหนยนตจ านวนมากพรอมๆกน ความสามารถของ Simulator ทมอยจงชนกบประสทธภาพเครองเทานน
การแกไขปญหาของโครงการนดวยการประมวลผลแบบขนานและการแบงงานไปยงเครองตางๆทเหมาะสม จงเปนทางเลอกทจะใชเครองคอมพวเตอรหลายๆเครองเขามาทดแทนการท างานของเครองประสทธภาพสงทมราคาแพงเครองเดยว โดยคาดหวงใหมประสทธภาพทดกวาโดยใชจ านวนเครองคอมพวเตอรเพมเตมใหนอยทสด
6. เปาหมายและขอบเขตของโครงการ
เปาหมายของโตรงการคอพฒนา Simulator ใหท างานไดบนระบบปฏบตการ Ubuntu Linux โดยสามารถท างานโดยใชเครองคอมพวเตอรตงแตสองเครองขนไปเขามาชวยกนท าหนาทประมวลผลจ าลองท างานของหนยนตใน Simulator น าเสนอตวอยางการท างานโดยการทดสอบจ าลองการท างานของหนยนตตงแต 100 ตวขนไปใหท างานรวมกนเชน การการะจายตวในพนท การคนหาเปาหมายทก าหนด การจดเรยงตวรปแบบตางๆ ซงงานเหลานเปนปญหาพนฐานของSwarm robot แบบ decentralized control
7. รายละเอยดของการพฒนา
7.1 เนอเรองยอ ตวอยางของโปรแกรม Robot Simulator ในปจจบน Simbad เปน Open Source project ทท างานอยบนพนฐานของ Java3D library มจดประสงคเพอการศกษาและการทดลองทางวทยาศาสตร เปน Simulator พนฐานทเหมาะส าหรบการศกษาเกยวกบระบบปญญาประดษฐของหนยนตโดยผใชสามารถปรบแตงการท างานของหนยนตและสภาพแวดลอมไดดวยตวเอง
Webots เปนโปรแกรมทชวยสรางสภาพแวดลอมในการพฒนาโปรแกรม และ จะลองหนยนตเคลอนท ภายในโปรแกรมผใชจะสามารถออกแบบตงคาความซบซอนของหนยนตทน ามาจ าลองได ส พนผว แรงเสยดทาน น าหนกของวสดตางๆ ภายในตว Simulator ผใชสามารถตงคาได ยงสามารถทจะเลอกตดตงตวรบรจ าลองลงหนยนตทตองการไดอกดวย
แนวคดของโปรแกรมทจะสรางขน เปนSimulator บนระบบปฏบตการ Linux ทมความสามารถในการท า Parallel Computing บนหนวยประมวลผลหลายๆหนวย ซงการจ าลองพฤตกรรมของหนยนตจะถกแบงกนไปท าบนแตละหนวยประมาลผลซงท าเราสามารถลดเวลาในการทจะตองใชประมวลหนยนตทกตวได จากนนผลลพธทไดจะถกสงกลบมาทหนวยประมวลผลกลาง โดยการสอสารแลกเปลยนขอมลกนระหวางหนวยจะใช MPI standard [4] การค านวณทางฟสกสและการ Render ภาพจ าลองสามมตออกมาทางจอภาพ จะใช ODE engine [5] เพอเปนการแสดงผลลพธ
รปท 7.1 Flowการท างานของของโปรแกรม
อานสถานะปจจบนของหนยนตแแตละตว
แบงงานการประมวลผลหนยนต ออกเปนสวนยอยๆแยกจากกน
แจกจายงานทไดไปยง แตละหนวยประมวลผลยอย
แตละเครองทไดรบงาน ท าการค านวณ สถานะใหมของหนยนตตามพฤตกรรมทก าหนด
และผลกระทบทเกดขนจากวตถและหนยนตทอยรอบ ๆ
รวบรวมสถานใหมของหนยนตแตละตว ทไดจากหนวยประมวลผลแตละหนวย
บนทกผลลพธทไดและแสดงผลการท างาน ในรอบนออกมาเปนโมเดลจ าลองสามมต
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 : ผลของการจ าลองพฤตกรรมของหนยนตแตละตวเมอท างานรวมกน ซงจะแสดงออกมาเปนโมเดลสามมตของการท างานในแตละรอบการท างานของโปรแกรม
Functional specification - โปรแกรมพฤตกรรมของหนยนตแตละตวได - แสดงผลการจ าลองการท างานออกมาเปนโมเดลสามมต
โครงสรางซอฟตแวร
Software structure
7.5 ขอบเขตและขอจ ากดของโปรแกรมทจะพฒนา
ขอจ ากดทางดานฮารแวร มหนวยประมวลผลทางดานกราฟฟกส(GPU) Network LAN Interface เครองคอมพวเตอรทกเครองจะตองอยในวง LAN เดยวกน ขอจ ากดทางดานซอฟทแวร ท างานบนระบบปฏบตการ Ubuntu Linux Library MPICH2 Library ODE engine
บรรณานกรม [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
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