Development of an Obstacle Avoidance System for Autonomous Material Handling Vehicles

Development of an Obstacle Avoidance System for Autonomous Material Handling Vehicles

อาจารย์ที่ปรึกษา ผู้ช่วยศาสตราจารย์ ดร.กิตติพงษ์ เยาวาจา (Kittipong Yaovaja)
หัวหน้ากลุ่มวิจัยวิทยาการหุ่นยนต์และระบบอัตโนมัติขั้นสูง และผู้รับผิดชอบหลักสูตรหุ่นยนต์และระบบอัตโนมัติ (นานาชาติ)​ ม.เกษตรศาสตร์ วิทยาเขตศรีราชา คณะวิศวกรรมศาสตร์ศรีราชา

Development of an Obstacle Avoidance System for Autonomous Material Handling Vehicles

ดรรชนี-อังกฤษ

Automated guided vehicles (AGVs);Autonomous vehicle;Intelligent navigation system;Mobile robot;Automatic guided vehicles;Intelligent robots;Materials handling;Navigation systems;Wages;Automated guided vehicle;Automated guided vehicles;Autonomous Vehicles;Intelligent navigation systems;Labor costs;Labor shortages;Material handling;Materials handling vehicles;Obstacle-avoidance system;Production line;Mobile robots

Abstract

In the Covid-19 epidemic, the automated guided vehicles (AGVs) could be use in material handling which prevent interpersonal contact and be a factor in reducing the epidemic. As the consequence of the labor shortage, the recruitment of labor on material handling tends to be scarce and the labor cost is also higher. Therefore, the solution is to use AGVs in the material handling in the production line. The benefit of reducing the human labor is the ability to reduce the cycle time and human error in the operation. However, at present, the cost of the AGVs from the manufacturer or the dealer is high. This paper introduces the development process of an automatic transport vehicle by using Mecanum wheels which can carry payload up to 20 kg. The hardware and software of material handling vehicle was designed such as the material of the structure, sensors, electrical circuit, controller, and computer algorithm. The autonomous material handling vehicle was tested in the transportation of small parts in factories within limited workspaces where conventional wheeled vehicles cannot operate. The RP-LiDAR S1 was used to acquire main sensing signal to find the appropriate escape route. The experimental results showed that the intelligent nagavative system enhance the ability of obstacle avoidance to the material handling vehicles in the real situation in the transportation of small parts in a factory. © 2022 IEEE.

แหล่งจัดเก็บออนไลน์

https://www.scopus.com/inward/record.uri?eid=2-s2.0-85145876091&doi=10.1109%2fICTKE55848.2022.9983019&partnerID=40&md5=7a18e8cb4081a299900da4259416ed82

วิทยานิพนธ์

การพัฒนาระบบหลบสิ่งกีดขวางสำหรับรถขนย้ายวัสดุ

DEVELOPMENT OF AN OBSTACLE AVOIDANCE SYSTEM FOR MATERIAL HANDLING VEHICLES

นายสุรชัย ชัยณรงค์

บัณฑิตวิทยาลัย มหาวิทยาลัยเกษตรศาสตร์
ปีการศึกษา ๒๕๖๗

วิทยานิพนธ์

เรื่อง

การพัฒนาระบบหลบสิ่งกีดขวางสำหรับรถขนย้ายวัสดุ

Development of an Obstacle Avoidance System for Material Handling Vehicles

โดย

นายสุรชัย ชัยณรงค์

เสนอ

บัณฑิตวิทยาลัย มหาวิทยาลัยเกษตรศาสตร์
เพื่อความสมบูรณ์แห่งปริญญาวิศวกรรมศาสตรมหาบัณฑิต (วิศวกรรมเครื่องกล)
ปีการศึกษา 2567

บทคัดย่อภาษาไทย

บทคัดย่อภาษาอังกฤษ

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

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

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

สุรชัย ชัยณรงค์

สารบัญ
หน้า
บทคัดย่อภาษาไทย ค
บทคัดย่อภาษาอังกฤษ ง
กิตติกรรมประกาศ จ
สารบัญ ฉ
สารบัญตาราง ญ
สารบัญภาพ ฏ
คำนำ 1
วัตถุประสงค์ 2
การตรวจเอกสาร 3

  1. โครงสร้างของรถขนส่งอัตโนมัติ 10
    1.1 รถขนส่งอัตโนมัติประเภทต่าง ๆ 10
    1.2 ลักษณะล้อ และการติดตั้งล้อสำหรับรถขนส่งอัตโนมัติ 11
  2. แบบจำลองหุ่นยนต์เคลื่อนที่ (Mobile robot model) 13
    2.2 หุ่นยนต์เคลื่อนที่แบบหมุนล้อสองล้อแตกต่างกัน (Differentially-steered mobile robots) 15
    2.3 หุ่นยนต์เคลื่อนที่ได้รอบทิศทาง (Omnidirectional mobile robots) 16
  3. ระบบนำทาง (Navigation) 19
    3.1 ระบบนำทางแบบ Physical guideline 20
    3.2 ระบบนำทางแบบ Magnetic anchoring points 21
    3.3 ระบบนำทางแบบ laser navigation 22
    3.4 ระบบนำทางแบบ global positioning system (GPS) 23
  4. การวางแผนเส้นทาง (Path planning) 26
    4.1 Environment presentation 26
    4.2 การวางแผนเส้นทาง (Path planning) 32
    4.3 Graph-based algorithms 35
  5. การหลบหลีกสิ่งกีดขวาง (Obstacle avoidance) 41
    5.1 วิธี Potential Field 41
    5.2 วิธี Vector Field Histogram 43
    5.3 วิธี Obstacle Restriction 45
    5.4 วิธี Dynamic Window 47
    5.5 วิธี Velocity Obstacles 48
    5.6 วิธี Nearness Diagram Navigation 49
  6. การหาตำแหน่งของหุ่นยนต์ และการทำแผนที่ (Localization and mapping) 50
    6.1 ตัวกรองคาลมาน (Kalman filter) 50
    6.2 การหาตำแหน่งของหุ่นยนต์ (Localization) 57
    6.3 การทำแผนที่ (Mapping) 60
    6.4 การหาตำแหน่งของหุ่นยนต์ และการทำแผนที่ (Localization and mapping) 62
    6.5 การควบคุมหุ่นยนต์ (Robot control) 63
    อุปกรณ์ และวิธีการ 73
  7. อุปกรณ์ 74
    1.1 ซอฟต์แวร์สำหรับระบบปฏิบัติการหุ่นยนต์ 74
    1.2 ระบบประมวลผล และอุปกรณ์ควบคุม 80
    1.3 โครงสร้าง และระบบขับเคลื่อน 92
    1.4 แหล่งพลังงานไฟฟ้า 95
  8. วิธีการ 96
    2.1 การออกแบบตัวหุ่นยนต์ 98
    2.2 การติดตั้ง และเชื่อมต่ออุปกรณ์ เซ็นเซอร์ และซอฟต์แวร์ 107
    2.3 ส่วนควบคุมการเคลื่อนที่ของรถขนส่งอัตโนมัติ 109
  9. การเขียนโปรแกรมบน ระบบปฏิบัติการหุ่นยนต์ 2 (Robot Operating System2: ROS2) 114
    3.1 การติดตั้งโปรแกรมบนระบบปฏิบัติการหุ่นยนต์ 2 (Robot Operating System2: ROS2) และสร้างไฟล์ต่าง ๆ ที่ใช้ในการควบคุมหุ่นยนต์ 115
    3.2 การสร้างโปรแกรมเพื่อควบคุมการเคลื่อนที่ของตัวหุ่น โดยใช้ภาษาไพธอนบนระบบปฏิบัติการหุ่นยนต์ 2 116
    ผลการทดลอง 125
  10. การทดลองหุ่นยนต์ให้ตรวจจับวัตถุชนิดต่าง ๆ โดยใช้ไลดาร์ (LiDAR) บนหุ่นยนต์ 125
    1.1 การหลีกเลี่ยงอุปสรรคของยานพาหนะขนถ่ายวัสดุอัตโนมัติ 126
    1.2 การทดสอบการทำงาน 127
  11. การทดสอบการเคลื่อนของหุ่นยนต์ตามเส้นทางเดินแบบต่าง ๆ โดยไร้สิ่งกีดขวาง 128
    2.1 การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางตรงโดยไร้สิ่งกีดขวาง ระยะทาง 1 เมตร ถึง 10 เมตร 129
    2.2 การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางโค้งโดยไร้สิ่งกีดขวาง ระยะทาง 2 เมตร ถึง 10 เมตร 131
  12. การทดสอบการเคลื่อนของหุ่นยนต์ตามเส้นทางเดินแบบต่าง ๆ โดยมีสิ่งกีดขวางประเภทต่าง ๆ 133
    3.1 การทดสอบเดินตามระยะทางตรงแบบมีสิ่งกีดขวาง เป็นถังขนาด 0.3 x 0.4 เมตรระยะทาง 1 เมตร ถึง 10 เมตร 133
    3.2 การทดสอบเดินตามระยะทางตรงแบบมีสิ่งกีดขวางเป็นกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร ระยะทาง 1 เมตร ถึง 10 เมตร 135
    3.3 การทดสอบเดินตามระยะทางตรงแบบมีสิ่งกีดขวางเป็นลูกบอลขนาด 0.2 เมตร บนกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร ระยะทาง 1 เมตร ถึง 10 เมตร 137
    3.4 การทดสอบเดินตามระยะทางโค้ง90 องศา แบบมีสิ่งกีดขวาง เป็นถังขนาด 0.3 x 0.4 เมตรระยะทาง 2 เมตร ถึง 10 เมตร 139
    3.5 การทดสอบเดินตามระยะทางโค้ง90 องศา 2 ระยะทาง 2 เมตร ถึง 10 เมตรแบบมีสิ่งกีดขวางเป็นกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร 141
    3.6 การทดสอบเดินตามระยะทางโค้ง 90 องศา ระยะทาง 2 เมตร ถึง 10 เมตรแบบมีสิ่งกีดขวางเป็นลูกบอลขนาด 0.2 เมตร บนกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร 142
  13. การทดสอบการเคลื่อนของหุ่นยนต์ตามเส้นทางเดินแบบต่าง ๆ โดยมีสิ่งกีดขวางแบบต่อเนื่อง 144
    อภิปราย และวิจารณ์ผล 152
  14. การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางตรงโดยไร้สิ่งกีดขวาง ระยะทาง 1 เมตร ถึง 10 เมตร ตามภาพที่ 107 152
  15. การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางโค้งโดยไร้สิ่งกีดขวาง ระยะทาง 2 เมตร ถึง 10 เมตร ตามภาพที่ 108 154
  16. การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางตรงโดยมีสิ่งกีดขวาง ระยะทาง 1 เมตร ถึง 10 เมตร เป็นถัง กล่อง และ ลูกบอล ตามภาพที่ 109 – 111 155
  17. การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางโค้งโดยมีสิ่งกีดขวาง ระยะทาง 1 เมตร ถึง 10 เมตร เป็นถัง กล่อง และ ลูกบอล ตามภาพที่ 112 – 114 157
    สรุปผลการวิจัย และข้อเสนอแนะ 161
    เอกสารและสิ่งอ้างอิง 163
    ประวัติการศึกษา และการทำงาน 164

สารบัญตาราง
หน้า
ตารางที่ 1 รถขนส่งอัตโนมัติประเภทต่าง ๆ 10
ตารางที่ 2 ล้อ และช่วงล่างของรถขนส่งอัตโนมัติประเภทต่าง ๆ 12
ตารางที่ 3 MPU6050 Pinout Configuration 91
ตารางที่ 4 การทดลองการตรวจับอุปสรรคในแบบจำลองซอฟต์แวร์ 128
ตารางที่ 5 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางตรงที่ระยะทางต่าง ๆ 130
ตารางที่ 6 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางโค้งที่ระยะทางต่าง ๆ 132
ตารางที่ 7 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางตรงที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นถังขนาด 0.3 เมตร x 0.4 เมตร 134
ตารางที่ 8 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางตรงที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร 136
ตารางที่ 9 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางตรงที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.4 เมตร x 0.3 เมตร x 0.5 เมตร 138
ตารางที่ 10 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางโค้ง ที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นถังขนาด 0.3 เมตร x 0.4 เมตร 140
ตารางที่ 11 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางโค้งที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร 142
ตารางที่ 12 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางโค้งที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.4 เมตร x 0.3 เมตร x 0.5 เมตร 143
ตารางที่ 13 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง กล่อง ถัง บอล 146
ตารางที่ 14 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง กล่อง บอล ถัง 147
ตารางที่ 15 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง ถัง กล่อง บอล 148
ตารางที่ 16 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง ถัง บอล กล่อง 149
ตารางที่ 17 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง บอล ถัง กล่อง 150
ตารางที่ 18 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง บอล กล่อง ถัง 150

สารบัญภาพ
หน้า
ภาพที่ 1 Automated Guided Vehicle Market Size, Share, and Trends 2022 to 2032 3
ภาพที่ 2 Europe Automated Guided Vehicle Market Size, Share, and Trends 2022 to 2032 4
ภาพที่ 3 รถขนส่งอัตโนมัติเดินตามเส้นแถบแม่เหล็ก หรือเส้นแถบสี 6
ภาพที่ 4 รถขนส่งอัตโนมัติประเภทต่าง ๆ 11
ภาพที่ 5 ล้อแบบ Mecanum 12
ภาพที่ 6 Four – View of Mecanum Wheel Design in GSD Workbench 13
ภาพที่ 7 แบบจำลองแบบจักรยาน (Bicycle model) ของหุ่นยนต์เคลื่อนที่แบบรถยนต์ 14
ภาพที่ 8 แบบจำลองของหุ่นยนต์เคลื่อนที่แบบหมุนล้อสองล้อแตกต่างกัน 15
ภาพที่ 9 (ซ้าย) ล้อแบบออมนิ (Omni wheel) และ (ขวา) ล้อแบบแมคคานัม (Mecanum wheel) 16
ภาพที่ 10 Kinematic diagram ของล้อแบบ Mecanum 17
ภาพที่ 11 Kinematic diagram ของหุ่นยนต์ที่มีล้อแบบ Mecanum 4 ล้อ ที่มา: Corke (2017) 18
ภาพที่ 12 ระบบนำทางแบบต่าง ๆ ที่มา: Ullrich (2015) 19
ภาพที่ 13 ระบบนำทางแบบ Physical guideline (ก) แบบ Inductive (ข) แบบ Optical (ค) แบบ Double conducting สำหรับการชาร์จไฟแบบ non-contacting ที่มา: Ullrich (2015) 21
ภาพที่ 14 (ซ้าย) การหาตำแหน่งของรถด้วยการใช้ dead-reckoning (ขวา) การใช้ anchors ที่ฝังอยู่ในพื้นในการทำให้ได้ตำแหน่งของรถแม่นยำขึ้น ที่มา: Ullrich (2015) 22
ภาพที่ 15 (ก) การหาตำแหน่งของรถด้วยการหาระยะทางจากรถถึงแผ่น foils ที่ติดไว้ตามผนัง และเสา (ข) การใช้ laser scanner หาตำแหน่ง contour โดยรอบ ที่มา: Ullrich (2015) 22
ภาพที่ 16 การนำทางของรถขนส่งอัตโนมัติแบบต่าง ๆ ที่มา: https://www.lodamaster.com/en/solutions/automated-guided-vehicles และ https://www.agvnetwork.com/types-of-navigation-systems-automated-guided-vehicles 24
ภาพที่ 17 รูปแบบระบบนำทาง ที่มา: Ullrich (2015) 25
ภาพที่ 18 เปรียบเทียบระบบนำทางของรถขนส่งอัตโนมัติ 25
ภาพที่ 19 ตัวอย่าง Environment ที่หุ่นยนต์วิ่งอยู่ ที่มา: Klancar et al. (2017) 27
ภาพที่ 20 (A) ตัวอย่าง undirected graph (B) ตัวอย่าง directed graph 27
ภาพที่ 21 ตัวอย่างของ vertical cell decomposition และ graph ที่มา: Klancar et al. (2017) 28
ภาพที่ 22 ตัวอย่างของ Roadmap สองชนิด คือ (A) Visibility graph (B) Voronoi graph ที่มา: Klancar et al. (2017) 29
ภาพที่ 23 ตัวอย่างของ Potential field ที่มา: Klancar et al. (2017) 30
ภาพที่ 24 Rapidly exploring random tree (RRT) 31
ภาพที่ 25 Probabilistic roadmap (PRM) ที่มา: Klancar et al. (2017) 32
ภาพที่ 26 Bug0 algorithm กรณีที่ประสบผลสำเร็จ (ซ้าย) และไม่ประสบผลสำเร็จ (ขวา) ที่มา: Klancar et al. (2017) 33
ภาพที่ 27 Bug1 algorithm กรณีที่ประสบผลสำเร็จ (บนซ้าย และบนขวา) และไม่ประสบผลสำเร็จ (ล่าง) โดยสามารถหาได้ว่าเส้นทางไปสู่ goal นี้เป็นไปไม่ได้ ที่มา: Klancar et al. (2017) 34
ภาพที่ 28 Bug2 algorithm ที่มา: Klancar et al. (2017) 35
ภาพที่ 29 Breadth-first search ที่มา: Klancar et al. (2017) 36
ภาพที่ 30 Depth-first search ที่มา: Klancar et al. (2017) 37
ภาพที่ 31 Iterative deepening depth-first search ที่มา: Klancar et al. (2017) 38
ภาพที่ 32 Dijkstra’s algorithm 39
ภาพที่ 33 A* algorithm 40
ภาพที่ 34 เปรียบเทียบ Greedy best-first search (ซ้าย) กับ A* algorithm (ขวา) 40
ภาพที่ 35 วิธี Potential Field ที่มา: S. Khatib (2016) 42
ภาพที่ 36 วิธี Vector Field Histogram 44
ภาพที่ 37 วิธี Obstacle Restriction ที่มา: S. Khatib (2016) 46
ภาพที่ 38 วิธี Dynamic Window 48
ภาพที่ 39 วิธี Velocity Obstacles 49
ภาพที่ 40 วิธี Nearness Diagram Navigation 50
ภาพที่ 41 การควบคุมหุ่นยนต์ให้วิ่งเข้าหาจุด ในกรณีที่เป้าหมายเป็น pose 65
ภาพที่ 42 ลักษณะการเคลื่อนที่ของหุ่นยนต์ที่มีล้อแบบ Mecanum 68
ภาพที่ 43 มิติของหุ่นยนต์เคลื่อนที่ได้ที่มีล้อแบบ Mecanum และพิกัดต่าง ๆ 69
ภาพที่ 44 สัญญาณขาเข้า (input) และสัญญาณขาออก (output) ของหุ่นยนต์ 69
ภาพที่ 45 ROS open source 74
ภาพที่ 46 ROS developed history 75
ภาพที่ 47 ROS Philosophy 79
ภาพที่ 48 การวัดระยะจากไลดาร์ จากเซนเซอร์ไปยังวัตถุ 81
ภาพที่ 49 ไลดาร์โมเดล RPLIDAR S1 81
ภาพที่ 50 NVIDIA Jetson Nano 83
ภาพที่ 51 NVIDIA Jetson Nano board specification 84
ภาพที่ 52 Distance Measuring Transducer Sensor (Ultrasonic SR04 Module HC-SR04) 85
ภาพที่ 53 เซนเซอร์ตรวจสอบความเร่ง (Initial Measurement Unit: IMU) 87
ภาพที่ 54 MPU6050 Accelerometer and Gyroscope Module 88
ภาพที่ 55 (a) MPU6050 Module (b) MPU6050 Pinout 90
ภาพที่ 56 Omni Mecanum Wheel with Motor & Encoder 92
ภาพที่ 57 Driver Motor สำหรับควบคุมการหมุน Omni Mecanum Wheel 93
ภาพที่ 58 ทิศทางการหมุนของ Omni Mecanum Wheel ต่อทิศทางการเคลื่อนที่ของรถ 93
ภาพที่ 59 โดรงสร้าง และการติดตั้งอุปกรณ์สำหรับรถขนส่งอัตโนมัติ 94
ภาพที่ 60 แหล่งพลังงาน Battery LiFePO4 12 โวลท์ 6.5Ah 95
ภาพที่ 61 รถขนส่งในสายการผลิตปัจจุบัน แบบนำทางด้วยแถบแม่เหล็ก 96
ภาพที่ 62 การเคลื่อนที่ของรถขนส่งในสายการผลิตปัจจุบัน แบบนำทางด้วยแถบแม่เหล็ก 97
ภาพที่ 63 สภาพแวดล้อม และเส้นทางการการวิ่งรถขนส่งในสายการผลิต 98
ภาพที่ 64 แบบหุ่นยนต์รถขนส่งในงานวิจัย 100
ภาพที่ 65 หุ่นยนต์รถขนส่งที่ใช้ในงานวิจัย 100
ภาพที่ 66 ทิศทางการเคลื่อนที่หุ่นยนต์รถขนส่ง (Directions of Mecanum wheels) 101
ภาพที่ 67 Mecanum wheels configuration and posture definition 102
ภาพที่ 68 การออกแบบ และติดติดตั้งสปริง สำหรับหุ่นยนต์รถขนส่ง 105
ภาพที่ 69 การรับภาระโหลดของสปริง ในสภาวะการเคลื่อนที่ของหุ่นยนต์รถขนส่ง 106
ภาพที่ 70 ผังการเชื่อมต่ออุปกรณ์ และเซ็นเซอร์ของหุ่นยนต์ที่ใช้ร่วมกับระบบปฏิบัติการหุ่นยนต์ 2 108
ภาพที่ 71 การออกแบบโครงสร้างซอฟต์แวร์บนระบบปฏิบัติการหุ่นยนต์ 2 109
ภาพที่ 72 การเคลื่อนที่ของหุ่นยนต์รถขนส่งด้วยวิธี Manhattan & Chebyshev Distance 110
ภาพที่ 73 การออกแบบกริดสำหรับการหลบหลีกสิ่งกีดขวาง (Grid management) 113
ภาพที่ 74 การวางแผนเส้นทางเดิน ( Path Planner) ของหุ่นยนต์รถขนส่ง 113
ภาพที่ 75 การออกแบบระบบติดตามเส้นทางที่กำหนด (Path Follower) 114
ภาพที่ 76 การเริ่มต้นสร้าง File และ ติดตั้ง Python และโปรแกรมVScode 115
ภาพที่ 77 การสร้างไฟล์บนระบบปฏิบัติการหุ่นยนต์ 2 (ROS 2) ที่มีการทำงานโดยภาษาไพธอน 116
ภาพที่ 78 โครงสร้างโปรแกรมควบคุมหุ่นยนต์บนระบบปฏิบัติการหุ่นยนต์ 2 117
ภาพที่ 79 รูปแบบคำสั่ง Event Reader (mqtt_nav.py) 118
ภาพที่ 80 รูปแบบคำสั่ง Event (MQTTROS2Bridge) 119
ภาพที่ 81 รูปแบบคำสั่ง Geometry (nav2.launch.py) 120
ภาพที่ 82 รูปแบบคำสั่ง Track Reconstruction 121
ภาพที่ 83 รูปแบบคำสั่ง Data Goal Parameter (robot_bringup.launch.py) 122
ภาพที่ 84 รูปแบบคำสั่ง Reconstruction (create entities) 122
ภาพที่ 85 รูปแบบคำสั่ง Data for Control wheel (destroy entities) 123
ภาพที่ 86 รูปแบบคำสั่ง Control Motor (Compute PID) 123
ภาพที่ 87 รูปแบบคำสั่ง Data for Control wheel 124
ภาพที่ 88 รูปแบบคำสั่งการกำหนด Goal และ Event 124
ภาพที่ 89 การตรวจจับวัตถุของสภาพแวดล้อมจากสถานีรับสินค้าไปยังสายการผลิต และคลังสินค้า 126
ภาพที่ 90 วัตถุในรูปทรง และขนาดต่าง ๆ เพื่อใช้ทดสอบสำหรับการตรวจจับด้วยไลดาร์ 127
ภาพที่ 91 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางตรงในสายการผลิต 129
ภาพที่ 92 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางโค้งในสายการผลิต 131
ภาพที่ 93 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางตรงในสายการผลิตโดยมีสิ่งกีดขวางเป็นถัง 133
ภาพที่ 94 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางตรงในสายการผลิตโดยมีสิ่งกีดขวางเป็นกล่อง 135
ภาพที่ 95 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางตรงในสายการผลิตโดยมีสิ่งกีดขวางเป็นลูกบนว่างบนกล่อง 137
ภาพที่ 96 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางโค้งในสายการผลิตโดยมีสิ่งกีดขวางเป็นถัง 139
ภาพที่ 97 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางโค้งในสายการผลิตโดยมีสิ่งกีดขวางเป็นกล่อง 141
ภาพที่ 98 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางโค้งในสายการผลิตโดยมีสิ่งกีดขวางเป็นลูกบนวางบนกล่อง 143
ภาพที่ 99 แสดงแผนผังสายการผลิต และตำแหน่งที่ทำการทดสอบการเคลื่อนที่หุ่นยนต์ 144
ภาพที่ 100 แบบจำลองเส้นทาง และตำแหน่งสิ่งกีดขวางสำหรับทดสอบรถการเคลื่อนที่หุ่นยนต์ 145
ภาพที่ 101 แสดงการตรวจับสิ่งกีดขวาง กล่อง ถัง บอล ในระหว่างการเคลื่อนที่ของหุ่นยนต์ 146
ภาพที่ 102 แสดงการตรวจับสิ่งกีดขวาง กล่อง บอล ถัง ในระหว่างการเคลื่อนที่ของหุ่นยนต์ 147
ภาพที่ 103 แสดงการตรวจับสิ่งกีดขวาง ถัง กล่อง บอล ในระหว่างการเคลื่อนที่ของหุ่นยนต์ 148
ภาพที่ 104 แสดงการตรวจับสิ่งกีดขวาง ถัง บอล กล่อง ในระหว่างการเคลื่อนที่ของหุ่นยนต์ 149
ภาพที่ 105 แสดงการตรวจับสิ่งกีดขวาง บอล ถัง กล่อง ในระหว่างการเคลื่อนที่ของหุ่นยนต์ 150
ภาพที่ 106 แสดงการตรวจับสิ่งกีดขวาง บอล กล่อง ถัง ในระหว่างการเคลื่อนที่ของหุ่นยนต์ 151
ภาพที่ 107 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่ทางตรงหุ่นยนต์ โดยไม่มีสิ่งกีดขวางเป็นอุปสรรค 152
ภาพที่ 108 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่ทางโค้งของหุ่นยนต์ โดยไม่มีสิ่งกีดขวางเป็นอุปสรรค 154
ภาพที่ 109 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่ทางตรงของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นถัง 155
ภาพที่ 110 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่ทางตรงของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นกล่อง 156
ภาพที่ 111 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่ทางตรงของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นลูกบอล 156
ภาพที่ 112 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่เส้นทางโค้งของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นถัง 158
ภาพที่ 113 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่เส้นทางโค้งของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นกล่อง 158
ภาพที่ 114 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่เส้นทางโค้งของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นลูกบอล 159

