ROS[1] : สอนติดตั้ง ROS Kinetic

ROS[1] : สอนติดตั้ง ROS Kinetic

ในบทความนี้ผมจะสอนวิธีการติดตั้ง ROS Kinetic ตั้งแต่เริ่มต้นเลยนะครับ สิ่งที่จำเป็นต้องมีคือ Ubuntu Xenial (16.04 LTS) ของผมเป็น Version 16.04LTS amd64 นะครับ ถ้ายังไม่มี ลองติดตั้ง Ubuntu ตามนี้นะครับ How to install Ubuntu Ubuntu install of ROS Kinetic ในตอนนี้ทีมงานของ ROS [Jochen Sprickerhof และ Leopold Avellaneda] เค้าได้สร้าง debian packages สำหรับติดตั้งลงใน Ubuntu เอาไว้แล้ว ซึ่ง packages ที่เค้าสร้างนี้มีประสิทธิภาพในการทำงานและติดตั้งง่ายมากกว่าการลงจาก source code เอง ดังนั้นผมก็ขอแนะนำวิธีการนี้ในการติดตั้ง ROS ครั้งนี้ แต่ถ้าอยากลงเองผมก็ไม่ขัดนะ สามารถติดตั้งตามนี้ได้เลย source installation instructions มาเริ่มกันเลย ROS … Continue reading ROS[1] : สอนติดตั้ง ROS Kinetic

Advertisements
มารู้จักการเขียน Markdown กัน

มารู้จักการเขียน Markdown กัน

เพื่อนๆเคยได้ยินเกี่ยวกับ Markdown มาบ้างรึเปล่า ถ้าเคยแสดงว่าดีแล้ว 555 Markdown คืออะไร? Markdown คือข้อความธรรมดาๆนี่เอง แต่หากเขียนถูกรูปแบบมันก็จะแปลงร่างกลายไปเป็น HTML ได้ ดังนั้นสามารถนำมาใช้เขียน content สำหรับเว็บไซต์ได้เลย เท่สุดๆไปเลย เจ้าต้ว markdown นี่ถูกออกแบบมาให้ ง่ายต่อการเขียน และ ง่ายต่อการอ่าน ที่สุดที่จะทำได้ ย้อนกลับไปเมื่อปี 2004 John Gruber เขามีไอเดียหลังจากที่ต้องใช้เวลานานในการเขียน tag ของ HTML เพื่อให้บทความของเขาออกมาดี John Gruber, the author of Markdown, puts it like this: The overriding design goal for Markdown’s formatting syntax is to make it as … Continue reading มารู้จักการเขียน Markdown กัน

AssistantBot[0] – มาทำ JARVIS กัน

AssistantBot[0] – มาทำ JARVIS กัน

" เมื่อโลกเปลี่ยน เราก็ต้องเปลี่ยน เทคโนโลยีเกิดขึ้นใหม่ทุกวัน " จะพิมพ์อะไรเนี่ย 55555 เกือบเท่แล้วเชียว แต่ ชั่งมันเถอะ มาเข้าเรื่องเราดีกว่า         สิ่งที่ผมจะมาทำในวันนี้คือ บอกเลยจะเร็วเกินไปงั้นขอเล่าหน่อย 555 ตอนผมเป็นเด็กๆผมได้ดูหนังเรื่อง Iron man แล้วก็เลยมีความฝันว่าในอนาคตผมจะต้องสร้างระบบที่สามารถพูดคุยตอบโต้กับเราได้ ดังนั้นวันนี้ผมจะมาสอนเพื่อนๆทำบอทแบบฉลาดน้อย ที่อยู่ในบ้านเหมือนเป็น J.A.R.V.I.S ในหนังเรื่อง Iron man แต่ JARVIS ในเรื่องก็ไม่ได้ฉลาดน้อยนะ 5555 สิ่งที่ผมมีคือ Labtop [Ubuntu 16.04] 1 เครื่อง เท่านั้น ภาษาที่จะใช้เขียนคือ ภาษา Python 3.5.2 และต้องขอเสนอเครื่องมือที่จะช่วยเราครั้งนี้นั่นก็คือ Snowboy, a Customizable Hotword Detection Engine         Snowboy … Continue reading AssistantBot[0] – มาทำ JARVIS กัน

