FRA641 Class project :Solved Maze

Project : Solved Maze Objective 1. เรียนรู้วิธีวิเคราะห์ปัญหาอย่างเป็นระบบเพื่อให้อัลกอริทึมได้รับมาเพื่อแก้ปัญหา   2.เรียนรู้เกี่ยวกับการใช้อัลกอริธึมดังกล่าวเพื่อแก้ปัญหาจริง   3.เรียนรู้เกี่ยวกับแอปพลิเคชันของอัลกอริทึมดังกล่าวเพื่อเริ่มต้นกับโลกของอัลกอริทึมหุ่นยนต์ ปัญญาประดิษฐ์ และอื่นๆ  ขอบเขตของงาน Algorithm ที่ใช้ 1.การรับรู้ของโปรแกรม : เริ่มจากการทำแผนที่สำหรับการสร้างเป็นตำแหน่งอ้างอิงให้กับ algorithm เพื่อให้ตัว algorithm สามารถเข้าใจได้ว่าตัวเองกำลังทำอะไรอยู่ มันจะต้องเข้าใจถึงตำแหน่งที่อยู่ จุดที่อยู่ เส้นที่อยู่ และ box ที่อยู่ ซึ่งกำหนดเป็น Ai,j ตามรูปด้านล่าง ผลลัพธ์การเดินทางครั้งแรก 2. BFS หรือ Breadth-First Search …

Exploring Maze Environments: A LiDAR robot Autonomous Mapping Algorithm

วางแผนการทำงานร่วมกันกับส่วนอื่นๆ ในส่วนของวงกลม 3 ตัว จะเป็นตัวแทนของ algorithm ที่จะมีส่วนสำคัญในการทำการสำรวจแผนที่ 1.LidarDetect 2.ExploringMaze 3.Control สำหรับส่วนที่รับผิดชอบจะเป็น 2. ExploringMaze ซึ่งจะเป้นตัวที่ทำหน้าที่ในการสำรวจพื้นที่ของ maze โดยมีเงื่อนไขคือต้องสำรวจให้ครบทุก Box และต้องสามารถเขียนข้อมูลลงไฟล์ csv ได้เพื่อรอ ส่วนสุดท้ายนำข้อมูลไปใช้ คือส่วนของการ solve maze โดยข้อมูลที่ต้องการคือ “(i,j)”,E,W,N,S ในส่วนของการออกแบบ algorithm สำหรับการสำรวจแผนที่ code สำหรับการทำแผนที่ทั้งหมดจะเขียนอยู่ใน class build_map(): 2. ส่วนที่ …

Communication between ESP32 and HTTP

การสื่อสารระหว่างเครื่องมือประมวลผลPython(PC) กับไมโครคอนโทรลเลอร์(ESP32) ได้ใช้ Python เพื่อส่งคำสั่งไปยัง ESP32 ผ่าน HTTP ภาพรวมของโค้ดสคริปต์ Python ไปยัง ESP32 ที่ทำหน้าที่เป็นเซิร์ฟเวอร์ HTTP. คำสั่งเหล่านี้ควบคุมการทำงานของ ESP32, ตั้งแต่การเคลื่อนที่ forward cw ccw และ stop การตั้งค่าและการเชื่อมต่อการตั้งค่า ESP32 สำหรับโปรเจ็กต์นี้ประกอบด้วยการกำหนด IP คือ 192.168.4.1 และ port คือ 80 ที่ ESP32 จะรอการเชื่อมต่อเครือข่ายทำให้ …

Find the exit of the maze. (Search)

จัดทำโดย นายวชิรเมษฐ์ กุลธนาเรืองนนท์ 66340700405 เริ่มจากการศึกษาวิธีหาทางออกจากเขาวงกต โดยได้ศึกษามา 2 วิธีคือ 1.BFS หรือ Breadth-First Search (การค้นหาแบบกว้าง) เป็นอัลกอริทึมที่ใช้ในการค้นหาข้อมูลหรือกราฟ โดยการท่องไปทางระดับแรกของกราฟก่อน จากนั้นท่องไปทางระดับถัดไป โดยมีการท่องในทุกๆ โหนดที่อยู่ในระดับปัจจุบันก่อนที่จะขยับไปยังระดับถัดไป อัลกอริทึมนี้มักถูกใช้ในการหาทางที่สั้นที่สุด (Shortest Path) ในกราฟ หรือในการค้นหาข้อมูลในโครงสร้างข้อมูลแบบกราฟ. ขั้นตอนการทำงานของ BFS ได้แก่: 1. เริ่มต้นที่โหนดเริ่มต้น (start node) และทำเครื่องหมายว่าโหนดนั้นถูกเยือนแล้ว. 2. ท่องไปยังโหนดลูกทุกตัวของโหนดปัจจุบัน (ถ้ามี) และทำเครื่องหมายว่าลูกของโหนดนั้นถูกเยือน. …