คำนำ
เนื่องด้วยในปัจจุบันได้มีแนวคิดที่จะนำรถขนส่งอัตโนมัติ (Automated Guided Vehicle, AGV) มีการใช้งานอย่างแพร่หลายในอุตสาหกรรมเพื่อให้ตอบสนองต่อการพัฒนาอุตสาหกรรม 4.0 รวมถึงเพื่อลดต้นทุนในสายการผลิต ข้อดีของรถขนส่งอัตโนมัติ (Automated Guided Vehicle, AGV) คือ ลดการเคลื่อนย้ายจากการใช้แรงงานมนุษย์ และสามารถควบคุมระยะเวลาในการทำงาน
โดยในปัจจุบันการพัฒนาระบบรถขนส่งอัตโนมัติ จะต้องมีความยืดหยุ่นมากขึ้น ซึ่งสามารถปรับให้เข้ากับข้อกำหนดการปฏิบัติงานที่เปลี่ยนแปลงไป รวมถึงการนำปัญญาประดิษฐ์ (AI) และอัลกอริธึมการเรียนรู้มาใช้ เพื่อให้รถขนส่งอัตโนมัติ สามารถเรียนรู้ และเพิ่มประสิทธิภาพการเคลื่อนที่อัตโนมัติเมื่อโดยปราศจากแถบแม่เหล็ก หรือแถบเส้นสีบนพื้นได้ และเพื่อให้รถขนส่งอัตโนมัติสามารถเคลื่อนที่เข้ากันได้
กับสภาพแวดล้อมในระบบการผลิตทางอุตสาหกรรม และในระบบขนส่งโลจิสติกส์ที่หลากหลาย
จากเพื่อลดข้อจำกัดของรถขนส่งอัตโนมัติแบบ (Automated Guided Vehicle, AGV) ใช้แถบแม่เหล็ก หรือแถบเส้นสีบนพื้น รวมถึงการพัฒนาของปัญญาประดิษฐ์ (AI) และอัลกอริธึมการเรียนรู้
สำหรับในงานวิจัยนี้จะเป็นส่วนหนึ่งของการพัฒนาระบบหลบหลีกสิ่งกีดขวางอัตโนมัติสำหรับ
รถขนย้ายวัสดุในสายการผลิต แบบไม่ใช้เส้นแถมแม่เหล็ก หรือเส้นสีบนพื้นในการนำทาง
โดยได้มีการถึงการนำรระบบขับเคลื่อนล้อแบบออมนิแมคคานัม (Omni Mecanum Wheel)
4 ล้อ และควบคุมด้วยอุปกรณ์ควบคุม NVIDIA Jetson Nano ทำหน้าที่อุปกรณ์ควบคุมร่วมกับ
เซนเซอร์ระบบตรวจจับแสง และไลดาร์ (LiDAR) เพื่อช่วยโดยมีการจัดทำแผนที่ก่อนที่จะมีการเคลื่อนที่ของหุ่นยนต์ โดยได้พัฒนา
บนระบบปฏิบัติการหุ่นยนต์ 2 (Robot Operation System 2: ROS 2) เพื่อมาใช้ตรวจสอบสิ่งกีดขวาง และควบคุมระบบขับเคลื่อนล้อแบบออมนิแมคคานัม (Omni Mecanum Wheel) 4 ล้อ ให้สามารถปรับทิศทางการเคลื่อนเพื่อหลบหลีกสิ่งกีดขวางได้อัตโนมัติ ดังนั้นจะช่วยให้รถขนย้ายวัสดุในสายการผลิตสามารถปรับเปลี่ยน
การวางแผนเส้นทางได้ง่าย สามารถเข้าถึงพื้นที่แคบ และสามารถใช้รถเพียงคันเดียวในการรับส่งวัสดุ ได้ รวมถึงใช้ปัญญาประดิษฐ์ (AI) และอัลกอริธึมการเรียนรู้ รวมถึงการที่พัฒนาบนระบบปฏิบัติการหุ่นยนต์ดังกล่าวเป็น (Robot Operation System 2: ROS 2)
ซึ่งเป็นระบบโโอเพ่นซอร์ส เพื่อให้จึงมีราคาประหยัดต่ำ และเหมาะสมกับการลงทุนด้านของรถขนถ่ายวัสดุ
ในสายการผลิต สายการผลิต โดยรวมทั้งสามารถนำไปต่อยอดกับงานวิจัยอื่น ๆ ได้
วัตถุประสงค์
เพื่อพัฒนาระบบหลบหลีกสิ่งกีดขวางสำหรับรถขนย้ายวัสดุในสายการผลิต บนพื้นฐาน
รถระบบขับเคลื่อนล้อแบบออมนิแมคคานัม (Omni Mecanum Wheel) 4 ล้อ โดยมีอุปกรณ์ทำหน้าที่ควบคุมแบบ NVIDIA Jetson Nano ร่วมกับ เซนเซอร์ระบบตรวจจับแสง และเซ็นเซอร์ประเภทไลดาร์ (LiDAR)
เพื่อช่วยจัดทำแผนที่บนระบบปฏิบัติการหุ่นยนต์ หุ่นยนต์ 2 (Robot Operation System 2: ROS 2) โดยนำมาเป็นระบบปฏิบัติการ เพื่อให้รถขนย้ายวัสดุสามารถสั่งการ ตรวจสอบสิ่งกีดขวาง และใช้ควบคุมรถขนย้ายวัสดุนั้นให้สามารถหลบสิ่งกีดขวางในรูปแบบที่แตกต่างกันได้

การตรวจเอกสาร
จากการศึกษาข้อมูลทางการตลาดของภูมิภาค และะของโลกนั้น พบว่า ปริมาณการใช้งาน
รถขนส่งอัตโนมัติ (Automated Guided Vehicle, AGV) ในโรงงานมีเพิ่มสูงมากขึ้นในทุกปี โดยการใช้ตลาดทั่วโลกสำหรับรถขนส่งอัตโนมัติมีการเติบโต(Automated Guided Vehicle, AGV) ตามขนาดส่วนแบ่งการเติบโตตลาดทั่วโลก และสำหรัมีบแนวโน้มระดับภูมิภาคเพิ่มขึ้น ตามภาพที่ 1 โดยตามการคาดการณ์ปี ค.ศ 2023 – ถึง ค.ศ. 2032 ขนาดมูลค่าของตลาดยานพาหนะนำทางอัตโนมัติทั่วโลกอยู่ที่ประมาณ 4.33 พันล้านดอลลาร์สหรัฐในปี ค.ศ. 2022 และคาดว่าจะเพิ่มขึ้นประมาณ 12.57 พันล้านดอลลาร์สหรัฐภายในปี ค.ศ. 2032 โดยมีแนวโน้มเติบโตเฉลี่ยเท่ากับ 11.30% ตั้งแต่ระหว่างปี ค.ศ. 2023 ถึงปี ค.ศ. 2032

ภาพที่ 1 Automated Guided Vehicle Market Size, Share, and Trends 2022 to 2032
ที่มา: www.precedenceresearch.com/automated-guided-vehicle-market

หนึ่งในปัจจัยขับเคลื่อนสำคัญของตลาดรถขนส่งอัตโนมัติ(Automated Guided Vehicle, AGV) คือ ความต้องการระบบอัตโนมัติที่เพิ่มขึ้นในอุตสาหกรรมการผลิต และระบบขนส่งโลจิสติกส์ ซึ่งมีส่วนช่วยเพื่อปรับปรุงประสิทธิภาพการผลิต และลดต้นทุนการดำเนินงาน ดำเนินงาน และการนำร่วมใช้กับเทคโนโลยีอุตสาหกรรม 4.0 มาใช้ เช่น ระบบอินเตอร์เน็ตของสรรพสิ่ง Internet of Things (IoT) และปัญญาประดิษฐ์ (AI) ก็กำลังผลักดันการนำรถขนส่งอัตโนมัติ(Automated Guided Vehicle, AGV) มาใช้ เช่นกัน
สำหรับตลาดยานพาหนะนำทางอัตโนมัติสามารถ ได้แแบ่งตามประเภท ประเภทได้ดังนี้

  • ลักษณะประเภทการใช้งาน: รถบรรทุก, รถลากจูง, รถลากพาเลท, รถยก และยานพาหนะในสายการผลิต
  • เทคโนโลยีการนำทาง: การนำทางด้วยแม่เหล็ก, การนำทางด้วยเลเซอร์, การนำทาง
    แบบเหนี่ยวนำ, การนำทางด้วยการมองเห็น, การนำทางด้วยเทปออปติคัล และอื่น ๆ
  • การนำมาประยุกต์ใช้: การขนส่ง การจัดจำหน่าย การจัดเก็บ การประกอบบรรจุภัณฑ์ และการจัดการของเสีย ตามอุตสาหกรรม
    สำหรับขนาดมูลค่าของตลาดยานพาหนะนำทางอัตโนมัติในยุโรปในช่วงปี ค.ศ. 2023 ถึงปี ค.ศ. 2032 ขนาดตลาดยานพาหนะนำทางอัตโนมัติของยุโรปมีมูลค่า 1.39 พันล้านดอลลาร์สหรัฐในปี ค.ศ. 2022 และคาดว่าจะเพิ่มขึ้นเป็นประมาณ 3.99 พันล้านดอลลาร์สหรัฐภายใน
    ปี ค.ศ. 2032 โดยมีแนวโน้มการเติบโตเฉลี่ย 11.20% ตั้งแต่ปี ค.ศ. 2023 ถึงปี ค.ศ. 2032 ตามภาพที่ 2

ภาพที่ 2 Europe Automated Guided Vehicle Market Size, Share, and Trends 2022 to 2032
ที่มา: www.precedenceresearch.com/automated-guided-vehicle-market
เมื่อพิจารณาตามภูมิภาค กลุ่มอเมริกาเหนือครองตลาดรถนำทางอัตโนมัติทั่วโลกในปี ค.ศ. 2022 ในแง่ของรายได้ในอเมริกาเหนือจะพบว่า สหรัฐอเมริกาเป็นประเทศที่มีเศรษฐกิจทรงอำนาจ
มากที่สุด โดยอุตสาหกรรมการผลิตในภูมิภาคนี้เป็นแหล่งสำคัญสำหรับการนำยานพาหนะนำทาง
แบบอัตโนมัติไปใช้ในกิจกรรมต่าง ๆ นอกจากนี้ ระบบอัตโนมัติช่วยให้องค์กรขนาดเล็ก หรือ
ผู้เล่นในตลาดท้องถิ่นสามารถแข่งขันบนพื้นที่ที่เท่าเทียมกับผู้เล่นในตลาดโลกได้ ประเทศสหรัฐอเมริกา
ถือได้ว่าเป็นหนึ่งในผู้ผลิตรถยนต์ และยานยนต์ชั้นนำของโลก รวมถึงอุตสาหรรมอื่น ๆ ดังนั้น
ความต้องการยานพาหนะนำทางแบบอัตโนมัติที่เพิ่มขึ้นในสหรัฐอเมริกาจึงมีส่วนทำให้
การขยายตัวของภูมิภาคนี้
ในทางกลับกัน เอเชียแปซิฟิกคาดว่าจะเป็นกลุ่มที่มีโอกาสเติบโตมากที่สุดของ อุตสาหกรรมค้าปลีก โดยเฉพาะอุตสาหกรรมอีคอมเมิร์ซกำลังเติบโตในอัตราที่รวดเร็วกว่าในแถบภูมิภาคอื่น ๆ
ในประเทศแถบเอเชีย การประยุกต์ใช้ยานพาหนะนำทางอัตโนมัติในอุตสาหกรรมอีคอมเมิร์ซ
กำลังเติบโตอย่างรวดเร็ว รวดเร็ว ซึ่งมีส่วนทำให้ตลาดเติบโตในภูมิภาคเอเชียแปซิฟิก
ปัจจัยการเจริญเติบโตความต้องการระบบอัตโนมัติในการจัดการวัสดุในอุตสาหกรรมต่าง ๆ ความนิยมที่เพิ่มขึ้นของช่องทางการขายออนไลน์ การเปลี่ยนจากการผลิตจำนวนมากมาจาก
ความต้องการจำนวนมาก และมาตราฐานทางด้านความปลอดภัย รวมถึงการขาดแคลนแรงงาน
ในสถานที่ทำงานที่ได้รับการปรับปรุง จึงเป็นปัจจัยบางประการที่ผลักดันการเติบโตของ
ตลาดยานยนต์นำทางแบบอัตโนมัติ
สิ่งสำคัญที่กระตุ้นให้ตลาดยานพาหนะนำทางแบบอัตโนมัติกำลังเติบโตต่อเนื่อง
มาจากการพัฒนาเทคโนโลยีระบบอัตโนมัติที่เพิ่มขึ้นในอุตสาหกรรมประเภทต่าง ๆ และ
ยังได้รับแรงผลักดันจากการปรับปรุงความแม่นยำ ความปลอดภัย และประสิทธิภาพการผลิตที่สูงของยานพาหนะนำทางอัตโนมัติ นอกจากนี้ ต้นทุนค่าแรงที่สูงขึ้นยังส่งผลให้เพิ่มการเติบโต
ของตลาดของตลาดยานพาหนะนำทางอัตโนมัติ แต่อย่างไรก็ตาม การเติบโตของตลาดยานพาหนะนำทางแบบอัตโนมัติยังถูกพิจารณาทางด้านต้นทุนในช่วงการลงทุนเริ่มแรกที่สูง และ
การขาดความยืดหยุ่น นอกจากนี้ การบูรณาการของอุตสาหกรรม 4.0 คาดว่าจะให้โอกาสการเติบโตที่มีกำไรสำหรับผู้เล่นในตลาดในตลาดของยานพาหนะนำทางอัตโนมัติ
ตัวอย่างของอุตสาหกรรมต่างที่เป็นผู้นำยานพาหนะนำทางอัตโนมัติมาใช้อย่างแพร่หลาย เช่น อาหาร และเครื่องดื่ม ยานยนต์ การบิน และอวกาศ การผลิต การค้าปลีก โลจิสติกส์ และอุตสาหกรรมการใช้งานปลายทางอื่น ๆ ล้วนแต่ใช้ยานพาหนะนำทางอัตโนมัติ ความต้องการอุปกรณ์อุตสาหกรรมได้รับแรงหนุนจากต้นทุนแรงงานที่สูงขึ้น การขาดแคลนแรงงาน
และความสามารถในการผลิตที่จะต้องเพิ่มขึ้น เนื่องจากอุตสาหกรรมต่าง ๆ มีการขับเคลื่อนด้วยเทคโนโลยี และเป็นอัตโนมัติมากขึ้น ความต้องการยานพาหนะนำทางแบบอัตโนมัติจึงมีแนวโน้มเพิ่มขึ้นตามไปด้วย
อย่างไรก็ดี ในประเทศไทยพบว่า ส่วนใหญ่ในสายการผลิตยังคงเลือกใช้ยานพาหนะนำทางแบบอัตโนมัติ มาเป็นรถขนส่งอัตโนมัติ(Automated Guided Vehicle, AGV) ที่นำมาใช้
อย่างแพร่หลายในการขนส่งสินค้า วัสดุ อุปกรณ์ในสายการที่เดินตามเส้นแถบแม่เหล็ก หรือ
เส้นแถบสีบนพื้นตามภาพที่ 3 ได้รับการพัฒนาโดยผู้ผลิต หรือตัวแทนจำหน่ายรายใหญ่
ซึ่งมีต้นทุนค่อนข้างสูง สำหรับการนำระบบนำทางอัตโนมัติที่ทำให้รถขนส่งอัตโนมัติแบบไร้เส้นจะนำมาใช้ในงานบริการ เช่น ส่งอาหาร เครื่องดื่ม ในร้านขายอาหารเป็นส่วนใหญ่ แต่พบว่า
รถขนส่งอัตโนมัติแบบไร้เส้นยังไม่มีการนำมาใช้งานในสายการผลิตอย่างแพร่หลาย

ภาพที่ 3 รถขนส่งอัตโนมัติเดินตามเส้นแถบแม่เหล็ก หรือเส้นแถบสี
ที่มา: Ullrich (2015)

สำหรับข้อจำกัดของระบบรถขนส่งที่เดินตามแถบแม่เหล็ก หรือแถบเส้นสีบนพื้น คือ

1) การปรับเปลี่ยนของเส้นทางการวิ่ง (AGV Path) จะต้องปรับเปลี่ยนตามสายการผลิต(Routing) โดยอาจจะมีการเปลี่ยน Modelแบบ สำหรับการผลิตทุกปี
2) ข้อจำกัดในเรื่องเส้นทางที่จะต้องใช้ร่วมกับทางเดิน และทางสำหรับการเคลื่อนย้ายอื่น ๆ เช่น Hand lift ซึ่งจะทำให้แถบแม่เหล็กชำรุดเสียหายได้
3) ในกรณีที่พบสิ่งกีดขวางรถขนส่งที่ใช้แถบแม่เหล็กนำทางจะไม่สามารถหลบหลีกได้ จึงทำได้แค่เพียงหยุด หรือพุ่งชนสิ่งกีดขวาง รวมถึงการออกนอกเส้นทาง
4) การใช้พื้นที่ หรือรัศมีในการเลี้ยวค่อนข้างมาก หรือในกรณีที่ต้องเข้าไปใน
พื้นที่จำกัด
รถขนส่งอัตโนมัติมีการนำมาใช้งานอย่างแพร่หลายในอุตสาหกรรมแทบทุกอุตสาหกรรมในปัจจุบัน ใช้ขนส่งวัตถุตั้งแต่ขนาดเล็กไปจนถึงขนาดใหญ่ไม่จำกัดน้ำหนัก การนำรถขนส่งอัตโนมัติมาใช้งานแบ่งได้เป็น 4 ลักษณะตามขอบเขตลักษณะการใช้งาน ได้แก่
1) รับ และส่งของที่แหล่งเก็บ (storage warehouse) และพื้นที่ผลิต (production area)
2) เป็น platform เคลื่อนที่สำหรับทำการผลิต หรือประกอบ (assembly platform)
3) หยิบของ (retrieval) ในร้านประเภท wholesale trade
4) รับส่ง และทิ้งของในกรณีพิเศษ เช่น การรับส่งสิ่งของภายในพื้นที่โรงพยาบาล หรือสำนักงาน
รถขนส่งอัตโนมัติมีการใช้งานแพร่หลายมากขึ้นเรื่อย ๆ เนื่องจากความต้องการด้านความยืดหยุ่นของระบบการผลิต flexible manufacturing system (FMS) ซึ่งเน้นความยืดหยุ่นของขั้นตอนในกระบวนการผลิต (routing flexibility) ให้สามารถเปลี่ยนกระบวนการผลิตเพื่อผลิตผลิตภัณฑ์ใหม่ ๆ ได้ และสามารถผลิตได้ในปริมาณ
ที่ไม่มากได้ และเน้นความยืดหยุ่นของเครื่องจักรที่ใช้ผลิต (machine flexibility) ให้สามารถใช้เครื่องจักรได้หลายเครื่องในการทำงานแบบเดียวกัน เพื่อรองรับปริมาณการผลิตที่เปลี่ยนแปลง
อย่างรวดเร็ว โดยข้อได้เปรียบของการใช้รถขนส่งอัตโนมัติมีดังนี้
1) มีประสิทธิภาพสูงในการขนถ่ายวัสดุ ลดการใช้คน ลดค่าใช้จ่าย และประหยัดพลังงาน
2) ทำให้สายการผลิตมีความยืดหยุ่นสามารถปรับเปลี่ยนได้ สามารถเพิ่มลดปริมาณ
การผลิต หรือผลิตผลิตภัณฑ์ใหม่ ๆ ที่มีปริมาณการผลิตเปลี่ยนแปลงอยู่ตลอดเวลาได้ดี
3) มีการลงทุนที่ไม่สูง และมีค่าใช้จ่ายในการใช้งานต่ำ
4) สามารถติดตั้งระบบได้อย่างรวดเร็วโดยไม่จำเป็นต้องเปลี่ยนสิ่งแวดล้อมภายในอาคาร
5) มีความปลอดภัยในการขนถ่ายวัสดุสูงต่อคน และต่อผลิตภัณฑ์ที่ขนถ่าย
6) สามารถเชื่อมต่อกับซอฟต์แวร์บริหารจัดการอื่น ๆ เช่น ERP ได้เพื่อให้การจัดการ
และการวางแผนการผลิตเป็นไปอย่างมีประสิทธิภาพ
7) เพิ่มความสะดวกในการทำงานตามหลักสรีรศาสตร์ (Ergonomic)
8) สามารถใช้ขนถ่ายวัสดุในสภาพที่เป็นอันตรายต่อคน เช่น ในห้องเย็น บริเวณที่มีสารเคมี หรือมีความร้อนสูง
9) สามารถทำงานเชื่อมต่อเป็นระบบระหว่างกลุ่มรถขนส่งอัตโนมัติด้วยกัน หรือ
ระหว่างคลังสินค้าในระยะทางไกล เพื่อให้เกิดประสิทธิภาพการใช้งานสูงสุด สอดคล้องกับเป้าหมายการผลิตโดยรวม
10) สามารถนำมาใช้งานในบริเวณที่มีคนทำงานอยู่ได้อย่างปลอดภัยด้วย algorithm
การหลบหลีกสิ่งกีดขวาง
11) ออกแบบเส้นทางเดินของหุ่นยนต์ให้มีประสิทธิภาพสูงสุดสำหรับสายการผลิตได้ (optimized path planning)
12) มีความทนทาน สามารถชาร์จแบตเตอรี่ได้ด้วยตัวเองโดยไม่ต้องมีคนดูแล
13) สามารถทำงานได้ตลอด 24 ชั่วโมง ในสภาพมืดสนิท และทำงานร่วมกับสายการผลิตแบบออโตเมชั่นหุ่นยนต์ชนิดอื่น ๆ
14) ข้อมูลจากเซ็นเซอร์ที่มีอยู่บนรถขนส่งอัตโนมัติ นำมาใช้ปรับปรุงกระบวนการผลิตได้ในลักษณะ Big data analytics
15) ลดความเสียหายจากการขนถ่ายผลิตภัณฑ์
16) เพิ่มความสามารถในการติดตามผลิตภัณฑ์ (product traceability)
17) ใช้พื้นที่น้อย
18) เหมาะกับสายการผลิตที่มีเส้นทางการขนส่งซ้ำ (repetitive transports) และมีการทำงานตลอดเวลา 24/7
19) ไม่ขวางทางเดินเหมือนสายพาน และทำให้ออกแบบระบบขนส่งวัสดุได้ง่าย

  1. โครงสร้างของรถขนส่งอัตโนมัติ
    1.1 รถขนส่งอัตโนมัติประเภทต่าง ๆ
    รถขนส่งอัตโนมัติประเภทต่าง ๆ ตามตารางที่ 1 และตามภาพที่ 4

    ตารางที่ 1 รถขนส่งอัตโนมัติประเภทต่าง ๆ

ที่มา: Ullrich (2015)

ภาพที่ 4 รถขนส่งอัตโนมัติประเภทต่าง ๆ
ที่มา: Ullrich (2015)

1.2 ลักษณะล้อ และการติดตั้งล้อสำหรับรถขนส่งอัตโนมัติ
ล้อของรถขนส่งอัตโนมัติโดยทั่วไปเป็นพลาสติก (elastomer) แบบ Vulkollan (Bayer) หรือเป็น polyamide เนื่องจากมีความสึกหรอต่ำ และไม่ทำให้พื้นเป็นรอย (non-marking) ล้อ
และช่วงล่างของรถขนส่งอัตโนมัติมีลักษณะดังในตารางที่ 2 โดยล้อแบบออมนิแมคคานัม
เป็นดังแสดงในภาพที่ 5 -6
ตารางที่ 2 ล้อ และช่วงล่างของรถขนส่งอัตโนมัติประเภทต่าง ๆ

ที่มา: Ullrich (2015)

ภาพที่ 5 ล้อแบบ Mecanum
ที่มา: Ullrich (2015)

ภาพที่ 6 Four – View of Mecanum Wheel Design in GSD Workbench
ที่มา: Ullrich (2015)

  1. แบบจำลองหุ่นยนต์เคลื่อนที่ (Mobile robot model)
    แบบจำลองทางคณิตศาสตร์ของหุ่นยนต์เคลื่อนที่ขึ้นกับชนิดของหุ่นยนต์เคลื่อนที่ ๆ พิจารณาอยู่ โดยทั่วไปมี 3 ประเภท ได้แก่ หุ่นยนต์เคลื่อนที่แบบรถยนต์ (Car-like mobile robots)
    หุ่นยนต์เคลื่อนที่แบบหมุนล้อสองล้อแตกต่างกัน (Differentially-steered mobile robots) และ
    หุ่นยนต์เคลื่อนที่ได้รอบทิศทาง (Omnidirectional mobile robots)
    2.1 หุ่นยนต์เคลื่อนที่แบบรถยนต์ (Car-like mobile robots)
    แบบจำลองแบบจักรยาน (Bicycle model) ของหุ่นยนต์เคลื่อนที่แบบรถยนต์เป็นตาม
    ภาพที่ 7 โดยมีจุดหมุนชั่วขณะที่จุด ICR จึงได้ตามสมการ (1)

สามารถเขียนแบบจำลองทางคณิตศาสตร์ ได้ดังนี้
(1)

ภาพที่ 7 แบบจำลองแบบจักรยาน (Bicycle model) ของหุ่นยนต์เคลื่อนที่แบบรถยนต์
ที่มา: Corke (2017)
2.2 หุ่นยนต์เคลื่อนที่แบบหมุนล้อสองล้อแตกต่างกัน (Differentially-steered mobile robots)
ความเร็วของล้อด้านซ้าย และขวาที่ไม่เท่ากันจะทำให้หุ่นหมุนไปในทิศที่ต้องการ
ดังแสดงตามภาพที่ 8 กำหนดให้ pose ของหุ่นยนต์ คือ แบบจำลองของหุ่นยนต์
สามารถเขียนได้ดังนี้

เมื่อ และ

ภาพที่ 8 แบบจำลองของหุ่นยนต์เคลื่อนที่แบบหมุนล้อสองล้อแตกต่างกัน
ที่มา: Corke (2017)
2.3 หุ่นยนต์เคลื่อนที่ได้รอบทิศทาง (Omnidirectional mobile robots)
ล้อของหุ่นยนต์ที่เคลื่อนที่ได้รอบทิศทาง หลัก ๆ มี 2 ประเภท ได้แก่ ล้อออมนิ
(Omni wheel) ภาพที่ 9 (ภาพซ้าย) และล้อแมมคานัม (Mecanum wheel) ภาพขวา ตามภาพที่ 9 (ขวา)

ภาพที่ 9 (ซ้าย) ล้อแบบออมนิ (Omni wheel) และ (ขวา) ล้อแบบแมคคานัม (Mecanum wheel)
ที่มา: Corke (2017)
สำหรับล้อแบบแมคคานัม หนึ่งล้อมีแผนภาพจลนศาสตร์ kinematic diagram ตามภาพที่ 10 โดยมีความเร็วล้อ ดังสมการ (2)

โดยมีความเร็วเชิงมุมของล้อเท่ากับ
(2)
โดย

เมื่อ

ภาพที่ 10 แผนภาพจลนศาสตร์Kinematic diagram ของล้อแบบ Mecanum
ที่มา: Corke (2017)

สำหรับหุ่นยนต์ที่มีล้อ Mecanum 4 ล้อ จะมีแผนภาพจลนศาสตร์ kinematic diagram ตามภาพที่ 11
โดยมี kinematic modelสมการจลนศาสตร์การเคลื่อนที่คือ เป็นดังสมการ

เมื่อ คือ ความเร็วของล้อที่ , คือ ความเร็วของตัวหุ่นยนต์, คือ
ความเร็วเชิงมุมของตัวหุ่นยนต์, คือ position vector ของจุดที่แตะพื้นของล้อที่

ภาพที่ 11 แผนภาพจลนศาสตร์Kinematic diagram ของหุ่นยนต์ที่มีล้อแบบ Mecanum 4 ล้อ
ที่มา: Corke (2017)

จากสมการที่กล่าวถึงข้างต้นทั้งหมด ทำให้เราสามารถหาความเร็วเชิงมุมของล้อ
แต่ละล้อ (2) จากความเร็วของตัวหุ่นยนต์ และความเร็วเชิงมุมของตัวหุ่นยนต์

  1. ระบบนำทาง (Navigation)
    ระบบนำทางในรถขนส่งอัตโนมัติในปัจจุบัน ตามภาพที่ 12 โดยตามภาพที่ 12 (a)
    เป็นระบบนำทางที่รถเคลื่อนที่โดยใช้เซ็นเซอร์ตรวจจับเส้นทางเดินตามแถบสี ตามภาพที่ 12 (b)
    รถจะเคลื่อนที่ตามเส้นแถบแม่เหล็กบนพื้นแบบต่อเนื่อง ตามภาพที่ 12 (c) รถเคลื่อนที่ตาม
    แถบแม่เหล็กแบบตารางพื้นที่ ซึ่งจะสามารถปรับทิศทางการเคลื่อนที่ได้ง่ายกว่าแถบแม่เหล็กเส้นตรง ตามภาพที่ 12 (d) การควบคุมการเคลื่อนของรถโดยใช้เลเซอร์ติดที่ผนังเพื่อควบคุม
    การเคลื่อนที่ของรถในพื้นที่กำหนด ตามภาพที่ 12 (e) การควบคุมการเคลื่อนที่ของรถด้วยสัญญาณดาวเทียมโดยจะเหมาะกับการควบคุมการเคลื่อนที่ของรถภายนอกอาคาร

ภาพที่ 12 ระบบนำทางแบบต่าง ๆ
ที่มา: Ullrich (2015)
3.1 ระบบนำทางแบบ Physical guideline
จะมีการติดตั้ง fixtures บนพื้น หรือภายในพื้น ได้แก่
3.1.1 ระบบนำทางแบบ Actively inductive ดังตามภาพ 13 (ก) จะมีการฝัง
guide wire ในพื้นหนึ่งเส้น ไฟฟ้ากระแสสลับที่วิ่งอยู่ใน guide wire จะ induce ให้เกิดกระแสไหลในขดลวดสองขดที่อยู่ใต้รถ กระแสที่ไหลไม่เท่ากันในขดลวดจะถูกนำมาใช้เป็น feedback signal ให้ controller ปรับการหมุนของมอเตอร์ให้รถเดินตรงกลางเส้น guide wire
3.1.2 ระบบนำทางแบบ Passively inductive ดังตามภาพ 13 (ก) เช่น กัน จะมีการวางแถบโลหะ (metal strip) ขนาดกว้าง 5-10 เซนติเมตร ไว้บนพื้น ใต้ท้องรถจะมี magnetic field sensors อยู่ 2-3 ตัว เพื่อทำการจับความเข้มของสนามแม่เหล็กที่เปลี่ยนไป เพื่อใช้เป็นสัญญาณ feedback signal ให้ controller
3.1.3 ระบบนำทางแบบ Optical guidance ดังตามภาพที่ 13 (ข) จะใช้แถบสีที่แตกต่างจากสีของพื้น ตีเป็นเส้นทางเดินของรถ ใต้ท้องรถจะมีกล้องที่ทำ edge detection ของแถบสี
เพื่อหาตำแหน่งของรถเทียบกับแถบสีในขณะใด ๆ เพื่อนำมาใช้เป็นสัญญาณ feedback ให้กับ controller
3.1.4 ระบบนำทางแบบ Double inductive มีการฝัง guide wires ในพื้นสองเส้น นอกจากจะช่วยในการ navigate รถแล้ว ยังใช้ในการชาร์จไฟให้แบตเตอรี่แบบ non-contacting
ตามภาพที่ 13 (ค)

