เรื่องนี้เคยตีพิมพ์ครั้งแรกที่ platis.solutions/blog

เมื่อ AVR จับมือกับ AR ก็ได้กำเนิดเจ้ารถเข็นอัตโนมัติตัวนี้ขึ้นมา จนได้ไปโชว์ตัวให้ท่านนายกรัฐมนตรีจีน หลี่ เค่อเฉียง ชมในงานสัปดาห์นวัตกรรมและธุรกิจเริ่มต้น 2016 ที่เซินเจิ้น!
ระหว่างวันที่ 8 ถึง 12 ตุลาคม พี่บินไปเซินเจิ้นเพื่อร่วมแฮกกาธอนที่จัดโดยเลอโนโว ซึ่งเน้นไปที่การใช้เทคโนโลยี AR (Augmented Reality) สุดล้ำของกูเกิลอย่าง Project Tango ที่ถูกนำมาใช้ในสมาร์ทโฟนรุ่นล่าสุดของยักษ์ใหญ่จีนอย่าง Phab 2 Pro โปรเจกต์ที่ทีมพี่กับเพื่อนพัฒนาขึ้นระหว่างอยู่ที่นั่น ก็คือเจ้า รถเข็นอัตโนมัติ นี่แหละ ซึ่งมันถูกเลือกให้ไปโชว์ให้รองผู้นำจีนอย่างหลี่ เค่อเฉียง ชมด้วย เอาล่ะ เริ่มเล่าให้ฟังตั้งแต่ต้นเลยดีกว่า
เกือบปีที่แล้ว หลังจากความสำเร็จของ World’s first Android Autonomous Vehicle พี่ก็ได้รับการติดต่อจากผู้จัดการโปรแกรมของกูเกิลที่ดูแล Project Tango ซาราห์ คอบบ์ ซึ่งเสนอให้ทีมพี่ยืมแท็บเล็ตที่รองรับ Tango มาสองเครื่อง เพื่อเพิ่มความสามารถให้รถอัตโนมัติของพวกเราด้วยฟีเจอร์ AR สุดเจ๋งที่เทคโนโลยีของกูเกิลมีให้
พูดให้ชัดคือ อุปกรณ์มือถือที่ใช้ Project Tango จะมาพร้อมกับฮาร์ดแวร์และซอฟต์แวร์ ซึ่งเปิดให้ใช้งานผ่าน API ที่ใช้ง่าย ทำให้อุปกรณ์สามารถรับรู้สภาพแวดล้อมรอบตัวและระบุตำแหน่งของตัวเองในพื้นที่สามมิติได้ ฟังก์ชันหลักของ Project Tango สามารถสรุปได้จากสาม แนวคิด:
- Motion Tracking
- Area Learning
- Depth Perception.
มีโปรเจกต์มากมายที่ใช้เทคโนโลยีนี้ รวมถึงหนึ่งในนั้นโดย NASA และแอปพลิเคชัน (ส่วนใหญ่เป็นเกม) หลายตัวก็ได้ถูก เผยแพร่แล้ว
สมาชิกบางคนในทีมที่อยู่เบื้องหลัง Android Autonomous Vehicle เห็นศักยภาพมหาศาลของเทคโนโลยีนี้ จึงร่วมกันก่อตั้งสตาร์ทอัพกับสมาชิกจากสวีเดนและจีน ชื่อว่า Golden Ridge, โดยมีเป้าหมายเพื่อมอบ หุ่นยนต์แห่งอนาคตให้ทุกคนเข้าถึงได้! Golden Ridge Robotics มุ่งหวังที่จะทำให้ AR เป็นที่นิยม และผ่านมันไปเปลี่ยนแปลงชีวิตของผู้คนทั่วไป โดยให้พวกเขาได้มีโอกาสเก็บเกี่ยวผลประโยชน์จากความก้าวหน้าทางเทคโนโลยีล่าสุด ด้วยต้นทุนที่จับต้องได้ ผ่านการนำอุปกรณ์มือถือที่มีอยู่แล้วกลับมาใช้ใหม่

