You are on page 1of 58

รายงานโครงงานวิจัยฉบับสมบูรณ์

(กิจกรรมส่งเสริมและสร้างนักเรียนนายร้อยให้เป็น นักวิจัย)

หุ่นยนต์เคลื่อนที่ตามบุคคลเป้าหมายโดยการใช้ ไลดาร์เซ็นเซอร์
กองวิศวกรรมเครื่องกล
โรงเรียนนายร้อยพระจุลจอมเกล้า

โดย

โรงเรียนนายร้อยพระจุลจอมเกล้า

ธันวาคม 2566
รายงานโครงงานวิจัย

หุ่นยนต์เคลื่อนที่ตามบุคคลเป้าหมายโดยการใช้ ไลดาร์เซ็นเซอร์
กองวิศวกรรมเครื่องกล โรงเรียนนายร้อยพระจุลจอมเกล้า

คณะผู้จัดทาโครงงาน

พ.ท.อุกฤษณ์ อัน ทพิษ อาจารย์ที่ปรึกษาโครงงาน


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

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

คณะกรรมการสอบโครงงานวิจัย เห็นสมควรให้โครงงานวิจัยฉบับนี้เป็นส่วนหนึ่งของ
การศึกษาตามหลักสูตรวิศวกรรมศาสตร์บัณฑิต สาขาวิชา กองวิชาวิศวกรรมเครื่องกลส่วนการศึกษา
โรงเรียนนายร้อยพระจุลจอมเกล้า

พ.ท. กรรมการ/ พ.อ. ประธานกรรมการ/


( อุกฤษณ์ อันทพิษ ) อาจารย์ที่ปรึกษา ( อรรถพล จินดาทรัพย์ ) ผู้อานวยการกองวิชา

ร.อ. กรรมการ/ พ.อ.ผศ. กรรมการ


( กันต์ธร พรหมสถิต ) อาจารย์ที่ปรึกษา ( บุญอนันต์ อนันต์เสาวภาคย์ )

ร.ท. กรรมการ/ พ.ต. กรรมการ


( วรพรต รักคุณ ) อาจารย์ที่ปรึกษา ( ธีรภัทร์ พันธ์กล้า )

ร.อ. กรรมการ
( วสวัตติ์ เสาวดี )
Project Title Robot moving according to a target person using lidar sensor
Researcher’s name 1. Cadet Puttirat Paechana
2. Cadet Sirawit Tong-on
3. Cadet Wissarut Kompimai
4. Cadet Kanatsanan Klomkleang
5. Cadet Akanae Ketpech
Academic Degree Mechanical Engineering
Department of Mechanical Engineering, Academic Division, CRMA
Advisor 1. Maj. Ukrit Anathapit
2. Capt. Guntorn Promsatit
3. Lt. Worapot Rakkun

Accepted by the Academic Division, Chulachomklao Royal Military Academy in


Partial Fulfillment of the Requirements for the Bachelor of Engineering Program in Mechanical
Engineering, Department of Mechanical Engineering, Academic Division, Chulachomklao Royal
Military Academy

Project Examining Committee

Maj. Member/Project Advisor Col. Head of Department/


( Ukrit Anathapit ) ( Atthaphon Jindasap ) Chairperson

Capt. Member/Project Advisor Col. Asst. Prof. Member


( Guntorn Promsatit ) ( Boonanan Anansauwapak )

Lt. Member/Project Advisor Maj. Member


( Worapot Rakkun ) ( Teerapat Panthakla )

Capt. Member
( Wasawat Saowadee )

ชื่อโครงงานวิจัย หุ่นยนต์เคลื่อนที่ตามบุคคลเป้าหมายโดยการใช้ ไลดาร์เซ็นเซอร์


ผู้จัดทาโครงงาน 1. นนร. สิรวิชญ์ ตองอ่อน
2. นนร. วิศรุต คมพิมาย
3. นนร. อาคเนย์ เกตุเพ็ชร
4. นนร. คณัสนันท์ กล่อมเกลี้ยง
5. นนร. พุฒิรัตน์ แพชนะ
อาจารย์ที่ปรึกษา 1. พ.ท. อุกฤษณ์ อันทพิษ
2. ร.อ. กันต์ธร พรหมสถิต
3. ร.ท. วรพรต รักคุณ
ปริญญา วิศวกรรมศาสตร์บณ ั ฑิต (วิศวกรรมเครื่องกล)

บทคัดย่อ

หุ่นยนต์ในปัจจุบันสามารถใช้ร่วมกับมนุษย์ในหลายๆ รูปแบบมีการพัฒนาในด้านต่างๆ มากมาย อย่างเช่น


ด้านการเคลื่อนที่ซึ่งก็มีหลายวิธีการ ทาให้เกิดแนวคิดในการใช้ไลดาร์เซ็นเซอร์ ( Lidar Sensor ) ซึ่งมีใช้ในรถยนต์
ที่ขับเคลื่อนอัตโนมัติ มาประยุกต์เป็นหุ่นยนต์ติดตามบุคคล ใช้ในการช่วยเหลือต่างๆ เช่น การติดตามคนร้ายหรือ
เป้าหมายที่ ต้องการ ซึ่งจะทาการพัฒนาโปรแกรมให้ หุ่นยนต์เคลื่อนที่ ติดตา มเป้ าหมายได้ โดยไม่จาเป็นต้ องใช้
บุคลากรให้เสี่ยงอันตราย ในการที่จะทาให้หุ่นยนต์เคลื่อนที่ได้จะต้องเริ่มจากการหาข้อมูลศึกษาเกี่ยวกับอัลกอริทมึ
ในการตรวจจับวัตถุในภาพและศึกษาการควบคุมระยะของหุ่นยนต์กับมนุษย์ด้วยการใช้ไลดาร์เซ็นเซอร์ หลังจากได้
ข้อมู ลมาพอสั งเขปแล้ วขั้นตอนต่อไปจะเป็นการโปรแกรมตั วหุ่นยนต์ โดยใช้ภาษา Python ซึ่ง เราจะใช้หุ่นยนต์
สาเร็จ รูปที่ มีร ะบบปฏิ บัติการ Linux เพื่ อที่ จะสามารถเขี ยนโปรแกรมได้สะดวกยิ่ งขึ้ น หลัง จากนั้นจะเป็นการ
ทดลองอัลกอริทึมว่าสามารถใช้งานได้จริงหรือไม่ หากใช้งานได้แล้วขั้นต่อไปจะเป็นการปรับแต่งอัลกอริทึมโดยอิง
จากทฤษฎีต่ า งๆและแก้ไ ขตัว แปร เพื่อที่จ ะท าให้ ควบคุ มหุ่ นยนต์ไ ด้ดี ขึ้น ผลการวิ จั ยพบว่ า หุ่นยนต์ สามารถ
เคลื่อนที่ตามเป้าหมายได้ แต่ในบางกรณีที่ภาพที่หุ่นยนต์ตรวจจับนั้นมีความไม่ชัดเจน เนื่องจากกล้องและไลดาร์
เซนเซอร์ที่ติดตั้งให้กับหุ่นยนต์นั้นเป็นขนาดเล็กและระบบประมวลผลของตัวบอร์ด ( Raspberry pi ) นั้นยังไม่ได้
พัฒนาปรับปรุงให้ประมวลได้อย่างรวดเร็ว เพราะตัวบอร์ดนั้นเป็นบอร์ดขนาดเล็กที่ได้รั บติดตั้งมากับตัวหุ่นยนต์
ตั้งแต่แรก ส่งผลให้หุ่นยนต์ไม่สามารถตรวจจับเป้าหมายได้อย่างแม่นยา ซึ่งในบางกรณีที่ทาการตรวจจับนั้นอาจมี
ปัจจั ยด้ านแสงสว่ างและเงาหรือสภาพแวดล้อมรอบข้ างเข้า มาบดบั งเป้า หมายตั วบุ คคล จะส่ งผลให้ กล้ องเกิ ด
ข้อผิ ดพลาดในการตรวจจั บบุค คลท าให้บอร์ดเกิดการวิ เคราะห์ และประมวลผลออกมาคลาดเคลื่ อนและท าให้
หุ่นยนต์ไม่ สามารถเคลื่อนที่ ได้ตามต้ องการ และการเคลื่อนไหวของหุ่ นยนต์ไม่ ลื่นไหลเนื่องจากองศาในการเลี้ย ว

ขณะที่ตรวจจับบุคคลมีจังหวะการกระตุกของล้อในขณะเลี้ยวเล็กน้อย อีกทั้ งกล้องไลดาร์มีระยะตรวจจับที่จากั ด


ส่งผลให้การตรวจจับต้องอยู่ภายใต้ขีดความสามารถของการระยะการตรวจจับของกล้อง

คาสาคัญ : ไลดาร์เซ็นเซอร์ อัลกอริทึม และบอร์ด


Project Title Robot moving according to a target person using lidar sensor
Researcher’s name 1. Cadet Puttirat Paechana
2. Cadet Sirawit Tong-on
3. Cadet Wissarut Kompimai
4. Cadet Kanatsanan Klomkleang
5. Cadet Akanae Ketpech
Advisor 1. Maj. Ukrit Anathapit
2. Capt. Guntorn Promsatit
3. Lt. Worapot Rakkun
Academic Degree Bachelor of Engineering (Mechanical Engineering)

Abstract

Robots today can be used in various ways alongside humans, with developments in various
aspects. For example, in terms of motion, there are many methods, leading to the idea of using
LiDAR sensors, which are used in self-driving cars, to be applied to robots that follow individuals
and assist in various tasks, such as tracking or targets objects. To make a robot move, we need to
start with studying algorithms for object detection in images and study controlling the distance
between the robot and humans using LiDAR sensors. Once we have acquired necessary
information, the next step is to program the robot using the Python language, using a robot with
a Linux operating system to make programming more convenient. After that, we experiment with
algorithms to see if they work in practice. The research found that the robot can detected Human
faces, but in some cases, the algorithm can’t detect the objects clearly. The reason is, that the
camera has a small size and the processing capabilities of the Raspberry Pi board have not been
developed to process quickly such as normally computer. In some cases, factors such as light
and shadows or the surrounding environment can obstruct the detection of the targeted person,
causing the camera to make errors in detection. This leads to the board analyzing and processing
incorrectly and causing the robot to move in an undesired manner. The robot's controlling is also
not smooth because the wheels have interrupted in some cases. Additionally, the LiDAR sensor