ภาพที่ 13 ระบบนำทางแบบ Physical guideline (ก) แบบ Inductive (ข) แบบ Optical
(ค) แบบ Double conducting สำหรับการชาร์จไฟแบบ non-contacting
ที่มา: Ullrich (2015)

3.2 ระบบนำทางแบบ Magnetic anchoring points
อาศัยการหาตำแหน่งของรถขนส่งอัตโนมัติด้วยเซ็นเซอร์ที่อยู่บนรถเอง หรือที่เรียกว่า dead-reckoning หรือ odometry ควบคู่กับการฝังแม่เหล็กถาวร (passive permanent magnets) หรือ quasi-active transponders ลงในพื้นในแบบเส้นตรง (series of points) หรือแบบกริด (layout in a grid)
ตัว anchors เหล่านี้จะสอบเทียบตำแหน่งของรถให้แน่นอนขึ้นด้วยตำแหน่งของ anchors
ที่ทราบตามภาพที่ 14

ภาพที่ 14 (ซ้าย) การหาตำแหน่งของรถด้วยการใช้ dead-reckoning
(ขวา) การใช้ anchors ที่ฝังอยู่ในพื้นในการทำให้ได้ตำแหน่งของรถแม่นยำขึ้น
ที่มา: Ullrich (2015)

3.3 ระบบนำทางแบบ laser navigation
ใช้การติด Retro-reflecting foils ไว้ตามผนัง และเสาในระดับที่สูงกว่าระดับศีรษะ
ของมนุษย์ บนตัวรถจะมี laser scanner ติดอยู่ซึ่งจะสามารถอ่านระยะทางระหว่างรถกับแผ่น foil
ที่ทราบตำแหน่งได้อย่างแม่นยำ ทำให้สามารถใช้ระยะทางที่ได้มาคำนวณตำแหน่งของรถ
ตามภาพที่ 15 (ก) นอกจากนี้ laser scanner ยังสามารถใช้หาตำแหน่ง contour โดยรอบ ตามภาพที่ 15 (ข)

ภาพที่ 15 (ก) การหาตำแหน่งของรถด้วยการหาระยะทางจากรถถึงแผ่น foils ที่ติดไว้ตามผนัง
และเสา (ข) การใช้ laser scanner หาตำแหน่ง contour โดยรอบ
ที่มา: Ullrich (2015)
3.4 ระบบนำทางแบบ global positioning system (GPS)
ใช้ดาวเทียมในการหาตำแหน่งรถ เหมาะสำหรับใช้กับรถขนส่งอัตโนมัติที่วิ่งภายนอกอาคาร
ระบบนำทางสมัยใหม่อีกระบบหนึ่ง ได้แก่ ได้แก่ Natural Natural Navigation Navigation โดยไม่มี
ความจำเป็นต้องติดตั้งอุปกรณ์อะไรบนผนัง หรือภายในอาคาร รถขนส่งอัตโนมัติจะมีลักษณะ
คล้ายกับหุ่นยนต์เคลื่อนที่อัตโนมัติที่ใช้ลักษณะเด่นของสิ่งแวดล้อมรอบ ๆ ตัวในการสร้างแผนที่ และการระบุตำแหน่งของตนเองภายในสิ่งแวดล้อมนั้น เทคนิคหนึ่งที่เป็นที่นิยมในการนำทาง
แบบสมัยใหม่นี้ คือ Simultaneous Localization and Mapping หรือ SLAM อย่างไรก็ดีระบบนำทางแบบนี้ยังมีราคาแพง และโดยทั่วไปมีความคลาดเคลื่อนมากกว่าระบบอื่น ตามภาพที่ 16
แสดงการนำทางแบบ Natural Navigation, แบบ Laser Navigation, และแบบ Tape Follower

ภาพที่ 16 การนำทางของรถขนส่งอัตโนมัติแบบต่าง ๆ
ที่มา: https://www.lodamaster.com/en/solutions/automated-guided-vehicles และ และ
https://www.agvnetwork.com/types-of-navigation-systems-automated-guided-vehicles

ในส่วนของระบบนำทางนั้น อาจจะแบ่งได้เป็น Direct, Relative, Absolute ตามภาพที่ 17 ลักษณะ Wired หมายถึง จะอาศัย slot หรือ wire วางไว้บนพื้นผิว และวางเซนเซอร์
ไว้ใต้รถ AGV เพื่อตรวจจับตำแหน่งที่ได้จากสัญญาณ RF ที่ส่งไปยัง wire นั้นเพื่อใช้ในการขับทิศทางให้ไปตามเส้นทาง ในรูปแบบ Guide จะอาศัยเส้นสี หรือเทป และใช้กล้องเพื่อจับเทป
ในรูปแบบ Laser เป็นวิธีการที่หลีกเลี่ยงสิ่งกีดขวางที่ไม่ใช้ wire, หรือเทปใด ๆ เลย การส่งสัญญาณเลเซอร์ไป และการรับกลับ และวัดเวลาการเดินทางของสัญญาณกลับมาเพื่อคำนวณหาระยะทาง และมุม เพื่อใช้ประเมินทิศทางการเคลื่อนที่ และพิจารณาร่วมกับแผนที่ต่อไป ส่วนรูปแบบ Gyro อาศัยระบบคอมพิวเตอร์ควบคุมทิศทางกับรถ และใช้ Transponder ที่ฝังไว้ใต้พื้นเพื่อตรวจจับตำแหน่ง และทิศทางของรถ การนำทางจะอาศัย Gyroscopic เซนเซอร์ร่วมกับ laser เพื่อหา
range finding และหา shortest path และในประเภท Vision-based จะอาศัยภาพจากกล้อง
เพื่อใช้นำทางรถ และแบบ Geo-guidance ใช้ตำแหน่ง GPS ช่วยในการนำทาง เป็นต้น

ภาพที่ 17 รูปแบบระบบนำทาง
ที่มา: Ullrich (2015)

โดยสรุปในส่วนของระบบนำทางสำหรับรถขนส่งอัตโนมัติสามารถเปรียบเทียบคุณสมบัติ ในแต่ล่ะด้านตามภาพที่ 18 เพื่อสามารถนำมาเลือกใช้ตามความต้องการ

ภาพที่ 18 เปรียบเทียบระบบนำทางของรถขนส่งอัตโนมัติ
ที่มา: https://ek-automation.com/en/technology/navigation/

  1. การวางแผนเส้นทาง (Path planning)
    Motion planning หรือ Path planning คำนวณเส้นทางการเดิน (trajectory) ของหุ่นยนต์
    เพื่อไที่ไม่ให้เกิดการชน (collision-free) ที่ไปในขณะที่เคลื่อนที่ไปยังเป้าหมาย และที่สอดคล้องกับข้อจำกัดของการเคลื่อนที่
    ของหุ่นยนต์ (vehicle constraints) ข้อได้เปรียบของ Motion planning คือ การคำนวณเส้นทางการเดินตั้งแต่ต้นจนจบอย่างสมบูรณ์
    Path planning มี 2 ขั้นตอน คือ การทำ Environment presentation และการทำ Path planning
    4.1 Environment presentation
    สิ่งแวดล้อมหรือ Environment ที่หุ่นยนต์เคลื่อนที่อยู่ประกอบด้วย free free space space และ และ space ที่ถูกยึดครองโดยสิ่งกีดขวาง (obstacles) ใน free space มี start และ goal configurations อยู่ โดย configuration คือ พารามิเตอร์ที่กำหนดหุ่นยนต์ใน space โดยมีค่าเท่ากับ degrees of freedom (DoF) ของหุ่นยนต์ เช่น หุ่นยนต์เคลื่อนที่ในระนาบ 2 มิติมี configuration คือ และ Configuration คือ state vector อยู่ใน configuration space ตามภาพที่ 19 แสดงตัวอย่าง environment

ภาพที่ 19 ตัวอย่าง Environment ที่หุ่นยนต์วิ่งอยู่
ที่มา: Klancar et al. (2017)

การทำ Environment presentation มีหลายเทคนิคดังนี้
4.1.1 Graph representation
Graph แสดง configurations ของหุ่นยนต์ และ transitions ระหว่าง configurations โดย nodes nodes แทน configurations และ lines แสดง transitions ตามภาพที่ 20 (A) แสดงตัวอย่าง undirected graph ตามภาพที่ 20 (B) แสดงตัวอย่าง directed graph ตัวเลขบน lines lines แทน cost
ที่เกิดจากการ transition สำหรับ undirected graph การ transitions เกิดได้ทั้งสองทิศทาง และ
สำหรับ directed graph การ transitions เกิดได้ในทิศทางตามลูกศร

ภาพที่ 20 (A) ตัวอย่าง undirected graph (B) ตัวอย่าง directed graph
ที่มา: Klancar et al. (2017)

4.1.2 Cell decomposition
Environment ถูกแบ่งได้เป็น cells ที่เป็นแบบ convex นั่น คือ เส้นตรงที่เชื่อม
ทุกสอง configurations ภายใน cell จะวางตัวอยู่ภายใน cell นั้น ตามภาพที่ 21 แสดงตัวอย่าง
ของ vertical cell decomposition และ graph

ภาพที่ 21 ตัวอย่างของ vertical cell decomposition และ graph
ที่มา: Klancar et al. (2017)

4.1.3 Roadmap
Roadmap คือ map ที่มี roads คือ เส้นทางจาก start ไป goal ตามภาพที่ 22
แสดงตัวอย่างของ Roadmap สองชนิด คือ Visibility graph และ Voronoi graph โดย Visibility graph เป็นเส้นทางที่เชื่อมมุมของ obstacles จึงมักเป็นเส้นทางที่ใกล้ที่สุดจาก start ไป goal
ส่วน Voronoi graph เป็นเส้นทางที่ห่างจาก obstacles ที่สุดเท่า ๆ กัน

ภาพที่ 22 ตัวอย่างของ Roadmap สองชนิด คือ (A) Visibility graph (B) Voronoi graph
ที่มา: Klancar et al. (2017)

4.1.4 Potential field
ตามในภาพที่ 23 แสดงตัวอย่างของ Potential field โดย goal goal อยู่ที่จุดต่ำสุด และ
มีความสูงมากขึ้นเมื่อห่างจาก จาก goal ออกมา และมีความสูงมากขี้นสำหรับ obstacles โดยค่าความสูง
ของ potential field มีหาได้จากสมการ คือ

เมื่อ แทนการดึงดูดจาก goal และ แทนการผลักของ obstacles หาได้จากสมการ มีสมการ คือ

เมื่อ

คือ ระยะห่างจากจุด ถึง , คือ ระยะห่างจากจุด ถึง , คือ ค่า threshold, คือ ค่าคงที่
เส้นทางการเคลื่อนที่จาก start ถึง goal หาได้จากการตามทิศทางของ negative gradient มีสมการ คือ

ภาพที่ 23 ตัวอย่างของ Potential field
ที่มา: Klancar et al. (2017)
4.1.5 Sampling-based method
ใช้โดยการสุ่ม configurations มา จากนั้นจะทำการยืนยันว่าอยู่ใน free space ก่อนจะทำการเชื่อม configurations เข้าด้วยกัน โดยเส้นเชื่อมต้องอยู่ใน free space ด้วย แบ่งเป็นสองวิธี คือ
4.1.5.1 Rapidly exploring random tree (RRT)
ทำการสุ่ม มา จากนั้นทำการหา ที่อยู่ห่างจาก ที่ใกล้ที่สุดเป็นระยะทาง ดังแสดงตามภาพที่ 24

ภาพที่ 24 Rapidly exploring random tree (RRT)
ที่มา: Klancar et al. (2017)

4.1.5.2 Probabilistic roadmap (PRM)
ทำการสร้างหลาย ๆ เส้นทางการเคลื่อนที่ และเชื่อมโดยใช้เทคนิค K nearest neighbor กับ configuration ที่สุ่มขึ้นมา ดังแสดงตามภาพที่ 25 โดย คือ design parameter

ภาพที่ 25 Probabilistic roadmap (PRM)
ที่มา: Klancar et al. (2017)

4.2 การวางแผนเส้นทาง (Path planning)
4.2.1 วิธี Bug algorithms
เป็นวิธีพื้นฐานที่ใช้แค่ข้อมูลที่เป็น local ที่ได้มาจากเซ็นเซอร์ และไม่ต้องใช้
แผนที่ของสิ่งแวดล้อม เหมาะสมกับกรณีที่สิ่งแวดล้อมเปลี่ยนแปลงรวดเร็ว และกรณีที่หุ่นยนต์
มีกำลังประมวลผลไม่สูงนัก วิธีนี้มีพฤติกรรมสองแบบ คือ การเคลื่อนที่เป็นเส้นตรงไปยัง goal
และการติดตามขอบของ obstacle
4.2.2 วิธี Bug0 algorithm
มีลักษณะดังภาพที่ 26 หุ่นยนต์เคลื่อนที่เป็นเส้นตรงเข้าหาเป้าหมาย หากมี
สิ่งกีดขวางหุ่นยนต์จะเคลื่อนที่ไปในทางเดียวไม่ว่าจะเป็นด้านซ้าย หรือด้านขวา จนกระทั่งหลุดออกจาก obstacle โดยสามารถเคลื่อนที่เป็นเส้นตรงไปยัง goal ได้ หุ่นยนต์จะเคลื่อนที่เข้าหา goal

ภาพที่ 26 Bug0 algorithm กรณีที่ประสบผลสำเร็จ (ซ้าย) และไม่ประสบผลสำเร็จ (ขวา)
ที่มา: Klancar et al. (2017)
4.2.3 วิธี Bug1 algorithm
ใช้เมมโมรี่มากกว่าวิธี bug0 หุ่นยนต์จะเริ่มต้นเคลื่อนที่ไป goal เป็นเส้นตรงจนกระทั่งเจอ obstacle จะทำการเคลื่อนที่วนไปทางซ้าย และติดตามเส้นรอบวงของ obstacle ในขณะที่วัดความห่าง Euclidean distance จาก goal ไปพร้อมกันด้วย เมื่อหุ่นยนต์เคลื่อนที่วนรอบ obstacle ครบ 1 รอบ จะเคลื่อนที่กลับวนไปทางขวาจนไปถึงจุดที่อยู่ใกล้ goal ที่สุดจากนั้นจะทำ
การเดินเป็นเส้นตรงเข้าหา goal ดังแสดงตามภาพที่ 27

ภาพที่ 27 Bug1 algorithm กรณีที่ประสบผลสำเร็จ (บนซ้าย และบนขวา) และไม่ประสบผลสำเร็จ (ล่าง) โดยสามารถหาได้ว่าเส้นทางไปสู่ goal นี้เป็นไปไม่ได้
ที่มา: Klancar et al. (2017)
ข้อดีประการหนึ่งของวิธีนี้ คือ สามารถหาได้ว่าเส้นทางไปสู่ goal นี้เป็นไปไม่ได้ดังแสดงดังในภาพ 27 (ล่าง)
4.2.4 วิธี Bug2 algorithm
วิธีนี้เริ่มต้นจากหุ่นยนต์เคลื่อนที่เข้าหาเป้าหมายเป็นเส้นตรง หากพบสิ่งกีดขวางจะทำการติดตามเส้นรอบวงของสิ่งกีดขวางนั้นไปในทิศทางเดียวกันจนกระทั่งถึงเส้นตรงที่ชี้ไปยังเป้าหมาย และจุดนั้นมีระยะทางถึงเป้าหมายสั้นกว่าระยะทางจากจุดที่หุ่นยนต์เจอสิ่งกีดขวาง
ในครั้งก่อนหน้า หุ่นยนต์จึงทำการเคลื่อนที่เป็นเส้นตรงเข้าหาเป้าหมาย ดังแสดงตามภาพที่ 27
(บนซ้าย)
วิธีนี้อาจทำให้เกิดการวิ่งวนรอบสิ่งกีดขวางของหุ่นยนต์ได้ดังแสดงตามภาพที่ 28 แต่วิธีการนี้สามารถบอกเป้าหมายที่เป็นไปไม่ได้ หากหุ่นยนต์เจอสิ่งกีดขวางที่จุดเดิมมากกว่า 1 ครั้ง
เปรียบเทียบวิธี Bug1 และ Bug2 พบว่าวิธี Bug1 ประเมินความเป็นไปได้
ของการเข้าหาเป้าหมายได้ถี่ถ้วนกว่า วิธี Bug2 เป็นวิธีแบบ greedy เพราะวิธีนี้จะเลือกทางเดินแรก
ที่ดูเป็นไปได้ ส่วนใหญ่วิธี Bug2 จะมีประสิทธิภาพมากกว่าวิธี Bug1

ภาพที่ 28 Bug2 algorithm
ที่มา: Klancar et al. (2017)
4.3 วิธี Graph-based algorithms
อัลกอริทึมแบบนี้จะใช้ข้อมูลจาก environment ที่ได้ถูกทำเป็น graph ที่ประกอบด้วย nodes ต่าง ๆ ไว้แล้ว โดยจะเลือกเคลื่อนที่ไปยัง node ใหม่ที่อยู่ใกล้เคียงกับ node ปัจจุบัน จนกระทั่งถึง node ที่เป็นเป้าหมาย หรือทุก ๆ nodes ได้ถูกเคลื่อนที่ไปหมดแล้ว
nodes ที่ถูกเคลื่อนที่ไปหาแล้วจะถูกใส่อยู่ใน closed list และ neighbor nodes
ที่ยังไม่ถูกเคลื่อนที่ไปหาจะถูกใส่อยู่ใน open list
4.3.1 วิธี Breadth-first search
ตามภาพที่ 29 แสดง Breadth-first search เริ่มจาก nodes ที่อยู่ใกล้ starting node ที่สุดนั่น คือ ใช้จำนวน steps ในการเคลื่อนที่ไปหาน้อยที่สุด nodes สีดำอยู่ใน closed list สีเทา
อยู่ใน open list สีขาวแสดง nodes ที่ยังไม่เคยถูกเคลื่อนที่ไปหา และลูกศรแสดง node ปัจจุบัน
open list เป็นลักษณะ FIFO คือ node ที่ถูกใส่อยู่ก่อนจะถูกเคลื่อนที่ไปหาก่อน

ภาพที่ 29 Breadth-first search
ที่มา: Klancar et al. (2017)

4.3.2 วิธี Depth-first search
ตามภาพที่ 30 แสดง Depth-first search เริ่มหาจาก starting node ไปยัง node
ที่ไกลที่สุดก่อน โดยจะเคลื่อนที่ต่อไปจนกระทั่งสุดปลายทาง จากนั้นจึงจะเริ่มเคลื่อนที่ไปสู่ node ที่ลึกเป็นอันดับถัดไป วิธีนี้ใช้เมมโมรี่น้อยเนื่องจาก nodes ที่ถูกค้นพบไปแล้วจะถูกลบออกจากเมมโมรี่

ภาพที่ 30 Depth-first search
ที่มา: Klancar et al. (2017)

4.3.3 วิธี Iterative deepening depth-first search
วิธีการนี้เป็นการผสมผสานระหว่างวิธี Breadth-first search และวิธี Depth-first search ดังแสดงตามภาพที่ 31

ภาพที่ 31 Iterative deepening depth-first search
ที่มา: Klancar et al. (2017)

4.3.4 วิธี Dijkstra’s algorithm
ตามภาพที่ 32 แสดง Dijkstra’s algorithm เริ่มต้นจากจุดวงกลมสีเขียวเป็น starting point วิธีนี้ทำการคำนวณ cost-to-here คือ ระยะทางจากจุดเริ่มต้นถึง node ใด ๆ ดังแสดงเป็น
ตัวเลขใน node นั้น วิธีนี้จะเลือก cost-to-here ที่น้อยที่สุดที่เข้าหา goal

ภาพที่ 32 Dijkstra’s algorithm
ที่มา: Klancar et al. (2017)

4.3.5 วิธี A* algorithm
วิธีนี้หา cost-of-the-whole-path คือ cost-to-here บวกกับ cost-to-goal
ดังแสดงตามภาพที่ 33 หาก cost-to-goal ถูกกำหนดให้เท่ากับศูนย์ วิธีนี้จะเหมือนกับวิธี Dijkstra

ภาพที่ 33 A* algorithm
ที่มา: Klancar et al. (2017)

4.3.6 วิธี Greedy best-first search
วิธีนี้ใช้แต่ cost-to-goal ประกอบการพิจารณา โดยทั่วไปทำให้เข้าหา goal
ได้เร็วที่สุด แต่ในบางกรณีอาจไม่ optimal เหมือนวิธี A* ดังแสดงตามภาพที่ 34

ภาพที่ 34 เปรียบเทียบ Greedy best-first search (ซ้าย) กับ A* algorithm (ขวา)
ที่มา: Klancar et al. (2017)

  1. การหลบหลีกสิ่งกีดขวาง (Obstacle avoidance)
    วิธีการหลีกเลี่ยงสิ่งกีดขวาง (Obstacle avoidance) เป็นเทคนิคในระดับ local เพื่อแก้ปัญหาการเคลื่อนไหว ซึ่งอาจทำให้เกิดปัญหาในลักษณะการเคลื่อนไหวที่ติดอยู่ในกับดัก หรือ
    การเคลื่อนไหวซ้ำซาก ซึ่งแสดงถึงความจำเป็นของการคิดในระดับที่กว้างขึ้น ขึ้น โดยในทางกลับกัน เทคนิคการวางแผนการเคลื่อนไหว เคลื่อนไหว (Path planning) ) จะคำนวณเส้นทางทางเรขาคณิตที่ปลอดภัย
    จากการชน ซึ่งรับประกันการบรรลุเป้าหมายในระดับ ระดับ global อย่างไรก็ตาม เมื่อสถานการณ์
    ไม่เป็นที่ทราบล่วงหน้า และเปลี่ยนแปลงอยู่เสมอ เทคนิคเหล่านี้จะล้มเหลว เนื่องจากเส้นทาง
    ที่คำนวณไว้ล่วงหน้ามักจะชนกับสิ่งกีดขวาง
    ในส่วนนี้จะกล่าวถึงเทคนิคด้านการหลบหลีกสิ่งกีดขวางที่ใช้กันอย่างแพร่หลายดังนี้
    5.1 วิธี Potential Field
    วิธีนี้เป็นตามภาพที่ 35 โดยคิดเสมือนว่าหุ่นยนต์กำลังเดินอยู่ใน force field
    โดยเป้าหมายจะมีแรงดึงดูดหุ่นยนต์เท่ากับ และสิ่งกีดขวางจะมีแรงผลักหุ่นยนต์เท่ากับ ณ เวลา ใด ๆ หุ่นยนต์จะเคลื่อนที่ไปในทิศทางของแรงเสมือนที่เป็นผลรวมของแรงทั้งสองชนิดนี้ คือ

เมื่อ คือ state ของหุ่นยนต์ที่เวลา
ตัวอย่างของวิธีนี้ ได้แก่

เมื่อ และ คือ ค่า gain คงที่, คือ ระยะทางจากหุ่นยนต์ถึงสิ่งกีดขวาง , คือ ระยะทางที่มากที่สุดที่สนใจ, คือ unit vector ที่พุ่งจากหุ่นยนต์ไปยังเป้าหมาย, และ คือ unit vector ที่พุ่งจากหุ่นยนต์ไปยังสิ่งกีดขวาง

ภาพที่ 35 วิธี Potential Field
ที่มา: S. Khatib (2016)
5.2 วิธี Vector Field Histogram
วิธีนี้แสดงตามภาพที่ 36 โดยใช้ polar histogram H รอบตัวหุ่นยนต์เป็นมุม
แต่ละแท่งของ histogram แสดงปริมาณดังนี้

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

ภาพที่ 36 วิธี Vector Field Histogram
ที่มา: S. Khatib (2016)

5.3 วิธี Obstacle Restriction
วิธีนี้เป็นตามภาพที่ 37 โดยมี 3 ขั้นตอน คือ

  1. การเลือกเป้าหมายชั่วขณะ (Instantaneous target selection) เช่น จุด
    ในรูป เพื่อให้หุ่นยนต์เคลื่อนที่ไปได้โดยไม่ติดขัด และเข้าหาเป้าหมายสุดท้ายให้ใกล้ที่สุด
  2. การหา set ของทิศทางที่ต้องการ (Candidate set of directions) โดยการหา complementary set ของ set ของทิศทางที่ไม่ต้องการของแต่ละสิ่งกีดขวาง สำหรับสิ่งกีดขวางที่
    , เมื่อ คือ set ของทิศทางที่เป็นสิ่งกีดขวาง และ คือ set ของพื้นที่รอบ ๆ สิ่งกีดขวางที่หุ่นยนต์ไม่สามารถเคลื่อนที่ผ่านได้
  3. การคำนวณการเคลื่อนที่ (Motion computation) โดยทิศทางจะคำนวณจาก
    set ของทิศทางที่ต้องการ และจากทิศทางไปยังเป้าหมายสุดท้าย

ภาพที่ 37 วิธี Obstacle Restriction
ที่มา: S. Khatib (2016)

5.4 วิธี Dynamic Window
วิธีนี้เป็นดังภาพที่ 38 วิธีนี้คำนวณ subset ของ motion control space ที่เป็นไปได้
ของหุ่นยนต์ motion control ได้แก่ ความเร็วเชิงเส้นตรง และความเร็วเชิงมุม ของหุ่นยนต์
Subset ของ motion control space มีสมการดังนี้

เมื่อ คือ set ของความเร็วของหุ่นยนต์ที่วิ่งได้ อยู่ระหว่างความเร็วต่ำสุด และ
สูงสุดของหุ่นยนต์, คือ set ของ admissible controls ที่หุ่นยนต์สามารถหยุดก่อนจะชน
สิ่งกีดความได้ ด้วยความหน่วงสูงสุด , คือ set ของ controls ณ ปัจจุบัน ที่หุ่นยนต์สามารถทำได้ในเวลาอันสั้น
หลังจากได้ subset ของ motion control space แล้ว เราสามารถเลือก motion control โดย maximize objective function

เมื่อ เป็นฟังก์ชันที่เน้นการเคลื่อนที่เข้าหาเป้าหมาย, คือ ฟังก์ชันที่เน้นการหลีกห่างจากสิ่งกีดขวาง, คือ ฟังก์ชันที่เน้นการทำความเร็วสูงสุดของหุ่นยนต์

ภาพที่ 38 วิธี Dynamic Window
ที่มา: S. Khatib (2016)

5.5 วิธี Velocity Obstacles
วิธีนี้เป็นดังภาพที่ 39 เป็นวิธีเดียวกับวิธี Dynamic Window แต่พิจารณาความเร็ว
ในการเคลื่อนที่ของสิ่งกีดขวางด้วย โดยมีการปรับ (set ของ admissible controls) ดังนี้

เมื่อ คือ ความเร็วของสิ่งกีดขวางที่ , คือ รัศมีที่เพิ่มขึ้นของสิ่งกีดขวางจาก
รัศมีของหุ่นยนต์, คือ motion control ของหุ่นยนต์, คือ collision cone ซึ่ง คือ set ของ colliding relative velocities, คือ ทิศทางของเวกเตอร์หนึ่งหน่วย และ คือ velocity obstacle

ภาพที่ 39 วิธี Velocity Obstacles
ที่มา: S. Khatib (2016)

5.6 วิธี Nearness Diagram Navigation
วิธีนี้เป็นดังภาพที่ 40 โดยกำหนด set ของสถานการณ์ที่เป็นไปได้ทั้งหมด เกี่ยวข้องกับตำแหน่งของหุ่นยนต์, สิ่งกีดขวาง, และตำแหน่งของเป้าหมาย ในแต่ละสถานการณ์จะมี motion law ที่จะสามารถใช้ได้ ที่เวลา สถานการณ์หนึ่งจะถูกเลือกมา และจะนำ motion law ของสถานการณ์นั้นมาใช้

ภาพที่ 40 วิธี Nearness Diagram Navigation
ที่มา: S. Khatib (2016)

  1. การหาตำแหน่งของหุ่นยนต์ และการทำแผนที่ (Localization and mapping)
    6.1 ตัวกรองคาลมาน (Kalman filter)
    Kalman filter ในหัวข้อนี้ มาจากหนังสือของ Isermann and Munchhof (2011)
    6.1.1 Kalman filter สำหรับ ระบบ time-invariant
    Kalman filter ใช้ประมาณค่า state ของ dynamic system ที่มีสมการอนุพันธ์ (3) ดังนี้
    (3)

เมื่อ และ คือ uncorrelated white noise ที่มี mean เท่ากับ 0 และ
มี covariances
เท่ากับ