Control the direction of a lidar-bot with MPU6050

การสื่อสารระหว่าง lidar-bot(ESP32) กับ MPU6050(IMU) การสื่อสารระหว่าง IMU และ ESP32 ใช้โปรโตคอล I2C โปรโตคอลนี้ใช้สองสายสำหรับการสื่อสาร, SCL (clock) และ SDA (data) การกำหนดทิศทางและผลลัพธ์ที่ได้จากการอ่านค่า IMU ค่าที่ได้จาก IMU ทางทิศ North มีค่าโดยประมาณ -176 Deg ทางทิศ South มีค่าโดยประมาณ 0 Deg ทางทิศ West มีค่าโดยประมาณ -85 Deg …

Class project Solved Maze

ทำการศึกษาภาพรวมของหุ่นเพื่อที่จะนำมาทำให้สำเร็จตามวัตถุประสงค์ ซึ่งวัตถุประสงค์คือ เราจะมีการทำให้หุ่นยนต์ขับเคลื่อนเพื่อหาทางออกจากเขาวงกตโดยจะมีกระบวนการคิดว่าทางไหนคือทางออกและต้องวิ่ง 2 รอบเพื่อรอบแรกจะเป็นการเก็บแผนที่และรอบที่สองจะเป็นการวิ่งเพื่อหาทางออก เพื่อตัดสินใจว่าทางนี้คือทางที่ดีที่สุด และมีการสร้างแผนที่แบบเรียลไทม์แสดงพื้นที่ของเขาวงกตทั้งหมดและยังแสดงตำแหน่งของรถอย่างเรียลไทม์ ขอบเขตของงานนี้ ขนาดพื้นที่ของ 30 * 30 cm และ มีการคงทางเข้าและทางออกไว้แต่จะสามารถแก้ไขบล็อคภายในได้ Parameter ของ M5stack_LidarBot v1 ระยะของ Lidar ระยะระหว่างกำแพงขนาด 30*30cm ในกรณีทางตรง กรณีที่เจอในสนาม

เริ่มใช้งาน lidar-bot ด้วย Arduino IDE

LidarBot เลือก DOCUMENT –> Platform “Arduino” หรือ กด link Arduino Development Environment Setup  (ทำขั้นตอนที่ 1-4) เริ่มการติดตั้ง M5Stack บน Arduino IDE เปิดโปรแกรม Arduino IDE เข้าไปที่ File –> Preferences->Settings นำ link ไปวางใน Additional Development Board Management URLs:https://static-cdn.m5stack.com/resource/arduino/package_m5stack_index.json …

Camera Calibration For Robodog GO1 due

ขนาดภาพจากกล้อง Robodog GO1 due Width 464 Height 400 pixels ArUco Marker Tracking For Robodog GO1 due วิดีโอการทำงานของ Robodog GO1 due ติดตาม ArUco Marker Tracking จากวิดีโอ ได้ทำการ set ค่าโปรแกรมให้ Robodog GO1 due ติดตาม ArUco Marker ที่ระยะ …

ArUco Marker Tracking (Part 2)

Camera Calibration เป็นกระบวนการที่ใช้ในการปรับแก้พารามิเตอร์ของกล้องเพื่อให้ระบบการถ่ายภาพนั้นมีความแม่นยำที่สูงสุด ระบบถ่ายภาพจะมีความแม่นยำในการแปลงจุดในโลก 3 มิติเป็นจุดในภาพ 2 มิติ เมื่อมีข้อมูลพื้นฐานเกี่ยวกับกล้อง เช่น ค่าโฟกัส (focal length) จุดกึ่งกลางทางแสง (optical center) และค่าสิ่งกีดขวางเลนส์ (distortion coefficients) ที่ถูกใช้แก้ไขความผิดพลาดที่เกิดจากเลนส์ของกล้อง เมื่อได้ค่า cameraMatrix และ distCoeffs ที่ได้จากกระบวนการ camera calibration มีความสำคัญในการทำ ArUco Marker Tracking หรือการติดตาม ArUco Markers ด้วยกล้อง …