has a limited detection range. So the targeted object must also be within the camera's detection
range to work properly.

Keyword : LiDAR sensors, Algorithm, Raspberry Pi board


กิตติกรรมประกาศ

โครงงานวิจัยเรื่อง หุ่นยนต์เคลื่อนที่ตามบุคคลเป้าหมายโดยการใช้ไลดาร์เซ็นเซอร์ กองวิชาวิศวกรรมเครื่องกล


โรงเรียนนายร้อยพระจุลจอมเกล้า ที่จัดทาในครั้งนี้ได้รับการสนับสนุนงบประมาณจาก กองทัพบก จากงบงานศึกษา
ตามหลักสูตรประจาปี 2566 ซึ่งมอบให้แก่นักเรียนนายร้อยชั้นปีที่ 4 สาขาวิชาวิศวกรรมเครื่องกล ประจาปีการศึกษา
2566 จัดทาโครงงานวิจัยประกอบการศึกษาในหลักสูตรของโรงเรียนนายร้อยพระจุลจอมเกล้า ผลการศึกษาค้นคว้ า
ส่งผลให้คณะผู้จัดทาเกิดการเรียนรู้ในการศึกษาเทคโนโลยีไลดาร์เซ็นเซอร์ ได้หุ่นยนต์ต้นแบบเคลื่อนที่ตามบุคคลและ
ได้ฝึกการเขียนโปรแกรมได้ ตามวั ตถุป ระสงค์ตลอดระยะเวลาของการจั ดทาโครงงานวิ จัย กระบวนการศึกษา การ
ค้นคว้า การออกแบบ และการทดลอง คณะผู้จัด ทาโครงงานวิจัยได้เก็บ เกี่ยวประสบการณ์ ทางวิ ศวกรรมเครื่องกล
พร้อมทั้งได้รับคาแนะนาที่มีคุณค่าตามหลักวิชาการจากอาจารย์ที่ปรึกษาจนเป็นผลสาเร็จ
ขอขอบพระคุณอาจารย์ที่ปรึกษาทั้ง 3 ท่าน โดยมีดังนี้ พ.ท.อุกฤษณ์ อันทพิษ ร.อ.กันต์ธร พรหมสถิต และ
ร.ท.วรพรต รั กคุณ คอยให้คาปรึกษาและคาแนะนา รวมถึ งการดูแลเอาใจใส่กับคณะผู้จัดท าโครงงานวิจัย ทาให้
โครงงานวิ จั ยนี้ สาเร็ จ ลุล่วงไปได้ ด้ วยดี โครงงานวิจั ยนี้ จ ะไม่สามารถสาเร็ จได้ ตามวั ตถุ ป ระสงค์ไ ด้ หากไม่ ได้ รั บ
คาแนะนาในการปรับปรุ งแก้ไ ขจากอาจารย์ของกองวิชาวิ ศวกรรมเครื่ องกล ส่วนการศึ กษา โรงเรียนนายร้อย พระ
จุลจอมเกล้า ทางคณะผู้จัดทาจึงขอขอบพระคุณอาจารย์ทุกท่านเป็นอย่างสูงมา ณ ที่นี้
ขอขอบคุณ กองทัพบก ที่กรุณาให้การสนับสนุนงบประมาณในการวิจัยครั้งนี้

คณะผู้จัดทา
ธันวาคม 2566

สารบัญ

หน้า
บทคัดย่อภาษาไทย ก
บทคัดย่อภาษาอังกฤษ ค
กิตติกรรมประกาศ จ
สารบัญ ฉ

บทที่ 1 บทนา
1.1 หลักการและเหตุผล 1
1.2 วัตถุประสงค์การวิจัย 1
1.3 ขอบเขตการวิจัย 2
1.4 นิยามศัพท์เฉพาะ 2
1.5 ประโยชน์ที่จะได้รบั 2

บทที่ 2 ทฤษฎีและวรรณกรรมที่เกีย่ วข้อง


2.1 Convolutional Neural network 3
2.2 ทฤษฎีหุ่นยนต์เคลื่อนที่ 9
2.3 Human tracking 9
2.4 การนาทางหุ่นยนต์ Robot navigation 15
2.5 การคานวณหาระยะห่างวัตถุของ Lidar sensor 16

สารบัญ(ต่อ)

หน้า
บทที่ 3 การดาเนินการวิจัย
3.1 เครื่องมือทีใ่ ช้ในการวิจัย 17
3.1.1 หุ่นยนต์ 4WD Smart Robot 17
3.1.2 lidar sensor 19
3.1.3 โปรแกรม python 22
3.2 การเก็บรวบรวมข้อมูล 23
3.2.1 ขั้นเตรียมการ 24
3.2.2 ขั้นดาเนินการทดลอง 25
3.2.3 ขั้นประเมินผล 25
3.3 การวิเคราะห์ข้อมูล 26

บทที่ 4 ผลการวิจัยและการอภิปรายผล

4.1 ขั้นตอนในการศึกษาส่วนประกอบของหุ่นยนต์ 28
4.2 ขั้นตอนการศึกษา โปรแกรมและทาการเขียนโค้ดให้กับหุ่นยนต์ 30
4.3 ขั้นตอนการทดลอง และปรับปรุงข้อแก้ไข 31

บทที่ 5 สรุปผลการวิจัย อภิปรายผล และข้อเสนอแนะ


5.1 สรุปผลการวิจัย 34
5.2 อภิปรายผล 34
5.3 ข้อเสนอแนะ 36
บรรณานุกรม 37
ภาคผนวก
ผนวก ก งานวันนิทรรศการวิชาการ รร.จปร. 39
ผนวก ข โปสเตอร์นาเสนองานวันนิทรรศการวิชาการ รร.จปร. 42
1

บทที่ 1
บทนา

1.1 หลักการและเหตุผล
1.1.1 ความเป็นมา
ปัจจุ บันระบบเทคโนโลยีกับทางทหารพั ฒนาขึ้นไปมาก อี กทั้ งใช้เทคโนโลยี ด้า นปัญ ญาประดิ ษฐ์
(Artificial Intelligence) ประยุกต์ใช้ม ากขึ้น รวมถึงการพัฒนาในส่วนของหุ่นยนต์ในด้า นต่างๆ มีม ากมายหลาย
ด้าน ในการเพิ่มเซ็นเซอร์ตรวจจับแบบต่างๆ เพื่อความแม่นยามากขึ้น หุ่นยนต์ติดตามบุคคล สามารถประยุกต์ใช้
ได้หลายรูปแบบเช่ น เป็นเพื่อนกับมนุ ษย์ในการช่ว ยเหลื อต่ างๆ การติดตามคนร้ ายติด ตามเป้ าหมาย ทาให้ต้อง
ศึกษาเรื่องนี้เพื่อพัฒนาต่อไป

1.1.2 ปัญหาและสาเหตุ
หุ่นยนต์ที่ใช้ร่วมกับมนุษย์ในหลายๆ รูปแบบมีการพัฒนาในด้านต่างๆ มากมาย การพัฒนาด้านการ
เคลื่ อนที่ ก็มี หลายวิ ธีการ เช่นการเปลี่ยนโปรแกรม การเปลี่ย นอั ลกอริทึ่ ม การเปลี่ ยนเซ็นเซอร์ต่ างๆ ท าให้ เกิ ด
แนวคิดในการใช้ไลดาร์เซ็นเซอร์ (Lidar Sensor) ซึ่งมีใช้ในรถยนต์ที่ขับเคลื่อนอัตโนมัติ เช่น เทสลา ในการพัฒนา
จะได้ผลอย่างไร

1.1.3 ความจาเป็น/ความต้องการในการวิจยั หรือความสาคัญของโครงการวิจัย


ข้อมูลการศึกษา วิจัย และพัฒนานี้จะมีความสาคัญ ที่สามารถนามาวิเคราะห์และนามาสู่การมี
พื้นฐานการใช้หุ่นยนต์ร่วมกับมนุษย์ได้

1.2 วัตถุประสงค์การวิจยั
1.2.1 พัฒนาโปรแกรมหุ่นยนต์เคลื่อนที่ติดตามบุคคลเป้าหมายโดยใช้ไลดาร์เซ็นเซอร์ (Lidar Sensor)
2

1.3 ขอบเขตการวิจัย
1.3.1 พัฒนาโปรแกรมหุ่นยนต์เคลื่อนที่ติดตามบุคคลเป้าหมายโดยใช้ไลดาร์เซ็นเซอร์ (Lidar Sensor)
1.3.2 หุ่นยนต์สามารถติดตามบุคคลได้ครั้งละ 1 คน เท่านั้น
1.3.3 หุ่นยนต์จะทางานเพียงในอาคารเท่านั้น
1.3.4 ใช้หุ่นยนต์เคลื่อนที่แบบสาเร็จรูป

1.4 นิยามศัพท์เฉพาะ
1.4.1 อัลกอริทึม หมายถึง ขั้นตอนวิธีอัลกอริทึมหมายถึง การวิเคราะห์แยกแยะวิธีการทางานให้เป็นขั้น
เป็นตอนโดยกาหนดให้เรียงกันไปตามลาดับ การเขียนโปรแกรมในยุคแรก ๆ นั้น ผู้เขียนโปรแกรมจะต้อง
มองเห็นขั้นตอนในการแก้ปัญหาอย่างแจ่มชัดเสียก่อน จึงจะเขียนโปรแกรมได้
1.4.2 Neural Networks หมายถึง โครงข่ายใยประสาทของหน่วยเล็กๆทางคอมพิวเตอร์เป็นการ
โปรแกรมที่เลียนแบบการทางานของสมองมนุษย์ และทาให้คอมพิวเตอร์หรือหุน่ ยนต์สามารถทาการเรียนและ
ตัดสินใจได้เหมือนกับมนุษย์
1.4.3 Deep lerning หมายถึง วิธีการเรียนของคอมพิวเตอร์ที่เลียนแบบการเรียนรู้ของมนุษย์บน
Neural Networks ซึ่งต้องป้อนข้อมูลให้กับตัวโครงข่ายประสาทและทาการระบุว่าสิ่งๆนั้นคืออะไร

1.5 ประโยชน์ที่จะได้รับ
1.5.1 ได้หุ่นยนต์ต้นแบบเคลื่อนที่ตามบุคคลเป้าหมายโดยการใช้ไลดาร์เซ็นเซอร์
1.5.2 ได้ศึกษาเทคโนโลยีไลดาร์เซ็นเซอร์ ฝึกการเขียนโปรแกรมเพื่อนามาใช้ในหุ่นยนต์
3