โดยเราทราบค่า input และ output และทราบค่า A, B, C, V, M, N
Notation หมายถึง ปริมาณที่ time step ที่หาได้จากการใช้การวัดปริมาณนั้นในอดีตถึง time step
Kalman filter ถูกออกแบบให้ minimize prediction error ตามสมการ (4)
(4)

คือ ค่า error ระหว่างค่าประมาณ ที่ใช้การวัดถึง time step ที่ กับค่าจริง
ที่ time step
Kalman filter มี 2 ขั้นตอน ขั้นตอนแรกเรียกว่า prediction เป็นการหาค่าประมาณ ที่ time step โดยใช้การวัดจากอดีตจนถึง time step
เนื่องจาก มีค่า mean เท่ากับ 0 จากสมการ (3)
(5)

กำหนดให้

เป็น covariance matrix ของ state estimates ในขั้นตอน prediction เราสามารถพิสูจน์ได้ว่า

เมื่อ คือ covariance matrix ในขั้นตอน correction ต่อไป
ในขั้นตอน correction จะใช้การวัดปริมาณ มาใช้ในการ correction ของสมการ (5) โดยมีสมการดังนี้

โดย gain เป็นค่าถ่วงน้ำหนักระหว่างการประมาณ
ในขั้นตอน prediction และการใช้การวัดปริมาณ
จาก

ซึ่งเป็น covariance matrix ของ state estimates ในขั้นตอน correction เราได้ว่า prediction error ในสมการ (4) มีความสัมพันธ์กันดังนี้

ซึ่งเมื่อกำหนดให้มีค่าเท่ากับ 0 แล้ว สามารถหาค่า gain ที่ minimize ได้เท่ากับ

สรุป Kalman filter สำหรับระบบ time-invariant เป็นดังนี้

6.1.2 Steady-state Kalman filter
สมมุติให้ และ มีค่าคงที่เมื่อ time step
Kalman filter จะสามารถลดรูปลงได้ดังนี้

เมื่อ

และ หาได้จากการแก้สมการ Riccatti

6.1.3 Luenberger observer
Luenberger observer คือ Steady-state Kalman filter
Steady-state Kalman filter เมื่อนำสมการ corrector ใส่ลงในสมการ predictor
จะได้

Luenberger observer มีสมการ คือ

ซึ่ง คือ Steady-state Kalman filter เมื่อ

6.1.4 วิธี Kalman filter สำหรับ ระบบ time-varying
สมมุติให้สมการอนุพันธ์ (3) เปลี่ยนแปลงตามเวลานั่น คือ
(6)
Kalman filter ของระบบ time-varying นี้ สามารถหาได้ด้วยขั้นตอน เช่น เดียวกับของระบบ time-invariant ได้ดังนี้

6.1.5 Extended Kalman filter สำหรับระบบ nonlinear
ระบบ nonlinear

สามารถเขียนให้อยู่ในรูประบบ time-varying ตามสมการ (6) ได้โดยการทำ linearization

โดยในที่นี้ และ
Kalman filter ของระบบ nonlinear มีสมการดังนี้

6.2 การหาตำแหน่งของหุ่นยนต์ (Localization)
ในกรณีที่เราทราบแผนที่ของสิ่งแวดล้อมรอบตัวหุ่นยนต์ เราสามารถนำพิกัดของ landmarks ในแผนที่มาใช้ในการคำนวณตำแหน่งของหุ่นยนต์ หรือที่เรียกว่า localization ได้ดังนี้
6.2.1 การหาตำแหน่งของหุ่นยนต์ด้วยวิธี Dead reckoning
วิธีการ Dead reckoning เป็นการหาตำแหน่งของหุ่นยนต์ด้วยการใช้เซ็นเซอร์
ที่ทำการวัดการเคลื่อนที่ของหุ่นยนต์ใน time step ปัจจุบัน เทียบกับ time step ก่อนหน้า เช่น encoder ที่ล้อของหุ่นยนต์, imu ที่วัดมุมเป็นต้น
กำหนดให้ เป็นระยะทางที่หุ่นยนต์เคลื่อนที่ไปเทียบกับ time step ก่อนหน้า และ เป็นมุมของตัวหุ่นยนต์ที่เปลี่ยนไปเทียบกับ time step ก่อนหน้า pose ของหุ่นยนต์ หรือ state vector คือ

pose ของหุ่นยนต์ที่ time step สามารถเขียนได้เป็นสมการดังนี้
(7)
เมื่อ และ คือ random measurement noise
Kalman filter ใช้ประมาณ state ของหุ่นยนต์ที่มีโมเดล ตามสมการ (7) เนื่องจากเป็นสมการ non-linear จึงใช้ Extended Kalman filter ซึ่งมี prediction equations คือ

โดย และ

6.2.2 การหาตำแหน่งของหุ่นยนต์ด้วยวิธี Kalman filter
Kalman filter ใช้ข้อมูลจากเซ็นเซอร์ที่ทำการวัดตำแหน่งสัมพัทธ์ระหว่าง
ตัวหุ่นยนต์ และ landmarks ของ map สิ่งแวดล้อม ซึ่งในกรณีนี้สมมุติให้เราทราบพิกัดของ landmarks เหล่านั้นอย่างแม่นยำ
ในกรณีที่เซ็นเซอร์ที่ใช้ คือ ไลดาร์ ค่าที่วัดได้ คือ

เมื่อ คือ ระยะทาง (range) ถึง landmarks และ คือ มุมของ landmarks
จากตัวหุ่นยนต์ (bearing angle) ซึ่งสามารถเขียนได้เป็นสมการดังนี้
(8)
เมื่อ คือ พิกัดของ landmark ตัวที่ คือ noise ของเซ็นเซอร์
ผลต่างระหว่างค่าที่วัดได้จากเซนเซอร์ และค่าที่ได้จากแบบจำลอง ในสมการ (8) คือ

จะนำมาใช้ในขั้นตอน correction ของ Kalman filter ที่มีสมการดังนี้

เมื่อ

6.3 การทำแผนที่ (Mapping)
ในกรณีที่เราทราบตำแหน่งของหุ่นยนต์อย่างแม่นยำ แต่ไม่ทราบแผนที่ของสิ่งแวดล้อมรอบตัวหุ่นยนต์ เราสามารถทำแผนที่ของสิ่งแวดล้อมของหุ่นยนต์ได้ดังนี้
กำหนดให้ state vector คือ

แทนพิกัดของ M landmarks โดยเริ่มต้น M จะมีค่าเท่ากับ 0 และจะเพิ่มขึ้นเมื่อหุ่นยนต์เจอ landmark ใหม่ ๆ
Prediction equations เป็นดังสมการ

ซึ่งคงที่เนื่องจาก landmarks อยู่นิ่งจึงมีพิกัดคงที่
พิจารณา extended state vector ที่มีขนาดเปลี่ยนแปลงไปเนื่องจากจำนวน landmark
ที่เจอไม่คงที่

โดย

แทน coordinates ของ observed landmarks
Correction equations ของ Kalman filter สามารถหาได้คล้ายกับในหัวข้อที่ 0
โดยมีปริมาณที่เกี่ยวข้องดังนี้

6.4 การหาตำแหน่งของหุ่นยนต์ และการทำแผนที่ (Localization and mapping)
ในกรณีที่เราไม่ทราบทั้งตำแหน่งของหุ่นยนต์ และไม่ทราบตำแหน่งของ landmarks
ของแผนที่ เราต้องทำการประมาณทั้งสองสิ่งในเวลาเดียวกัน
กำหนดให้ state vector คือ

แทน pose ของหุ่นยนต์ และแทนพิกัดของ M landmarks ในแผนที่
ปริมาณต่าง ๆ ที่ใช้ใน prediction และ correction equations ได้แก่

6.5 การควบคุมหุ่นยนต์ (Robot control)
ปัญหาการควบคุมหุ่นยนต์แบ่งออกเป็น 3 แบบ ได้แก่ การควบคุมหุ่นยนต์ให้วิ่งเข้าหาจุด (Moving to a point) การควบคุมหุ่นยนต์ให้เดินตามเส้นตรง (Following a line) และการควบคุมหุ่นยนต์ให้เคลื่อนที่ตามวิถี (Following a trajectory)
6.5.1 การควบคุมหุ่นยนต์ให้วิ่งเข้าหาจุด (Moving to a point)
การควบคุมหุ่นยนต์ให้วิ่งเข้าหาจุดแบ่งเป็น 2 กรณี คือ กรณีที่เป้าหมายเป็นพิกัด และกรณีที่เป้าหมายเป็น pose
6.5.1.1 กรณีที่เป้าหมายเป็นพิกัด
ในกรณีที่เป้าหมายเป็นพิกัด ความเร็วของหุ่นยนต์จะถูกควบคุมให้เท่ากับค่าคงที่คูณระยะห่างระหว่างพิกัดปัจจุบัน และพิกัดเป้าหมายนั่น คือ

และมุมของหุ่นยนต์จะถูกควบคุมให้เข้าหา vehicle-relative angle นั่น คือ

6.5.1.2 กรณีที่เป้าหมายเป็น pose
กรณีที่เป้าหมายเป็น pose นั่น คือ ต้องการคุมมุมของหุ่นยนต์ที่จุดเป้าหมายด้วย ตามภาพที่ 41 สามารถสร้างสมการได้ดังนี้

เมื่อทำการเปลี่ยนตัวแปร ไปสู่ polar coordinates โดยใช้ความสัมพันธ์

และ steering angle

จะได้

ตัวควบคุมที่สามารถทำให้จุด เป็นจุด asymptotically stable equilibrium point มีสมการ คือ

ภาพที่ 41 การควบคุมหุ่นยนต์ให้วิ่งเข้าหาจุด ในกรณีที่เป้าหมายเป็น pose
ที่มา: Corke (2017)

6.5.2 การควบคุมหุ่นยนต์ให้เดินตามเส้นตรง (Following a line)
กำหนดให้หุ่นยนต์เดินบนเส้นตรงที่มีสมการ ดังนี้

ตัวควบคุมตัวที่หนึ่งของหุ่นยนต์จะเป็นไปตามสมการ

เมื่อ

คือ ระยะตั้งฉากจากตำแหน่งปัจจุบัน ของหุ่นยนต์ไปยังเส้นตรง
ตัวควบคุมตัวที่สองทำหน้าที่ปรับมุม ของตัวหุ่นยนต์ เพื่อให้มุมขนานกับเส้นตรง มีสมการดังนี้

เมื่อนำตัวควบคุมทั้งสองตัวมารวมกันจะได้ตัวควบคุมรวม

6.5.3 การควบคุมหุ่นยนต์ให้เคลื่อนที่ตามวิถี (Following a trajectory)
กรณีนี้ต้องการให้หุ่นยนต์เดินตามจุดเป้าหมายที่เปลี่ยนแปลงตามเวลา หรือที่เรียก pure pursuit หรือการตามรถคันหน้า
หุ่นยนต์จะรักษาระยะห่างจากจุดเป้าหมายเท่ากับ กำหนดให้ความผิดพลาด (error) ที่ต้องควบคุมให้เป็นศูนย์ มีสมการเป็น

ตัวควบคุมแบบ proportional-integral (PI) มีสมการดังนี้

ตัวควบคุมตัวที่สองคุมหุ่นยนต์ให้มีค่ามุม

ตัวควบคุมมีสมการ

6.5.4 การควบคุมพาหนะที่มีล้อแบบแมคคานัม (Mecanum Wheel)
หุ่นยนต์ในโครงการนี้มีล้อแบบแมคคานัม ในส่วนนี้จะสำรวจวรรณกรรมคร่าว ๆ ถึงแบบจำลองทางคณิตศาสตร์ และการควบคุมอัตโนมัติของพาหนะที่มีล้อลักษณะนี้
ลักษณะการเคลื่อนที่ของหุ่นยนต์ที่มีล้อแบบแมคคานัม ตามภาพที่ 42 หุ่นยนต์เคลื่อนที่ไปหน้าหลัง ซ้ายขวา และหมุนทวนเข็ม และตามเข็มนาฬิกาได้ตามทิศทางการหมุนของ
ล้อทั้งสี่ที่แตกต่างกัน

ภาพที่ 42 ลักษณะการเคลื่อนที่ของหุ่นยนต์ที่มีล้อแบบ Mecanum
ที่มา: Klancar et al. (2017)

หุ่นยนต์เคลื่อนที่ได้ที่มีล้อแบบแมคคานัม (Mecanum-wheeled mobile robot) เป็นตามภาพที่ 43 โดยพิกัด เป็น global coordinates และพิกัด เป็น local coordinates ที่ติดกับตัวหุ่นยนต์ และมีจุด origin อยู่ที่จุด กึ่งกลางของตัวหุ่นยนต์ มุม คือ มุมระหว่าง
แกนของ roller เล็ก ๆ ของล้อกับเวกเตอร์รัศมีล้อ ระยะ และ แสดงมิติของตัวถังหุ่นยนต์
ดังรูป มุม คือ มุมที่หุ่นยนต์หมุนไป ล้อที่ 1 ถึง 4 มีเลขกำกับดังภาพที่ 102

ภาพที่ 43 มิติของหุ่นยนต์เคลื่อนที่ได้ที่มีล้อแบบ Mecanum และพิกัดต่าง ๆ
ที่มา: Hendzel and Rykala (2017)

ในการออกแบบตัวควบคุม (controller) ของหุ่นยนต์จำเป็นต้องทราบสัญญาณ
ขาเข้าหุ่นยนต์ และสัญญาณขาออกหุ่นยนต์ ซึ่งเป็นดังภาพที่ 44 โดย แทนแรงบิด (torque) ที่ล้อที่ , และ แทนตำแหน่งของจุด S เทียบกับพิกัด

ภาพที่ 44 สัญญาณขาเข้า (input) และสัญญาณขาออก (output) ของหุ่นยนต์
ที่มา: Hendzel and Rykala (2017)

จาก kinematics ของหุ่นยนต์ได้ว่า

    (9)

เมื่อ และ เป็นความเร็วของจุด S ตามแกน และ ตามลำดับ, คือ มุมที่หมุนไปของล้อที่ , และ คือ รัศมีของล้อใหญ่ และรัศมีของ roller เล็กตามลำดับ
จากสมการ (9) เราได้ความสัมพันธ์แบบ inverse kinematics ของหุ่นยนต์ดังนี้
(10)
เมื่อ

จากสมการ (10) เราหา Moore-Penrose pseudo inverse ของ ได้เป็นความสัมพันธ์แบบ forward kinematics ดังนี้

การหาสมการการเคลื่อนที่ ทำได้โดยใช้สมการของ Lagrange

และ rotational matrix

ได้สมการการเคลื่อนที่

    (11)

ซึ่งเป็นสมการอนุพันธ์จากแรงบิดที่ล้อ ไปยัง ดังในภาพที่ 103
ซึ่งเป็นความสัมพันธ์แบบ nonlinear ที่ซับซ้อน
เนื่องจากสมการการเคลื่อนที่ของหุ่นยนต์จากสมการ (11) มีความซับซ้อน
การควบคุมหุ่นยนต์ที่มีล้อแบบแมคคนัม ส่วนใหญ่จะใช้สมการ inverse kinematics จากสมการ (10) ที่เป็นความสัมพันธ์แบบเส้นตรง โดยการหาความเร็ว ที่ต้องการ จากนั้น
จึงคำนวณหาความเร็วในการหมุน ของล้อทั้งสี่ที่ต้องการ จากนั้นจึงใช้ตัวควบคุม (controller) เช่น PID คุมแต่ละล้อแยกกัน ให้มีความเร็วในการหมุนที่กำหนด


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

  1. ซอฟต์แวร์สำหรับระบบปฏิบัติการหุ่นยนต์
  2. อุปกรณ์ประมวลผล และควบคุม
  3. โครงสร้างหุ่นยนต์ และระบบขับเคลื่อน
  4. แหล่งพลังงานไฟฟ้า
    สำหรับวิธีการดำเนินการจัดทำหุ่นยนต์ เพื่อใช้ในการทดสอบสำหรับงานวิจัยจะแบ่งได้เป็น 3 กลุ่ม ดังนี้
  5. การออกแบบตัวหุ่นยนต์
  6. การติดตั้ง และเชื่อมต่อ อุปกรณ์ เซ็นเซอร์ และซอฟต์แวร์
  7. การเขียนโปรแกรมบนระบบปฏิบัติการหุ่นยนต์
    โดยรายละเอียดของอุปกรณ์ และวิธีการเพื่อใช้ในงานวิจัย เป็นดังต่อไปนี้
  8. อุปกรณ์
    1.1 ซอฟต์แวร์สำหรับระบบปฏิบัติการหุ่นยนต์
    สำหรับซอฟต์แวร์ที่ใช้ในงานวิจัยได้เลือกใช้ ระบบปฏิบัติการหุ่นยนต์ 2 ROS
    (Robot Operating System 2: ROS 2) ซึ่งเป็นระบบที่สร้างขึ้นเพื่อทำให้เกิดความยืดหยุ่น
    ในการเขียนซอฟต์แวร์ควบคุมหุ่นยนต์ ซึ่งในระบบปฏิบัติการหุ่นยนต์ 2 จะรวบรวมชุดเครื่องมือ และชุดคำสั่งต่าง ๆ ที่จำเป็นในการพัฒนาหุ่นยนต์เอาไว้ ซึ่งสิ่งต่าง ๆ เหล่านี้จะลดความยุ่งยาก
    ในการสร้างในการพัฒนาหุ่นยนต์ที่มีความซับซ้อน และทำให้มีประสิทธิภาพในการพัฒนาหุ่นยนต์หลากหลายรูปแบบ โดยระบบปฏิบัติการหุ่นยนต์ หุ่นยนต์ 2 สามารถนำไปพัฒนาร่วมตามภาพที่ 45

ภาพที่ 45 ROS open source
ที่มา: https:// www.ros.org/
_

ระบบปฏิบัติการหุ่นยนต์นั้น เริ่มต้นพัฒนาจากมหาวิทยาลัยสแตนฟอร์ดในช่วงกลางทศวรรษที่ 2000 เพื่อใช้ในการศึกษาเกี่ยวกับระบบปัญญาประดิษฐ์ ( AI) โดยตั้งหน่วยงานวิจัย Stanford AI Robot (STAIR) และการพัฒนาโปรแกรมสำหรับหุ่นยนต์ Personal Robots (PR) เพื่อสร้างต้นแบบของ
ระบบซอฟต์แวร์แบบไดนามิกที่ยืดหยุ่นสำหรับการพัฒนาหุ่นยนต์ ในปี ค. ศ. 2007 โดย Willow Garage ศูนย์วิจัยหุ่นยนต์ที่มีวิสัยทัศน์กว้างไกล ได้จัดหาทรัพยากรที่สำคัญในการขยายแนวคิดเหล่านี้
ให้ไปไกลกว่าเดิม และสร้างซอฟต์แวร์เพื่อการใช้งานที่ผ่านการทดสอบมาเป็นอย่างดี ทำให้ความพยายามดังกล่าวได้รับการสนับสนุนจากนักวิจัยนับไม่ถ้วนที่ทุ่มเทเวลา และความเชี่ยวชาญของพวกเขาให้กับทั้งแนวคิดหลักของ ROS และชุดซอฟต์แวร์พื้นฐาน ตลอดจนการพัฒนาซอฟต์แวร์ที่เป็นโอเพนซอร์สตั้งแต่ปี ค. ศ. 2013 ตามภาพที่ 46 และได้ดำเนินการเป็นชุมชนหรือ community community ที่เป็นแพลตฟอร์มที่ใช้กันอย่างแพร่หลายในชุมชนของผู้วิจัยหุ่นยนต์ และสามารถนำมาพัฒนาต่อยอดอย่างหลากหลาย เช่น AI, รถขนส่งอัตโนมัติ (AGV) เป็นต้น

ภาพที่ 46 ROS developed history
ที่มา: https:// www.ros.org/

ระบบปฏิบัติการหุ่นยนต์จะแบ่งแนวทางของระบบออกเป็น 3 ส่วน ตามภาพที่ 47 ดังนี้
1.1.1 ส่วน ROS Computation Graph Level
โดยคอนเซ็ปของระบบระบบปฏิบัติการหุ่นยนต์ ก็ คือ การแบ่งโมดูลการทำงานของหุ่นยนต์ออกเป็นส่วน ๆ แล้วให้แต่ละส่วนส่งข้อความคุยกันผ่านทาง Topic ต่าง ๆ ในรูปแบบของ Peer-to-Peer กับส่วนอื่น ๆ โดยจะมี ROS Master เป็นตัวบริหารจัดการทำงานของระบบทั้งหมด โดยจะองค์ประกอบในแต่ล่ะส่วนดังนี้
1.1.1.1 Node: เป็นกระบวนการที่ใช้ในการดำเนินการโปรแกรมต่าง
ซึ่ง ROS ได้รับการออกแบบให้เป็นระบบแบบแยกส่วนในระดับที่ละเอียด ระบบควบคุมหุ่นยนต์มักจะประกอบด้วยหลายโหนด ตัวอย่าง เช่น หนึ่งโหนดควบคุม laser rangefinder, หนึ่งโหนดควบคุมมอเตอร์ล้อ, หนึ่งโหนดทำการแปลงค่าต่าง ๆ , หนึ่งโหนดทำการวางแผนเส้นทาง,
หนึ่งโหนดให้มุมมองกราฟิกของระบบ และอื่น ๆ โหนด ROS ถูกเขียนด้วยการใช้ไลบรารีของ ROS เช่น roscpp หรือ rospy
1.1.1.2 Master: ROS Master จัดเตรียมการลงทะเบียนชื่อ และค้นหาองค์ประกอบต่าง ๆ ใน ROS หากไม่มี Master โหนดจะไม่สามารถค้นหาซึ่งกัน และกันเพื่อแลกเปลี่ยนข้อความ หรือเรียกใช้บริการได้
1.1.1.3 Parameter Server: พารามิเตอร์เซิร์ฟเวอร์จะอนุญาตให้จัดเก็บข้อมูล
ในตำแหน่งส่วนกลาง ซึ่งเป็นส่วนหนึ่งของ Master
1.1.1.4 Message: โหนดสื่อสารกันโดยส่งข้อความ โดยอาจจะคุยในรูปแบบ
ของข้อความ ค่ามาตรฐาน (จำนวนเต็ม, จุดลอย, บูลีน, อื่น ๆ ) ข้อมูลอาร์เรย์ทั่ว ๆ ไป รวมไปถึงข้อมูลอาร์เรย์ที่มีความซับซ้อน
1.1.1.5 Topics: ข้อความจะถูกส่งผ่านระบบการขนส่งที่มีการ publish / subscribe โหนดที่ส่งข้อความจะเรียกว่า publishing ชื่อที่ระบุใน Topic จะใช้เพื่อระบุเนื้อหาของข้อความ โหนดที่สนใจในข้อมูลบางประเภทจะทำการ subscribe หัวข้อที่ต้องการ อาจมีการ publish / subscribe หลายรายพร้อมกันสำหรับหัวข้อเดียว และโหนดเดียวอาจ publish / subscribe ได้หลาย Topics โดยทั่วไป publish / subscribe จะไม่ได้ตระหนักถึงการมีอยู่ของกัน และกัน กล่าวอีกนัย คือ การแยกกันผลิตข้อมูลตามหน้าที่ของตนเอง
1.1.1.6 Services: รูปแบบการ publish / subscribe เป็นแนวคิดในการสื่อสาร
ที่ยืดหยุ่นมาก แต่การขนส่งทางเดียวอย่างต่อเนื่องนั้นไม่เหมาะสม บางครั้งจึงมีการใช้บริการ Request / reply กำหนดการส่งข้อความ โดยสร้างข้อความหนึ่งสำหรับการร้องขอ และ
อีกหนึ่งสำหรับการตอบกลับ เพื่อส่งข้อความที่ร้องขอไปยังโหนดที่ร้องขอ
1.1.1.7 Bags: เป็นรูปแบบสำหรับการบันทึก และเล่นข้อมูล ข้อความใน ROS Bags เป็นกลไกสำคัญในการจัดเก็บข้อมูล เช่น ข้อมูลเซ็นเซอร์ที่อาจรวบรวมได้ยาก แต่จำเป็นสำหรับการพัฒนา และทดสอบอัลกอริทึม
1.1.2 ส่วน ROS Filesystem Level
ระบบจัดเก็บไฟล์เป็นคอนเซ็ปหลักอีกอย่างหนึ่งของระบบปฏิบัติการหุ่นยนต์
ซึ่งจะเป็นแหล่งการจัดเก็บ และเรียกใช้งานของแต่ละโหนดแต่ละโมดูล โดยจะมีส่วนที่สำคัญดังต่อไปนี้
1.1.2.1 Packages: เป็นโปรแกรมหลักที่ใช้ในการบริหาร บริการ จัดการซอฟต์แวร์ต่าง ๆ ในระบบปฏิบัติการหุ่นยนต์ ซึ่งอาจจะประกอบไปด้วย ROS runtime processes (nodes), a ROS-dependent library, datasets, configuration files
1.1.2.2 Metapackages: เป็น Packages แบบพิเศษที่จะแสดงถึงความเกี่ยวข้องเชื่อมโยงกันกับ Packages อื่น ๆ ที่เกี่ยวข้อง
1.1.2.3 Package Manifests: เป็นตัวที่จะบอกรายละเอียดใน Package และสามารถอ้างอิง Code
1.1.2.4 Repositories: แหล่งรวบรวม Packages และ Tools ต่าง ๆ เอาไว้ให้ผู้ที่สนใจได้ดาวน์โหลดมาทดลองใช้งาน
1.1.2.5 Message (msg) types: คำอธิบายข้อความที่บรรจุอยู่ใน my_package/msg/
MyMessageType.msg, เป็นการอธิบายรูปแบบโครงสร้างของข้อความที่ใช้สื่อสารกัน
1.1.2.6 Service (srv) types: คำอธิบายการบริการที่บรรจุอยู่ใน my_package/srv/
MyServiceType.srv, เป็นการอธิบายรูปแบบโครงสร้างในการร้องขอ และการตอบรับข้อความใน ROS
ภาพองค์ประกอบโครงสร้าง(Layout) ของ Package ใน ROS ใน 1 Package จะมีโหนดการทำงานกี่โหนดก็ได้ขึ้นอยู่กับโปรแกรมที่เราเขียนลงไปโดยสำหรับ ROS จะรองรับอยู่ 2 ภาษา คือ C++ และ Python
ภาพองค์ประกอบโครงสร้าง(Layout) ของ Workspace ใน ROS ใน 1 Workspace จะมี package ก็ได้ขึ้นอยู่กับโปรแกรมที่เราเขียนลงไปโดยสำหรับ ROS แต่จะรองรับอยู่ 2 ภาษา คือ C++ และ Python
1.1.3 ส่วน ROS Community Level
ในส่วนคอนเซ็ปของระบบชุมชนผู้ใช้ระบบปฏิบัติการหุ่นยนต์ จะเป็นแหล่งที่ใช้ในการศึกษา แลกเปลี่ยนความรู้ ดาวน์โหลด packages ต่าง ๆ มาใช้งาน อีกทั้งยังใช้เป็น
แหล่งเผยแพร่ packages ที่เราออกแบบ
1.1.3.1 Distributions: คือ เวอร์ชันต่าง ๆ ของระบบปฏิบัติการหุ่นยนต์ ซึ่งโดยปกติแล้วเวอร์ชันของระบบปฏิบัติการหุ่นยนต์ จะอ้างอิงจากเวอร์ชันของ Ubuntu Linux สรุปก็ คือ ผู้ใช้งานจะต้องเลือก Distributions ของ ROS ให้ตรงกับเวอร์ชันของ Ubuntu Linux ตัวอย่าง เช่น
ถ้าหากเราใช้ Ubuntu 18.04 เราก็ต้องติดตั้ง ROS-Melodic
1.1.3.2 Repositories: ระบบปฏิบัติการหุ่นยนต์ อาศัยเครือข่ายชุมชนผู้ใช้ระบบปฏิบัติการหุ่นยนต์ เป็นเสมือนแหล่งเก็บข้อมูล หรือซอร์สโค้ดต่าง ๆ เอาไว้ ซึ่งจะเก็บไว้
ตามที่ต่าง ๆ ไม่ว่าจะเป็นมหาวิทยาลัย องค์กรเอกชน ที่ซึ่งพวกเขาพัฒนา และเผยแพร่ซอฟต์แวร์หุ่นยนต์ของพวกเขา
1.1.3.3 The ROS Wiki: แหล่งรวบรวมของมูลหลักพวก การประชาสัมพันธ์
ต่าง ๆ เอกสารต่าง ๆ ที่เกี่ยวข้องกับ ROS ทุกคนสามารถเข้าร่วม และเผยแพร่เอกสารที่ตนเอง
สร้างขึ้นได้ไม่ว่าจะเป็นการอัพเดทต่าง ๆ การเขียนบทความเกี่ยวกับการสอนการใช้ระบบปฏิบัติการหุ่นยนต์ เป็นต้น