Humanoid[1] 2/10 – ศัพท์พื้นฐาน

Humanoid[1] 2/10 – ศัพท์พื้นฐาน

ก่อนที่เพื่อนๆจะไปต่อนั้น เพื่อนๆทุกคนควรจะรู้จักกับคำศัพท์ต่างๆที่เป็นพื้นฐานที่นิยมใช้กันก่อน ซึ่งศัพท์เหล่านี้จะเป็นสิ่งที่ทำให้ผมและเพื่อนๆคุยกันรู้เรื่อง อ่านแล้วเข้าใจ อีกอย่างมันจะทำให้เพื่อนๆสามารถนำไปใช้ต่อได้ด้วย ไม่ว่าจะอ่านจากแหล่งความรู้อื่นเพิ่มเติม หรือคุยกับคนอื่นที่มีฐานความรู้เดียวกันได้ ถึงแม้ว่าคำบรรยายศัพท์ต่างๆของผมอาจจะไม่เป็นทางการ บอกไว้ก่อนเลยนะครับ 55 เพราะผมอยากให้เพื่อนๆเข้าใจและเห็นภาพได้อย่างชัดเจนนั่นเอง Terminology หุ่นยนต์ฮิวมานอยด์นั้นเป็นแบบ open kinematic chain ประกอบไปด้วย 2 ส่วนด้วยกัน ส่วนแรกเรียก ขา(legs) อีกส่วนเรียกว่า  ลำตัว(torso) ทั้งสองเชื่อมต่อกันด้วยจุดที่เรียกว่า สะโพก(hip) ส่วนขาติดกับพื้น จะหนึ่งขาหรือสองขาก็ได้ ถ้ามีเพียงแค่ขาเดียวสัมผัสพื้นเราจะเรียกขาที่สัมผัสกับพื้นว่า ขายืน(stance leg) ส่วนขาอีกข้างจะเรียกว่า ขาแกว่ง(swing leg) จุดปลายสุดของขาไม่ว่าจะมีเท้าหรือไม่มีเท้า เราจะเรียกว่า เท้า(foot)  จังหวะการเคลื่อนที่จะดูจากจำนวนเท้าที่สัมผัสพื้นเป็นหลัก ถ้าสัมผัสพื้นเพียงเท้าเดียวจะเรียกว่า single support ถ้าสัมผัสพื้นสองเท้าจะเรียกว่า double support การเดิน(Walking) นั้นจะสลับกันระหว่าง single support และ double support วนไปเรื่อยๆ โดยจะมีตัวแปรในการเดินคือ (ระยะทางในแนวขนานกับพื้นของศูนย์ถ่วงของหุ่นยนต์)displacement of horizontal … Continue reading Humanoid[1] 2/10 – ศัพท์พื้นฐาน

Humanoid[1] 1/10 – ทำไมต้องมีระบบควบคุม?

Humanoid[1] 1/10 – ทำไมต้องมีระบบควบคุม?

Introduction ก่อนจะพูดถึงการเขียนระบบคอนโทรลหุ่นยนต์ฮิวมานอยด์ ก็ต้องพูดถึงเหตุผลกันก่อน เราศึกษาระบบควบคุมของหุ่นยนต์ฮิวมานอยด์ ไปทำไม?         หุ่นยนต์เดิน 2 ขานั้นเป็นส่วนหนึ่งของหุ่นยนต์ที่มีขาเดิน ซึ่งจริงๆแล้วการทำเครื่องจักรที่มีขาเคลื่อนที่ได้นั้นมีแรงบันดาลใจมาจากความไม่ต่อเนื่องของพิ้นผิว ไม่ว่าจะเป็น พื้นขรุขระ ขั้นบันได ซึ่งการใช้ขาเดินนั้นทำได้ดี ไม่ว่าจะเป็นสัตว์ 2 เท้าหรือ สัตว์ 4 เท้าก็ตาม นอกจากนี้หุ่นยนต์เดิน 2 ขากำลังได้รับความสนใจอย่างมาก ตั้งแต่ การนำหุ่นยนต์มาทำงานที่อันตรายแทนที่มนุษย์ (กู้ระเบิด, ตรวจสอบโรงไฟฟ้านิวเคลียร์, การทหาร และอื่นๆ) การทดแทนส่วนที่ไม่สามารถเคลื่อนไหวได้ (พิการช่วงล่าง, การทำหุ่นยนต์ช่วยบำบัด, และการกระตุ้นเซลล์ประสาท)         ถึงเวลาอันสมควรแล้ว หลังจากเกริ่นมานาน เข้าเรื่องกันเลยดีกว่า         Zero Moment Point (ZMP) คือจุดที่ Inertia moments และ Gravity moment … Continue reading Humanoid[1] 1/10 – ทำไมต้องมีระบบควบคุม?