บทที่ 2
ทฤษฎีและวรรณกรรมที่เกี่ยวข้อง

2.1 Convolutional Neural network


(Convolutional Neural Network หรือ CNN) เป็นระบบคอมพิวเตอร์ที่ออกแบบมาเพื่อประมวลผลอาเรย์
ข้ อมู ล ที่ มี โครงสร้ า งเช่ นภาพ Convolutional Neural Network ได้ รั บ การใช้ ง านอย่ า งแพร่ ห ลายในกา ร
ประมวลผลภาพคอมพิวเตอร์และเป็นที่นิยมสาหรับหลายๆ แอพพลิเคชั่นที่เกี่ย วกับการมองเห็น เช่นการจาแนก
ภาพ และยังเป็นเครือข่ายที่ประสบความสาเร็จในการประมวลผลภาษาทั่วไปสาหรับการจาแนกข้อความด้วย

Convolutional Neural Network มีความสามารถในการตรวจจับลวดลายและนาเข้าข้อมูลภาพได้ดีมาก


เช่น เส้นทแยงมุม วงกลม หรือแม้แต่ตาและใบหน้า คุณสมบั ตินี้ทาให้ Convolutional Neural Network เป็ น
เครื่องมื อที่ มีกาลั งในการประมวลผลภาพคอมพิว เตอร์ เป็นอย่ างมาก ต่า งจากอัลกอริทึ มการมองเห็นในอดี ต
Convolution Network สามารถด าเนิ นการโดยตรงกั บ ข้อมู ลภาพที่ ไม่ ไ ด้รั บ การประมวลผลล่ว งหน้ า ระบบ
คอมพิวเตอร์ Convolution เป็นระบบคอมพิวเตอร์แบบ feed-forward ซึ่งมักมีชั้นจานวนมากถึง 20 หรือ 30 ชั้น
ความสามารถของระบบคอมพิวเตอร์ Convolution มาจากชั้นพิเศษที่เรียกว่าชั้น Convolution Convolutional
Neural Network ประกอบด้วยชั้น Convolution หลายชั้นซ้อนอยู่บนกัน แต่ละชั้นสามารถรู้รูปร่างที่ซับซ้อนขึ้น
ได้มากขึ้น

การออกแบบ Convolutional Neural Network (CNN) โครงสร้างของ Convolutional Neural


Network (CNN) เป็นแบบจาลองการเรียนรู้เชิงลึกที่ประกอบด้วยหลายชั้นเรียงต่อกัน โดยการนาชั้น Hidden
layer มาซ้อนกันตามลาดับ การออกแบบแบบลาดับนี้ช่วยให้ Convolutional Neural Network สามารถเรียนรู้
ลักษณะลาดับจากข้อมูลได้
4

ชั้น Hidden ปกติจะประกอบด้วยชั้น Convolution ที่ตามมาด้วยชั้น Activition และบางส่วนของชั้นนั้นตามมา


ด้ว ยชั้น Pooling โครงสร้า งของ Convolutional Neural Network พื้ นฐานที่ช่ว ยในการเข้ า ใจหลักการการ
ออกแบบคื อ LeNet-5 ซึ่ งเป็ นโครงข่า ย CNN รุ่ นแรกที่ ถูกเผยแพร่โดย Yann LeCun เมื่ อปี 1998 โครงข่ า ย
LeNet สามารถรู้จาตัวอักษรที่เขียนด้วยมือได้

ภาพที่ 2.1 โมเดล CNN ในการจาแนกรูปต่างๆ


โครงข่าย LeNet รับภาพขนาด 32x32 Pixels ของตัวเลขที่เขียนด้วยมือเป็นข้อมูลนาเข้า และผ่านชั้นของ
เคอร์เนลต่อไปนี้ แต่ละชั้นยกเว้นชั้นสุดท้ายจะตามด้วยฟังก์ชันเปิดใช้แบบ tanh:

C1 ชั้น Convolution แรก ประกอบด้วยหกเคอร์เนล ขนาด 5x5 ที่เคลื่อนที่ไปบนข้อมูลภาพนาเข้า C1


สร้างภาพผลลัพธ์ขนาด 28x28 ทั้งหมด 6 ภาพ ชั้นแรกของ Convolution จะระบุลักษณะพื้นฐาน
เช่นเส้นตรงและมุม

S2 ชั้นการลดขนาดภาพ หรือชั้น Pooling แบบเฉลี่ย แต่ละ Pixelsในผลลัพธ์ C1 จะถูกเฉลี่ยเพื่อเป็น


Pixelsเดียว S2 ลดขนาดภาพขนาด 28x28 จาก C1 ลงเป็นภาพขนาด 14x14 ทั้งหมด 6 ภาพ

C5 ชั้น Convolution แบบเชื่อมต่อแบบเต็มหน่วยที่มOี utput 120 โหนด แต่ละโหนดใน C5 เชื่อมต่อ


กับโหนดทั้งหมด 400 โหนด (5x5x16) ที่มาจาก S4 ณ จุดนี้ผลลัพธ์ไม่ใช่ภาพ แต่เป็นแถวลาดับ
แบบ 1 มิติที่มีความยาว 120

F6 ชั้นที่เชื่อมต่ออย่างสมบูรณ์ที่แปลงแถวลาดับ 120 เป็นแถวลาดับใหม่ทมี่ ีความยาว 10 แต่ละสมาชิก


ในแถวลาดับนี้สอดคล้องกับตัวเลขที่เขียนด้วยมือ 0-9
5

LeNet-5 เป็นหนึ่งในโครงสร้างพื้นฐานของ Convolutional Neural Network มีจานวนชั้น 6 ชั้น ซึ่งสามารถ


แยกแยะตัวเลขที่เขียนด้วยมือขนาดเล็กได้ แต่ไม่สามารถแยกแยะตัวอักษร 26 ตัวของอักษรภาษาอังกฤษหรือตัว
บุคคลหรือวัตถุได้อย่างมีประสิทธิภาพ ในปัจจุบันโครงข่ายทีซ่ ับซ้อนที่สุดอาจมีจานวนชั้นเกิน 30 ชั้น และอาจใช้
การแบ่งสาขา อย่างไรก็ตาม องค์ประกอบพื้นฐานของ Convolutional Kernels ยังคงเดิม

ชั้นConvolution (Convolutional Layer) ส่วนสาคัญในการสร้าง Convolutional Neural Network


คือชั้น Convolution (Convolutional Layer) ซึ่งสามารถนามาสร้างภาพสี่เหลี่ยมเล็กๆ หลายๆ อันที่เรียกว่า
เคอร์เนล Convolution (Convolutional Kernels) ซึ่งจะเคลื่อนที่ไปบนภาพและค้นหารูปแบบต่างๆ ที่อยู่ใน
ภาพนั้น ในส่วนที่ภาพตรงกับรูปแบบของ เคอร์เนล จะมีค่าบวกที่สูงทีเ่ คอร์เนลนั้นคืนค่า และเมื่อไม่มีการตรงกัน
เคอร์เนลจะคืนค่าศูนย์หรือค่าลดลง
Example Calculation of a Convolution on a Matrix
ทางคณิตศาสตร์แล้ว เคอร์เนลเป็นเมทริกซ์ของน้าหนัก (weights) ตัวอย่างเช่น เคอร์เนลขนาด 3x3 ต่อไปนี้ใช้
สาหรับตรวจจับเส้นแนวตั้ง (vertical lines)

3x3

ภาพที่ 2.2 รูปแสดงตัวอย่างการเก็บข้อมูล CNN ในรูปของเมริกซ์ขนาด 3x3 โดยเป็นการเก็บข้อมูลขนาดย่อย


ให้เราสมมติว่าเรามีภาพนาเข้าขนาด 9x9 ของเครื่องหมายบวก (plus sign) นี้ประกอบด้วยเส้นสองประเภทคือ
เส้นแนวนอนและเส้นแนวตั้ง และมีการต่อกัน ในรูปแบบเมทริกซ์ ภาพจะมีลักษณะดังต่อไปนี้

9x9
ภาพที่ 2.3 รูปแสดงเมื่อนาข้อมูลขนาดย่อยมารวมกันในตัวอย่างของเมทริกซ์ ขนาด 9x9
6

ถ้าเราต้องการทดสอบเคอร์เนลตรวจจับเส้นแนวตั้งบนภาพของเครื่องหมายบวก ในการทา Convolution เราจะ


เลื่อนเคอร์เนล Convolutionไปบนภาพ ที่ทุกตาแหน่งเราจะคูณทุกๆส่วนประกอบของเคอร์เนล ด้วยส่วนประกอบ
ของภาพที่เคอร์เนลครอบคลุม และรวมผลลัพธ์ที่ได้

เนื่องจากเคอร์เนลมีความกว้าง 3 จะสามารถจัดตาแหน่งได้ทั้งหมด 7 ตาแหน่งในแนวนอนในภาพขนาด 9 ดังนั้น


ผลลัพธ์สุดท้ายจากการทา Convolution บนภาพขนาด 9x9 ด้วยเคอร์เนล Convolution ขนาด 3x3

ภาพที่ 2.4 รูปแสดงการทางานและแสดงผลของ CNN

ในตัวอย่างด้านบน ก่อนอื่นเราจะวางเคอร์เนลในมุมบนซ้ายและทุกส่วนประกอบของเคอร์เนลจะถูกคูณกับทุก
ส่วนประกอบในกล่องสีแดงที่อยู่บนภาพต้นฉบับโดยทีค่ ่าเหล่านี้เป็น 0 ทั้งหมด ดังนั้นผลลัพธ์สาหรับเซลล์นั้นคือ 0
บนส่วนบนซ้ายของเมทริกซ์ผลลัพธ์

ต่อไปเราจะพิจารณาตาแหน่งของกล่องสีน้าเงินในตัวอย่างด้านบน ซึ่งประกอบด้วยส่วนของเส้นแนวตั้ง ในกรณีที่


เคอร์เนลถูกวางเหนือเส้นแนวตั้งนี้ จะตรงกันและคืนค่าเป็น 3

จาไว้ว่าเคอร์เนล Convolution นี้เป็นตัวตรวจจับเส้นแนวตั้ง สาหรับส่วนของภาพต้นฉบับทีม่ ีเส้นแนวตั้ง เคอร์