ภาพที่ 47 ROS Philosophy
ที่มา: https:// www.ros.org/
1.2 ระบบประมวลผล และอุปกรณ์ควบคุม
1.2.1 อุปกรณ์ตรวจจับ และกำหนดระยะแสงไลดาร์ (Light Detetion and Ranging: Lidar)
เป็นเทคโนโลยีการสำรวจ พื้นที่ แผนที่ภูมิประเทศแบบใหม่ ซึ่งมีเทคโนโลยี
ที่เหมือนกันกับการทำงานของเรดาร์ (Radar) โดยเป็นการวัดระยะจาก ระยะเวลาในการเดินทาง
ของลำแสงเลเซอร์ ซึ่งเป็นการวัดระยะจากเซนเซอร์ไปยังวัตถุเป้าหมาย และเดินทางกลับมายัง เซนเซอร์ตามภาพที่ 48 สำหรับการนำระบบไลดาร์ ในการกำหนดแผนที่ (Mapping) นำไปประยุกต์ใช้การสำรวจพื้นที่ในสายการผลิต โดยข้อมูลไลดาร์ คือ ข้อมูลที่ได้จากการวัดระยะจาก เลเซอร์ทำให้ระยะที่รังวัดได้มีความ ละเอียดสูง ก่อให้เกิดจุดข้อมูลแผนที่ของภูมิประเทศ เช่น ภายในพื้นที่โรงงาน ซึ่งต้องนำข้อมูลที่ได้มาประมวลผล เพื่อสร้างแผนที่ของภูมิประเทศในลักษณะ
TIN (Triangulated irregular Network) หรือ DEM (Digital Elevation Model) ข้อมูลดิบที่ได้ไลดาร์ จะเป็นข้อมูลที่เป็นลักษณะ DSM (Digital Surface Model) โดยจะรวมวัตถุที่อยู่ในพื้นที่ เช่น เครื่องจักร กล่อง วัตุดิบในสายการผลิต เป็นต้น ข้อมูลที่ได้จากไลดาร์ จึงมีอยู่สองลักษณะ คือ แบบที่เป็น Bare Ground คือ ข้อมูลได้ขจัดสิ่งที่อยู่ในพื้นที่ออกไปแล้ว และข้อมูลแบบ Reflective คือ ข้อมูลระบุถึงวัตถุที่อยู่ในพื้นที่ โดยข้อมูลไลดาร์ ที่เป็น Reflective จะเป็นข้อมูลที่นำมาใช้
ในการดึงข้อมูลที่ระบุตำแหน่งของวัตถุในพื้นที่ เพื่อให้ เป็นข้อมูลสำหรับแสดงผลในลักษณะ
สามมิติ เพื่อจะนำไปจัดทำเส้นทางเดินของรถขนส่งอัตโนมัติ โดยให้ทราบถึงตำแหน่งของวัตถุ เส้นทางเดินที่เป็นเป้าหมาย

ภาพที่ 48 การวัดระยะจากไลดาร์ จากเซนเซอร์ไปยังวัตถุ
ที่มา: https://www.slamtec.com

สำหรับงานวิจัยได้เลือกใช้ไลดาร์โมเดล RPLIDAR S1 ตามภาพที่ 49 โดยจะนำมาเป็นอุปกรณ์ที่ระบุตำแหน่งของรถขนส่งอัตโนมัติ

ภาพที่ 49 ไลดาร์โมเดล RPLIDAR S1
ที่มา: https://www.slamtec.com
1.2.2 ส่วนการประมวลผล และควบคุม (Controller NVIDIA Jetson Nano)
สำหรับในงานวิจัยได้ใช้ NVIDIA Jetson Nano มาเป็นส่วนของการควบคุม และการประมวลผล ร่วมกับ ระบบปฏิบัติการหุ่นยนต์ 2 (ROS 2) ซึ่งเป็นส่วนของซอฟต์แวร์ (Middle ware) โดย NVIDIA Jetson Nano ซึ่งเป็นคอมพิวเตอร์ขนาดเล็กที่ออกแบบโดย NVIDIA สำหรับการประมวลผลที่เกี่ยวข้องกับปัญญาประดิษฐ์ (AI) และการเรียนรู้ของเครื่อง (machine learning) มันเป็นส่วนหนึ่งของซีรีส์ Jetson ของ NVIDIA ซึ่งเน้นการพัฒนา และสร้างแอปพลิเคชัน AI
บนอุปกรณ์ขนาดเล็ก และเครื่องคอมพิวเตอร์ที่มีพลังประมวลผลสูง
คุณสมบัติหลักของ Jetson Nano:

  1. หน่วยประมวลผล: ใช้ชิปประมวลผล NVIDIA ที่ออกแบบมาเพื่อการประมวลผล AI โดยเฉพาะ ซึ่งมักจะเป็นส่วนผสมของ CPU, GPU, และหน่วยประมวลผล AI ภายใน
  2. การเรียนรู้ของเครื่อง: รองรับการใช้งานโมเดล AI ที่ซับซ้อน เช่น การรู้
    จำภาพ (image recognition), การรู้จำเสียง (speech recognition), และการประมวลผลข้อมูล
  3. ขนาดเล็ก: ออกแบบให้มีขนาดกะทัดรัด ทำให้สะดวกในการใช้งาน
    ในโครงการที่ต้องการอุปกรณ์ที่มีขนาดเล็กแต่ประสิทธิภาพสูง
  4. การเชื่อมต่อ: รองรับการเชื่อมต่อกับเซ็นเซอร์ต่าง ๆ และอุปกรณ์เสริม
    ผ่านพอร์ต I/O และพอร์ตเชื่อมต่ออื่น ๆ
  5. การใช้งาน: เหมาะสำหรับการสร้างโปรเจกต์ DIY, การพัฒนาอุปกรณ์อัจฉริยะ, การทดลองด้านการเรียนรู้ของเครื่อง และการสร้างแอปพลิเคชัน AI บนอุปกรณ์ขนาดเล็ก
    Jetson Nano เป็นเครื่องมือที่มีประสิทธิภาพสำหรับนักพัฒนา และ
    นักวิจัยที่ต้องการสร้าง และทดสอบแอปพลิเคชันที่เกี่ยวข้องกับ AI ในรูปแบบที่มีขนาดกะทัดรัด
    และคุ้มค่า
    ในงานวิจัยได้นำ Jetson Nano มาเป็นอุปกรณ์ในการประมวลผล และควบคุม โดยเมื่อ Jetson Nano ได้รับข้อมูลจากไลดาร์ เพื่อให้ทราบถึงตำแหน่ง และลักษณะของพื้นที่สำหรับทางเดินของตัวหุ่นยนต์ โดยจะมีหน้าที่ตรวจสอบสิ่งกีดขวาง และส่งข้อมูลที่ได้ กลับไปประมวลผลที่ ส่วนของการประมวลผล และควบคุม Jetson Nano ได้ข้อมูลจากไลดาร์จะส่งสัญญาณเอาท์พุทเพื่อควบคุมมอเตอร์ไดร์เวอร์ ของล้อออมนิแมคคานัมทั้ง 4 ล้อ เพื่อมีผลตอบสนองในการหลบ
    สิ่งกีดขวางบนเส้นทาง โดยการนำ Jetson Nano มาเชื่อมต่อกับอุปกรณ์อินพุท และเอาท์พุท
    ตามภาพที่ 50 และ 51

ภาพที่ 50 NVIDIA Jetson Nano
ที่มา: https://developer.nvidia.com/blog/jetson-nano

ภาพที่ 51 NVIDIA Jetson Nano board specification
ที่มา: https://developer.nvidia.com/blog/jetson-nano
1.2.3 เซนเซอร์ทรานสดิวเซอร์วัดระยะทาง (Ultrasonic SR04 Module HC-SR04)
สำหรับรถขนส่งอัตโนมัติอุปกรณ์ที่มีหน้าที่ป้องกันการชน เพื่อไม่ให้เกิดความเสียหายต่อตัวรถ ชิ้นส่วนที่บรรทุก และอันตรายต่อบุคล หรือทรัพย์สิน เนื่องด้วยในเส้นการวิ่ง
ของรถขนส่งอัตโนมัติในสายการผลิตจะต้องใช้ร่วมกันกับเส้นทางเดินของพนักงาน และ
เส้นทางการขนย้ายด้วยวิธีอื่น ๆ
สำหรับงานวิจัยได้เลือก Distance Measuring Transducer Sensorท มาเป็น Sensor สำหรับป้องกันการชน โดยเลือกชนิดของ Sensor เป็น Ultrasonic Module HC-SR04 ตามภาพที่ 52

ภาพที่ 52 Distance Measuring Transducer Sensor (Ultrasonic SR04 Module HC-SR04)
ที่มา: http://www.elecfreaks.com

1.2.4 เซนเซอร์ตรวจสอบความเร่ง (Initial Measurement Unit: IMU)
เป็นระบบเซนเซอร์ที่ทำการตรวจสอบความเร่ง การเอียงในทิศทางต่าง ๆ
โดยใช้สำหรับวัดการเคลื่อนไหว และการหมุนของวัตถุในสามมิติ ตามภาพที่ 53 โดยรวมเซ็นเซอร์หลายประเภท เช่น:

  • Accelerometer: วัดความเร่งในทิศทางต่าง ๆ (X, Y, Z)
  • Gyroscope: วัดการหมุนรอบแกนต่าง ๆ
  • Magnetometer: วัดทิศทางของสนามแม่เหล็ก
    การทำงานของ IMU เป็นการรวมข้อมูลจากเซ็นเซอร์หลายประเภทเพื่อตรวจสอบการเคลื่อนไหว และการหมุนของวัตถุ โดยจะแบ่งหน้าที่การทำงานของเซ็นเซอร์ต่าง ๆ ที่นำไปใช้ในด้านต่าง ๆ เช่น
    Accelerometer:
  • หน้าที่: วัดความเร่งในทิศทางต่าง ๆ (X, Y, Z) ซึ่งหมายถึง การเปลี่ยนแปลงของความเร็วที่เกิดขึ้น
  • วิธีการ: ใช้หลักการของการวัดแรงที่กระทำต่อลูกตุ้ม หรือคาปาซิเตอร์
    เพื่อคำนวณการเปลี่ยนแปลงของความเร่ง
    Gyroscope:
  • หน้าที่: วัดการหมุนรอบแกนต่าง ๆ (X, Y, Z) ซึ่งหมายถึง อัตราการหมุนของวัตถุ
  • วิธีการ: ใช้หลักการของการวัดการเปลี่ยนแปลงของตำแหน่งที่เกิดจาก
    การหมุน หรือการหมุนรอบแกน โดยมักจะใช้เซ็นเซอร์ที่เรียกว่า “Fiber Optic Gyroscopes” หรือ “Ring Laser Gyroscopes” Magnetometer:
  • หน้าที่: วัดทิศทางของสนามแม่เหล็กเพื่อช่วยในการคำนวณทิศทางที่อิงกับสนามแม่เหล็กโลก
  • วิธีการ: วัดความแรง และทิศทางของสนามแม่เหล็กเพื่อให้ข้อมูลเกี่ยวกับทิศทางที่สัมพันธ์กับสนามแม่เหล็กโลก
    การรวมข้อมูลของ IMU จะเป็นการรวมข้อมูลจากเซ็นเซอร์เหล่านี้เพื่อให้ได้ข้อมูลเกี่ยวกับการเคลื่อนไหว และการหมุนในรูปแบบที่สมบูรณ์ ข้อมูลที่ได้จาก accelerometer และ gyroscope จะถูกใช้ในการคำนวณทิศทาง และตำแหน่งโดยการใช้วิธีทางคณิตศาสตร์ เช่น
    การรวมข้อมูล (sensor fusion) ซึ่งมักจะใช้อัลกอริธึม เช่น Kalman filter หรือ complementary filter เพื่อปรับปรุงความแม่นยำ และลดความผิดพลาด
    IMU ได้มีการนำประยุกต์ใช้งานในหลาย ๆ ด้านโดยได้ถูกนำมาใช้ในการพัฒนาเพื่อใช้ร่วมกับแอปพลิเคชัน เพื่อให้สามารถคำนวณทิศทาง และตำแหน่งของวัตถุได้อย่างแม่นยำ เช่น
  • ระบบนำทางในโดรน หรือรถยนต์อัตโนมัติ
  • การติดตามการเคลื่อนไหวในอุปกรณ์พกพา เช่น สมาร์ทโฟน หรือ
    อุปกรณ์สวมใส่
  • การควบคุมการเคลื่อนไหวในเกม หรือความจริงเสริม (AR/VR)

ภาพที่ 53 เซนเซอร์ตรวจสอบความเร่ง (Initial Measurement Unit: IMU)

ที่มา: https://www.universalcorp.co.th/all-blogs/item/14-85479

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

ภาพที่ 54 MPU6050 Accelerometer and Gyroscope Module
ที่มา: https://components101.com/sensors/mpu6050-module
คุณสมบัติหลักของ MPU-6050:

  1. Accelerometer:
  • วัดความเร่งในสามแกน (X, Y, Z) ด้วยความละเอียดสูง
  • สามารถวัดความเร่งได้ถึง ±2g, ±4g, ±8g, หรือ ±16g ขึ้นอยู่กับการตั้งค่า
  1. Gyroscope:
  • วัดการหมุนรอบสามแกน (X, Y, Z)
  • สามารถวัดการหมุนได้ถึง ±250, ±500, ±1000, หรือ ±2000 degrees per second (dps) ขึ้นอยู่กับการตั้งค่า
  1. การสื่อสาร:
  • ใช้ I2C (Inter-Integrated Circuit) หรือ SPI (Serial Peripheral Interface) สำหรับการส่งข้อมูล
  • มีความสะดวกในการเชื่อมต่อกับไมโครคอนโทรลเลอร์ หรือ
    ระบบอื่น ๆ
  1. การรวมข้อมูล:
  • MPU-6050 มีฟังก์ชันการรวมข้อมูล (sensor fusion) ภายใน ซึ่งช่วยในการคำนวณทิศทาง และการเคลื่อนไหวจากข้อมูลที่ได้รับจาก accelerometer และ gyroscope
  1. ฟังก์ชันพิเศษ:
  • มีฟังก์ชันการกรองข้อมูล และการปรับค่าเริ่มต้นเพื่อช่วยในการปรับปรุงความแม่นยำ และลดสัญญาณรบกวน
  • มีฟังก์ชันในการจัดการการใช้พลังงานเพื่อลดการใช้พลังงานในกรณี
    ที่ไม่จำเป็นต้องใช้งานเต็มที่
    สำหรับโมดูล MPU6050 ประกอบด้วยมาตรความเร่ง 3 แกน และไจโรสโคป 3 แกนภายในโมดูล สิ่งนี้ช่วยให้เราวัดความเร่ง ความเร็ว การวางแนว การกระจัด และพารามิเตอร์อื่น ๆ ที่เกี่ยวข้องกับการเคลื่อนที่ของระบบ หรือวัตถุ โดยสามารถนำไปต่อเชื่อมกับอุปกรณ์อื่น ๆ และแหล่งจ่ายไฟ ตามภาพที่ 55 (a) และ (b) ขาการเชื่อมต่อตามตารางที่ 3

ภาพที่ 55 (a) MPU6050 Module (b) MPU6050 Pinout
ที่มา: https://components101.com/sensors/mpu6050-module

ตารางที่ 3 MPU6050 Pinout Configuration

ที่มา: https://components101.com/sensors/mpu6050-module

การใช้งานทั่วไป: MPU-6050 ถูกใช้ในแอปพลิเคชันต่าง ๆ เช่น:

  • การควบคุมการเคลื่อนไหวในโดรน และยานพาหนะอัตโนมัติ
  • การติดตามการเคลื่อนไหวในอุปกรณ์พกพา และเครื่องมือที่สวมใส่
  • การเพิ่มประสิทธิภาพในการติดตามท่าทางในระบบความจริงเสริม (AR) หรือความจริงเสมือน (VR)
    MPU-6500 เป็นหนึ่งในเซ็นเซอร์ IMU ที่มีความแม่นยำ และความสามารถในการใช้งานที่หลากหลาย ทำให้มันเป็นตัวเลือกที่นิยมในหลาย ๆ การใช้งานที่ต้องการการวัดการเคลื่อนไหวอย่างแม่นยำ
    1.3 โครงสร้าง และระบบขับเคลื่อน
    1.3.1 ล้อ และมอเตอร์ขับเคลื่อน
    สำหรับรถขนส่งส่งอัตโนมัติที่ใช้ทั่วไป มีการใช้ล้อหลากหลายรูปแบบ
    ทั้งประเภทของล้อ และจำนวนของล้อ สำหรับงานวิจัยนี้ได้เลือกประเภทของล้อแบบออมนิแมคคานัม (Omni Mecanum Wheel) มีเส้นผ่านศูนย์กลางล้อ 80 มิลลิเมตร ขับเคลิ่อน 4 ล้อ สามารถรับน้ำหนักโดยรวม 20 กิโลกรัม (รวมน้ำหนักตัวรถ อุปกรณ์ และน้ำหนักบรรทุก) โดยใช้ระบบขับเคลื่อน
    ผ่านมอเตอร์กระแสตรง 12 โวลท์ ความเร็วรอบ 330 RPM with Encoder แยกอิสระแต่ล่ะล้อ
    ตามภาพที่ 56

ภาพที่ 56 Omni Mecanum Wheel with Motor & Encoder
ที่มา: Hansa Robot Store
โดยการควบคุมล้อจะไม่สามารส่งคำสั่งควบคุมตรงไปที่มอเตอร์ได้ โดยคอนโทรเลอร์จะต้องส่งคำสั่งควบคุมผ่านมอเตอร์ไดร์เวอร์ โดยมอเตอร์ไดร์เวอร์เมื่อได้รับคำสั่งจาก
คอนโทรเลอร์จะส่งผ่านไปควบคุมมอเตอร์ ตามภาพที่ 57

ภาพที่ 57 Driver Motor สำหรับควบคุมการหมุน Omni Mecanum Wheel

ภาพที่ 58 ทิศทางการหมุนของ Omni Mecanum Wheel ต่อทิศทางการเคลื่อนที่ของรถ
การควบคุมทิศทางการเคลื่อนที่ของรถขนส่งอัตโนมัติ จะได้รับคำสั่งจาก Controller ซึ่งเป็นการประมวลจากข้อมูลที่ได้จากInput และสั่งงานผ่าน Driver สำหรับความเร็ว และทิศทางการหมุน ไปที่ชุด Motor และล้อ Omni Mecanum Wheel โดยEncoder จะส่งค่า Feedback. ความเร็ว และทิศทางการหมุนกลับไปที่ Controller เพื่อให้ได้ความเร็ว และทิศทางการ
เคลื่อนที่ของของรถขนส่งอัตโนมัติตามภาพที่ 58
1.3.2 โครงสร้างรถขนส่ง
สำหรับโครงสร้างรถขนส่งอัตโนมัติ (หุ่นยนต์ที่ใช้ในงานวิจัย) ที่ใช้ในการทดลองจะมีขนาด 280 x 360 x 260 มิลลิเมตร และมีส่วนการบรรทุก น้ำหนักไม่เกิน 2 กิโลกรัม
โดยโครงสร้างของรถจะเป็นอลูมิเนียมแผ่นหน้า 10 มิลลิเมตร เพื่อให้มีน้ำหนักเบา และมีความแข็งแรง โดยมีลักษณะซ้อนกัน 2 ชั้น โดยอลูมิเนียมแผ่นชั้นล่างจะขึ้นรูปเพื่อใช้เป็นฐานที่ยึดกับ
ล้อที่ใช้ขับเคลื่อนทั้ง 4 ล้อ รวมถึงเป็นฐานวางอุปกรณ์ขับเคลื่อน และแบตเตอรี่ ส่วนอลูมิเนียมแผ่นชั้นบนจะขึ้นรูปเพื่อติดตั้งอุปกรณ์ควบคุม และเซ็นเซอร์ ตามภาพที่ 59

ภาพที่ 59 โดรงสร้าง และการติดตั้งอุปกรณ์สำหรับรถขนส่งอัตโนมัติ

1.4 แหล่งพลังงานไฟฟ้า
สำหรับความต้องการพลังงานไฟฟ้าของรถขนส่งอัตโนมัติ จะใช้แรงดันไฟฟ้า 7 – 35 โวลท์ และกระแสไฟฟ้าสูงสุด 30 แอมป์ โดยในงานวิจัยออกแบบแหล่งพลังงานเป็นแบตเตอรี่ LiFePO4 12 โวลท์ 6.5 Ah ตามภาพที่ 60 จำนวน 2 เซล มาต่อขนานเพื่อให้มีแรงดัน 12 โวลท์
13 Ah โดยระยะเวลาในการชารจ์แต่ล่ะครั้งประมาณ 4 ชั่วโมง โดยรถขนส่งอัตโนมัติสามารถวิ่งได้ต่อเนื่อง 2 ชั่วโมง
โดยปัจจัยที่เลือกใช้แบตเตอรี่ LiFePO4 12 โวลท์ 6.5 Ah เนื่องด้วยเป็นแบตเตอรี่ที่ราคาไม่สูง และหาได้ทั่วไป รวมถึงสามารถถอดเปลี่ยนได้ง่าย ในกรณีที่ต้องการให้รถขนส่งวิ่งต่อเนื่องสามารถถอดเปลี่ยนแบตเตอรี่เพื่อนำมาชาร์จได้

ภาพที่ 60 แหล่งพลังงาน Battery LiFePO4 12 โวลท์ 6.5Ah

  1. วิธีการ
    จากการศึกษารถขนส่งอัตโนมัติ มาขนย้ายวัสดุในสายการผลิตที่ใช้ในสายการผลิต
    ในปัจจุบันซึ่งเป็นแบบสองล้อโดยการนำทางด้วยแถบแม่เหล็ก โดยตัวรถมีขนาดความกว้าง
    400 มม. ยาว 800 มม. และสูง 260 มม. มีล้อรองรับอิสระ 2 ล้อ ล้อขับเคลื่อน และบังคับทิศทาง 2 ล้อ โดยควบคุมโดย PLC ซึ่งมีข้อจำกัดด้านการเคลื่อนที่ไม่สามารถเข้าถึงพื้นที่แคบได้ และตัวรถสามารถหมุนเคลื่นที่ไปข้างหน้าได้ด้วยรัศมีวงเลี้ยว 1,000 ถึง 1,060 มม. เมื่อหมุนได้ 180 องศา ดังแสดงตามภาพที่ 61 จากข้อจำกัดของรถที่สามารถเคลื่อนที่ไปข้างหน้าได้เพียงอย่างเดียว โดยเมื่อพบ
    สิ่งกีดขวางรถขนส่งอัตโนมัติจะหยุดจนกว่าสิ่งกีดขวางจะเคลื่อนย้ายไป หรือต้องกดสวิทช์
    เพื่อทำงานอีกครั้ง

ภาพที่ 61 รถขนส่งในสายการผลิตปัจจุบัน แบบนำทางด้วยแถบแม่เหล็ก

ซึ่งจากข้อจำกัดของพื้นที่ที่จำกัดทำให้ไม่สามารถหมุนกลับของตัวรถได้ตามภาพที่ 62

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

ภาพที่ 63 สภาพแวดล้อม และเส้นทางการการวิ่งรถขนส่งในสายการผลิต

2.1 การออกแบบโครงสร้างตัวหุ่นยนต์
2.1.1 การออกแบบโครงสร้างตัวหุ่นยนต์ หรือรถขนส่งอัตโนมัติสำหรับงานวิจัย
สำหรับแนวทางในการศึกษางานวิจัยจะออกแบบรถขนส่งอัตโนมัติ
ในการทดลองขนาด 280 x 360 x 260 mm โดยมีน้ำหนักรวม 20 กิโลกรัม (รวมโครงสร้าง อุปกรณ์ และน้ำหนักเพื่อบรรทุก) โดยได้ประมาณน้ำหนักส่วนการบรรทุก น้ำหนักไม่เกิน 2 กิโลกรัม
โดยจะประกอบไปด้วยส่วนประกอบดังนี้

  • Wheel แบบ omni wheel 4 ล้อ ขนาด 80 mm. น้ำหนักโดยรวม 20 kg.
    (รวมโครงสร้าง อุปกรณ์ และน้ำหนักเพื่อบรรทุก)
  • Controller NVIDIA Jetson Nano
  • ระบบปฏิบัติการหุ่นยนต์ 2 2 (Robot Operating System2: ROS2)
  • อุปกรณ์ระบบระบุตำแหน่งไลดาร์ (Light detection and ranging: LiDAR) รุ่น RPLIDAR S1
  • เซนเซอร์วัดระยะทางโดยใช้คลื่นเสียงแบบอัลตราโซนิค (Distance Measuring Transducer Sensor Ultrasonic) โดยใช้โมดูล HC-SR04
  • เซ็นเซอร์ตรวจวัดการเคลื่อนไหวภายใน (Inertial Measurement Unit: IMU) โมดูล IMU 6050
  • แหล่งพลังงาน แบตเตอรี่ลิเธียม (Battery lithium) 12V 13Ah
    โดยการออกแบบตัวหุ่นยนต์ หรือรถขนส่งอัตโนมัติที่ใช้ในในการทดลอง
    จะมีขนาด 280 x 360 x 260 มิลลิเมตร ประมาณการน้ำหนักรถขนส่งโดยรวม 20 กิโลกรัม
    (รวมโครงสร้าง อุปกรณ์ และน้ำหนักเพื่อบรรทุก 2 กิโลกรัม) โดยโครงสร้างของหุ่นยนต์จะเป็นอลูมิเนียมแผ่นหน้า 10 มิลลิเมตร เพื่อให้มีน้ำหนักเบา และมีความแข๊งแรง โดยมีลักษณะซ้อนกัน
    2 ชั้น และได้กำหนดตำแหน่งติดตั้งล้อ และอุปกรณ์ เช่น คอนโทรเลอร์ อุปกรณ์ระบบระบุตำแหน่งไลดาร์ เซนเซอร์วัดระยะทางโดยใช้คลื่นเสียงแบบอัลตราโซนิค เซ็นเซอร์ตรวจวัด
    การเคลื่อนไหวภายใน และ แหล่งพลังงาน แบตเตอรี่ ตามภาพที่ 63 และ 64

ภาพที่ 64 แบบหุ่นยนต์รถขนส่งในงานวิจัย

ภาพที่ 65 หุ่นยนต์รถขนส่งที่ใช้ในงานวิจัย

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

ภาพที่ 66 ทิศทางการเคลื่อนที่หุ่นยนต์รถขนส่ง (Directions of Mecanum wheels)
ในการออกแบบสำหรับล้อแมคคานัม แบบ ออมนิ (Omni) จะมีลูกกลิ้งเคลื่อนที่
อย่างอิสระติดอยู่ที่ดุมโดยมีเส้นรอบวงของดุม 45° องศา โดยโปรไฟล์ด้านข้างของล้อเป็น
แบบวงกลม การเคลื่อนที่รอบทิศทางสามารถปรับเปลี่ยนจากการหมุนของล้อทั้ง 4 ล้อที่มุมของ
ฐานสี่ด้าน เนื่องจากพื้นผิวสัมผัสจึงสามารถรองรับการรับน้ำหนักได้สูง
สำหรับการควบคุมทิศทางการเคลื่อนที่ตามจลนศาสตร์ของหุ่นยนต์แสดง
ในภาพที่ 67 พารามิเตอร์การกำหนดค่าถูกกำหนดไว้ตามสมการดังต่อไปนี้:

ภาพที่ 67 Mecanum wheels configuration and posture definition

  • – robot’s position and its orientation
  • – inertial frame; the coordinates of the reference point in the inertial basis
  • – robot’s base frame; Cartesian coordinate system associated with the movement of the body center;
  • – half of the distance between front wheels and half of the distance between front wheel and the rear wheels.
  • -distance between wheels and the base (center of the robot );
  • -the radius of the wheel th (distance of the wheel’s center to the roller center)
  • – the radius of the rollers on the wheels.
  • [rad/s]-wheels angular velocity;
  • – the velocity of the passive roller in the wheel th;
  • [m/s]-Robot linear velocity;
  • [rad/s]-Robot angular velocity;
    Forward Kinematic:

Backward Kinematic:

Longitudinal Velocity:

Transversal Velocity:

Angular Velocity:

The velocity and direction in the stationery coordinate axis (x, y, z) can be achieved by the following equations.