ปลายเดือนกันยายน ซีอีโอของ Golden Ridge และเพื่อนร่วมชั้น Jiaxin Li, โทรมาหาพี่และพูดด้วยน้ำเสียงตื่นเต้นสุดๆ เกี่ยวกับโอกาสที่พลาดไม่ได้ เลอโนโวกำลังจะจัดแฮกกาธอนที่เซินเจิ้น และไอเดียที่เขาส่งไปไม่เพียงแต่ได้รับการอนุมัติ แต่ยังถูกเลือกให้ไปนำเสนอต่อท่านนายกรัฐมนตรีจีน หลี่ เค่อเฉียง ที่กำลังจะมาเยี่ยมชมนิทรรศการซึ่งแฮกกาธอนเป็นส่วนหนึ่งของงานนั้น แน่นอนว่านี่จะเกิดขึ้นได้ก็ต่อเมื่อเราสามารถส่งมอบต้นแบบที่พอใช้ได้ภายในวันที่ 12 ตุลาคม

ไอเดียสุดล้ำของ Jiaxin ก็คือ รถเข็นไฟฟ้าอัตโนมัติ ที่ใช้อุปกรณ์ Project Tango ในการเรียนรู้พื้นที่และนำทางผ่านมันได้ แถมยังใช้ Computer Vision และ Machine Learning ในการตีความวัตถุและผู้คนรอบข้าง เพื่อนำทางได้อย่างปลอดภัยและมีประสิทธิภาพมากขึ้นอีกด้วย ของแบบนี้มันช่วยยกระดับคุณภาพชีวิตของผู้คนได้อย่างมหาศาลเลยนะตัว!

เพราะมันใช้สมาร์ทโฟนราคาไม่แพงและแอปพลิเคชัน Android เป็นพื้นฐาน ราคาของมันจึงถูกกว่าวิธีการอื่นๆ ในตลาดอยู่หลายเท่าตัวเลยทีเดียว ลองจินตนาการดูสิว่า ถ้ามีรถเข็นที่เราสามารถ "สั่ง" ให้มันไปยังจุดต่างๆ ภายในบ้านได้ แค่ผ่านการแตะหน้าจอมือถือไม่กี่ครั้ง! Jiaxin เคยรวมทีมกับนักเรียนและนักวิจัยสุดเก่งจากจีนมาก่อนแล้ว (Yin Jiao, Sifan Lu, Dapeng Liu, Yifeng Huang, Dong Dong, Chen Liang, Junfeng Wu, Liu Yang) แต่ก็ยังอยากได้ความรู้ด้าน Embedded ของผมไปช่วยเสริม โอกาสที่จะได้สร้างอะไรที่เปลี่ยนโลกและได้พบกับนายกรัฐมนตรีจีนนี่มันดีเกินกว่าจะปล่อยผ่าน ผมเลยขอลางานไม่กี่วัน และก่อนจะรู้ตัว ผมก็ได้วีซ่า 5 วันชั่วคราวเพื่อไปเซินเจิ้นแล้ว ผ่านด่านลั่วฮูที่กั้นระหว่างฮ่องกงกับจีนแผ่นดินใหญ่!