เนลจะคืนค่าเป็น 3 ในขณะที่คืนค่าเป็น 1 สาหรับเส้นแนวนอนและคืนค่าเป็น 0 สาหรับพื้นที่ว่างในภาพ

ในการปฏิบัติจริง เคอร์เนล Convolution ประกอบด้วย weights และ biases คล้ายกับสูตร linear regression
ดังนั้น Pixels นาเข้าจะถูกคูณกับ weights และ biases จะถูกเพิ่มเข้าไปในขั้นตอนถัดไป
7

Example of Convolution on an Image


ให้เราพิจารณาเคอร์เนล Convolution ขนาด 9x9 ต่อไปนี้ซึ่งเป็นตัวตรวจจับเส้นแนวตั้งที่ซับซ้อนกว่า

เคอร์เนลที่ใช้ในตัวอย่างก่อนหน้านี้:

9x9

ภาพที่ 2.5 รูปแสดงตัวอย่างเคอร์เนลที่แก้ไขแล้วขนาด 9x9


เราสามารถใช้ภาพของแมว ที่มีขนาด 204 x 175 Pixels เพื่อแทนค่าในเมทริกซ์โดยมีค่าอยู่ในช่วงระหว่าง 0 ถึง 1
โดยที่ 1 แทนสีขาวและ 0 แทนสีดา

ภาพที่ 2.6 รูปตัวอย่างที่ใช้ในการทดลอง


8

ในการประยุกต์ใช้การ Convolution เราพบว่าตัวกรองได้ดาเนินการตรวจจับเส้นแนวตั้งอย่างแม่นยา ลายเส้น


แนวตั้งบนศีรษะแมวได้รบั การเน้นในภาพผลลัพธ์ ภาพผลลัพธ์มีขนาดเล็กลงทั้งสองมิติเนื่องจากขนาดของเคอร์เนล
(9x9) แม้ว่าโครงสร้างของเคอร์เนล Convolution จะมีความเรียบง่าย

ภาพที่ 2.7 รูปแสดงการแปลงข้อมูลรูป เป็นเมทริกซ์


แต่ความสามารถในการตรวจจับเส้นแนวตั้งหรือเส้นแนวนอน เส้นมุมโค้งและลักษณะพื้นฐานอื่น ๆ เป็นคุณสมบัติ
ที่มี ป ระสิ ท ธิ ภาพอย่ า งมากของเคอร์ เนล Convolution โดยปกติ แล้ ว ชั้ นแรกของ Convolutional Neural
Network จะประกอบด้วยตัวตรวจจับเส้นแนวตั้ง ตัวตรวจจับเส้นแนวนอน และตัวตรวจจั บเส้นมุมทางเส้นเฉีย ง
ต่างๆ ตรวจจั บลักษณะพื้นฐานเหล่า นี้ไม่ไ ด้ถูกโปรแกรมโดยมนุ ษย์ แต่จ ริงๆ แล้ว เคอร์เนลเหล่านี้ ถูกเรียนรู้โดย
Neural Network ในระหว่างการฝึกฝน และทาหน้าที่เป็นขั้นตอนแรกในกระบวนการรู้จารูปภาพชั้นที่ตามมาใน
โครงข่ ายประสาทสามารถพั ฒนาต่อยอดจากลักษณะที่ตรวจจับได้ จากชั้นก่อนหน้ าและระบุรูปร่ างที่ซับ ซ้อนขึ้ น
เรื่อยๆ
Semantic Segmentation เป็นเทคนิคในการประมวลผลภาพทางคอมพิวเตอร์ทเี่ กี่ยวข้องกับการแบ่ง
ภาพ ออกเป็นส่วน หรือส่วนย่อยหลาย ๆ ส่วน โดยที่แต่ละส่วนจะสอดคล้องกับระดับหรือหมวดหมูท่ ี่
เฉพาะเจาะจง กล่าวอีกนัยหนังก็ คือการจาแนกและกาหนดสัญลักษณ์กากับให้กับ pixel แต่ละ pixel ในภาพ
เพื่อให้เกิดความเข้าใจละเอียดของโครงสร้างภาพ ในทางตรงกันข้าม การตรวจจับวัตถุหรือการจาแนกภาพที่ทา้
งานระดับวัตถุหรือระดับภาพทัง้ หมด semantic segmentationจะก้าวไปอีกขั้นตอนหนึ่ง โดยการแบ่งภาพ
9

ที่ระดับ pixel การแบ่งส่วนระดับ pixel นี้จะให้ความเข้าใจละเอียดของภาพและช่วยในการระบุตาแหน่งและระบุ


ตัวตนของวัตถุต่างๆและขอบเขตของวัตถุ

2.2 ทฤษฎีหุ่นยนต์เคลื่อนที่

พฤติกรรมของหุ่นยนต์ในการออกแบบระบบหุ่นยนต์สิ่งที่สาคัญ คือการใส่พฤติกรรมให้กับหุ่นยนต์เช่น การ


เคลื่อนที่การหยุด การหลบและหลีกสิ่งกีดขวาง ซึ่งพฤติกรรมพื้นฐานเหล่านั้นจะต้องมีสาหรับหุ่นยนต์ ดังนั้นเพือ่ ให้
เข้าใจรูปแบบพฤติกรรมของหุ่นยนต์เราสามารถเขียนรูปแบบแสดงพฤติกรรม ประกอบด้วยส่วนนาเข้า (input) จะ
คอยตรวจสอบสภาวะแวดล้อมของหุ่นยนต์ตามที่กาหนดไว้ส่ว นการตัดสินใจ (Decision) เป็นการนาข้อมูลที่ไ ด้
จากส่ วนแรกมาวิเคราะห์ ข้อมู ลแล้ว ตัดสิ นใจเลือกเส้นทางตามที่ กาหนดไว้ และส่ วนการตอบสนอง (Response)
เมื่ อนา Output ของแต่ ละพฤติ กรรมมารวมกั นจะได้ ผลตอบสนองรวมสาหรั บ หุ่ นยนต์ ขณะช่ ว งเวลาและ
สภาพแวดล้อมหนึ่งๆ ให้หุ่นยนต์เคลื่อนที่ไปตามที่ต้องการได้

2.3 Human tracking

การนาหุ่นยนต์ไปทางานในสภาพแวดล้อมที่มีคนอยู่ในหลากหลายรูปแบบ เช่น การแข่งขันหู่นยนต์บริการ ,


หุ่นยนต์ เคลื่ อนที่ตามคน , หุ่นยนต์ ในสานั กงาน , หุ่นยนต์ ในงานนิท รรศการ, หุ่นยนต์ในห้า งสรรพสินค้ า หรื อ
หุ่นยนต์ที่เดินไปกับคน เป็นต้น ซึ่งความสามารถพื้นฐานที่สาคัญที่ทาให้หุ่นยนต์สามารถทางานในสภาพแวดล้อมที่
กล่าวมา คือ การที่หุ่นยนต์มีความสามารถในการติดตามคน (Human tracking) เนื่องจากหุ่นยนต์ประเภทนี้ต้อง
ทางานในเชิงการมีปฏิสัมพันธ์กับคน การติดตามคน นอกจากจะทาให้หุ่นยนต์สามารถระบุตัวตนของคนเป้าหมาย
ได้ถูกต้องแล้ว ยังนาไปสู่การแสดงออกที่ ต่างกันออกไปเมื่อหู่นยนต์รับรู้ถึงสถานะของคน

ข้อมูลหลักที่ใช้ในงานติดตามคน คือ ข้อมูลที่ใช้ระบุตาแหน่งของคนสาหรับอุปกรณ์รับรู้ต่างๆ (Sensor) ที่


ถูกนามาใช้ในการระบุตาแหน่งของคนนั้ น กล้ องวิดีโอถือเป็นอุปกรณ์หนึ่ งที่ได้รั บความนิยมในการวิจัยเนื่ องจาก
ข้อดีของกล้องวิดี โอ คือ ใช้งานง่าย ราคาถูก ให้ข้อมูลในปริมาณมากและมีความเร็วในการส่งข้ อมูลสูง แต่ปัญหา
10

ของการใช้กล้องวิดีโอคือ ข้อมูลที่ได้จากกล้องวิติโอเป็นข้อมูลภาพใน 2 มิติเท่านั้น ไม่ได้มีข้อมูลระยะทางจากกล้อง


ถึงวัตถุ ซึ่งเป็นข้อมูลที่มีความสาคัญต่อการติดตามคนใน 3 มิติ ในงานวิจัย หลายๆงาน จึงประยุกต์การใช้อุปกรณ์
รับรู้อื่นๆเพื่อมาช่ว ยในการหาข้อมูลระยะทาง เช่น กล้ อง Lidar การใช้กล้ อง Stereo กล้องตรวจจับ ความร้อน
กล้อง Time-of-fight ซึ้งเป็นกล้องที่ใช้คานวณระยะทางโดย อาศัยการวัดเวลาเดินทางของแสงที่ปล่อยและการใช้
กล้องวิดีโอร่วมกับระบบการระบุด้วยคลื่นความถี่วิทยุ (RFID) การที่ให้ข้อมูลความลึกจากความสูงหลายระดับ และ
อีกประเด็นคือการเลือกแบบจาลองของคนที่มี ความเฉพาะตัว ซึ่งจะทาให้การค้นหาคนจากข้อมูลเซนเซอร์มีความ
แม่นยาและเกิดความผิดพลาดน้อย สาหรับการเดินเคียงข้างคนของหุ่นยนต์นั้น ผลลัพธ์จากการติดตามคนที่ระบบ
ต้องนาไปใช้คือ พิกัด ตาแหน่ง ของคนบนระนาบ XY และทิศทางที่คนหันไป เพื่อส่งไปยังส่วนการนาทางหุ่นยนต์
หาตาแหน่ง เป้าหมายของหุ่นยนต์และแปลงเป็น คาสั่งอีกทอดหนึ่ง เป็นต้น

2.3.1 ขั้นตอนการติดตามคน
Lidar จะถูกติดตั้งให้ชี้ขนึ้ ตรงกลางหุ่น ซึ่งเป็นบริเวณที่ตอ้ งการให้คนอยู่แล้วทาการรับข้อมูลมาประมวลผล
ขัน้ ตอนการติดตามคนโดยอาศัยแบบจาลองข้างตันสามารถอธิบายได้ดังนี้

