KMUTT Humanoid Team

January 4, 2010

KMUTT Humanoid Walking Test

Filed under: Uncategorized — moslenter@hotmail.com @ 2:15 pm and

เขียนโดย Jai, เรียบเรียงโดย Jai

 

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

ปีใหม่หลายๆคนคงได้ไปเที่ยวกันมา พักผ่อน เติมเต็มพลังกันเต็มที่แล้ว หลังจากนี้ เราก็มาเริ่มลุยกันต่อ ^^

เข้าเรื่องกันดีกว่า ตอนนี้ทาง Team KMUTT นั้น ได้ทำการทดลองต่างๆของหุ่นยนต์ในเรื่องการเดินของหุ่น อย่างต่อเนื่อง โดยพยายามจะทำให้หุ่นยนต์นั้นสามารถเดินได้อย่างมีประสิทธิดีขึ้น รวมถึงการเดินในลักษณะที่ยากขึ้นด้วย

ตัวอย่างเช่น

 

การเดินแบบปกติ

 

การหมุนรอบตัวเอง

 

การเดินแบบ Omni Directional

 

และก็ การทดลองการปลด Torque (ไม่ปลดสะทีเดียวนะ ลดให้ Torqure มันน้อยๆ ที่ข้อเท้า) แล้วให้หุ่นเอาเท้าอีกข้างก้าวไปรับเพื่อไม่ให้มันล้ม ในการทดลองนี้ เหมือนกับการทรงตัวของมนุษย์ เมื่อเราเสียศูนย์หรือจะล้ม เราก็จะก้าวเท้าไปรับเพื่อไม่ให้เราล้ม ในการทดลองนี้ก็พยายามที่จะทำเช่นเดียวกัน ^^

การทดลองการอ่านค่าจาก Gyro sensor

Filed under: Uncategorized — moslenter@hotmail.com @ 1:58 pm and

เขียนโดย Jai, เรียบเรียงโดย Jai

ตอนนี้ เรากำลังทดลองเกี่ยวกับการอ่านค่าจาก Gyro Sensor เพื่อที่จะนำค่าเหล่านี้มาช่วยในการเดินของหุ่นยนต์ให้มีประสิทธิภาพมากขึ้น

จากการทดลอง เราพบว่า มีค่าบางค่าที่เราอ่านมาได้ แต่ค่านั้นมีการ drop down ลงไป เนื่องมาจากการ อินทิเกรตค่าของมันและค่า error สะสม เราจึงใช้เทคนิค Kalman Filter ในการแก้ไขไม่ให้ค่าที่เราอ่านมาได้มีการ drop down

Kalman Filter result

จะเห็นได้ว่า เส้นสีม่วงนั้นมีการ drop down ของค่าGyroที่เราอ่านมาได้

December 1, 2009

การทำ Test Based ตั้งค่าศูนย์ให้กับหุ่นยนต์

Filed under: Uncategorized — moslenter@hotmail.com @ 9:26 pm and

เรียบเรียงโดย Jai, เขียนโดย Jai

จากการที่เราต้องเซตค่าเริ่มต้นทุกครั้งให้กับมอเตอร์ทุกตัวที่มีอยู่ในหุ่นยนต์ บางครั้งกระบวนการดังกล่าวก็มีข้อผิดพลาด ซึ่งอาจมากจากผู้ทดลองเอง เราจึงได้ทำ Test Based นี้ขึ้น ดูจากรูปเองนะครับ

untitled

                                          รูป Test Based

หน้าตาหล่อเชียว ^^ แต่คงเจ็บไม่น้อยเพราะว่ามีแท่งอลูมิเนียม ยื่นออกมาอยู่ตรงกลางระหว่างขาทั้งสองข้าง

จากการทำ Test Based แล้วทำให้เราสามารถเซตค่าศูนย์หรือค่าเริ่มต้นให้กับหุ่นได้ง่ายขึ้น เพราะเรามาสารถทำให้หุ่น ยืดแขน ขา ออกมาได้ตามแรงโน้มถ่วงของโลก และเรายังสามารถตั้งท่าแปลกๆ ให้หุ่นยนต์ได้ด้วย

PC PICO-ITX

Filed under: Hardware, Uncategorized — moslenter@hotmail.com @ 9:12 pm and

เรียบเรียงโดย Jai, เขียนโดย Jai

ในหุ่นรุ่น KM-Series Rev.2 นั้นมีการเปลี่ยนแปลงค่อนข้างมากจากหุ่นรุ่นเดิม หากเทียบกับรถยนต์แล้วอาจจะเรียกว่า Major Change มากกว่า Minor Change เพราะทางทีม KMUTT แทบจะยกเครื่องกับเลยทีเดียว ^^