การลงมือทำจริง: SLAM และการนำทางที่แม่นยำ
โปรเจกต์นี้เผยให้เห็นเลเยอร์ที่ซ่อนอยู่เบื้องหลังการทำงานง่ายๆ อย่างการเคลื่อนที่ไปยังตำแหน่งที่กำหนด หัวใจของระบบคือกระบวนการ Simultaneous Localization and Mapping (SLAM) ซึ่งถูกเปิดใช้งานโดยอุปกรณ์ Project Tango กระบวนการนี้เกี่ยวข้องกับเลเยอร์เชิงแนวคิดหลายชั้น:
- เลเยอร์รับรู้และสร้างแผนที่: Lenovo Phab 2 Pro ที่มีเทคโนโลยี Project Tango ทำหน้าที่เป็นสมองประมวลผลและประสาทสัมผัสความละเอียดสูงของระบบ มันใช้การติดตามการเคลื่อนไหว การเรียนรู้พื้นที่ และการรับรู้ความลึกเพื่อวัดสภาพแวดล้อม 360 องศา และสร้างแผนที่ 3D ของพื้นที่นั้นๆ ขึ้นมา ซึ่งจะถูกบันทึกเป็น "Area Description File"
- เลเยอร์แปลงสัญญาณและควบคุม: Arduino Mega 2560 ทำหน้าที่เป็นตัวควบคุมกลาง มันรับคำสั่งนำทางระดับสูง (ความเร็วและค่าผิดพลาดของทิศทาง) จากโทรศัพท์ผ่าน Bluetooth Low Energy (BLE) และแปลงเป็นสัญญาณที่แม่นยำสำหรับไดรเวอร์มอเตอร์
- เลเยอร์ตรรกะการประมวลผล: โค้ดบน Arduino ใช้กลยุทธ์ "sequential decoding" โดยใช้ ไลบรารี Smartcar พร้อมกับคอนโทรลเลอร์ PID (Proportional-Integral-Derivative) สองตัวแยกกัน: ตัวหนึ่งสำหรับรักษาความเร็วเป้าหมาย และอีกตัวหนึ่ง ซึ่งพัฒนาขึ้นระหว่างฮาแคทอน เพื่อปรับมุมเลี้ยวแบบไดนามิกตามค่าผิดพลาดจากทิศทางเป้าหมายที่ได้รับจากโทรศัพท์
- เลเยอร์ขับเคลื่อน: บอร์ดควบคุมมอเตอร์ที่ทำขึ้นเอง (แนวคิดคล้ายกับไดรเวอร์กระแสสูงอย่าง BTS7960) ให้พลังงานและการควบคุมที่จำเป็นสำหรับมอเตอร์ของรถเข็น แปลงสัญญาณจาก Arduino เป็นการเคลื่อนไหวทางกายภาพ
ระบบที่เราสร้างขึ้น ประกอบด้วย Lenovo Phab 2 Pro, ซึ่งเป็นสมองที่ควบคุม Arduino Mega ผ่านการเชื่อมต่อ BLE และส่งสัญญาณต่อไปยังบอร์ดควบคุมมอเตอร์ที่ทำขึ้นเองสองบอร์ด บนโทรศัพท์ มีแอปพลิเคชัน Android ที่สร้างจาก Unity ซึ่งให้ผู้ใช้สามารถสแกนและ "สอน" พื้นที่ให้กับโทรศัพท์ได้ จากนั้นพื้นที่นั้นจะถูกบันทึกเป็น "Area Description File" หลังจากนั้น ผ่านฟีดกล้องสดของโทรศัพท์ ผู้ใช้ก็แค่แตะจุดต่างๆ บนหน้าจอเพื่อกำหนด Waypoint ที่รถเข็นควรจะวิ่งตาม
ขอยกตัวอย่างให้เห็นภาพนะ ทุกอย่างเริ่มจากการสแกนห้องหรือบ้าน ซึ่งทำได้ง่ายๆ แค่เลือกฟังก์ชันที่เหมาะสมในแอปพลิเคชันแล้วถือโทรศัพท์เดินไปรอบๆ พอสแกนเสร็จแล้ว สมมติว่าอยากให้รถเข็นวิ่งผ่านประตู ก็แค่เล็งโทรศัพท์ไปที่ประตูนั้นแล้วผู้ใช้ก็แค่คลิกเพื่อสร้าง Waypoint ตอนนั้นซอฟต์แวร์ Project Tango จะสร้างโมเดลของพื้นที่ไว้แล้ว และจะรู้ว่าจุดที่เลือกอยู่อย่างไรในโมเดลนั้น สุดท้ายก็แค่เปรียบเทียบตำแหน่งและทิศทางปัจจุบันของโทรศัพท์กับตำแหน่งและทิศทางที่ต้องการ เพื่อคำนวณความเร็วและมุมที่รถเข็นควรจะเคลื่อนที่ จำไว้ว่า เพราะโทรศัพท์อยู่ในพื้นที่ที่สแกนไว้แล้ว มันจะ "รู้เองได้อย่างน่าอัศจรรย์" ว่าตัวมันอยู่ที่ไหน ขอบคุณเทคโนโลยีสุดเจ๋งจาก Google และ Lenovo นั่นแหละ!