2.3.1.1 รับ depth image


ข้อมูลที่จะนามาใช้ในการติดตามเท้าในวิธีนี้คือ Depth image จาก Lidar และนาคาจาก Pixels ที่ (i,j)
ของ Depth image ( โดย i เป็นพิกัดตามแกน X ของภาพและ เป็นพิกัดตามแกน y ของภาพ) ซึ่งเป็น ระยะทาง
ของ Pixels นั้นมาแปลงเป็นพิกัดใน 3 มิติ ตามสมการดังนี้

โดย และ คือ กัดกึ่งกลางภาพตามแกน x และแกน y และ คือ ระยะโฟกัส


ตามแกน x และแกน y ซึ่งทั้ง 4 คาเป็นintrinsic parameter ของกล้อง infrared ของ Lidar ที่ได้จากการทา
calibration สาหรับการ calbration ทาได้โดยใช้ Lidar ถ่าย depth image
11

2.3.1.2 การหาระนาบพื้น

เนื่องจากการติ ดตามเท้ามี สมมุ ติฐานว่า บริเวณพื้นที่ ที่คนเดินไปมา เป็นพื้ นระนาบเรียบไม่เอี ยง การหา


ลักษณะการวางตัว ของระนาบพื้นจึงมี ประโยชน์ ต่อการหาเท้า โดยพื้นจะถู กใช้เป็นฐานล่าง ขั้นตอนนี้ จ ะทา ครั้ ง
เดียวก่อนที่ระบบจะเริ่มทางาน โดยบริเวณที่ Lidar ส่องต้องเป็นพื้นว่าง จากนั้นนา depth image แปลงเป็นพิกัด
3 มิ ติ ต ามขั้ น ตอนที่ แ ล้ ว และน าไปผ่ า นกระบวนการ Principal component analysis (PCA) ซึ่ ง เป็ น
กระบวนการที่นิยมนามาใช้หาการวางตัวของระบบพิกัดใหม่ที่สามารถอธิบายกลุ่มข้อมูลได้ ด้วยองค์ประกอบทีไ่ ม่
ขึน้ ต่อกัน ผลลัพธ์ของ PCA คือ Eigen vector ที่วางตัวตามแนวแกนของระบบพิกัด ใหม่

2.3.1.3 การเลือกข้อมูลที่น่าจะเป็นบุคคล

การวางตัวของระนาบพื้นสามารถนามาใช้เป็นเกณฑ์การเลือกข้อมูลบุคคลได้ โดยปกติเวลาคนเดินจะมี การ


ยกเท้าสูงจากพื้นที่ความสูงระดับหนึ่ง ดังนั้นข้อมูลที่จะถูกเลือกในขั้นตอนนี้ คือข้อมูลที่วางตัวอยู่สูงกว่า ระนาบพื้น
ในช่วงความสูงที่กาหนดไว้

2.3.1.4 การ Project ข้อมูลลงภาพ

ข้อมูลที่ถูกเลือกมานั้นอยู่ในรูปของพิกัด 3 มิติ จึงต้องมีการแปลงรูปแบบข้อมูลเพื่อให้เกิดความง่ายต่อ การ


ทางานในชั้นถัดๆไป โดยชั้นแรกข้อมูลจะถูกแปลง fame ให้เป็นการมองจากด้านบน และ project ข้อมูล จาก
ขัน้ ตอนที่แล้วลงบนระนาบ XY

2.3.1.5 การหาสถานะของคน

กลุม่ ข้อมูลเท้าแต่ละข้างจะถูกนามาประมวลผลเพื่อหาสถานะได้แก่ ตาแหน่ง และทิศทางการวางตัว


สาหรับตาแหน่งของเท้าแต่ละข้างจะถูกแทนด้วยตาแหน่งของจุด centroid ของกลุ่มข้อมูล ส่วนทิศ ทางการ
วางตัวจะไต้จากการหา image moment ของเท้าแต่ละข้างแล้วนามาคานวณตามสมการ
12

โดย แทนทิศทางการวางตัวของเท้าซ้าย และ คือ Central moment ลาดับที่ ij ของกลุ่ม ข้อมูลเท้า


ซ้าย ส่วนทิศทางการวางตัวของเท้าขวาจะแทนด้วย และคานวณจากสมการข้างต้นเช่นกัน centroid และทิศ
ทางการวางตัวของเท้าแต่ละข้างแสดงในภาพที่ 2.12

ภาพที่ 2.8 แสดงการจับกลุ่มข้อมูลของเท้า ลูกศรแสดงทิศทางการวางตัวของเท้าที่คานวณได้


2.3.1.6 การติดตามสถานะของเท้าด้วย
Kalman filter ถูกนามาใช้เพื่อจัดการกับการติดตามสถานะของเท้าได้แก่ ตาแหน่ง 2 มิติ ความเร็ว ทิศ
ทางการวางตัว และความเร็วในการเปลี่ยนทิศทางการวางตัวของเท้า ซึ่งสถานะของเท้า 2 ข้างจะถูกติดตาม อย่าง
เป็นอิสระต่อกัน สถานะทุกสถานะของเท้าจะถูกอธิบายอยู่บนระนาบ XY เวกเตอร์สถานะ (State
vector) ของ Kalman คือ
13

โดยตัวแปร แทนตาแหน่งของเท้าข้างซ้าย หรือข้างขวา ในแกน X หรือ Y ตัวแปร 1 แทน ความเร็ว


ตัวแปร แทนทิศทางการวางตัวของเท้า และตัวแปร แทนความเร็วในการเปลี่ยนทิศทาง การวางตัวของเท้า

State transition matrix F เป็นดังนี้

12x12

ภาพที่ 2.9 State transition matrix ขนาด 12x12


โดย เป็นเวลาที่ผ่านไปจากการทางานรอบทีแ่ ล้วในกรณีที่เท้าถูกบัง ซึ่งส่งผลให้เซนเซอร์ไม่สามารถวัด ค่า
สถานะของเท้าได้ คู่สถานะในรอบที่แล้วจะถูก นามาเป็น measurement ของรอบปัจจุบันแทน

State vector จะถู กประมาณด้ ว ย Kalman flter ซึ่ ง ทางานใน 2 ขั้ นตอนได้ แก่ Time Update และ
Measurement Update วนซ้าไปเรื่อยๆ จากนั้นสถานะของเท้า ทั้ง 2 ข้ าง จะถูกนามาแปลงเป็นสถานะของคน
โดยตาแหน่งของคนจะคานวณได้จากจุดกึ่งกลางระหว่างตาแหน่ง ของเท้าทั้ง 2 ข้าง และทิศทางการวางตัว ของ

คนจะคานวณได้จาก

ภาพที่ 2.10 ตัวอย่างรูปแปลงเฟรมจากมุมของ Lidar เป็นมุมข้างบน


14

การติดตามคนเพื่อให้หนุ่ ยนต์เดินตามคนจะใช้อุปกรณ์ Lidar ติดตั้งบนหุน่ ยนต์ที่ความสูงที่ระยะ ประมาณ


ลาตัวของคน โดยหันด้านหน้าของ Lidar ให้ตรงกับด้านหน้าของหุ่นยนต์ และมีขั้นตอนดังนี้

2.3.2.1 รับข้อมูลจาก Lidar

ข้อมูลที่ถูกส่งมาจาก Lidar แต่ละครั้งนั้นเป็นระยะทางจาก Lidar ถึงวัตถุที่อยู่ในเส้นทางของเลเซอร์แต่ละเส้น


ข้อมูลเหล่านี้จะถูกแปลงเป็นพิกัดบนระนาบ XY เพื่อให้ง่ายต่อการนาไปใช้และมีความสอดคล้องกับ การติดตาม
คนที่ใช้ Lidar

2.3.2.2 การจัดกลุ่มข้อมูลและการเลือกข้อมูลที่น่าจะเป็นคน (Human candidates)

ข้อมูลจาก Lidar จะถูกนามาจัดกลุ่ม โดยข้อมูลเลเซอร์ที่จะอยู่ในกลุ่มเดียวกันจะมีระยะห่างจากข้อมูลที่อยู่ ติดกัน


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

2.3.2.3 การระบุกลุ่มข้อมูลของคน

กลุ่ม ข้อมู ลเลเซอร์จากขั้นตอนที่แล้ วจะถูกนามาพิจารณา โดยมี centroid ของแต่ละกลุ่ มแทนตาแหน่ งของ


กลุ่ม นั้นๆ การระบุ ว่า กลุ่ มข้ อมู ลเลเซอร์กลุ่ม ใดเป็ นกลุ่ม ของข้ อมู ลของคนที่กาลั งติ ดตามอยู่ จะใช้ หลักการ
Nearest neighbor คือ พิจารณาว่ากลุ่มข้อมูลใดที่มีระยะห่างจากตาแหน่งของคนในรอบที่แล้วน้อยที่สดุ ให้ถอื
ว่ากลุ่มข้อมูลนั้นแทนข้อมูลของคนและใช้ตาแหน่งของกลุ่มข้อมูลนั้นแทนสถานะของคนในรอบปัจจุบันการระบุ
ว่าเป็นกลุ่มข้อมูลของคนยังต้องพิจาณาด้วยว่าระยะห่างจากตาแหน่งของคนต้องมีค่าไม่เกินค่าๆหนึ่ง เพื่อเป็ น
การป้องกันในกรณีที่มีการกระโดดของข้อมูล หากระยะห่างที่คานวณมีค่าเกินค่าที่กาหนดจะไม่เลือกข้อมูลกลุม่
15

นัน้ ถ้าไม่มี Human candidate ในรอบนั้นๆ ให้ใช้การทานายตาแหน่งของคนมาเป็นสถานะของคนแทน หาก


ยังไม่มี Human candidate ต่อเนื่องเป็นเวลาช่วงหนึ่ง ให้ถือว่าระบบไม่ได้ติดตามคนในขณะนั้น

2.3.2.4 การติดตามสถานะของคนด้วย Kalman filter

สถานะของคนจะถูกนามาประมวลผลผ่าน Kalman filter โดยที่ State vector ของ Kalman คือ

โดยตัวแปร แทนตาแหน่งของคนในแกน x หรือ y ตัวแปร แทนความเร็ว State transition matrix F


เป็นดังนี้