Humanoid[1] 0/10 – เริ่มทำฮิวมานอยด์

Humanoid[1] 0/10 – เริ่มทำฮิวมานอยด์

ก่อนจะทำหุ่นยนต์เดิน 2 ขาหรือฮิวมานอยด์นั้น ผมขออนุญาติเล่าจากเริ่มต้นเลยละกันนะครับ 🙂         หากจะทำหุ่นยนต์เดินได้นั้น สิ่งที่ขาดไม่ได้เลยก็คือความสามารถในการเคลื่อนที่ของตัวหุ่นยนต์เอง แล้วการเคลื่อนที่คืออะไรหล่ะ?                 การเคลื่อนที่ ก็คือ ความสามารถในการย้ายจากที่นึ่งไปอีกที่นึง หรือการควบคุมร่างกายในส่วนต่างๆเพื่อตอบสนองตามสภาพแวดล้อมต่างๆที่เปลี่ยนไป การเคลื่อนที่ของสิ่งมีชีวิตจริงๆแล้วก็มีหลายแบบ เช่น การว่ายน้ำของอมิบา การบินของนก หรือแม้กระทั่งการเดินของคน การเคลื่อนที่ของสิ่งมีชีวิตต่างๆ ล้วนแล้วแต่มีความซับซ้อนในตัวของมันเองเป็นอย่างมาก ซับซ้อนมากเช่นเดียวกับสิ่งที่มนุษย์สร้างขึ้นมา ไม่ว่าจะเป็นเครื่องบินที่มีปีกยกตัวเครื่องให้ลอยอยู่กลางอากาศได้ รถถังที่มีล้อตีนตะขาบทำให้วิ่งไปในภูมิประเทศต่างๆได้ รถยนต์ที่มีล้อทำให้วิ่งได้อย่างมีประสิทธิ์ภาพ และหุ่นยนต์ในปัจจุบันนี้มันก็สามารถเดินได้โดยใช้ขาของมันเองแล้วนะจะบอกให้!!        แล้วการเดินด้วยขามันดีอย่างไร การเดินด้วยขาของมนุษย์นั้นมีข้อดี คือ สามารถหลบหลีกสิ่งกีดขวาง โดยการก้าวข้ามมันไป ถ้าในกรณีที่พื้นต่างระดับ เช่น ทางลาดชัน ระยะความสูงของขั้นบันได จนถึงปัจจุบันก็ยังเป็นเรื่องที่เถียงกันไม่จบว่าตกลงแล้ว ความสูงของขั้นบันไดแต่ละขั้นควรจะสูงเป็นเท่าไหร่ ความชันของทางลาดควรจะชัดเท่าเป็นเท่าไหร่ ที่ทำให้มีประสิทธิ์ภาพสูงสุดสำหรับการเคลื่อนที่โดยใช้ขา ยิ่งไปกว่านั้น การทำหุ่นยนต์เคลื่อนที่ด้วยขายังเหมาะสำหรับสภาพแวดล้อมต่างๆ ซึ่งสภาพแวดล้อมนั้นได้ถูกออกแบบมาสำหรับมนุษย์ ไม่ว่าจะเป็นการเดิน … Continue reading Humanoid[1] 0/10 – เริ่มทำฮิวมานอยด์