พอสั่งให้รถเข็นเริ่มตามจุดที่กำหนด แอปก็จะส่งความเร็วที่รถควรวิ่งไป พร้อมกับค่าความเบี่ยงเบน (error) จากทิศทางที่ต้องการในตอนนั้น รถเข็นที่รันไลบรารี Smartcar อยู่ ก็จะใช้คอนโทรลเลอร์ PID สองตัวแยกกัน ตัวหนึ่งคุมความเร็ว อีกตัวคุมมุมเลี้ยวแบบปรับค่าตามความเบี่ยงเบนจากเป้าหมายในเวลาจริง คอนโทรลเลอร์คุมความเร็วนี่มีอยู่ในไลบรารีแล้ว งานของเราตอนแข่งเลยเน้นไปที่การพัฒนาและปรับแต่งอัลกอริทึมชดเชยมุมเลี้ยวแทน น้องๆ อยากดูโค้ด Arduino บนรถเข็นก็ได้นะ แต่ต้องบอกก่อนว่ามันใช้ไลบรารี Smartcar จาก branch hackathon ซึ่งตอนที่เขียนอยู่นี้ยังไม่ได้ merge เข้า master ส่วนโค้ดแอป Android ยังไม่ปล่อยออกมาให้ดูครับ


มีอีกฟีเจอร์เจ๋งๆ ที่เราทำ prototype ไว้แต่ยังไม่ทันเอามารวมกันตอนแข่ง คือระบบตรวจจับและระบุวัตถุแบบเรียลไทม์ ด้วย Computer Vision และ Machine Learning ฟีเจอร์นี้จะช่วยให้ระบบเข้าใจสภาพแวดล้อมรอบตัวได้ดีขึ้น และเปิดทางให้มีเคสใช้งานที่น่าสนใจมากๆ เช่น สั่งให้รถเข็นพาผู้ใช้ไปหาวัตถุที่ตำแหน่งเปลี่ยนไปได้ เช่น สั่งให้พาไปหาแก้วน้ำที่อยู่ใกล้ที่สุด เป็นต้น งานนี้จัดไปวัยรุ่น!

ระหว่างพัฒนาก็เจอปัญหามากมายครับ ตั้งแต่ระบบบังคับเลี้ยวของรถเข็นตอบสนองช้ากับการเปลี่ยนทิศทางแบบฉับพลัน ไปจนถึงการหาวิธีสร้าง Area Description File ให้ถูกต้อง แต่หลังจากการสู้งานแบบแทบไม่ได้นอน ทุกอย่างก็สำเร็จลุล่วง และให้ความรู้สึกพึงพอใจสุดๆ ไปเลย! ดูวิดีโอ prototype กันเลย:
ทีมงานจัดงานพอใจกับผลงานของเรามาก และให้สัญญาณไฟเขียวให้เราได้นำเสนอผลงานต่อหน้าท่านหลี่ เค่อเฉียงด้วยตัวเอง รู้สึกภูมิใจมากครับ ไม่ใช่แค่ท่านนายกฯ ได้เห็นงานของเรา แต่เรายังได้พูดคุยและจับมือท่านเป็นการส่วนตัวอีกด้วย สู้งานนะน้อง! ห้ามช็อตนะตัวนี้