4x4
ภาพที่ 2.11 รูปแสดงการแปลงข้อมูล ผ่าน Kalman filter ในรูป matrix ขนาด 4x4
2.4 การนาทางหุ่นยนต์ (Robot navigation)

การนาทางหุ่นยนต์ (Robot navigation) เป็นหนึ่งในรูปแบบของการวางแผนการเคลื่อนที่ของหุน่ ยนต์ ซึ่ง


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

แนวคิดในการสั่งการหุ่นยนต์คือ การกาหนดตาแหน่งจุดหมายและให้หุ่นยนต์เคลื่อนไปยังตาแหน่งนั้น โดย


ใช้พิกัดตาแหน่งในระนาบ 2 มิติ รวมถึงอาจใช้ทิศทางการวางตัวของหุ่นยนต์มาเป็นสถานะ แต่หุ่นยนต์ไม่สามารถ
เข้าใจการสั่งให้เคลื่อนที่ด้วยพิกัด ดังนั้นการเคลื่อนที่ไปยังตาแหน่งและทิศทางเป้าหมายจึงต้อง คานวณให้อยู่ในรูป
ความเร็วในเคลื่อนที่เพื่อนาไปสั่งล้อ (มอเตอร์ของล้อแต่ละข้าง) และหุ่นยนต์จะนาไป แปลงเป็นความเร็วในการ
16

หมุนของล้ออีกทีหนึ่ง แต่ในหุ่นยนต์บางรุ่นอาจต้องสั่งการด้วยความเร็วในการ หมุนล้อโดยตรงเลย ดังนั้นการนา


ทางหุ่นยนต์จึงต้องพิจารณาใน 2 ประเด็น คือ วิธีการกาหนดสถานะ เป้าหมาย และวิธีการสั่งการไปยังหุน่ ยนต์

2.5 การคานวณหาระยะห่างวัตถุของ Lidar sensor


LIDAR (Light detection and ranging) คือ sensor วัดระยะทางด้วยแสง โดยมีกลไกการทางานเบื้องต้น
คือ ทาการยิงแสง laser แบบ a Near-Infrared laser ไปยังวัตถุ ซึ่งจะมี coded signature กาหนดอยู่ จากนั้น
ทาการวัดระยะเวลาที่แสงกระทบวัตถุสะท้อนกลับมายัง sensor ด้วย coded signature เดียวกัน เพื่อนาเวลาที่
ได้ไปคานวณหาระยะของวัตถุ และหากวัตถุมีการเคลื่อนที่ก็สามารถคานวณหาความเร็วของวัตถุได้นั้นได้ เนื่องจาก
เราทราบความเร็วของแสงอยู่แล้ว ดังตัวอย่างต่อไปนี้

ตัวอย่าง
ความเร็วแสง (c) = 299,792,485 m/s
เวลาที่วัดได้ (time) = (To Object + Return) / 2 = 0.000000112 s
ดังนั้น จะได้ระยะทาง (d) = (c) (time) = 33.6 m

ภาพที่ 2.12 รูปแสดงหลักการทางานของ Lidar


17

บทที่3
วิธีดาเนินการศึกษาค้นคว้า

การวิจัยเรื่อง หุ่นยนต์เคลื่อนที่ตามบุคคลเป้าหมายโดยการใช้ไลดาร์เซ็นเซอร์ ในการวิจัยครั้งนี้ ผู้วิจัยได้ใช้


หุ่นยนต์ เคลื่อนที่ ชนิ ด ล้ อพร้ อมระบบควบคุ ม และแบตเตอรี่ม าร่ ว มกั บ ไลดาร์ เซ็ นเซอร์ (Lidar Sensor)เป็ น
เทคโนโลยีการตรวจจับระยะทางไกลที่ใช้แสง โดยมีจุ ดประสงค์ เพื่อพัฒนาโปรแกรมหุ่นยนต์ เคลื่อนที่ ใ ห้สามารถ
ติดตามบุคคลหรือติดตามเป้าหมายได้อย่างแม่นยา ซึ่งดาเนินการโดยใช้อัลกอริทึมในการตรวจจับวัตถุในภาพและ
ศึกษาการควบคุมระยะของหุ่นยนต์กับมนุ ษย์และใช้ภาษา Python ในการจัดการควบคุมหุ่ นยนต์หลังจากนั้นจะ
เป็นการทดลองอัลกอริทึมว่าสามารถใช้งานได้จริงหรือไม่ โดยมีรายละเอียดเกี่ยวกับวิธีดาเนินงานวิจัย ดังนี้
1.เครื่องมือที่ใช้ในการวิจัย
2.การเก็บรวบรวมข้อมูล
3.การวิเคราะห์ข้อมูล

3.1 เครื่องมือที่ใช้ในการวิจัย
3.1.1 หุ่นยนต์ 4WD Smart Robot
ชุดหุ่นยนต์ Yahboom Raspberry Pi 4WD Smart Robot มีคุณสมบัติที่น่าสนใจหลายประการชุดหุน่ ยนต์
ประกอบด้ว ยโครงสร้า งอลูมิ เนี ยมอั ลลอยที่สามารถประกอบได้อย่า งง่ า ยและมอเตอร์ ขับ เคลื่อนสี่ ตัว ที่มี กาลั ง
ขับเคลื่อนสู ง ยังมีการยึดมอเตอร์ โลหะที่ทนทานและแบตเตอรี่คุณภาพสูงเพื่อให้ ได้ผลลัพธ์ที่ เสถียรและเชื่อถือได้
ชุดหุ่นยนต์ประกอบด้วยบอร์ดขยายฟังก์ชันหลากหลายที่มีชื่อว่า BST-4WD โดยสามารถเชื่อมต่อกับเซ็นเซอร์และ
โมดูลการสื่ อสารที่แตกต่า งกั นได้ และยัง สามารถใช้ งานร่ วมกั บตั วควบคุม หลั กทั้ งสี่ รุ่นได้ คือ Arduino UNO,
คอนโทรลเลอร์ 51, STM32 และ Raspberry Pi ซึ่งสร้า งสภาพแวดล้อมที่ เหมาะสมในการวิจัย สาหรับ นักวิจั ย
เนื่องจากสามารถใช้ตัวควบคุมที่ต้องการได้ตามความเหมาะสม หุ่นยนต์นี้รองรับฟังก์ชันหลากหลาย เช่นการค้นหา
แสงอัจฉริย ะ การติด ตามวัตถุ การหลีกเลี่ ยงอุปสรรคทางเสียงโดยใช้เซนเซอร์อัลตราโซนิค และการดั บเพลิงด้ว ย
พัดลม ซึ่งสามารถประยุกต์ใช้ในการวิจัยหลากหลายแขนง
18

นอกจากนี้ หุ่นยนต์ยังสนับสนุนฟังก์ชัน AI หลากหลาย เช่นการตรวจจับใบหน้า การติดตามสี และการรู้จ า


วัตถุ/ท่าทาง/รหัส QR เพื่อให้ นักวิจัยสามารถทาการวิจัย ที่เกี่ยวข้องกับคอมพิวเตอร์ วิชั่นขั้นสูงและทดลองเชิง AI-
based robotics ได้ ผู้ ใช้ งานสามารถใช้ภาษาโปรแกรม C และ Python เพื่อปรั บใช้ และพั ฒนาอัลกอริทึ ม ที่
เกี่ ยวข้ องกั บงานวิ จัย ได้ ซึ่ งเป็ นการสนับ สนุนที่ ดีใ นการรวมระบบงานวิ จัย ที่มี อยู่และส่ ง เสริม การสร้า งความ
สร้างสรรค์ในการวิจัยวิธีใหม่ ๆ

โดยรวมแล้ว ชุดหุ่นยนต์ Yahboom Raspberry Pi 4WD Smart Robot เป็นทางเลือกที่ครอบคลุมสาหรับนักวิจัย


และง่ ายในการประกอบ ความทนทานของส่ วนประกอบที่แข็ง แรง ตัว เลือกในการขยายพื้นที่อื่น ๆ ภายนอก
ความสามารถในการทางานด้าน AI และอินเทอร์เฟซการควบคุมที่ใช้งานง่าย เป็นต้น

ภาพที่ 3.1 รูปแสดงตัวอย่างและข้อมูลของหุ่นยนต์


19

3.1.2 lidar sensor ถ้าใช้ LN-lidar

ภาพที่ 3.2 รูปแสดง ข้อมูลของไลดาร์ รุ่น TF-Luna


20

ภาพที่ 3.3 ไลดาร์ รุ่น TF-Luna

TF-Luna เป็ นเซ็นเซอร์ LiDAR รูป แบบ single-point ที่ใ ช้ห ลั กการ TOF (Time of Flight) ในการวั ด
ระยะห่า ง หลักการวัด ที่มี ค วามเสถีย รและความแม่ นย าสู ง ซึ่ งเหมาะสาหรั บงานวิ จัย ที่ต้ องการการตรวจวั ด
ระยะห่า งที่ มีค วามเสถี ยรและแม่ นย าสู งในอั ตราเฟรมสูง และเซ็นเซอร์ LiDAR นี้ ไ ด้รั บการพัฒนาอัลกอริทึ ม ที่
ปรับแต่งให้ เหมาะสมกั บสภาพแวดล้อมและเขตข้อมูลแอพพลิเคชั่นต่างๆ และมีประสิทธิ ภาพการวัด ระยะห่างที่
ยอดเยี่ยมในเขตข้อมูลแอพพลิเคชั่นที่ซับซ้อน
นอกจากนี้ เซ็นเซอร์ยังรองรั บการสื่อสารผ่านอิ นเตอร์เฟสสองประเภท คือ UART และ I2C ซึ่งช่ วยให้ง่า ย
ต่อการเชื่ อมต่อกับ อุปกรณ์อื่น ๆ และสามารถปรับแต่งการกาหนดค่าและพารามิเตอร์ต่างๆ บนเซ็ นเซอร์เพื่อให้
เหมาะสมกับความต้องการของงานวิจัย
21

ภาพที่ 3.4 ภาพการทางานของไลดาร์ TF-Luna