เนื่องจากหุ่นรุ่นเก่านั้นมีปัญหาทางด้านการใช้ PC-104 โดยมี CPU เป็น Geode ของทาง AMD จึงทำให้เกิดความคิดที่จะเปลี่ยน PC ให้มีความทันสมัย ตามเทรนกับเค้าบ้าง ซึ่งในปัจจุบันนั้น PC ที่มีประสิทธิภาพพอใช้ได้ ราคาย่อมเยาว์และขนาดเล็ก ก็คงหนีไม่พ้น CPU จากค่าย Intel ซึ่งมีชื่อเรียกว่า ATOM จากการเฝ้าดูความสำเร็จของ Intel ATOM ที่มียอดขายของ net book จำนวนมากแล้ว ทำให้ทางทีม KMUTT มั่นใจว่า CPU Intel ATOM นั้นสามารถที่จะมาใช้แทน PC-104 ได้ ในที่สุดทางทีมได้เลือก PICO-ITX ซึ่งมีขนาดเล็ก เบา และใช้ CPU Intel ATOM เป็นตัวประมวลผล และมี I/O ต่างๆอย่างครบครัน

จากการทดลองดูแล้ว CPU Intel ATOM ตัวนี้ยังมีปัญหาเรื่องความร้อนอยู่พอสมควร เนื่องจากเราได้ทำการ โมดิฟาย เจ้า PICO-ITX ให้มันถอดฝาของมันออก แต่อย่างไรก็ตาม design ใหม่ของหุ่นยนต์ที่ ทีม KMUTT จะสร้างใหม่นั้น ก็จะใช้ body ของหุ่นเป็นตัวช่วยระบายความร้อนอีกทางหนึ่ง - จากความคิดผู้เขียน คิดแล้วมันก็ดีนะ เหมือนกับว่าหุ่นยนต์มันมีชีวิต เพราะต่อไปตัวมันคงจะอุ่นๆ เหมือนมนุษย์ ^^

dsc02708

                        รูปของ PICO-ITX

 

รายละเอียดของ PICO-ITX

CPU: intel ATOM @ 1.6 Ghz

Ram: 2 GB

Storage: Compact Flash

Vin: 5V (idle 1.5A, peak load 2A)

Dimension: 100 x 72 mm

ระบบแบตเตอรรี่ของหุ่นยนต์ KM-Series Rev.2

Filed under: Hardware, Uncategorized — moslenter@hotmail.com @ 8:32 pm and

เรียบเรียงโดย Jai, เขียนโดย Jai

เนื่องจากหุ่นในรุ่น KM-Series เดิมนั้นมีน้ำหนักค่อนข้างมาก จึงทำให้หุ่นยนต์นั้นเสียหายบ่อยครั้ง จากการที่ต้องรับน้ำหนักที่มากเกินไป จึงทำให้ทางทีม KMUTT เกิดแนวคิดที่จะลดน้ำหนักของหุ่นยนต์ลง ซึ่งเหมือนกับนักกีฬาที่ต้องฟิตร่างกายให้พร้อมก่อนไปแข่งขัน ทางทีม KMUTT จึง เลือกที่จะใช้การลดจำนวนของแบตเตอรรี่ที่ใช้ในหุ่นรุ่นเดิม

  KM-Series รุ่นเดิม KM-Series Rev.2
จำนวน แบตเตอรรี่ 4-Cell เลี้ยง motor2-Cell เลี้ยง motor1-Cell เลี้ยง PC, ARM7   2-Cell x 2จ่ายไฟเลี้ยง ทั้ง motor, ARM7 และ PC

 

หลังจากที่เราเปลี่ยนระบบแบตเตอรรี่ใหม่นั้นทำให้เราจำเป็นต้อง เปลี่ยนระบบไฟฟ้าในหุ่นด้วย ซึ่งใน หุ่นรุ่น KM-Seires Rev.2 นั้น จะใช้ PICO PSU120 เป็นตัวแปลงไฟแทนการใช้ Regulator ซึ่งจะทำให้สามารถใช้พลังงานจากแบตเตอรรี่ได้ดีขึ้นกว่าเดิม เนื่องจากไม่สูญเสียพลังงานในรูปของความร้อน

ซึ่งการเปลี่ยนแปลงครั้งนี้ ทำให้ Servo-motor ทุกตัวที่มีอยู่ในหุ่นนั้นจะได้รับไฟเลี้ยงที่ 16.8 Volt เท่ากันทุกตัว ซึ่งก็เป็นเรื่องที่ท้าทายมาก เพราะว่า หุ่น KM-Series นั้นจะใช้ Dynamixel RX-64 ที่ข้อเข่า ซึ่งใน data sheet นั้น แนะนำว่าให้ใช้ไฟเลี้ยงที่ 18 Volt

dsc02706

                   รูปของ PICO PSU และ แบตเตอรรี่ 4-Cell

dsc02712

                            รูปของแบตเตอรรี่ 2-Cell

 

รายละเอียดของ PICO-PSU

แรงดันสูงสุด Vin: 12-32VDC

แรงดันสูงสุด Vout: 12V 10A, 5V 8A, 3.3V 8A

ประสิทธิภาพ: 95%

มาตรฐาน: MINI-ITX form factor