สถานีโทรทัศน์ CCTV ซึ่งเป็นช่องที่ใหญ่และทรงอิทธิพลที่สุดของจีน รวมถึงช่องและสื่อข่าวอื่นๆ อีกมากมายได้รายงานข่าวงานนี้และโครงการของเราเป็นพิเศษ ส่วนรูปที่ท่านนายกฯ คุยกับเรานั้น ก็ปรากฏอยู่ในบทความบนเว็บไซต์ทางการของคณะรัฐมนตรีจีนด้วยนะ ไปดูกันในวิดีโอด้านล่าง หลังจากนาทีที่ 00:24 เลย
ต่อยอดในอนาคต
ตัวต้นแบบแสดงให้เห็นถึงการนำทางอัตโนมัติหลักๆ แล้ว แต่แพลตฟอร์มนี้ยังมีที่ให้พัฒนาได้อีกเพียบ:
- อินเทอร์เฟซผู้ใช้ขั้นเทพ: เพิ่มจอ OLED เล็กๆ ที่สถานีควบคุมเพื่อแสดงข้อมูลแบบเรียลไทม์ เช่น "ระดับแบตเตอรี่ (%)" และ "ระยะทางถึงจุดหมาย (ม.)"
- สั่งงานด้วยเสียง: ต่อโมดูลควบคุมด้วยเสียงเพื่อให้สั่งงานด้วยภาษาธรรมชาติได้ (เช่น "พาฉันไปที่ครัวที")
- เชื่อมต่อคลาวด์และส่งข้อมูล: ทำแดชบอร์ดเว็บเพื่อตรวจสอบสถานะรถเข็นจากระยะไกล ติดตามประวัติการใช้งาน และรับอัปเดตผ่าน WiFi ได้
- AI พิชิตงาน: บูรณาการแมชชีนเลิร์นนิงจากต้นแบบสำหรับโหมด "ตามคน" ซึ่งจะทำให้รถเข็นสามารถติดตามผู้ดูแลหรือเพื่อนได้อัตโนมัติโดยใช้การติดตามผ่านกล้องและ AI
สุดท้ายแต่ไม่ท้ายสุด ต้องให้เครดิตทีม Golden Ridge ทุกคนที่ผมอยากขอบคุณสำหรับความพยายามและการต้อนรับที่ยอดเยี่ยมในจีน: Jiaxin Li, Yin Jiao, Sifan Lu, Dapeng Liu, Yifeng Huang, Dong Dong, Chen Liang, Junfeng Wu, Liu Yang. เซินเจิ้นเป็นเมืองที่เจ๋งมาก และเพราะผมไม่มีเวลาไปสำรวจให้ทั่ว ผมเลยสัญญาว่าจะกลับไปอีกแน่นอน!





ข้อมูล Frontmatter ดั้งเดิม
apps: - "1x Arduino IDE" - "1x ROS (Robot Operating System) - Optional" author: "shassandanish1" category: "Motors & Robotics" components: - "1x Arduino MEGA 2560" - "1x RPLIDAR A1 (Laser Scanner)" - "1x NEO-6M GPS Module" - "2x High-Torque DC Hub Motors" - "1x BTS7960 Motor Driver (High Current)" - "1x Ultrasonic Sensor (HC-SR04 for backup)" - "1x 24V 20Ah LiFePO4 Battery" - "1x Custom Metal Wheelchair Frame" - "20x Jumper wires (generic)" - "1x Micro-USB Cable" description: "เมื่อ AVR จับมือกับ AR แล้วเอา Arduino มาผสมกับ Google's Project Tango ตึงๆ! งานนี้ได้วีลแชร์ขับเคลื่อนอัตโนมัติเทพๆ เกิดขึ้นมา ช่วยยกระดับชีวิตคนนับล้านเลยนะเพื่อน! จัดไปแบบไม่ต้องคิดมาก" difficulty: "Intermediate" documentationLinks: [] downloadableFiles: - "https://github.com/platisd/tango-hackathon/tree/master/wheelchair-tango" encryptedPayload: "U2FsdGVkX19ZwclRSnjPadqwtTfUXkRS4AWU97T/JQcsp/l9AuCZm/IB3aVQ7XCjgsE7Og8kjRX8Hm+y9DxL+MlgpdUqblqbKYyy9yhQH78=" heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/an-autonomous-wheelchair-meets-the-prime-minister-of-china-f78182_cover.png" lang: "en" likes: 8 passwordHash: "bf149ddf9c4ab719a3e7eb0fedeb5d682a0990feb0d3e0ee8fdc0ceb742f7152" price: 2450 seoDescription: "An advanced and playsomely interactive autonomous wheelchair for beginners interested in Arduino SLAM navigation and GPS-to-position projects." tags: - "autonomous" - "wheelchair" - "lidar" - "gps" - "arduino" - "advanced" title: "วีลแชร์อัจฉริยะเจอท่านนายกฯจีน! งานง่ายแต่หล่อ วัยรุ่นต้องลอง" tools: [] videoLinks: - "https://www.youtube.com/embed/Z0ePACkgxk0" - "https://www.youtube.com/embed/2r7YIvmyMeY" - "https://www.youtube.com/embed/ITWDeryHaLQ" views: 9472