จากจลนศาสตร์ของหุ่นยนต์สำหรับล้อแมคคานัมจะมีข้อจำกัดที่จะต้องขับเคลื่อนทั้ง 4 ล้อในช่วงเวลาเดียวกัน ดังนั้นจึงต้องมีการออกแบบระบบกันสะเทือนแบบสปริงสำหรับ
ล้อแมคคานัมทั้ง 4 ล้อ เพื่อลดปัญหาในการควบคุมของล้อแมมคานัม เมื่อตัวรถขนส่งต้องเคลื่อนที่บนพื้นผิวที่มีค่าสัมประสิทธิ์แรงเสียดทานต่ำ หรือสูงมาก เช่น พื้นมีลักษณะลื่นค่าสัมประสิทธิ์แรงเสียดทานต่ำ รอยต่อพื้นหยาบ หรือคอนกรีต ซึ่งทำให้เกิดความคลาดเคลื่อนในการเคลื่อนที่ได้ เช่น การลื่นไถล หรือการลื่นไถลอาจพบได้เนื่องจากการยึดเกาะของล้อแมคคานัมน้อยลง แรงขับเคลื่อนที่มีประสิทธิภาพอาจสูญเสียไปโดยเฉพาะเมื่อมีล้อหนึ่งล้อใดไม่สัมผัสพื้น ระบบ
กันสะเทือนพร้อมสปริงได้รับการออกแบบเพื่อกระจายน้ำหนักของรถขนส่งในแต่ละล้อ และ
ให้แรงขับเคลื่อนที่มีประสิทธิภาพบนล้อทั้งสี่ ในกรณีที่เคลื่อนของรถขนส่งผ่านรอยต่อพื้นคอนกรีต ล้อแต่ละล้อของรถขนส่งสามารถสัมผัสพื้นผิวได้ด้วยการเสียดสี และทำให้เคลื่อนที่ได้
กฎของฮุคเป็นกฎฟิสิกส์ที่ระบุถึงแรงที่ต้องใช้ในการขยายยืด หรือลบหดสปริง
ตามสัดส่วนของระยะทาง โดยที่ค่าคงที่ของสปริง หรือค่าความเหนียวของสปริง คือ โดยทั่วไปความเบี่ยงเบนจะน้อยเมื่อเทียบกับความยาวของสปริง ตั้งชื่อตามนักฟิสิกส์ชาวอังกฤษชื่อ
Robert Hooke ในศตวรรษที่ 17 กฎของ Hooke สามารถใช้ได้กับทุกสถานการณ์ที่รูปร่างของ
วัตถุยืดหยุ่นจะเกิดการเปลี่ยนแปลง โดยใช้กฎของฮุคคำนวณค่าคงที่ของสปริง หรือความเหนียวแข็งของสปริงในหุ่นยนต์ โดยเมื่อมีการติดตั้งระบบกันสะเทือนแบบสปริงเพื่อกระจายน้ำหนักของแต่ละล้อ
เพื่อกระจายการเสียดสีระหว่างล้อทั้งสี่ ตามภาพที่ 68 และภาพที่ 69

ภาพที่ 68 การออกแบบ และติดติดตั้งสปริง สำหรับหุ่นยนต์รถขนส่ง

ภาพที่ 69 การรับภาระโหลดของสปริง ในสภาวะการเคลื่อนที่ของหุ่นยนต์รถขนส่ง
จากน้ำหนักรวมสูงสุดของหุ่นยนต์ 20 กิโลกรัม (รวมโครงสร้าง อุปกรณ์ และน้ำหนักเพื่อบรรทุก) โดยกระจายน้ำหนักลงมาที่ล้อทั้ง 4 ล้อ 6.7-6.675 กิโลกรัม ในแต่ละล้อ
ถือว่าส่วนเบี่ยงเบนของความสูง คือ 5 มิลลิเมตร จากกฎของฮุค (Hooke’s law) จะเป็นดังสมการต่อไปนี้

โดยการออกแบบในแต่ละล้อจะมีสปริงขนานกัน 2 ชุด จะคำนวนค่าความแข็งสปริงได้เท่ากับ

2.2 การติดตั้ง และเชื่อมต่ออุปกรณ์ เซ็นเซอร์ และซอฟต์แวร์
ในงานวิจัยนี้เลือกระบบปฏิบัติการหุ่นยนต์ 2 เป็นฐานในการพัฒนาระบบควบคุม
ด้วยระบบปฏิบัติการหุ่นยนต์ 2 มีข้อดีหลายประการ เช่น เป็นเฟรมเวิร์คที่มีความคล่องตัว
ในการพัฒนา สามารถแยกการทำงานออกเป็นส่วน ๆ อย่างอิสระ รองรับทั้งภาษาซี และภาษา
ไพธอนให้ทำงานร่วมกันได้ และมีผู้ใช้งานเป็นจำนวนมาก สำหนับโครงสร้างของระบบระบบ
ของหุ่นยนต์ 2 แยกตามกายภาพได้เป็น 3 ส่วน ได้แก่ ส่วนฮาร์ดแวร์ ส่วนซอฟต์แวร์ และ
ส่วนของการควบคุมการเคลื่อนที่ ซึ่งมีรายละเอียดต่าง ๆ ดังต่อไปนี้
2.2.1 ฮาร์ดแวร์
ได้แก่ ตัวหุ่นยนต์ประกอบด้วย ชุดตัวถังทำจากอลูมิเนียม 2 แผ่น โดยติดตั้งมอเตอร์ไฟฟ้า 4 ตัวเพื่อใช้ขับเคลื่อนล้อชนิดแมคคานัมทั้งสี่ล้อผ่านชุดเกียร์ที่มีการทดรอบ
เพื่อสร้างแรงบิดให้สูงขึ้น การขับเคลื่อนมอเตอร์ไฟฟ้าขนาด 12 V ผ่านชุดขับมอเตอร์จะใช้
แหล่งพลังงานจากแบตเตอรี่ชนิด liFO4 ขนาด 12.8 โวลท์ แยกเป็น 1 วงจร โดยเฉพาะเพื่อป้องกันปัญหาการรบกวนในขณะที่มอเตอร์ดึงกระแสไฟฟ้า และชุดแบตเตอร์รี่ชุดที่สองจะใช้จ่ายไฟฟ้าให้กับวงจรอื่น ๆ ที่ไม่เกี่ยวข้องกับการขับมอเตอร์ทั้งหมด ซึ่งประกอบไปด้วย Jetson Nano
ทำหน้าที่เป็นหน่วยประมวลผลหลักเพื่อสั่งการทั้งระบบ โดยใช้ ESP32 เป็นหน่วยประมวลผลรอง
เพื่อช่วยรับภาระในการควบคุม และสั่งการชุดขับมอเตอร์ให้มีความเร็วตามที่ต้องการ โดยอาศัยข้อมูลจากชุดเซนเซอร์โรตารี่เอ็นโค้ดเดอร์ (Rotary Encoder) ในการควบคุมความเร็ว นอกจากนี้
ยังใช้ข้อมูลจาก โรตารี่เอ็นโค้ดเดอร์ (Rotary Encoder ร่วมกับข้อมูลจากชุดเซ็นเซอร์ IMU
เพื่อกำหนดตำแหน่งของหุ่นยนต์
สำหรับส่วนด้านบนของตัวหุ่นยนต์ ได้ติดตั้งไลดาร์ เพื่อทำหน้าที่สแกนระยะของวัตถุรอบ ๆ ตัวหุ่นยนต์ เพื่อใช้ในการทำแผนที่ และกำหนดเส้นทางการเดินของหุ่นยนต์ และตรวจจับสิ่งกีดขวาง และเพื่อความปลอดภัยในแต่ละด้านของหุ่นยนต์ได้ติดตั้งเซนเซอร์ Ultrasonic เพื่อป้องกันการชนวัตถุที่อาจหลุดรอดจากการตรวจจับมาได้ สำหรับการเชื่อมต่ออุปกรณ์ และเซ็นเซอร์ของหุ่นยนต์ที่ใช้ร่วมกับระบบปฏิบัติการหุ่นยนต์ 2 เป็นไปตามภาพที่ 70 โดยในกรอบ
สีส้มอ่อนเป็นการเชื่อมต่อฮาร์ดแวร์ และระหว่าง Jetson Nano ที่เป็นส่วนควบคุมร่วมกับเซ็นเซอร์ และชุดควบคุมมอเตอร์ในการขับเคลื่อนล้อแมคคานัมทั้ง 4 ล้อ สำหรับสีน้ำเงินเป็นการเชื่อมต่อทางด้านซอฟต์แวร์ สำหรับระบบปฏิบัติการหุ่นยนต์ 2 ในการควบคุมหุ่นยนต์ด้วย Jetson Nano
โดยในการควบคุมหุ่นยนต์ให้เคลื่อนที่ และหลบหลีกสิ่งกีดขวางจะต้องสร้างความสัมพันธ์ร่วมกันทั้งทางด้านฮาร์ดแวร์ และซอฟต์แวร์

ภาพที่ 70 ผังการเชื่อมต่ออุปกรณ์ และเซ็นเซอร์ของหุ่นยนต์ที่ใช้ร่วมกับระบบปฏิบัติการหุ่นยนต์ 2

2.2.2 ซอฟต์แวร์
ซอฟต์แวร์ประกอบด้วยร ระบบปฏิบัติการ Linux Ubuntu ได้ติดตั้ง ROS 2 Foxy
เป็นเฟรมเวิร์ค สำหรับการพัฒนาระบบหุ่นยนต์โดยใช้ภาษาไพธอนเป็นหลัก การทำงานประกอบด้วย Node Service action ทำงานร่วมกัน โดยจะมี via point Controller ตามภาพที่ 71
ทำหน้าที่ควบคุมให้หุ่นยนต์เดินทางไปยังจุดหมายปลายทางที่กำหนดไว้ โดยมี Set via_Point
ทำหน้าที่เซ็ตข้อมูลให้กับระบบพร้อมกับสั่งให้หุ่นยนต์เริ่มทำงานโดยเลือกใช้ Action ของ ROS 2 ซึ่งเมื่อหุ่นยนต์เดินไปถึงเป้าหมายแล้วจะมีการแจ้งสถานะให้ทราบ และเพื่อที่จะได้เลื่อนไปยังเป้าหมายถัดไป จนกว่าจะครบทุก Via Point โดยในระหว่างการเดินไปยังจุดหมาย ไลดาร์จะทำหน้าที่สแกนหาวัตถุ ร่วมกับข้อมูลที่ได้จากแผนที่ซึ่งจัดทำไว้ล่วงหน้า ในการกำหนดเส้นทางเดิน หากพบว่า
ไม่สามารถเคลื่อนผ่านไปได้ ก็จะทำคำนวนหาเส้นทางใหม่ อย่างไรก็ตาม หากไม่สามารถคำนวนเส้นทางใหม่ได้ จะกำหนดให้หุ่นยนต์หยุดรอ ซึ่งโครงสร้างของซอฟต์แวร์จะต้องทำงานโดยรับสัญญาณอินพุตจากอุปกรณ์ และเซ็นเซอร์เพื่อส่งมาประมวลผลที่ Jetson Nano และส่งสัญญาณเอาท์พุตกลับไปควบคุมล้อแมคคานัมทั้ง 4 ล้อของตัวหุ่นยนต์ เพื่อให้สามารถเคลื่อนไปสู่เป้าหมาย

ภาพที่ 71 การออกแบบโครงสร้างซอฟต์แวร์บนระบบปฏิบัติการหุ่นยนต์ 2

2.3 ส่วนควบคุมการเคลื่อนที่ของรถขนส่งอัตโนมัติ
ส่วนควบคุมการเคลื่อนที่ของหุ่นยนต์สำหรับในงานวิจัยนี้ โดยจะเป็นการวางแผน
การเคลื่อนที่ เพื่อนำไปสู่การวางแผนเคลื่อนที่หุ่นยนต์ ที่ได้ทำการออกแบบไว้ สำหรับในส่วนของการวางแผนการเคลื่อนที่นั้น หุ่นยนต์จำเป็นต้องมีแผนที่ของพื้นที่ปฏิบัติงาน ในงานวิจัยนี้
ใช้การสแกนของไลดาร์ในการสร้างแผนที่ และในขณะที่หุ่นยนต์กำลังเคลื่อนที่อาจไปพบกับ
สิ่งกีดขวาง การตรวจจับสิ่งกีดขวางจำเป็นต้องอาศัยไลดาร์สแกนข้อมูลตลอดเวลา และนำข้อมูลจากไลดาร์ไปปรับปรุงรวมเข้ากับข้อมูลแผนที่ในแบบเรียลไทม์
ในงานวิจัยนี้ได้ใช้ Occupancy Grid Map โดยแบ่งพื้นที่การปฏิบัติงานของหุ่นยนต์ออกเป็นสี่เหลี่ยมจัตตุรัสมีความกว้างเท่ากับผลรวมของส่วนที่ยาวที่สุดของหุ่นยนต์รวมกับระยะเผื่อความปลอดภัย เพื่อให้มั่นใจว่าหุ่นยนต์จะเคลื่อนที่ไปได้โดยปราศจากการชนกับสิ่งกีดขวาง
ความกว้าง D = Argmax( α,β) + σ
เมื่อ α,β คือ ขนาดมิติกว้างยาวของหุ่นยนต์ และ σ คือ ระยะเว้นเพื่อความปลอดภัย
Occupancy Grid Map นี้ได้มาจากการใช้เซ็นเซอร์ไลดาร์ในการสแกนพื้นที่ เป็นผลรวมของ
ค่าความน่าจะเป็นในกริดของการมีวัตถุ หรือสิ่งกีดขวาง โดยจะมีค่าเป็น 0 หมายถึง เป็นเส้นทางเดินปกติหุ่นยนต์สามารถเดินทางผ่านเข้าไปได้ ในการเคลื่อนที่ของหุ่นยนต์นั้น มีถูกจำกัดรูปแบบการเคลื่อนที่จากการข้อจำกัดในการควบคุมการเลี้ยวของหุ่นยนต์ เช่น Manhattan ซึ่งหุ่นยนต์
จะเคลื่อนที่ได้ 4 ทิศทางไปยังกริดข้างเคียงทั้ง 4 ทิศทาง เช่น กัน ตามภาพที่ 72 แต่ในกรณีของ
ล้อเมคานัมสามารถบังคับเลี้ยวได้อย่างอิสระจึงสามารถเคลื่อนไปยังกริดข้างเคียงได้ทั้ง 8 ทิศทาง ซึ่งเพียงพอต่อความต้องการ

ภาพที่ 72 การเคลื่อนที่ของหุ่นยนต์รถขนส่งด้วยวิธี Manhattan & Chebyshev Distance

ในการหลบสิ่งกีดขวางนั้นจำเป็นต้องคำนวณเส้นทางใหม่โดยใช้ การคำนวนพิจารณาข้อมูลจาก Occupancy Grid Map โดยนำข้อมูลของกริดเฉพาะที่หุ่นยนต์สามารถเคลื่อนที่ได้เท่านั้น
การหาเส้นทางที่เหมาะสมจะใช้อัลกอริทึมเอสตาร์ สตาร์ (A) นำเสนอโดย Peter Hart, Nils Nilsson และ Bertram Raphael ในปี ค.ศ. 1968 [1] เป็นกราฟอัลกอรึทึมที่ใช้ Heuristic Search Search ค้นหาเส้นทางจากจุดเริ่มต้นไปยังจุดหมายปลายทางที่กำหนดเพียงจุดเดียว จึงมีความเหมาะสมที่นำมาใช้ในการขนส่งชิ้นส่วนไปยังเป้าหมายปลายทางที่ต้องการแนวคิดของ A จะใช้การประมาณค่าฟังกชั่น f(n)
ดังสมการที่ 12
f ̂(n)=g(n)+h(n) (12)
โดยที่ g(n) เป็นระยะทางจากจุดเริ่มต้นถึงจุด n
และ h(n) เป็นค่าระยะทางจากจุด n ไปถึงจุดปลายทาง
อัลกอริทึม A* เป็นดังนี้
1) การกำหนด และวางโหนดเริ่มต้นลงใน LIST และคำนวณ f ̂(n)
2) ลบโหนดที่เลือก n ออกจาก LIST ซึ่งมีค่า f ̂ ̂น้อยที่สุด หากพบว่าเป็นโหนดเป้าหมาย ให้ยุติอัลกอริทึม และแจ้งผลถึงความสำเร็จในการตรวจพบเป้าหมาย
3). ให้ดำเนินการลบโหนดออกจาก LIST และตรวจสอบความสำเร็จในการตรวจพบเป้าหมายที่ต้องการทั้งหมด
4) ดำเนินการค้นหาค่า f ̂(n) ของเป้าหมายที่สำเร็จทั้งหมด โดยวางลงใน LIST และดำเนินการกับโหนดที่ถูกลบออกใน ถือเป็นการเสร็จสิ้นขั้นตอนในลูปที่ค้นพบเป้าหมายสำเร็จ
5) ดำเนินการทำซ้ำขั้นตอนที่ 2 เมื่อกำหนดเป้าหมายใหม่ สำหรับการเคลื่อนที่ของหุ่นยนต์อย่างต่อเนื่อง
สำหรับการควบคุมตัวหุ่นยนต์ให้เคลื่อนที่ไปในจุดตามที่เป้าหมายได้กำหนดไว้
จะแบ่งเป็น 3 ส่วน
Grid management” หรือ “การจัดการกริด” หมายถึง การจัดการ และควบคุมระบบที่ใช้โครงสร้างเป็นกริด ตามภาพที่ 73 ซึ่งประกอบด้วย

  1. การจัดการกริดทางกายภาพ คือ การสร้างรายละเอียดสำหรับแผนที่เริ่มต้น (load Initial Map) โดยเริ่มตั้งแต่จุดเริ่มต้น ไปจนถึงเป้าหมายสิ้นสุดสำหรับการเคลื่อนที่ของหุ่นยนต์
  2. การจัดการกริดข้อมูล เพื่อนำมาสร้าง Occupancy Grid
  3. สำหรับในการเริ่มต้น จะนำหุ่นยนต์ที่ติดตั้งไลดาร์มาเคลื่อนที่บนแผนที่
    ที่ได้กำหนดตั้งแต่จุดเริ่มต้นจนถึงเป้าหมายเพื่อให้ไลดาร์ตรวจสอบ และบันทึก (LiDAR Scan) สิ่งแวดล้อมบนแผนที่
  4. จากขั้นตอนที่ 3 เมื่อหุ่นยนต์ได้ทราบถึงขอบเขต และเป้าหมาย จะทำการอัพเดตกริดลงบนแผนที่

ภาพที่ 73 การออกแบบกริดสำหรับการหลบหลีกสิ่งกีดขวาง (Grid management)
Path Planner คือ ระบบที่ใช้ในการวางแผนเส้นทาง หรือเส้นทางเดินทางสำหรับการเคลื่อนที่ของหุ่นยนต์ ตามภาพที่ 74 ซึ่งประกอบไปด้วย
การวางแผนเส้นทางในหุ่นยนต์โดยการคำนวณเส้นทางที่หุ่นยนต์จะต้องเดินทาง
เพื่อไปยังจุดหมายปลายทางจากตำแหน่งเริ่มต้น โดยหลีกเลี่ยงอุปสรรคต่าง ๆ และปฏิบัติตามข้อกำหนดที่เฉพาะเจาะจง ด้วยอัลกอริธึมต่าง ๆ เช่น A* (A-star), Dijkstra’s Algorithm, RRT (Rapidly-exploring Random Tree), และอื่น ๆ โดยการใช้ข้อมูลจากแผนที่ และกริดที่ได้กำหนดไว้ เพื่อทำหนดการวิเคราะห์เส้นทางด้วยอัลกอริธึมการหาทางที่เหมาะสม

ภาพที่ 74 การวางแผนเส้นทางเดิน ( Path Planner) ของหุ่นยนต์รถขนส่ง
Path Follower เป็นระบบที่ได้ออกแบบมาเพื่อติดตามเส้นทางที่กำหนดไว้ล่วงหน้าตามภาพที่ 75 โดยดำเนินการสำหรับหุ่นยนต์ที่มีการติดตามเส้นทางที่ถูกกำหนดไว้ เช่น เส้นทางที่ถูกสร้างโดยเซนเซอร์ หรือแผนที่ที่กำหนดล่วงหน้า โดยใช้ ไลดาร์ เซนเซอร์ทรานสดิวเซอร์วัดระยะทาง เซนเซอร์ตรวจสอบความเร่ง เพื่อติดตามเส้นทาง ผ่านการอัลกอริธึมบนการควบคุมใน Jetson NANO เพื่อให้หุ่นยนต์เคลื่อนที่ตามเส้นทางที่ต้องการ และช่วยให้สามารถติดตามเส้นทางได้อย่างแม่นยำ และมีประสิทธิภาพ ซึ่งสำคัญในหลาย ๆ ด้านเพื่อให้กระบวนการ หรือการทำงานเป็นไปตามที่คาดหวัง

ภาพที่ 75 การออกแบบระบบติดตามเส้นทางที่กำหนด (Path Follower)

  1. การเขียนโปรแกรมบน ระบบปฏิบัติการหุ่นยนต์ 2 (Robot Operating System2: ROS2)
    สำหรับเขียนโปรแกรมที่ใช้ในงานวิจัยนี้ เป็นการพัฒนาด้วยภาษาไพธอนบนระบบปฏิบัติการหุ่นยนต์ โดยหลัก ๆ จะแบ่งเป็น 2 ส่วนดังนี้
    3.1 การติดตั้งโปรแกรมบนระบบปฏิบัติการหุ่นยนต์ 2 (Robot Operating System2: ROS2) และสร้างไฟล์ต่าง ๆ ที่ใช้ในการควบคุมหุ่นยนต์
    โดยในการเขียนงานวิจัยนี้จะไม่ลงลึกในหัวข้อดังกล่าวเนื่องด้วยเป็นการลงโปรแกรมบนระบบปฏิบัติการหุ่นยนต์ 2 ทั่วไป ตามตัวอย่าง ดังภาพที่ 76-77

ภาพที่ 76 การเริ่มต้นสร้าง File และ ติดตั้ง Python และโปรแกรมVScode

ภาพที่ 77 การสร้างไฟล์บนระบบปฏิบัติการหุ่นยนต์ 2 (ROS 2) ที่มีการทำงานโดยภาษาไพธอน

3.2 การสร้างโปรแกรมเพื่อควบคุมการเคลื่อนที่ของตัวหุ่น โดยใช้ภาษาไพธอนบนระบบปฏิบัติการหุ่นยนต์ 2
โดยได้แบ่งเป็น 3 โมดูล ตามภาพที่ 78

ภาพที่ 78 โครงสร้างโปรแกรมควบคุมหุ่นยนต์บนระบบปฏิบัติการหุ่นยนต์ 2

3.2.1 โมดูล ROOT Files
3.2.1.1 Event (MQTT) คือ ชุดข้อมูลที่สั่งการให้หุ่นยนต์ทำงานตามข้อมูลที่ส่งเข้ามา
3.2.1.2 Geometry (Lidar) คือ ชุดข้อมูลที่ระบุขนาด และพื้นที่ของหุ่นยนต์
รวมไปถึงตำแหน่งอ้างอิงในการวิ่ง
3.2.1.3 Calibration (Gyro MPU6050) คือ ชุดคำสั่งในการกำหนดเส้นทาง X และ Y ของทิศทางการวิ่งของหุ่นยนต์
3.2.1.4 Data Goal Parameter คือ ชุดข้อมูลที่ระบุตำแหน่ง และเส้นทางการเดินของหุ่นยนต์

3.2.2 OrangePi5
3.2.2.1 Event Reader (mqtt_nav.py) คือ โปรแกรมสำหรับรับค่าจาก MQTT
เพื่อมาประมวลการทำงานของหุ่นยนต์ เช่น รับค่าตำแหน่งที่ต้องวิ่ง รับค่าคำสั่งการทำงานเมื่อไปถึงยังจุดหมายปลายทาง ตามภาพที่ 79

ภาพที่ 79 รูปแบบคำสั่ง Event Reader (mqtt_nav.py)

3.2.2.2 Event (MQTTROS2Bridge) คือ ส่วนโปรแกรมที่ทำหน้าที่ในการรับ
ค่าจาก MQTT มาประมวลผลคำสั่งจากข้อความที่ได้รับ ตามภาพที่ 80

ภาพที่ 80 รูปแบบคำสั่ง Event (MQTTROS2Bridge)

3.2.2.3 Geometry Manager คือ โปรแกรมสำหรับประมวลผลตำแหน่งของ
หุ่นยนต์ และสภาพแวดล้อมโดยรอบที่ระบุต้นทาง และจุดหมาย
3.2.2.4 Geometry (nav2.launch.py) คือ ส่วนโปรแกรมที่ทำหน้าที่ในการรับ
ค่าจากไลดาร์ มาประมวลผลเพื่อสร้างแผนที่ ผ่านโปรแกรม rviz ตามภาพที่ 81

ภาพที่ 81 รูปแบบคำสั่ง Geometry (nav2.launch.py)

3.2.2.5 Calibration Manager คือ โปรแกรมสำหรับช่วยให้หุ่นยนต์เดินให้ตรง
ตามแนวแกนที่กำหนดมากขึ้น
3.2.2.6 Calibration คือ ส่วนของโปรแกรมที่นำจุดตัดแกน XY ของรถมาช่วยในการคำนวณเส้นทางการเดินให้หุ่นยนต์เป็นเส้นทางตรงให้ได้มากที่สุด
3.2.2.7 Noise Suppression คือ โปรแกรมสำหรับแก้ไขจุดบกพร่อง และกำหนด
ค่าความผิดพลาดที่ยอมรับได้ในโปรแกรม
3.2.2.8 Event Mask คือ โปรแกรมการกำหนดจุดที่หุ่นยนต์ต้องเดินทางผ่านในเงื่อนไขที่กำหนด
3.2.2.9 Track Reconstruction คือ โปรแกรมที่คำนวณเส้นทางเดินทางของหุ่นยนต์ ตามภาพที่ 82

ภาพที่ 82 รูปแบบคำสั่ง Track Reconstruction

3.2.2.10 Track Parameters คือ ค่าที่คำนวณได้จาก Track Reconstruction เพื่อเก็บ และส่งไปยัง Data Goal Parameter
3.2.2.11 Data Goal Parameter (robot_bringup.launch.py) คือโปรแกรมที่ นำ Track Parameters ส่งไปยังคอนโทรลเลอร์ Teensy 4.0 ตามภาพที่ 83

ภาพที่ 83 รูปแบบคำสั่ง Data Goal Parameter (robot_bringup.launch.py)

3.2.3 Teensy 4.0
3.2.3.1 Reconstruction (create entities) คือ ชุดคำสั่งที่รับค่ามาจาก Data Goal Parameter และแยกชุดคำสั่งเพื่อควบคุมล้อของหุ่นยนต์ ตามรูปที่ 84

ภาพที่ 84 รูปแบบคำสั่ง Reconstruction (create entities)

3.2.3.2 Data for Control wheel (destroy entities) คือ ชุดคำสั่งในการสั่งประมวลผลการควบคุมล้อ โดยมีการกำหนดค่า Encoder ในการควบคุมตามภาพที่ 85

ภาพที่ 85 รูปแบบคำสั่ง Data for Control wheel (destroy entities)

3.2.3.3 Control Motor (Compute PID) ชุดคำสั่งในการสั่งประมวลผลการชดเชยความถี่ของล้อ เมื่อใช้งานจริง เนื่องจากสภาพแวดล้อมที่แตกต่างกันของแต่ละล้อ ตามภาพที่ 86

ภาพที่ 86 รูปแบบคำสั่ง Control Motor (Compute PID)
3.2.3.4 Data for Control wheel คือ ชุดข้อมูลในการประมวลผลคำสั่ง และเป้าหมายที่ต้องดำเนินการ ตามภาพที่ 87

ภาพที่ 87 รูปแบบคำสั่ง Data for Control wheel

3.2.3.5 Goal และ Event (MQTT) คือข้อมูลเมื่อหุ่นอยู่ ณ จุดหมายที่กำหนด
จะมีการประมวลผลคำสั่ง และส่งค่าไปยัง MQTT เมื่อรับคำสั่งอื่น ๆ ต่อไป ตามภาพที่ 88

ภาพที่ 88 รูปแบบคำสั่งการกำหนด Goal และ Event

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

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

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

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

ภาพที่ 90 วัตถุในรูปทรงแ และขนาดต่าง ๆ เพื่อใช้ทดสอบสำหรับการตรวจจับด้วยไลดาร์