เซ็นเซอร์ LiDAR รุ่น TF-Luna ใช้หลักการ TOF (Time of Flight) เพื่อการทางาน โดยหลักการนี้เป็นการ
ส่งเสียงรบกวนด้วยแสงส่องสว่างในช่วงสั้นผ่านคลื่นความถี่เชิงพลวัต (near-infrared rays) โดยที่มันจะถูกส่งออก
ไปในระยะเวลาที่แน่นอนตามระยะห่างที่กาหนดไว้ และจะสะท้อนกลับมาหลัง จากสั มผัสกั บวัตถุ โดยเซ็นเซอร์
LiDAR จะได้รับ ข้อมูลเกี่ยวกับ เวลาที่ใ ช้ใ นการส่ง กลั บมา (round-trip phase difference) และจะค านวณหา
ระยะทางที่เกิดการสัมผัสระหว่างเซ็นเซอร์ LiDAR กับวัตถุที่ตรวจพบ

ภาพที่ 3.5 ตารางตัวอย่างการทางานของ TF-Luna ที่ใช้ในการตรวจจับวัตถุสิ่งของ


22

3.1.3 โปรแกรม python


Python เป็นภาษาโปรแกรมระดับสูงที่หลากหลายและได้รับความนิยมและการยอมรับอย่างมากในวงการ
วิจัย พัฒนาขึ้นในช่ว งท้า ยของปี 1980 โดย Guido van Rossum และมีคุณ สมบัติ ที่เป็ นเอกลักษณ์ เช่น ความ
เรีย บง่า ย ความอ่านง่า ย และความง่ายในการใช้ง าน ได้รั บความนิยมในการวิ จัยในหลายสาขาวิชาต่า งๆ ด้ว ย
ความสามารถของไลบรารีที่หลากหลาย ความสามารถที่มีประสิทธิภาพ โดยมีข้อดี ข้อเสีย ดังนี้

ข้อดี:
Readability: โครงสร้างไวยากรณ์ทใี่ ช้ในภาษา Python ช่วยให้โค้ดอ่านง่ายและเข้าใจได้ง่ายขึ้น ทาให้นักวิจัย
สามารถเขียนและเข้าใจอัลกอริทึมที่ซับซ้อนได้ง่ายขึ้น

Extensive Libraries: Python มีระบบไลบรารีและโครงสร้างข้อมูลที่หลากหลาย เช่น NumPy, pandas, scikit-


learn เป็นต้น ซึ่งช่วยให้นักวิจัยสามารถจัดการข้อมูลได้มีประสิทธิภาพ วิเคราะห์ข้อมูล และคาดการณ์ดว้ ยเทคนิค
การเรียนรู้ของเครื่องจักร

Interoperability: Python สามารถทางานร่วมกับภาษาอื่น ๆ เช่น C, C++, FORTRAN ได้อย่างสมบูรณ์ ซึ่งช่วย


ให้นักวิจัยสามารถใช้โค้ดและไลบรารีทมี่ ีอยู่แล้วเพื่อเพิ่มประสิทธิภาพและฟังก์ชันการทางาน

Community Support: Python มีชุมชนขนาดใหญ่และที่ใ ห้การสนับสนุนอย่ างต่อเนื่องจากนักพัฒนา นั กวิจั ย


และผู้ที่ ชื่นชอบในการใช้ง าน Python ชุ มชนนี้ใ ห้ ข้อมู ลคู่มื อการใช้ ง านมากมายและโปรเจ็ กต์โอเพนซอร์ ที่ มี
มากมาย ทาให้นักวิจัยสามารถหาข้อมูลและร่วมงานกับผู้อื่นได้อย่างง่าย

Rapid Prototyping: ภาษา Python ที่มีลักษณะเป็นภาษาแปลคาระดับสูงและมีขอบเขตการใช้งานที่กว้างขวาง


ช่วยให้นักวิจัยสามารถสร้างและทดสอบ ตรวจสอบสมมติฐาน และทดลองใช้งานอัลกอริทึมต่างๆได้อย่างรวดเร็ว

Reproducibility: การให้ความสาคัญกับความง่ายต่อการอ่านของโค้ดและ Open-source ของภาษา Python


ช่วยเพิ่มความสามารถในการทาซ้าของการทดลองวิจัย นักวิจัยสามารถแบ่งปันโค้ดและข้อมูลได้ง่ายขึ้น ส่งผลให้
งานวิจัยสามารถทาซ้าได้และสนับสนุนการร่วมมือในการวิจัย
23

ข้อเสีย:
Performance: เมื่อเปรียบเทียบกับภาษาระดับต่าอื่น ๆ เช่น C หรือ C++ ภาษา Python อาจมีข้อจากัดใน
ประสิทธิภาพ โดยเฉพาะในงานที่ต้องการความเร็วในการประมวลผลที่สูงหรือการทางานแบบเรียลไทม์

Global Interpreter Lock (GIL): การล็ อคเวลาการประมวลผลของ thread หลายๆ thread ในกระบวนการ
ภาษา Python server อาจมี ผลต่อประสิทธิ ภาพในแอพพลิเคชั่นหลาย thread ที่ ต้องการการประมวลผลแบบ
พร้อมกัน

Memory Consumption: การจัดการความจา มีข้อจากัดในการใช้หน่วยความจาที่สูงเมื่อเทียบกับภาษาอื่นที่ใช้


หน่วยความจาอย่างมีประสิทธิภาพมากกว่า

Mobile Development: ภาษา Python เหมาะสาหรั บการวิ จั ยในหลายๆ แอพพลิ เคชั่ น แต่ ไ ม่ใ ช่ ตัว เลือกที่
เหมาะสมที่สุดสาหรับการพัฒนาแอพพลิเคชั่นบนมือถือ เนื่องจากภาษา Python มีการสนับสนุนที่จากัดบางส่ว น
สาหรับแพลตฟอร์มมือถือบางรายการ

สรุป: ความเรียบง่ายของ Python และการมีไลบรารีที่หลากหลาย ความสามารถในการทางานร่วมกันกับ ภาษาอื่น


ๆ ทาให้ Python เป็นทางเลือกที่ยอดเยี่ยมสาหรับงานวิจัยแต่ผู้ใช้ควรพิจารณาประสิทธิภาพการทางาน ผลกระทบ
จาก GIL และการใช้หน่วยความจาเมื่อจัดการกับงานที่ตอ้ งการประมวลผลในปริมาณมาก

3.2 การเก็บรวบรวมข้อมูล

เราจะทาการให้หุ่ นยนต์เรีย นรู้การวิ เคราะห์ ข้อมูลด้วยวิธี machine learning โดยการใช้ supervised


learning ซึ่งผู้จัดทาได้ใ ช้หลักการรวบรวมข้อมูลแบบ CNN โดยที่ผู้จัดทาจะ input รูปและลักษณะที่เป็นบุคคล
ให้กับหุ่นยนต์จดจาเมื่อหุ่นยนต์สามารถวิเคราะห์ได้ว่าเป็นบุคคลก็จะให้ทาการ output ออกมา และทาการติดตาม
24

3.2.1 ขั้นเตรียมการ
3.2.1.1 เขียนcode python การ import รูปภาพใน python

ภาพที่ 3.6 รูปแสดงขั้นตอนการรับข้อมูลจาก Lidar

3.2.1.2 หาข้อมูลศึกษาเกี่ยวกับอัลกอริทึมในการตรวจจับวัตถุในภาพและศึกษาการควบคุมระยะของหุ่นยนต์กับ
มนุษย์ด้วยการใช้ Lidar senser

ภาพที่ 3.7 การเขียน โค้ดสาหรับควบคุมหุ่นยนต์


25

3.2.1.3 หาตัวอย่างภาพที่เป็นบุคคลเพื่อที่จะให้หนุ่ ยนต์ทาการจดจา ซึ่งได้จัดหารูปแบบจาก Mediapipe

ภาพที่ 3.8 ตัวอย่างบุคคลที่จะนามาทดลองให้กับหุน่ ยนต์

3.2.2 ขั้นดาเนินการทดลอง
3.2.2.1 โปรแกรมตัวหุ่นยนต์โดยใช้ภาษา Python ซึ่งผู้จัดทาจะใช้หุ่นยนต์สาเร็จรูปทีม่ ีระบบปฏิบัติการ

Linux เพื่อที่จะสามารถเขียนโปรแกรมได้สะดวกยิ่งขึ้น

3.2.2.2 ดาเนินการทดลองอัลกอริทึมเพื่อทดสอบความในการใช้งาน

3.2.2.3 ปรับแต่งอัลกอริทึมโดยอ้างอิงจากทฤษฎีต่างๆและแก้ไขตัวแปรต่างๆเพื่อที่จะทาให้ควบคุมหุน่ ยนต์


ได้ดีขึ้น

3.2.2.4 Input รูปหรือลักษณะที่เป็นบุคคลให้กับหุน่ ยนต์จดจา

3.2.3 ขั้นประเมินผล

3.2.3.1 หลังสิ้นสุดการทดสอบ จะนาผลมาใช้ในการควบคุมกากับให้ตรงตามแผนงานในการดาเนินโครงการ


ต่อไป
26

3.3 การวิเคราะห์ข้อมูล

ในการวิเคราะห์ข้อมูล ผู้วิจัยได้ดาเนินการวิเคราะห์ข้อมูลดังนี้

3.3.1.หุ่นยนต์

นารูปต่างๆให้หนุ่ ยนต์ทดสอบ detected แล้วนามาคิดเป็นเปอร์เซ็นต์ว่ามีความแม่นยาเท่าไร ถ้าผลของ


ความแม่นยามีค่ามากกว่า 75 % ถือว่าหุ่นยนต์มีความแม่นยาในการตรวจจับบุคคลที่มปี ระสิทธิภาพ แต่ถ้าผลใน
การตรวจสอบน้อยกว่า 75 % ต้องแก้ไขการใส่ข้อมูลใหม่ให้หลากหลายมากขึ้น
3.3.2. Lidar senser

นาสัญญาณที่ได้รับจาก Lidar senser มาวิเคราะห์ว่าเป็นสัญญาณแบบใด แล้วจะคานวณเป็นภาพหรือ


ระยะทางอย่างไร
27

ภาพที่ 3.9 รูปแสดง Flowchart การทางานของหุ่นยนต์


28

บทที่ 4
ผลการวิจัยและการอภิปรายผล

จากการศึกษาวิจัยเรื่อง หุ่นยนต์เคลื่อนที่ตามบุคคลเป้าหมายโดยใช้ ไลดาร์เซนเซอร์ เพื่อศึกษาและพัฒนา


โปรแกรมให้สามารถทางานได้มีประสิทธิภาพมากขึ้นนั้น คณะวิจัยได้ทาการศึกษาและทดลองให้กับหุน่ ยนต์ ใน
ขั้นตอนต่างๆดังนี้