การพัฒนาระบบการสื่อสารระหว่างมอเตอร์ Robotis และ Microcontroller ARM-7

Filed under: Software, Uncategorized — moslenter@hotmail.com @ 7:54 pm and

เรียบเรียงโดย Jai, เขียนโดย P’TonLek

เนื่องจากระบบการควบคุมหุ่นยนต์ฮิวมานอยด์ในรุ่น KM-Series เดิมนั้จะเป็นการทำงานโดยส่งค่าพารามิเตอร์ไปให้กับมอเตอร์เพียงอย่างเดียว (Write Command Only) โดยไม่ได้มีการอ่านค่ากลับมา

จึงได้มีแนวคิดในการพัฒนาระบบการสื่อสารระหว่าง Motor กับ Microcontroller ของหุ่นยนต์ฮิวมานอยด์โดยเพิ่มการอ่านค่าพารามิเตอร์จาก Control table ที่มีอยู่บนมอเตอร์ Robotis และได้ย้ายการทำงานในส่วนของการควบคุมการเดินทั้งหมด (Locomotion) มาประมวลผลบนคอมพิวเตอร์แทน ซึ่งคอนโทรลเลอร์จะทำหน้าที่เป็นเสมือน Router เท่านั้น เพียงแต่เพิ่มการทำงานในส่วนที่ติดต่อกับเซนเซอร์อื่นๆ เช่น Accelerometer และ gyroscope

 dsc02711

                     Microcontroller ARM-7

ภาพรวมการสื่อสารระหว่างมอเตอร์ Robotis กับ microcontroller

ARM-7

blockdiagram

        บล็อกไดอะแกรมแสดงการสื่อสารระหว่างมอเตอร์กับไมโครคอนโทรลเลอร์

 

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

โปรแกรมจัดท่าหุ่นยนต์ Humanoid

Filed under: Software, Uncategorized — moslenter@hotmail.com @ 6:35 pm and

  เรียบเรียงโดย Jai, เขียนโดย P’Pae

จุดประสงค์ เพื่อใช้ในการจัดท่าหุ่นยนต์ฮิวแมนนอยด์รุ่น KM-Series และ KM-Series Rev2 ได้ง่ายยิ่งขึ้น โดยทางทีม KMUTT ได้เลือกใช้ภาษา Python ในการพัฒนาโปรแกรม รวมถึงการใช้ module  อย่างเช่น FLTK และ module ที่ทางทีมเขียนขึ้นเอง เพื่อใช้ในการพัฒนาโปรแกรม

 

 

 

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

ส่วนการจัดท่าโดยใช้ Graphical User Interface (GUI) - โดยตัวโปรแกรมจะมี interface และมีการคำนวน kinematics ของหุ่นยนต์ที่ถูกต้องและเสมือนจริงกับหุ่นยนต์รุ่น KM-Series ทำให้ผู้ใช้สามารถจัดท่าทางหุ่นยนต์จาก GUI ได้ก่อนที่จะนำท่าทางเหล่านั้นไปให้หุ่นยนต์แสดงจริง ซึ่งจะสามารถช่วยให้ลดอัตราที่ทำให้เกิดการเสียหายต่อหุ่นยนต์เนื่องจากการจัดท่าทางที่ผิดพลาด

 

screenshot

 

screenshot-1

ส่วนการจัดท่าโดยหุ่นยนต์ - นอกจากการจัดท่าทางด้วย GUI แล้ว โปรแกรมยังสามารถจัดท่าทางโดยการจัดหุ่นยนต์ได้โดยตรง คือ โปรแกรมจะอ่านค่าตำแหน่งมอเตอร์ต่าง ๆ ในหุ่นยนต์ และจำตำแหน่งนั้น ๆ ไว้เพื่อให้เกิดท่าทางที่ต้องการได้

 dsc02705

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

1. การพัฒนาในส่วนของการแสดงผลค่าจาก Sensor ต่างๆ เพื่อศึกษาพฤติกรรม ความมีเสถียรภาพในขณะที่หุ่นยนต์มีอิริยาบทต่าง ๆ ได้ทันที เช่น การเดิน การเลี้ยวซ้าย-ขวา เป็นต้น

2. การพัฒนาในด้านการ Simulation ท่าทางต่าง ๆ ได้ก่อนล่วงหน้า

3. การพัฒนาด้านการ debug พฤติกรรมหุ่นยนต์ เช่น GUI แสดงสถานะความพร้อมใช้งาน, อุณหภูมิ, แรงดันไฟฟ้าในมอเตอร์ เป็นต้น

4. การพัฒนาด้านการทำ Dynamic simulation โดยใช้ค่าพารามิเตอร์ต่างๆที่ได้จากตัวหุ่นยนต์จริงๆ เช่น น้ำหนัก ระยะระหว่างลิงค์ เพื่อให้เข้าใจการตอบสนองของหุ่นยนต์ได้ดีขึ้น

^3^

Powered by WordPress. WPMU Theme pack by WPMU-DEV.