1.2 การทดสอบการทำงาน
เพื่อให้แน่ใจว่าหุ่นยนต์สามารถทำงานได้อย่างถูกต้อง จำเป็นต้องทดสอบการทำงานของระบบ ซึ่งในบทความนี้ได้ทำการทดสอบอัลกอริทึมในการวางแผนการเดินทางหลบหลีก
สิ่งกีดขวางซึ่งเป็นส่วนสำคัญส่วนหนึ่งของการทำงานของหุ่นยนต์ขนส่ง โดยโปรแกรมหลบหลีกสิ่งกีดขวางทำในภาษาไพธอนโดยจะรับข้อมูลจากเซ็นเซอร์ไลดาร์แล้วทำการแปลงเป็น Occupancy Grid ที่มีขนาดเท่ากับความยาวของหุ่นยนต์รวมกับระยะปลอดภัย จากนั้นให้โปรแกรมวางแผนเส้นทางไปโดยแบ่งตาราง Occupancy Grid ออกเป็นส่วน ๆ โดยจำกัดพื้นที่ไม่เกิน 200×200 กริด และช่องทางเดินของหุ่นยนต์มีขนาด ไม่ต่ำกว่า 5 กริด
สำหรับการทดลองกับข้อมูลจำลองโดยกำหนดขนาดวัตถุ ในรูปทรงต่าง ๆ โดยวางวัตถุให้อยู่ในระดับที่เซ็นเซอร์ไลดาร์สามารถตรวจจับได้ ในซอฟต์แวร์จะจำลองวัตถุถูกวาง
แบบสุ่มในเส้นทางของหุ่นยนต์เพื่อป้องกันไม่ให้หุ่นยนต์ไปถึงจุดเป้าหมาย วัตถุยังอยู่ในระดับที่เซ็นเซอร์ไลดาร์สามารถตรวจจับได้ ขนาดที่แตกต่างกันของวัตถุ รูปร่างของวัตถุ และจำนวนวัตถุสามารถใส่ลงในซอฟต์แวร์จำลองในการทดลองแต่ละครั้ง มีกระบอกตั้งตรงเส้นผ่านศูนย์กลาง 30 ซม. และสูง 40 ซม. ทรงกลมมีขนาดเท่ากับลูกบาสเก็ตบอล กล่องสี่เหลี่ยม ขนาด 0.3 x 0.3 เมตร สูง 0.4 เมตร กล่องสี่เหลี่ยม ขนาด 0.4 x 0.4 x 0.4 เมตร ระยะห่างระหว่างวัตถุแต่ละประเภท คือ 0.3 เมตร ขนาดตารางกริดแตกต่างกันไปในสามขนาดดังนี้: A คือ 1.0 x1.0 ตารางเมตร, B คือ 1.0×2.0 ตารางเมตร และ C 2.0×2.0 ตารางเมตร โดยได้กำหนดการทดลองเจ็ดครั้ง เพื่อทดลองระบบหลีกเลี่ยงสิ่งกีดขวางซึ่งมีจำนวนวัตถุ และขนาดตารางที่แตกต่างกันดังในตารางที่ 4
ตารางที่ 4 การทดลองการตรวจับอุปสรรคในแบบจำลองซอฟต์แวร์

Test Number of testing objects (pieces) Testing area of grid size (เมตร)
Upright
cylinder
0.3×0.4 Round shape
(basketball)
Rectangle box
0.3×0.3×0.4 Square Box
0.4×0.4×0.4 A (1.0×1.0) B (1.0×2.0) C (2.0×2.0)
1 3 – – – 0.1 0.1 0.1
2 – 3 – – 0.1 0.1 0.1
3 – – 3 – 0.1 0.1 0.1
4 – – – 3 0.1 0.1 0.1
5 3 3 3 3 0.5 – –
6 3 3 3 3 – 0.5 –
7 3 3 3 3 – – 0.5

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

  1. การทดสอบการเคลื่อนของหุ่นยนต์ตามเส้นทางเดินแบบต่าง ๆ โดยไร้สิ่งกีดขวาง
    ในการทดลองเพื่อให้ทราบถึงความคลาดเคลื่อนของการเคลื่อนที่ของหุ่นยนต์ จึงได้กำหนดการทดลองการเคลื่อนที่ในรูปต่าง ๆ เช่นการเคลื่อนที่ในระยะทางตรง การเคลื่อนที่ในระยะทางเลี้ยว และการเคลื่อนที่เมื่อพบสิ่งกีดขวาง โดยได้กำหนดตารางระยะกริด 1 ช่องมีขนาด 0.5 x 0.5 เมตร ซึ่งผลการทดลองเป็นดังนี้
    2.1 การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางตรงโดยไร้สิ่งกีดขวาง ระยะทาง 1 เมตร ถึง 10 เมตร
    ในการทดลองได้กำหนดให้หุ่นยนต์ทำการเคลื่อนที่ในระยะทางตั้งแต่ 1 เมตรจนถึง
    10 เมตรตามภาพที่ 91 โดยกำหนดให้การวางแผนการเคลื่อนที่ตามระยะกริด 0.5 x 0.5 เมตร ต่อช่อง ซึ่งผลที่ได้จากการทดลองเป็นไปตามตารางที่ 5

ภาพที่ 91 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางตรงในสายการผลิต


ตารางที่ 5 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางตรงที่ระยะทางต่าง ๆ

ระยะทาง (เมตร) ระยะกริด (ช่อง) ผลการทดลอง (หน่วย : เมตร) ผลการทดสอบการเคลื่อนที่ในขอบเส้นทาง
1 2 3 4 5
1 2 1.02 1.02 1.02 1.02 1.02 อยู่ภายในขอบเส้นทาง
2 4 1.99 1.99 1.99 2.00 2.01 อยู่ภายในขอบเส้นทาง
3 6 2.97 2.98 2.97 2.97 2.97 อยู่ภายในขอบเส้นทาง
4 8 4.09 4.09 4.09 4.10 4.09 อยู่ภายในขอบเส้นทาง
5 10 5.06 5.06 5.05 5.05 5.06 อยู่ภายในขอบเส้นทาง
6 12 6.06 6.06 6.05 6.05 6.06 อยู่ภายในขอบเส้นทาง
7 14 7.07 7.06 7.10 7.07 7.08 อยู่ภายในขอบเส้นทาง
8 16 8.06 8.08 8.10 8.04 8.08 อยู่ภายในขอบเส้นทาง
9 18 9.10 9.08 9.12 9.11 9.05 อยู่ภายในขอบเส้นทาง
10 20 10.08 10.06 10.12 10.04 10.05 อยู่ภายในขอบเส้นทาง

จากผลการทดลองตามตารางที่ 5 แสดงให้เห็นว่าระยะทางเดินเฉลี่ยที่หุ่นยนต์ สามารถทำได้มีค่าตั้งแต่ 1.02 เมตร ถึง 10.12เมตร โดยมีแนวโน้มที่จะใกล้เคียงกับระยะทางที่ตั้งใจไว้ โดยที่ระยะทางเดินเฉลี่ยในแต่ละช่วงมีการกระจายที่ต่ำ ซึ่งบ่งชี้ถึงความเสถียร และความเชื่อถือได้ของหุ่นยนต์ที่จะสามารถทำงานร่วมกับไลดาร์
2.2 การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางโค้งโดยไร้สิ่งกีดขวาง ระยะทาง 2 เมตร ถึง 10 เมตร
การทดลองแบบเดินเส้นโค้งตามระยะทางโค้ง 90 องศา 2 ถึง 10 เมตร ตามภาพที่ 92 โดยกำหนดให้การวางแผนการเคลื่อนที่ตามระยะกริด 0.5 x 0.5 เมตร ต่อช่อง ซึ่งผลที่ได้จากการทดลองเป็นไปตามตารางที่ 6

ภาพที่ 92 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางโค้งในสายการผลิต

ตารางที่ 6 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางโค้งที่ระยะทางต่าง ๆ

ระยะทาง (เมตร) ระยะกริด (ช่อง) ผลการทดลอง (หน่วย : เมตร) ผลการทดสอบการเคลื่อนที่ในขอบเส้นทาง
1 2 3 4 5
1 x 1 4 2.02 2.05 1.98 2.02 2.05 อยู่ภายในขอบเส้นทาง
2 x 2 8 4.01 4.03 4.02 4.00 4.04 อยู่ภายในขอบเส้นทาง
3 x 3 12 6.01 6.02 5.99 6.00 6.03 อยู่ภายในขอบเส้นทาง
4 x 4 16 8.05 8.01 8.02 8.03 8.04 อยู่ภายในขอบเส้นทาง
5 x 5 20 10.02 10.01 10.03 10.04 10.00 อยู่ภายในขอบเส้นทาง
จากผลการทดลองในตารางที่ 6 แสดงให้เห็นว่าหุ่นยนต์ สามารถเคลื่อนที่ในแนวเส้นทางโค้ง หรือเลี้ยวตามเส้นทางในสายการผลิต และยังคงความความแม่นยำสูงในการเคลื่อนที่ โดยตามระยะทางที่กำหนด โดยค่าผลการทดลองที่วัดได้อยู่ในช่วงที่ใกล้เคียงกับระยะทางที่ตั้งไว้ในทุกกรณี และมีความแม่นยำในระยะทางต่าง ๆ โดยเฉพาะในช่วง 2 x 2 เมตร ถึง 5 x 5 เมตร

  1. การทดสอบการเคลื่อนของหุ่นยนต์ตามเส้นทางเดินแบบต่าง ๆ โดยมีสิ่งกีดขวางประเภทต่าง ๆ
    3.1 การทดสอบเดินตามระยะทางตรงแบบมีสิ่งกีดขวาง เป็นถังขนาด 0.3 x 0.4 เมตรระยะทาง 1 เมตร ถึง 10 เมตร
    ในการทดลองได้กำหนดให้หุ่นยนต์ทำการเคลื่อนที่ในระยะทางตั้งแต่ 1 เมตรจนถึง 10 เมตร ตามภาพที่ 93 โดยกำหนดให้การวางแผนการเคลื่อนที่ตามระยะกริด 0.5 x 0.5 เมตร ต่อช่อง โดยมีสิ่งกีดขวางเป็นถังขนาด 0.3 x 0.4 เมตรซึ่งผลที่ได้จากการทดลองเป็นไปตามตารางที่ 7

ภาพที่ 93 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางตรงในสายการผลิตโดยมีสิ่งกีดขวางเป็นถัง

ตารางที่ 7 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางตรงที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นถังขนาด 0.3 เมตร x 0.4 เมตร

ระยะทาง (เมตร) ระยะกริด (ช่อง) ผลการทดลอง (หน่วย : เมตร) ผลการทดสอบการหลบสิ่งกีดขวาง
1 2 3 4 5
1 2 0.98 1.02 1.00 1.01 0.99 สามารถหลบ
สิ่งกีดขวาง
2 4 2.01 1.98 2.03 2.00 2.02 สามารถหลบ
สิ่งกีดขวาง
3 6 2.97 3.02 3.01 3.00 2.99 สามารถหลบ
สิ่งกีดขวาง
4 8 3.93 3.94 3.94 3.95 3.95 สามารถหลบ
สิ่งกีดขวาง
5 10 4.99 5.02 4.98 5.01 5.00 สามารถหลบ
สิ่งกีดขวาง
6 12 6.03 5.99 6.01 6.02 6.00 สามารถหลบ
สิ่งกีดขวาง
7 14 7.04 7.02 7.01 7.03 7.05 สามารถหลบ
สิ่งกีดขวาง
8 16 8.01 8.03 8.02 8.00 8.04 สามารถหลบ
สิ่งกีดขวาง
9 18 9.02 9.01 9.03 9.00 9.04 สามารถหลบ
สิ่งกีดขวาง
10 20 10.03 10.00 10.02 10.01 10.04 สามารถหลบ
สิ่งกีดขวาง

จากผลการทดลองตามตารางที่ 7 แสดงให้เห็นว่าหุ่นยนต์สามารถเคลื่อนที่หลบสิ่งกีดขวางได้ โดยหุ่นยนต์มีการเคลื่อนที่เป็นตามที่กำหนดไว้ตั้งแต่ 1 จนถึง 10 เมตร และมีผลของระยะการเคลื่อนที่มีความแม่นยำสูง
ในการเดินทาง โดยค่า โดยระยะทางที่วัดได้อยู่ใกล้เคียงกับค่าระยะทางที่ตั้งไว้สำหรับทุกช่วงที่ทดลอง อีกทั้งการวัดระยะทางในแต่ละช่องมีความสม่ำเสมอ และไม่แตกต่างกันมาก แสดงถึงความเชื่อถือได้ของหุ่นยนต์ในการเคลื่อนที่ตามระยะทางที่กำหนด โดยค่าผลการทดลองในแต่ละระยะ
มีการเบี่ยงเบนที่ต่ำ แสดงถึงความสามารถของหุ่นยนต์ ในการควบคุมการเคลื่อนที่ได้
อย่างมีประสิทธิภาพ
3.2 การทดสอบเดินตามระยะทางตรงแบบมีสิ่งกีดขวางเป็นกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร ระยะทาง 1 เมตร ถึง 10 เมตร
ในการทดลองได้กำหนดให้หุ่นยนต์ทำการเคลื่อนที่ในระยะทางตั้งแต่ 1 เมตรจนถึง 10 เมตร ตามภาพที่ 94 โดยกำหนดให้การวางแผนการเคลื่อนที่ตามระยะกริด 0.5 x 0.5 เมตร
ต่อช่อง โดยมีสิ่งกีดขวางเป็นกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร ซึ่งผลที่ได้จาก
การทดลองเป็นไปตามตารางที่ 8

ภาพที่ 94 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางตรงในสายการผลิตโดยมีสิ่งกีดขวางเป็นกล่อง


ตารางที่ 8 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางตรงที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร

ระยะทาง (เมตร) ระยะกริด (ช่อง) ผลการทดลอง (หน่วย : เมตร) ผลการทดสอบการหลบสิ่งกีดขวาง
1 2 3 4 5
1 2 0.96 1.02 0.98 0.96 1.04 สามารถหลบ
สิ่งกีดขวาง
2 4 2.04 2.01 2.03 2.04 2.01 สามารถหลบ
สิ่งกีดขวาง
3 6 3.01 2.98 2.97 3.02 3.04 สามารถหลบ
สิ่งกีดขวาง
4 8 3.97 3.94 3.97 3.96 3.98 สามารถหลบ
สิ่งกีดขวาง
5 10 5.02 5.01 4.98 5.03 5.00 สามารถหลบ
สิ่งกีดขวาง
6 12 6.01 6.03 5.98 6.02 6.00 สามารถหลบ
สิ่งกีดขวาง
7 14 7.05 7.02 7.01 7.06 7.03 สามารถหลบ
สิ่งกีดขวาง
8 16 8.01 8.02 8.03 8.00 8.04 สามารถหลบ
สิ่งกีดขวาง
9 18 9.01 9.04 9.03 9.00 9.02 สามารถหลบ
สิ่งกีดขวาง
10 20 10.05 10.02 10.01 10.04 10.03 สามารถหลบ
สิ่งกีดขวาง

จากผลการทดลองตามตารางที่ 8 แสดงให้เห็นว่าหุ่นยนต์สามารถเคลื่อนที่หลบสิ่งกีดขวางได้ โดยหุ่นยนต์มีการเคลื่อนที่เป็นตามที่กำหนดไว้ตั้งแต่ 1 จนถึง 10 เมตร และผลของระยะการเคลื่อนที่มีความแม่นยำสูง โดยระยะทางที่วัดได้อยู่ใกล้เคียงกับค่าระยะทางที่ตั้งไว้สำหรับทุกช่วงที่ทดลอง แสดงให้เห็นว่าหุ่นยน์มีความแม่นยำในการเดินทาง โดยค่าระยะทางที่วัดได้มีความใกล้เคียงกับค่าระยะทางที่ตั้งไว้ในทุกระยะทาง โดยที่ค่าผล
การทดลองในแต่ละช่องมีการกระจายที่น้อย แสดงถึงความสม่ำเสมอของการเดินทางของหุ่นยนต์ซึ่งเป็นสิ่งสำคัญในการใช้งานจริง และค่าการเบี่ยงเบนในค่าระยะทางที่วัดได้มีน้อย แสดงให้เห็นถึงความสามารถของหุ่นยนต์ในการควบคุมการเดินได้อย่างมีประสิทธิภาพ
3.3 การทดสอบเดินตามระยะทางตรงแบบมีสิ่งกีดขวางเป็นลูกบอลขนาด 0.2 เมตร บนกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร ระยะทาง 1 เมตร ถึง 10 เมตร
ในการทดลองได้กำหนดให้หุ่นยนต์ทำการเคลื่อนที่ในระยะทางตั้งแต่ 1 เมตรจนถึง 10 เมตร ตามภาพที่ 95 โดยกำหนดให้การวางแผนการเคลื่อนที่ตามระยะกริด 0.5 x 0.5 เมตร ต่อช่อง โดยมีสิ่งกีดขวางเป็นลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.4 เมตร x 0.3 เมตร x 0.5 เมตร เนื่องด้วยหุ่นยนต์มีการปรับจุดติดตั้งไลดาร์ให้สูงขึ้น ซึ่งผลที่ได้จากการทดลองเป็นไปตามตารางที่ 9

ภาพที่ 95 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางตรงในสายการผลิตโดยมีสิ่งกีดขวางเป็นลูกบนว่างบนกล่อง


ตารางที่ 9 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางตรงที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.4 เมตร x 0.3 เมตร x 0.5 เมตร

ระยะทาง (เมตร) ระยะกริด (ช่อง) ผลการทดลอง (หน่วย : เมตร) ผลการทดสอบการหลบสิ่งกีดขวาง
1 2 3 4 5
1 2 0.98 1.02 1.00 1.01 0.99 สามารถหลบ
สิ่งกีดขวาง
2 4 2.02 1.98 2.01 2.03 2.00 สามารถหลบ
สิ่งกีดขวาง
3 6 2.97 3.01 3.02 2.98 3.00 สามารถหลบ
สิ่งกีดขวาง
4 8 4.01 3.97 3.99 4.02 4.00 สามารถหลบ
สิ่งกีดขวาง
5 10 5.05 5.02 5.00 4.98 5.01 สามารถหลบ
สิ่งกีดขวาง
6 12 6.00 6.01 6.03 5.99 6.02 สามารถหลบ
สิ่งกีดขวาง
7 14 7.02 7.05 7.01 7.04 7.03 สามารถหลบ
สิ่งกีดขวาง
8 16 8.00 8.02 8.01 8.03 8.04 สามารถหลบ
สิ่งกีดขวาง
9 18 9.01 9.00 9.02 9.03 9.04 สามารถหลบ
สิ่งกีดขวาง
10 20 10.01 10.03 10.00 10.02 10.04 สามารถหลบ
สิ่งกีดขวาง
ผลการทดลองแสดงให้เห็นว่าหุ่นยนต์ สามารถตรวจจับวัตถุทรงกลม และยังคงสามารถเคลื่อนที่เดินทางได้ตามระยะทางที่กำหนดไว้ โดยมีค่าที่วัดได้อยู่ใกล้เคียงกับค่าที่กำหนดไว้
3.4 การทดสอบเดินตามระยะทางโค้ง90 องศา แบบมีสิ่งกีดขวาง เป็นถังขนาด 0.3 x 0.4 เมตรระยะทาง 2 เมตร ถึง 10 เมตร
ในการทดลองได้กำหนดให้หุ่นยนต์ทำการเคลื่อนที่แบบเส้นโค้งตามระยะทางโค้ง 90 องศา 2 ถึง 10 เมตรตามภาพที่ 96 ในระยะทางตั้งแต่ 1 เมตรจนถึง 10 เมตร โดยกำหนดให้
การวางแผนการเคลื่อนที่ตามระยะกริด 0.5 x 0.5 เมตร ต่อช่อง โดยมีสิ่งกีดขวางเป็นถังขนาด 0.3 x 0.4 เมตรซึ่งผลที่ได้จากการทดลองเป็นไปตามตารางที่ 10

ภาพที่ 96 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางโค้งในสายการผลิตโดยมีสิ่งกีดขวางเป็นถัง

ตารางที่ 10 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางโค้ง ที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นถังขนาด 0.3 เมตร x 0.4 เมตร

ระยะทาง (เมตร) ระยะกริด (ช่อง) ผลการทดลอง (หน่วย : เมตร) ผลการทดสอบการหลบสิ่งกีดขวาง
1 2 3 4 5
1 x 1 4 2 2.01 1.98 2.02 1.99 สามารถหลบ
สิ่งกีดขวาง
2 x 2 8 4 4.05 3.98 4.01 4.03 สามารถหลบ
สิ่งกีดขวาง
3 x 3 12 6 5.98 6.02 6.01 6.04 สามารถหลบ
สิ่งกีดขวาง
4 x 4 16 8 8.03 7.98 8.01 8.02 สามารถหลบ
สิ่งกีดขวาง
5 x 5 20 10 10.02 10.01 10.03 10.04 สามารถหลบ
สิ่งกีดขวาง
จากการทดลองตามตารางที่ 10 แสดงให้เห็นว่าหุ่นยนต์เคลื่อนที่ไปตามแนวเส้นโค้ง แต่ยังคงสามารถรักษาระยะในการเคลื่อนที่อย่างแม่นยำ และสม่ำเสมอในระยะทางที่กำหนด โดยยังมีข้อผิดข้อผิดพลาดเล็กน้อยที่เกิดขึ้นเมื่อเทียบกับการเดินทางตามแนวเส้นตรง และพบสิ่งกีดขวางในสถาณการณ์เดียวกัน แต่ยังคงแสดงถึงความน่าเชื่อถือในการใช้งานในสภาพแวดล้อมที่กำหนด

3.5 การทดสอบเดินตามระยะทางโค้ง90 องศา 2 ระยะทาง 2 เมตร ถึง 10 เมตรแบบมีสิ่งกีดขวางเป็นกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร
ในการทดลองได้กำหนดให้หุ่นยนต์ทำการเคลื่อนที่ในระยะทางโค้ง90 องศา 2 เมตร ถึง 10 เมตร ตามภาพที่ 97 โดยกำหนดให้การวางแผนการเคลื่อนที่ตามระยะกริด 0.5 x 0.5 เมตร
ต่อช่อง โดยมีสิ่งกีดขวางเป็นกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร ซึ่งผลที่ได้จากการทดลองเป็นไปตามตารางที่ 11

ภาพที่ 97 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางโค้งในสายการผลิตโดยมีสิ่งกีดขวางเป็นกล่อง

ตารางที่ 11 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางโค้งที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร

ระยะทาง (เมตร) ระยะกริด (ช่อง) ผลการทดลอง (หน่วย : เมตร) ผลการทดสอบการหลบสิ่งกีดขวาง
1 2 3 4 5
1 x 1 4 1.98 2.01 1.99 1.95 2.02 สามารถหลบ
สิ่งกีดขวาง
2 x 2 8 3.95 4.01 4.02 4.03 4.00 สามารถหลบ
สิ่งกีดขวาง
3 x 3 12 5.98 6.01 6.00 5.97 6.02 สามารถหลบ
สิ่งกีดขวาง
4 x 4 16 7.95 8.01 8.02 8.00 8.04 สามารถหลบ
สิ่งกีดขวาง
5 x 5 20 10.02 10.01 9.99 10.03 10.00 สามารถหลบ
สิ่งกีดขวาง

จากการผลทดลองตามตารางที่ 11 ได้จำลองเส้นทางที่มีสิ่งกีดขวางเป็นกล่องขนาด 0.40 x 0.30 x 0.50 เมตร ซึ่งหุ่นยนต์สามารถหลบหลีกสิ่งกีดขวาง และปรับทิศทางการเคลื่อนที่ได้อย่างมีประสิทธิภาพ และแสดงให้เห็นถึงความสามารถในการเดินทางที่ราบรื่นแม้มีสิ่งกีดขวาง
ซึ่งเป็นปัจจัยสำคัญในระบบขนส่งอัตโนมัติ
3.6 การทดสอบเดินตามระยะทางโค้ง 90 องศา ระยะทาง 2 เมตร ถึง 10 เมตรแบบมีสิ่งกีดขวางเป็นลูกบอลขนาด 0.2 เมตร บนกล่องขนาด 0.40 เมตร x 0.30 เมตร x 0.50เมตร
ในการทดลองได้กำหนดให้หุ่นยนต์ทำการเคลื่อนที่ในระยะทางตั้งแต่ 1 เมตรจนถึง 10 เมตร ตามภาพที่ 98 โดยกำหนดให้การวางแผนการเคลื่อนที่ตามระยะกริด 0.5 x 0.5 เมตร ต่อช่อง โดยมีสิ่งกีดขวางเป็นลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.4 เมตร x 0.3 เมตร x 0.5 เมตร เนื่องด้วยหุ่นยนต์มีการปรับจุดติดตั้งไลดาร์ให้สูงขึ้น ซึ่งผลที่ได้จากการทดลองเป็นไปตามตารางที่ 12

ภาพที่ 98 เส้นทางการเคลื่อนที่ของหุ่นยนต์ตามแนวทางโค้งในสายการผลิตโดยมีสิ่งกีดขวางเป็นลูกบนวางบนกล่อง

ตารางที่ 12 การทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางโค้งที่ระยะทางต่าง ๆ โดยมีสิ่งกีดขวางเป็นลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.4 เมตร x 0.3 เมตร x 0.5 เมตร

ระยะทาง (เมตร) ระยะกริด (ช่อง) ผลการทดลอง (หน่วย : เมตร) ผลการทดสอบการหลบสิ่งกีดขวาง
1 2 3 4 5
1 x 1 4 1.98 2.01 2.02 1.95 1.99 สามารถหลบ
สิ่งกีดขวาง
2 x 2 8 3.98 4.02 4.00 3.97 4.01 สามารถหลบ
สิ่งกีดขวาง
3 x 3 12 5.97 6.01 6.03 5.99 6.00 สามารถหลบ
สิ่งกีดขวาง
4 x 4 16 7.98 8.02 8.01 7.95 8.00 สามารถหลบ
สิ่งกีดขวาง
5 x 5 20 10.01 10.03 9.98 10.00 10.02 สามารถหลบ
สิ่งกีดขวาง

จากการผลทดลองตามตารางที่ 12 ได้จำลองเส้นทางโค้งที่มีสิ่งกีดขวางเป็นลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.4 เมตร x 0.3 เมตร x 0.5 เมตร ซึ่งหุ่นยนต์สามารถหลบหลีกสิ่งกีดขวาง และปรับทิศทางการเคลื่อนที่ได้อย่างมีประสิทธิภาพ และแสดงให้เห็นถึงความสามารถในการปรับทิศทาง และหลบหลีกสิ่งกีดขวางได้อย่างมีประสิทธิภาพ โดยไม่มีปัญหาในการเคลื่อนที่แม้มีอุปสรรคสิ่งกีดขวาง

  1. การทดสอบการเคลื่อนของหุ่นยนต์ตามเส้นทางเดินแบบต่าง ๆ โดยมีสิ่งกีดขวางแบบต่อเนื่อง
    ในการทดลองของงานวิจัยนี้ ได้กำหนดให้หุ่นยนต์เคลื่อนที่ในสภาวะในสายการผลิตจริง โดยได้เลือกพื้นที่ตามแนวทางเดินที่มีลักษณะทางเดินตรง และมีมุมโค้ง หรือเลี้ยว ตามแผนผังในสายการผลิต ตามภาพที่ 99

ภาพที่ 99 แสดงแผนผังสายการผลิต และตำแหน่งที่ทำการทดสอบการเคลื่อนที่หุ่นยนต์
จากแผนผังในสายการผลิตจึงได้กำหนดจุดทดสอบที่มีระยะทางทั้งแนวตรง และ
แนวโค้งโดยรวม 20 เมตร และกำหนดตำแหน่งสิ่งกีดขวางจำนวน 3 จุด ตามภาพที่ 100

ภาพที่ 100 แบบจำลองเส้นทาง และตำแหน่งสิ่งกีดขวางสำหรับทดสอบรถการเคลื่อนที่หุ่นยนต์
สำหรับการทดลองได้กำหนดการทดลอง 6 การทดลอง โดยได้ปรับเปลี่ยนสิ่งกีดขวางทั้ง 3 ตำแหน่งให้แตดต่างกันในแต่ล่ะการทดลอง เพื่อให้วัดความสามารถในการเคลื่อนที่ของหุ่นยนต์ในการหลบหลีกสิ่งกีดขวางอย่างต่อเนื่อง โดยผลการทดลองที่ได้ เป็นดังนี้
4.1. การทดสอบการเคลื่อนที่ของหุ่นยนต์ตามระยะทางที่กำหนด และมีสิ่งกีดขวางเป็น
ถังขนาด 0.3 x 0.4 เมตร กล่องขนาด 0.40 x 0.30 x 0.50เมตร และลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.40 x 0.30 x 0.50 เมตร โดยมีเงื่อนไขการทดสอบทั้งหมด 6 ครั้ง ผลการทดลองตามตารางที่ 13 และตามภาพที่ 101

ตารางที่ 13 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง กล่อง ถัง บอล

ครั้งที่ ระยะทาง (เมตร) ผลการทดสอบระยะทาง สิ่งกีดขวาง ผลการหลบสิ่งกีดขวาง
A B C
1 20 20.05 กล่อง ถัง บอล ผ่าน
2 20 20.02 กล่อง ถัง บอล ผ่าน
3 20 20.05 กล่อง ถัง บอล ผ่าน
4 20 19.98 กล่อง ถัง บอล ผ่าน
5 20 20.01 กล่อง ถัง บอล ผ่าน

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

4.2. การทดสอบการเคลื่อนที่ของหุ่นยนต์ ตามระยะทางที่กำหนด และมีสิ่งกีดขวางเป็น
ถังขนาด 0.3 x 0.4 เมตร กล่องขนาด 0.40 x 0.30 x 0.50เมตร และลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.40 x 0.30 x 0.50 เมตร โดยมีเงื่อนไขการทดสอบทั้งหมด 6 ครั้ง ผลการทดลองตามตารางที่ 14 และตามภาพที่ 102
ตารางที่ 14 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง กล่อง บอล ถัง

ครั้งที่ ระยะทาง (เมตร) ผลการทดสอบระยะทาง สิ่งกีดขวาง ผลการหลบสิ่งกีดขวาง
A B C
1 20 20.02 กล่อง บอล ถัง ผ่าน
2 20 20.04 กล่อง บอล ถัง ผ่าน
3 20 20.03 กล่อง บอล ถัง ผ่าน
4 20 20.02 กล่อง บอล ถัง ผ่าน
5 20 20.03 กล่อง บอล ถัง ผ่าน

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