1.ขั้นตอนในการศึกษาส่วนประกอบของหุ่นยนต์

ภาพที่ 4.1 อุปกรณ์และส่วนประกอบของหุ่นยนต์


29

ภาพที่ 4.2 ขั้นตอนการประกอบหุ่นยนต์

ภาพที่ 4.3 ขั้นตอนการศึกษาส่วนประกอบของหุ่นยนต์


ขั้นตอนระหว่างการ ศึกษาส่วนประกอบของหุน่ ยนต์ เพื่อให้รู้หลักการทางานของหุ่นยนต์และส่วนประกอบต่างๆ
ของหุ่นยนต์ หลังจากศึกษาส่วนประกอบเข้าใจเรียบร้อยแล้ว จึงนาหุ่นยนต์มาเชื่อมต่อข้อมูลและทาการเขียน
code ในขั้นตอนต่อไป
30

2.ขั้นตอนการศึกษา โปรแกรมและทาการเขียนโค้ดให้กับหุ่นยนต์

ภาพที่ 4.4 ขั้นตอนการศึกษาโปรแกรม

ภาพที่ 4.5 ขั้นตอนการเขียนโค้ดให้กับหุ่นยนต์


31

ภาพที่ 4.6 ขั้นตอนการศึกษาหลักการทางานของหุ่นยนต์


3.ขั้นตอนการทดลอง และปรับปรุงข้อแก้ไข

ภาพที่ 4.7 ขั้นตอนการปรับปรุงแก้ไขโค้ดของหุ่นยนต์

โปรแกรมในการเข้าถึงหุ่นยนต์ โดยขั้นตอนแรกเราต้องเชื่อม PUTTY ในคอมพิวเตอร์ และหุ่นยนต์เพื่อทาการ


เชื่อมต่อ ถ่ายโอนข้อมูล เข้าไปในตัวหุ่นยนต์
32

ภาพที่ 4.8 ทดลองโปรแกรมจาแนกภาพ โดยใช้บุคคลจริงในการทดลอง

ภาพที่ 4.9 ทดลองโปรแกรมจาแนกภาพ โดยใช้บุคคลจริงในการทดลอง


33

ภาพที่ 4.10 ขั้นตอนในการทดลองให้หุ่นยนต์โดยใช้ บุคคลจริงในการทดลอง

ภาพที่ 4.11 ขั้นตอนในการทดลองให้หุ่นยนต์โดยใช้ บุคคลจริงในการทดลอง


34

บทที่ 5

สรุปผลการวิจัย อภิปรายผล และข้อเสนอแนะ

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

5.1 สรุปผลการวิจัย

จากผลการทดลองที่ผ่านมา พบว่าหุ่นยนต์สามรถที่จะรับข้อมูล ประมวลผล และทาการติดตามได้ จากโค้ด


ที่ผู้วิจัยได้เขียนขึ้น แต่หุ่นยนต์ยังมีความล่าช้าในการตอบสนอง ทั้งนี้เป็นเพราะว่าตั้งแต่หุ่นยนต์เริ่มตรวจจับวัต ถุ
ไปจนถึ งสั่งการให้เคลื่อนที่ใ ช้เวลาในการคานวณมากเกิ นไปจึง ต้องใช้ เวลาในการประมวลผลที่ค่อนข้างนานมาก
และบอร์ดที่เราใช้เป็นบอร์ด Rasperry Pi 4 เป็นบอร์ดที่ขนาดเล็กเมื่อประมวลผลจากหลายระบบจึงมีความล่าช้า
และข้อผิดพลาดเกิด ขึ้น อีกทั้งเมื่ อทางานเป็นเวลานานหุ่นยนต์จะมีการสั่ นสะเทื อนที่ค่ อนข้างมากขึ้ นเรื่อยๆ จึ ง
เป็นผลให้มีการทางานที่ไม่เต็มประสิทธิภาพ

5.2 อภิปรายผล

จากการทดลองที่ผ่านมาที่ได้ศึกษาวิจัยเกี่ยวกับหุ่นยนต์เคลื่อนที่ติดตามเป้าหมายโดยใช้ไลดาร์เซ็นเซอร์โดย
มุ่งเน้นไปที่การพัฒนาโปรแกรมของหุ่นยนต์ อีกทั้งยังได้ศึกษา ทฤษฎีหุ่นยนต์เคลื่อนที่จากงานวิจัยของ ปกรณ์ จึง
ได้นาทฤษฏีมาประยุกต์ใช้กับงานวิจัยครั้งนี้ สามารถทาให้หุ่นยนต์ทางานตามวัตถุประสงค์ได้แต่ยังมีข้อบกพร่อง
ทางเทคโนโลยีและปัญหาทางด้านสภาพแวดล้อมในการทดลอง
35

เนื่องจากการท าให้หุ่นยนต์สามารถติ ดตามและเคลื่ อนตามบุคคลเป้าหมายได้ อย่า งมี ประสิท ธิภาพนั้ น


หุ่นยนต์ต้องมีการเรียนรู้ที่มากและหลากหลายขึ้น จากกระบวนการ Image Processing, Convolutional Neural
Network ซึ่งจะช่วยให้ หุ่นยนต์ สามารถแยกแยะได้ว่ าสิ่งนี้เป็ นอะไร และนอกจากนี้ยังสามารถระบุตาแหน่งของ
บุคคลเป้าหมายและติดตามอัตโนมัติ การใช้ไลดาร์เซนเซอร์ช่วยในการตรวจจับและติดตามบุคคลเป้าหมายเพือ่ ให้
มีความแม่นย าและเร็ วขึ้น เทคโนโลยีนี้ช่วยให้หุ่นยนต์ สามารถทางานในเงื่อนไขที่ มีการกี ดขวางหรือมี ข้อจ ากั ด
ทางด้านสภาพภูมิอากาศ เมื่ อเรียนรู้กระบวนการวิเคราะห์แล้วจึง มาขั้นตอนการควบคุมโดย จะให้เงื่อนไขกับตั ว
หุ่นยนต์ดังนี้

ภาพที่ 5.1 รูปแสดง Flowchart การทางานของหุ่นยนต์


36

และทาการเขียนเป็น Code จากโปรแกรม Python ขึ้นมา จากนั้นก็นามา เข้าโปรแกรมกับตัวหุ่นยนต์เพื่อ


ดูว่ าสามารถปฏิบั ติไ ด้ ตามวั ตุป ระสงค์ห รือไม่ ผลการวิ จัย นี้เปิด โอกาสให้ มีการพัฒนาเพิ่ม เติ มในอนาคต เพื่ อ
ปรับปรุงและพัฒนาระบบให้มีประสิทธิภาพและความเร็วในการตรวจจับและติดตามบุคคลเป้าหมาย

5.3 ข้อเสนอแนะ

การทดลองในอนาคต
5.3.1 ใช้บอร์ด 2 ชิ้นในตัวหุ่นยนต์ ชิ้นแรกในการประมวล ชิ้นที่สองใช้ในการควบคุมหุน่ ยนต์เพื่อที่จะเพิ่ม
ประสิทธิภาพและลดเวลาประมวลผลของหุ่นยนต์
5.3.2 ทดลองกับสภาพแวดล้อมที่จากัด เช่น ในที่มืด หรือพื้นที่ที่มีหุ่นปลอมมาเพื่อให้หนุ่ ยนต์สามารถ
แยกแยะได้มากขึ้น
37

บรรณานุกรม

1. C. Schlegel, J. Illmann, H. Jaberg, M. Schuster, and R. Worz, "Vision Based Person Tracking with
a Mobile Robot.," in BMVC, 1998, pp. 1-10.
2. K. Morioka, J. -H. Lee, and H. Hashimoto, "Human-followir mobile robot in a distributed
intelligent sensor network IEEE Trans. Ind. Electron., vol. 51, no. 1, pp. 229-237, Fe 2004.
3. N. Bellotto and H. Hu, "Multisensor integration for human-robot interaction," IEEE J. Intell.
Cybern. Syst., vol. 1, no. 1, p.1,2005
4. N.-Y. Ko, D.-J. Seo, and Y.-S. Moon, "A Method for Real Time Target Following of a Mobile
Robot Using Heading and Distance Information," J. Korean Inst. Intell. Syst., vol.
38

ภาคผนวก
39

ภาคผนวก ก
งานวันนิทรรศการวิชาการ
โรงเรียนนายร้อยพระจุลจอมเกล้า
40
41
42

ภาคผนวก ข
โปสเตอร์นาเสนองานวันนิทรรศการวิชาการ
โรงเรียนนายร้อยพระจุลจอมเกล้า
43

สารบัญ(ต่อ)

หน้า

บทที่ 3 การดำเนินการวิจัย
3.1 เครื่องมือที่ใช้ในการวิจัย 17
3.1.1 หุ่นยนต์ 4WD Smart Robot 17
3.1.2 lidar sensor 19
3.1.3 โปรแกรม python 22
3.2 การเก็บรวบรวมข้อมูล 23
3.2.1 ขั้นเตรียมการ 24
3.2.2 ขั้นดำเนินการทดลอง 25
3.2.3 ขั้นประเมินผล 25
3.3 การวิเคราะห์ข้อมูล 26

บทที่ 4 ผลการวิจัยและการอภิปรายผล
4.1 ขั้นตอนในการศึกษาส่วนประกอบของหุ่นยนต์ 28
4.2 ขั้นตอนการศึกษา โปรแกรมและทำการเขียนโค้ดให้กับหุ่นยนต์ 30
4.3ขั้นตอนการทดลอง และปรับปรุงข้อแก้ไข 31

บทที่ 5 สรุปผลการวิจัย อภิปรายผล และข้อเสนอแนะ

5.1 สรุปผลการวิจยั 34
5.2 อภิปรายผล 34
5.3 ข้อเสนอแนะ 36
บรรณานุกรม 37
ภาคผนวก
ผนวก ก งานวันนิทรรศการวิชาการ รร.จปร. 39
ผนวก ข โปสเตอร์นำเสนองานวันนิทรรศการวิชาการ รร.จปร. 42
ผนวก ค ตัวอย่างโค้ดที่ได้ทดลองให้กับหุ่นยนต์ 44
44

ภาคผนวก ค
ตัวอย่างโค้ดที่ได้ทดลองให้กับหุ่นยนต์
45
46

You might also like