# Appendix B: การติดตั้งและตั้งค่า Ubuntu 24.04 (Setup Environment) ในบทเรียนนี้ เราจะใช้ระบบปฏิบัติการ **Ubuntu 24.04 LTS (Noble Numbat)** ซึ่งเป็นเวอร์ชันที่รองรับ **ROS2 Jazzy** อย่างเป็นทางการ เนื่องจากผู้เรียนมีคอมพิวเตอร์ที่หลากหลาย การติดตั้งผ่าน **VMware Workstation Pro** จึงเป็นวิธีที่ปลอดภัยและจัดการง่ายที่สุด ## การตรวจสอบสเปคคอมพิวเตอร์ (Check Host Specs) ก่อนจะสร้างหุ่นยนต์จำลอง เราต้องรู้ขีดจำกัดของคอมพิวเตอร์เราก่อน เพื่อจะได้แบ่งทรัพยากร (RAM/CPU) ให้กับ VM ได้อย่างเหมาะสม **วิธีตรวจสอบ:** 1. บน Windows ให้คลิกขวาที่ Taskbar ด้านล่าง แล้วเลือก **Task Manager** 2. คลิกที่แท็บ **Performance** 3. จดค่าข้อมูลดังต่อไปนี้: * **CPU:** ดูจำนวน Cores และ Logical processors (Threads) * **Memory (RAM):** ดูขนาด Memory ทั้งหมด (เช่น 8GB, 16GB) **ตารางแนะนำสเปคสำหรับคอร์สนี้ (System Requirements)** | Spec | Minimum (ขั้นต่ำ) | Recommended (แนะนำ) | หมายเหตุ | | :--- | :--- | :--- | :--- | | **Host RAM** | 8 GB | 16 GB ขึ้นไป | ถ้าน้อยกว่า 8GB จะรัน Simulation ไม่ไหว | | **Host CPU** | 4 Threads | 8 Threads ขึ้นไป | i5 Gen 8 ขึ้นไป หรือ Ryzen 5 | | **Free Disk** | 30 GB | 50 GB | แนะนำ SSD เท่านั้น (HDD จะช้ามาก) | ```{note} **หลักการแบ่งทรัพยากร:** ห้ามแบ่ง RAM ให้ VM เกิน 50-60% ของเครื่องจริง ไม่อย่างนั้น Windows จะค้าง เช่น ถ้าเครื่องมี 8GB ให้แบ่งเข้า VM แค่ 4GB ``` ## การดาวน์โหลด Ubuntu ISO 1. เข้าไปที่เว็บไซต์ทางการ: [ubuntu.com/download/desktop](https://ubuntu.com/download/desktop) 2. เลือกเวอร์ชัน **Ubuntu 24.04 LTS** 3. กดดาวน์โหลด ไฟล์จะมีขนาดประมาณ 4-5 GB (นามสกุล `.iso`) ## การสร้าง Virtual Machine เมื่อได้ไฟล์ ISO และโปรแกรม VMware (จาก Appendix A) แล้ว ให้เริ่มสร้างเครื่องจำลองดังนี้: 1. เปิด VMware Workstation Pro คลิก **Create a New Virtual Machine** 2. เลือก **Typical (recommended)** -> Next 3. เลือก **Installer disc image file (iso)** -> กด Browse เลือกไฟล์ Ubuntu ที่โหลดมา -> Next 4. **Easy Install Information (ตั้งค่าบัญชี):** * **Full name:** (ใส่ชื่อของคุณ) * **User name:** `batly` (หรือชื่อสั้นๆ พิมพ์เล็ก ห้ามมีช่องว่าง) * **Password:** `1234` (แนะนำให้ตั้งง่ายๆ ชั่วคราว เพื่อความสะดวกในการเรียน) * **Confirm:** `1234` 5. **Name the Virtual Machine:** ตั้งชื่อว่า `Batly_ROS2_Lab` -> Next 6. **Disk Capacity (ขนาดฮาร์ดดิสก์):** * **Maximum disk size:** ใส่ `40` หรือ `50` GB (แนะนำเผื่อไว้) * เลือก **Split virtual disk into multiple files** (แนะนำ: ย้ายไฟล์ไปเครื่องอื่นง่ายกว่า) * *หรือ* เลือก **Store virtual disk as a single file** (ประสิทธิภาพดีกว่าเล็กน้อย แต่ย้ายยาก) 7. **Ready to Create:** **อย่าเพิ่งกด Finish!** ให้กดปุ่ม **Customize Hardware...** ### การปรับแต่งฮาร์ดแวร์ (Customize Hardware) หน้าต่างนี้สำคัญที่สุด ให้ปรับตามสเปคเครื่องของคุณ (จากข้อ B.1): * **Memory (RAM):** * เครื่อง 8GB -> ปรับเป็น **4096 MB** (4GB) * เครื่อง 16GB -> ปรับเป็น **8192 MB** (8GB) * **Processors (CPU):** * Number of processors: 1 * Number of cores per processor: **2** หรือ **4** (ตามความแรงเครื่อง อย่าให้เกินเครื่องจริง) * **Display (กราฟิก):** * ติ๊กถูกที่ **Accelerate 3D graphics** (สำคัญมากสำหรับโปรแกรม Rviz/Gazebo) * Graphics memory: แนะนำ 2GB หรือ 3GB กด **Close** และ **Finish** เพื่อเริ่มติดตั้ง Ubuntu (ระบบจะติดตั้งให้อัตโนมัติ รอประมาณ 15-20 นาที) ## การตั้งค่าเครือข่าย (Network Configuration) ในการใช้งานหุ่นยนต์ เราจะมีการเชื่อมต่อ 2 รูปแบบ ### NAT (ใช้งานทั่วไป) ค่าเริ่มต้นจะเป็น **NAT**. VM จะใช้อินเทอร์เน็ตผ่าน Windows ได้เลย แต่คนภายนอกจะมองไม่เห็น VM * **เหมาะสำหรับ:** การโหลดโปรแกรม (`sudo apt install`), อัปเดตระบบ ### Bridge Mode (ใช้งานกับหุ่นยนต์จริง) เมื่อต้องการเชื่อมต่อกับบอร์ด Microcontroller หรือหุ่นยนต์ผ่าน WiFi เราต้องทำให้ VM เปรียบเสมือนคอมพิวเตอร์อีกเครื่องในวงแลนเดียวกัน **ขั้นตอนการทำ Bridge ไปที่ WiFi (ทำเมื่อจำเป็น):** 1. ใน VMware ไปที่เมนู **Edit** -> **Virtual Network Editor...** (ต้องใช้สิทธิ์ Admin) 2. คลิก **Change Settings** (มุมขวาล่าง) อนุญาตสิทธิ์ Admin 3. ดูที่รายการ **VMnet0** (Type: Bridged) 4. ตรง **Bridged to:** อย่าเลือก *Automatic* ให้เลือกชื่อ **WiFi Adapter** ของคุณโดยตรง * *Keyword ที่ต้องหา:* มองหาคำว่า `Wireless`, `Wi-Fi`, `Intel`, `Realtek`, หรือ `Qualcomm` 5. กด **OK** 6. กลับมาที่หน้าหลัก VMware คลิกขวาที่ชื่อ VM -> **Settings** 7. ไปที่ **Network Adapter** 8. เลือก **Custom: Specific virtual network** -> เลือก **VMnet0 (Bridged)** ## การจัดการ Firewall และปัญหาการเชื่อมต่อ ปัญหาที่พบบ่อยที่สุดเมื่อใช้งานโหมด **Bridge** คือคอมพิวเตอร์มองเห็นกัน (Ping เจอ) แต่ **ROS2 มองไม่เห็นกัน** (`ros2 topic list` ไม่ขึ้น) สาเหตุหลักมักเกิดจากระบบรักษาความปลอดภัยของ Windows ### การตั้งค่า Windows Firewall (เครื่อง Host) Windows Defender Firewall มักจะบล็อกข้อมูลที่ส่งมาจาก Ubuntu ใน VM เพราะมองว่าเป็น Traffic แปลกปลอม **วิธีแก้ปัญหาเบื้องต้น (เมื่อเชื่อมต่อไม่ได้):** 1. ที่ช่องค้นหาของ Windows พิมพ์ว่า **"Windows Defender Firewall"** แล้วกดเปิด 2. เมนูด้านซ้าย เลือก **"Turn Windows Defender Firewall on or off"** 3. เลือกติ๊ก **Turn off Windows Defender Firewall** ทั้งในส่วนของ **Private network settings** และ **Public network settings** 4. กด **OK** ```{warning} **ข้อควรระวัง:** การปิด Firewall จะทำให้เครื่องมีความเสี่ยง ควรทำเฉพาะตอนที่เชื่อมต่อกับหุ่นยนต์ในวงแลนที่เชื่อถือได้เท่านั้น และควร **Turn On** กลับคืนเมื่อใช้งานเสร็จ ``` ### การตั้งค่า Ubuntu Firewall (เครื่อง Guest) ในบางกรณี Firewall ภายในตัว Ubuntu เอง (ufw) ก็อาจบล็อกการเชื่อมต่อได้เช่นกัน **คำสั่งตรวจสอบและปิด Firewall:** เปิด Terminal ใน Ubuntu แล้วพิมพ์: ```{code-block} bash # Check firewall status sudo ufw status # Disable firewall (Recommended for testing) sudo ufw disable ``` เมื่อใช้งานเสร็จ สามารถเปิดคืนได้ด้วยคำสั่ง `sudo ufw enable`