4.3. การทดสอบการเคลื่อนที่ของหุ่นยนต์ ตามระยะทางที่กำหนด และมีสิ่งกีดขวางเป็น
ถังขนาด 0.3 x 0.4 เมตร กล่องขนาด 0.40 x 0.30 x 0.50เมตร และลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.40 x 0.30 x 0.50 เมตร โดยมีเงื่อนไขการทดสอบทั้งหมด 6 ครั้ง ผลการทดลองตามตารางที่ 15 และตามภาพที่ 103
ตารางที่ 15 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง ถัง กล่อง บอล

ครั้งที่ ระยะทาง (เมตร) ผลการทดสอบระยะทาง สิ่งกีดขวาง ผลการหลบสิ่งกีดขวาง
A B C
1 20 20.02 ถัง กล่อง บอล ผ่าน
2 20 20.04 ถัง กล่อง บอล ผ่าน
3 20 20.02 ถัง กล่อง บอล ผ่าน
4 20 20.03 ถัง กล่อง บอล ผ่าน
5 20 20.00 ถัง กล่อง บอล ผ่าน

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


4.4. การทดสอบการเคลื่อนที่ของหุ่นยนต์ ตามระยะทางที่กำหนด และมีสิ่งกีดขวางเป็น
ถังขนาด 0.3 x 0.4 เมตร กล่องขนาด 0.40 x 0.30 x 0.50เมตร และลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.40 x 0.30 x 0.50 เมตร โดยมีเงื่อนไขการทดสอบทั้งหมด 6 ครั้ง ผลการทดลองตามตารางที่ 16 และตามภาพที่ 104
ตารางที่ 16 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง ถัง บอล กล่อง

ครั้งที่ ระยะทาง (เมตร) ผลการทดสอบระยะทาง สิ่งกีดขวาง ผลการหลบสิ่งกีดขวาง
A B C
1 20 20.06 ถัง บอล กล่อง ผ่าน
2 20 20.03 ถัง บอล กล่อง ผ่าน
3 20 20.04 ถัง บอล กล่อง ผ่าน
4 20 20.02 ถัง บอล กล่อง ผ่าน
5 20 20.03 ถัง บอล กล่อง ผ่าน

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


4.5. การทดสอบการเคลื่อนที่ของหุ่นยนต์ ตามระยะทางที่กำหนด และมีสิ่งกีดขวางเป็น
ถังขนาด 0.3 x 0.4 เมตร กล่องขนาด 0.40 x 0.30 x 0.50เมตร และลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.40 x 0.30 x 0.50 เมตร โดยมีเงื่อนไขการทดสอบทั้งหมด 6 ครั้ง ผลการทดลองตามตารางที่ 17 และตามภาพที่ 105
ตารางที่ 17 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง บอล ถัง กล่อง

ครั้งที่ ระยะทาง (เมตร) ผลการทดสอบระยะทาง สิ่งกีดขวาง ผลการหลบสิ่งกีดขวาง
A B C
1 20 20.03 บอล ถัง กล่อง ผ่าน
2 20 20.02 บอล ถัง กล่อง ผ่าน
3 20 20.06 บอล ถัง กล่อง ผ่าน
4 20 20.01 บอล ถัง กล่อง ผ่าน
5 20 20.03 บอล ถัง กล่อง ผ่าน

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


4.6. การทดสอบการเคลื่อนที่ของหุ่นยนต์ ตามระยะทางที่กำหนด และมีสิ่งกีดขวางเป็น
ถังขนาด 0.3 x 0.4 เมตร กล่องขนาด 0.40 x 0.30 x 0.50เมตร และลูกบอลขนาด 0.2 เมตร ที่วางอยู่บนกล่องขนาด 0.40 x 0.30 x 0.50 เมตร โดยมีเงื่อนไขการทดสอบทั้งหมด 6 ครั้ง ผลการทดลองตามตารางที่ 18 และตามภาพที่ 106
ตารางที่ 18 ผลการการทดสอบการเคลื่อนที่หลบสิ่งกีดขวาง บอล กล่อง ถัง

ครั้งที่ ระยะทาง (เมตร) ผลการทดสอบระยะทาง สิ่งกีดขวาง ผลการหลบสิ่งกีดขวาง
A B C
1 20 20.01 บอล กล่อง ถัง ผ่าน
2 20 20.05 บอล กล่อง ถัง ผ่าน
3 20 20.02 บอล กล่อง ถัง ผ่าน
4 20 19.99 บอล กล่อง ถัง ผ่าน
5 20 19.97 บอล กล่อง ถัง ผ่าน

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

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

  1. การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางตรงโดยไร้สิ่งกีดขวาง ระยะทาง ระยะทาง 1 เมตร ถึง 10 เมตร ตามภาพที่ 107

ภาพที่ 107 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่ทางตรงหุ่นยนต์ โดยไม่มีสิ่งกีดขวางเป็นอุปสรรค
แนวโน้มเชิงบวกแบบเส้นตรง (Linear Positive Trend):
เส้นกราฟแสดงแนวโน้มเชิงเส้นตรงที่มีความชันบวก นั่นหมายถึงเมื่อระยะห่างในกริด (Grid Distance) เพิ่มขึ้น ผลลัพธ์ของการทดลองของการเคลื่อนหุ่นยนต์ตามระยะทางต่าง ๆ
ก็จะเพิ่มขึ้นในอัตราส่วนที่คงที่ซึ่งเป็นลักษณะของความสัมพันธ์แบบเส้นตรง
ความสัมพันธ์เชิงเส้น (Linear Relationship):
เนื่องจากเส้นกราฟมีความตรง และชัดเจน แสดงว่าผลการทดลองมีความสัมพันธ์กับระยะห่างในกริดในลักษณะเชิงเส้น กล่าวคือ เมื่อระยะห่างในกริดเพิ่มขึ้นเป็น 2 เท่า ผลลัพธ์
ของการทดลองที่เกิดจากการเคลื่อนที่ของหุ่นยนต์ ก็จะเพิ่มขึ้นเป็น 2 เท่าเช่นกัน
ความเป็นไปได้ของการคาดการณ์ (Predictability):
จากกราฟนี้สามารถคาดการณ์ผลลัพธ์ของการเคลื่อนที่ของหุ่นยนต์เมื่อได้กำหนด
ช่องระยะกริดเพิ่มขึ้น ระยะทางในการเคลื่อนที่ของหุ่นยนต์จะเพิ่มตามไปด้วย ถ้าหากเราทราบระยะห่างในกริด (Grid Distance) เนื่องจากความสัมพันธ์ระหว่างสองตัวแปรนี้เป็นแบบเส้นตรง
จึงสามารถใช้สมการเชิงเส้นง่าย ๆ ในการทำนายผลลัพธ์ของการเคลื่อนที่ของหุ่นยนต์ที่ระยะห่างในกริดต่าง ๆ ได้
โดยสรุปกราฟนี้แสดงความสัมพันธ์เชิงเส้นที่ชัดเจนระหว่างระยะห่างในกริดกับ
ผลการทดลองคือการเคลื่อนที่ของหุ่นยนต์ ซึ่งอัตราการเพิ่มของผลการเคลื่อนที่ขึ้นอยู่กับ
การเพิ่มของระยะห่างในกริดอย่างชัดเจน ผลลัพธ์นี้สามารถนำไปใช้ในการทำนาย หรือวิเคราะห์เพิ่มเติมเกี่ยวกับปรากฏการณ์ที่เกี่ยวข้องได้

  1. การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางโค้งโดยไร้สิ่งกีดขวาง ระยะทาง 2 เมตร ถึง 10 เมตร ตามภาพที่ 108

ภาพที่ 108 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่ทางโค้งของหุ่นยนต์ โดยไม่มีสิ่งกีดขวางเป็นอุปสรรค
จากภาพที่ 108 เส้นกราฟแสดงความสัมพันธ์ระหว่าง ระยะห่างในกริด (Grid Distance-Channels) บนแกน x x และ ผลลัพธ์ของการทดลองการเคลื่อนที่ของหุ่นยนต์ในเส้นทางโค้ง
(Curved Path Experiment Results-Meters) บนแกน y โดยมีจุดข้อมูลที่เชื่อมต่อกันด้วยเส้นสีเขียว
แนวโน้มเชิงเส้นตรง (Linear Trend):
กราฟแสดงความสัมพันธ์เชิงเส้นตรงแบบบวก ระยะห่างในกริดเพิ่มขึ้น ผลการทดลอง
จากการเคลื่อนที่ของหุ่นยนต์ ก็เพิ่มขึ้นเช่นเดียวกัน ซึ่งบ่งชี้ว่า เมื่อระยะห่างในกริดเพิ่มขึ้นผลลัพธ์ของการทดลองการเคลื่อนที่ที่ระยะทางเพิ่มขึ้นในอัตราส่วนที่คงที่ แนวโน้มนี้แสดงให้เห็นว่าเส้นทางโค้ง (Curved Path) มีลักษณะคล้ายคลึงกับผลการทดลองปกติที่เป็นเส้นตรงเหมือนกัน
ความเป็นไปได้ในการคาดการณ์ (Predictability):
ความสัมพันธ์เชิงเส้นนี้บ่งบอกว่าสามารถทำนายผลลัพธ์ได้ง่าย และแม่นยำ หากทราบ
ค่าระยะห่างในกริดกราฟนี้มีความคล้ายคลึงกับกราฟของการเคลื่อนของหุ่นยนต์ในแนวเส้นตรง โดยสามารชี้ให้เห็นว่าระยะห่างในกริดมีผลต่อการเคลื่อนที่ของหุ่นยนต์ทั้งในแนวเส้นตรง และ
เส้นโค้งนลักษณะที่สามารถทำนายได้ โดยบ่งถึงความสัมพันธ์แบบเชิงเส้นที่ชัดเจนระหว่างระยะห่างในกริด และผลการทดลองบนเส้นทางโค้ง แสดงถึงความสม่ำเสมอของข้อมูล และแนวโน้มที่คงที่

  1. การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางตรงโดยมีสิ่งกีดขวาง ระยะทาง 1 เมตร ถึง 10 เมตร เป็นถัง กล่อง และ ลูกบอล ตามภาพที่ 109 – 111

ภาพที่ 109 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่ทางตรงของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นถัง

ภาพที่ 110 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่ทางตรงของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นกล่อง

ภาพที่ 111 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่ทางตรงของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นลูกบอล

จากภาพที่ 109 -111 เป็นการทดลองเคลื่อนที่ของหุ่นยนต์ในเส้นทางตรงโดยมีสิ่งกีดขวางที่เป็นอุปสรรคที่มีความแตกต่างทางด้านรูปทรงสันฐาน เช่น ทรงกระบอก ทรงเหลี่ยม และทรงกลม จากกราฟทั้ง 3 การทดลองในงานวิจัย จะพบว่าความสัมพันธ์ระหว่างระยะทาง (Distance in meters) กับค่าที่วัดได้ (Measured Value in meters) ในการทดลอง 10 ครั้ง (Trial 1 ถึง Trial 10) พบว่า
มีแนวโน้มที่ชัดเจนว่าเมื่อระยะทางเพิ่มขึ้น ค่าที่วัดได้ก็จะเพิ่มขึ้นตามไปด้วย โดยสิ่งกีดขวาง หรืออุปสรรคไม่มีผลต่อระยะทางที่เกิดขึ้นจริง เพียงแต่หุ่นยนต์จะต้องทำการหลบหลีกไปตามขนาดสันฐานของสิ่งกีดขวาง โดยมีการแสดงผลที่มีความสอดคล้องกันในแต่ละการทดลอง
การวิเคราะห์ความสัมพันธ์
แนวโน้มเชิงบวก: ค่าที่วัดได้มีความสัมพันธ์เชิงบวกกับระยะทางการเคลื่อนที่
ของหุ่นยนต์ ซึ่งแสดงให้เห็นว่ามีการเพิ่มขึ้นตามกัน ทั้งในทุกการทดลอง ซึ่งบ่งชี้ว่าปัจจัยจากจำนวนกริดมีผลต่อระยะทางการเคลื่อนที่ของหุ่นยนต์ แต่สิ่งกีดขวางไม่ได้มีผลต่อผลลัพธ์เหล่านี้เกิดขึ้น
ความสอดคล้องกัน: แต่ละการทดลอง (Trial) มีเส้นแนวโน้มที่ใกล้เคียงกัน
ซึ่งหมายความว่าผลลัพธ์ที่ได้มีความสอดคล้องกัน และแสดงให้เห็นถึงความเชื่อมั่นในข้อมูล
การกระจายข้อมูล: จุดข้อมูลในแต่ละการทดลองกระจายอยู่ใกล้กับเส้นแนวโน้ม
ซึ่งแสดงว่าค่าที่วัดได้มีความแม่นยำ และมีความสามารถในการทำนายได้ดีในทุกระยะทาง

  1. การทดสอบการเคลื่อนที่ของหุ่นยนต์เดินตามระยะทางโค้งโดยมีสิ่งกีดขวาง ระยะทาง 1 เมตร
    ถึง 10 เมตร เป็นถัง กล่อง และ ลูกบอล ตามภาพที่ 112 – 114
    (Corke, 2017; Diegel, Badve, Bright, Potgieter, and Tlale, 2002; Doroftei, Grosu, and Spinu, 2007; Gul, Rahiman, Nazli Alhady, and Chen, 2019; Harapanahalli, Mahony, Hernandez, Campbell, Riordan, and Walsh, 2019; Hart, Nilsson, and Raphael, 1968; Isermann and Munchhof, 2011) (Hendzel and Rykala, 2017; Khatib, 2016; Klancar, Zdesar, Blazic, and Skrjanc, 2017; Siegwart, Nourbakhsh, and Scaramuzza, 2011; Taheri, Qiao, and Ghaeminezhad, 2015)

ภาพที่ 112 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่เส้นทางโค้งของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นถัง

ภาพที่ 113 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่เส้นทางโค้งของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นกล่อง

ภาพที่ 114 แสดงความสัมพันธ์เชิงเส้นระหว่างระยะกริดเทียบกับระยะทางการเคลื่อนที่เส้นทางโค้งของหุ่นยนต์ โดยมีสิ่งกีดขวางเป็นลูกบอล
จากกราฟความสัมพันธ์ระหว่างระยะกริด และผลการทดลองจากค่าเฉลี่ยของการเคลื่อนที่ของหุ่นยนต์ จากการสังเกตพบว่าว่าระยะทางการเคลื่อนที่เฉลี่ยเพิ่มขึ้นตามระยะกริด ซึ่งสอดคล้องกับการคาดหวังตามหลักการที่ว่าเมื่อระยะกริดเพิ่มขึ้น ความยาวของเส้นโค้ง หรือระยะทาง
ก็จะเพิ่มขึ้นเช่นกัน นี่แสดงให้เห็นถึงความสัมพันธ์เชิงบวกระหว่างระยะกริดกับผลการทดลองจากระยะการเคลื่อนที่
นอกจากนี้ ผลการทดลองในแต่ละระยะกริดมีค่าที่ใกล้เคียงกับค่าทางทฤษฎี (เช่น ที่ระยะ
กริด 4 หน่วย ผลการทดลองเฉลี่ยประมาณ 2 เมตร และที่ระยะกริด 20 หน่วย ผลการทดลองเฉลี่ยประมาณ 10 เมตร) ซึ่งแสดงถึงความแม่นยำในการทดลอง สิ่งที่ได้จากกราฟแสดงถึงความสัมพันธ์ระหว่างระยะกริด (Grid Distance) และผลการทดลองเฉลี่ย (Average Experimental Result) หรือระยะเคลื่อนที่เฉลี่ยของหุ่นยนต์ ที่ทำการทดลองโดยมีสิ่งกีดขวางเป็น ถัง หรือกล่อง หรือลูกบอล แสดงให้เห็นถึงแนวโน้มเชิงเส้นที่ชัดเจนถึงการวิเคราะห์ความสัมพันธ์ ดังนี้
ความสัมพันธ์เชิงบวกแบบเส้นตรง: : กราฟนี้แสดงความสัมพันธ์ที่เพิ่มขึ้นเป็นเส้นตรง (linear) เมื่อระยะกริดเพิ่มขึ้นจาก 4 หน่วยถึง 20 หน่วย ผลการทดลองเฉลี่ย หรือระยะการเคลื่อนที่ของหุ่นยนต์เพิ่มขึ้นจากประมาณ 2 เมตรไปจนถึง 10 เมตร แสดงให้เห็นว่าเมื่อระยะ กริดมากขึ้น ระยะทางการเคลื่อนที่ของหุ่นยนต์ที่ได้จากการทดลองก็เพิ่มขึ้นในอัตราส่วนที่คงที่ สิ่งกีดขวาง
ไม่มีผลกระทบต่อความสัมพันธ์: แม้ว่าจะมีสิ่งกีดขวางเป็นกล่องอยู่ แต่ผลการทดลอง
ยังคงมีความสัมพันธ์เชิงบวกอย่างชัดเจน แสดงให้เห็นว่าการมีสิ่งกีดขวางไม่ได้ส่งผลกระทบ
ต่อการวัดผลที่เป็นเชิงเส้นในกรณีนี้
ความสัมพันธ์ที่สมบูรณ์แบบ: การเพิ่มขึ้นของค่าเฉลี่ยในแต่ละช่วงของกริดมีแนวโน้ม
ที่จะเกิดขึ้นในอัตราที่เท่าเทียมกัน ซึ่งแสดงว่ามีความสัมพันธ์เชิงเส้นสมบูรณ์แบบระหว่างตัวแปรทั้งสอง
ผลลัพธ์ที่สอดคล้องกัน: การกระจายตัวของข้อมูลอยู่บนเส้นตรงทั้งหมด แสดงให้เห็นถึงความแม่นยำ และเสถียรภาพของผลการทดลอง เนื่องจากไม่มีค่าที่เบี่ยงเบนจากแนวโน้มเส้นตรง
ที่ชัดเจน
จากผลการทดลองที่วิเคาระห์จากกราฟ แสดงความสัมพันธ์เชิงบวกที่ชัดเจน และ
เป็นเส้นตรงระหว่างระยะกริด และผลการทดลองเฉลี่ย หรือระยะการเคลื่อนที่ของหุ่นยนต์
ได้แสดงถึงสิ่งกีดขวางไม่ได้ส่งผลกระทบมากนักต่อผลลัพธ์ หรือการเคลื่อนที่ของหุ่นต่อระยะกริด ดังแสดงได้จากความสัมพันธ์เชิงบวกที่ชัดเจนระหว่างระยะกริด และผลการทดลองเฉลี่ย
สำหรับการเปรียบเทียบระหว่างผลการทดลองในแต่ล่ะเงื่อนไข ถ้าต้องการวิเคราะห์
ในเชิงลึกมากขึ้น สามารถเปรียบเทียบค่าที่วัดได้ในแต่ละระยะทางของแต่ละการทดลองเพื่อดูว่า
มีการเบี่ยงเบนมากน้อยเพียงใด สำหรับการศึกษาเพิ่มเติมอาจรวมถึงการวิเคราะห์เชิงสถิติ เช่น
การคำนวณความสัมพันธ์ (correlation coefficient) เพื่อวัดความสัมพันธ์ระหว่างตัวแปรอย่างชัดเจน รวมถึงควรพิจารณาสาเหตุที่อาจส่งผลต่อค่าที่วัดได้ในแต่ละการทดลอง เช่น อุปกรณ์ที่ใช้ หรือสภาวะแวดล้อม

สรุปผลการวิจัย และข้อเสนอแนะ
การพัฒนาระบบหลบสิ่งกีดขวางสำหรับรถขนย้ายวัสดุ ที่นำเสนอในโครงการนี้มีจุดเด่นทางด้านเทคนิคหลายประการคือ

  1. การพัฒนาโดยสร้างแบบจำลองหุ่นยนต์โดยใช้ระบบควบคุมพื้นฐาน (Controller)
    ที่หาได้ทั่วไป รวมกับเซ็นเซอร์ และอุปกรณ์ตรวจจับ บนระบบปฏิบัติการหุ่นยนต์ 2 ซึ่งสามารถ
    ลดต้นทุนเมื่อเทียบกับการสั่งซื้อ รถขนส่งภายในสายการผลิตจากต่างประเทศ
  2. การหาโมเดลสำหรับแบบจำลองหุ่นยนต์โดยใช้ล้อออมนิแมคคานัมในงานวิจัยนี้
    ถือได้ว่าเป็นการพัฒนารถขนส่งวัสดุที่แตกต่างจากรถขนส่งวัสดุที่ใช้ในปัจจุบัน เช่น 2 ล้อ 4 ล้อ
    แต่จากการพัฒนาด้วยล้อแบบออมนิแมคคานัมจะพบว่าลักษณะการขับเคลื่อนได้หลายทิศทาง
    ซึ่งจะเป็นการลดพื้นที่ในการบังคับเลี้ยวทำให้สามารถทำงานในพื้นที่จำกัดได้ดีกว่า
  3. การพัฒนาระบบควบคุมโดยระบบขับเคลื่อนหุ่นยนต์ 2 สามารถนำไปพัฒนาต่อยอดรวมกับอุปกรณ์เชื่อมต่ออื่น ๆ เพื่อเพิ่มขีดความสามารถสำหรับรถขนส่ง รวมถึงการนำไปเป็นพื้นฐานการพัฒนาในระบบอัตโนมัติสำหรับสายการผลิตเช่น การพัฒนาหุ่นยนต์ 6 แกน การพัฒนาระบบการตรวจสอบด้วยกล้อง เป็นต้น
  4. การออกโปรแกรมคอมพิวเตอร์ด้วยภาษาไพธอน สำหรัระบบควบคุมรวมกับอุปกรณ์ และเซ็นเซอร์ โดยถูกเขียนขึ้นโดยคณะผู้วิจัย ทำให้ได้รับความรู้ ประสบการณ์ ความเข้าใจ และสามารถปรับปรุงเพิ่มประสิทธิภาพความสามารถของระบบได้อย่างต่อเนื่อง และยั่งยืน รวมถึงสามารถให้ผู้ที่มีความสนใจนำไปพัฒนาติอได้
    อย่างไรก็ดีงานวิจัยนี้ยังมีจุดอ่อนที่สามารถปรับปรุงได้ และเป็นข้อเสนอแนะเกี่ยวกับ
    การวิจัยในขั้นต่อไปดังนี้
  5. สำหรับฮาร์ดแวร์ระบบควบคุมที่เลือกใช้ยังคงมีข้อจำกัดในการพัฒนา รวมถึง
    ราคายังค่อนข้างสูง ซึ่งในการใช้งานอย่างต่อเนื่องได้ค่อนข้างดีแต่พบว่ามีการทำงานที่ล่าช้า และ
    พบความผิดปกติอยู่บ้าง แต่พบว่ามีความผิดปกติไม่บ่อยนัก
  6. หุ่นยนต์ที่ใช้ในงานวิจัยยังถือว่าเป็นโมเดลสำหรับการทดลอง ในกรณีที่ต้องการพัฒนาเพื่อนำมาใช้อย่างจริงจัง จะต้องมีการขยายขนาดของตัวรถให้เหมาะสมกับสภาพการทำงาน และต้องมีการปรับขนาดของล้อให้เหมาะกับการรับน้ำหนักวัสดุที่ใช้ขนย้าย รวมถึงอุปกรณ์อื่น ๆ เช่นระบบการยก ระบบการลาก เป็นต้น
  7. ในการต่อยอดงานวิจัย ผู้ที่จะนำไปพัฒนาต่อสามารถเพิ่มอุปกรณ์เพื่อยกระดับ
    ขีดความสามารถขีดความสามารถรถขนส่งให้ดียิ่งขึ้น เช่นการติดตั้งกล้องเพื่อนำภาพที่เป็น
    เรียวไทม์มาช่วยประมวลผล การติดตั้ง UWB เพื่อช่วยในกรณีที่เกิดปัญหาหลุดการควบคุมจาก
    แผนที่ รวมถึงการพัฒนา Path Planning และ Traffic Control เพื่อในระบบการควบคุมสามารถ
    มีรถขนส่งได้มากกว่าหนึ่งคัน
    ประโยชน์ในทางประยุกต์ของผลงานวิจัยที่ได้มีดังนี้
  8. บุคลากรมีความสนใจ และตื่นตัวเรื่องการนำเทคโนโลยีสมัยใหม่เข้ามาช่วย
    ในการลดต้นทุน ลดคการใช้แรงงาน และความแม่นยำในการขนถ่ายวัสดุระหว่างเครื่องจักร ระหว่างพื้นที่จัดเก็บกับพื้นที่การผลิต เพื่อเพิ่มประสิทธิภาพเป็นอย่างดี
  9. คณะผู้วิจัยได้รับประสบการณ์ และเรียนรู้จากการทำโครงการนี้อย่างมาก พร้อมที่จะนำไปขยายผลกับพาการพัฒนาอื่น ๆ อาทิเช่น เครื่องจักร หุ่นยนต์ ระบบอัตโนมัติ และระบบ
    การตรวจสอบ ซึ่งในปัจจุบันสายการผลิตในประเทศไทยที่อยู่ในสภาวะการแข่งขันทางด้านต้นทุน การขาดแคลนแรงงาน จึงต้องมีการปรับปรุงสายการผลิตโดยเน้นให้ระบบมีความกระชับ
    ใช้งานง่ายมากขึ้น เพื่อการที่เป็นวงกว้างขึ้น สามารถขยายผลได้อย่างรวดเร็ว

เอกสารและสิ่งอ้างอิง

เอกสารและสิ่งอ้างอิง

ประวัติการศึกษา และการทำงาน

ประวัติการศึกษา และการทำงาน

ชื่อ-นามสกุล สุรชัย ชัยณรงค์
วัน เดือน ปี เกิด 06 พฤษภาคม 2516
สถานที่เกิด สมุทรปราการ
ที่อยู่ปัจจุบัน 9/86 หมู่บ้านพนไพลินธรธารา ซอย 10(โรงงานหลอดไฟ) ถนน สุขุมวิท ตำบล ปากน้ำ อำเภอ เมืองฯ จังหวัด สมุทรปราการ 10270
ประวัติการศึกษา ปริญญาตรี วิศวกรรมศาสตร์ สาขาวิศวกรรมไฟฟ้าควบคุม มหาวิทยาลัย สยาม
ปริญญาโท บริหารธุรกิจ มหาวิทยาลัย บูรพา
ประสบการณ์การทำงาน กรรมการผู้จัดการ SNC Cooling Supply Company Limited

Corke, P. (2017). “Robotics, Vision and Control.” In Springer Tracts in Advanced Robotics, B. Siciliano & O. Khatib, (Eds.). Switzerland: Springer.
Diegel, O., Badve, A., Bright, G., Potgieter, J., & Tlale, S. (2002). “Improved Mecanum Wheel Design for Omni-directional Robots.” Proc. 2002 Australasian Conference on Robotics and Automation, Auckland, 27-29 November.
Doroftei, I., Grosu, V., & Spinu, V. (2007). “Omnidirectional Mobile Robot – Design and Implementation, Bioinspiration and Robotics Walking and Climbing Robots.” In Bioinspiration and Robotics Walking and Climbing Robots, M. K. Habib, (Eds.). Australia: I-Tech Education and Publishing.
Gul, F., Rahiman, W., Nazli Alhady, S. S., & Chen, K. (2019). “A comprehensive study for robot navigation techniques.” Cogent Engineering. 6(1): 1-25.
Harapanahalli, S., Mahony, N. O., Hernandez, G. V., Campbell, S., Riordan, D., & Walsh, J. (2019). “Autonomous Navigation of mobile robots in factory environment.” Procedia Manufacturing. 38: 1524-1531.
Hart, P., Nilsson, N., & Raphael, B. (1968). “A Formal Basis for the Heuristic Determination of Minimum Cost Paths.” IEEE Trans Syst Sci and Cybernetics. 4(2): 100-107.
Hendzel, Z., & Rykala, L. (2017). “Modelling of Dynamics of a Wheeled Mobile Robot with Mecanum Wheels with the use of Lagrange Equations of the Second Kind.” International Journal of Applied Mechanics and Engineering. 22(1): 81-99.
Isermann, R., & Munchhof, M. (2011). dentification of Dynamic Systems: An Introduction with Applications. Switzerland: Springer.
Khatib, S. (2016). Handbook of Robotics. Switzerland: Springer.
Klancar, G., Zdesar, A., Blazic, S., & Skrjanc, I. (2017). Wheeled mobile robotics: from fundamentals towards autonomous systems. Oxford: Butterworth-Heinemann.
Siegwart, R., Nourbakhsh, I. R., & Scaramuzza, D. (2011). Introduction to Autonomous Mobile Robots. (2nd edition). MA: MIT Press.
Taheri, H., Qiao, B., & Ghaeminezhad, N. (2015). “Kinematic Model of a four Mecanum Wheel Mobile Robot.” International Journal of Computer Applications. 113(3): 6-9.

Related Posts

Create Account



Log In Your Account