เพื่อที่จะรองรับระบบประมวลผลที่จะต้องใส่เข้ามาในหุ่นยนต์
นอกจากนั้นยังรวมไปถึง battery อีกด้วยครับ
ซึ่งเราต้องดัดแปลงส่วนขาทั้งหมดครับ อีกทั้งเพื่อให้สัดส่วนสมส่วนมากยิ่งขึ้นครับ
เพื่อที่จะรองรับระบบประมวลผลที่จะต้องใส่เข้ามาในหุ่นยนต์
นอกจากนั้นยังรวมไปถึง battery อีกด้วยครับ
ซึ่งเราต้องดัดแปลงส่วนขาทั้งหมดครับ อีกทั้งเพื่อให้สัดส่วนสมส่วนมากยิ่งขึ้นครับ
ในการเล่นฟุตบอลของ Humanoid Robot ใน RoboCUP นั้นตามกติกาแล้วจะมีพื้นสนามเป็นสีเขียวและมีลูกบอลสีส้ม และประตูสีเหลือง ซึ่งในขั้นต้นเรามีวิธีการในการเล่นฟุตบอลอย่างง่ายคือ การตรวจสอบว่าอยู่บนสนามหรือไม่ หากอยู่บนสนามแล้วก็ทำการหาลูกบอล หากหาไม่เจอก็ทำการหมุนตัว หากเจอลูกบอลก็เช็คขนาดของลูกบอลหากมีขนาดใหญ่ไม่พอ แสดงว่าอยู่ห่างจากลูกบอลก็เดินเข้าไปหาลูกบอลก่อน หาอยู่ใกล้เพียงพอก็สามารถหาตำแหน่งประตูเพื่อทำประตูได้ทันที
ขั้นตอนแรกในการทำงานของหุ่นยนต์คือการวิเคราะห์ว่าหุ่นยนต์อยู่บนสนามหรือไม่ โดยตรวจสอบพื้นสนามว่ามีสีเขียวหรือไม่
.
.
.
.
By Te’ CRV Lab
ชุดอัพเกรดสำหรับมอเตอร์ wCK ครับ
1. เพื่อเพิ่ม torque จาก 9.5 เป็น 14 kg.cm (ไม่แน่ใจว่า ที่ 8.4 Volt ได้ torque 9.5 หรือ 11 kg.cm กันแน่ครับ เพราะ spec ปกติบอกว่าได้ 11 ครับ)

โดยเราสามารถป้อนไฟฟ้าเพิ่มจาก ปกติ 8.4 Volt เป็น 11.1 Volt หรือแบต Li-Po 3 เซลล์นั่นเองครับ
ปล. แรงบิดมอเตอร์ก็ยังคงต่ำอยู่มากครับ เพราะเป็นมอเตอร์ตัวเล็กๆราคาถูกครับ
2. เพิ่มความทนทานโดยเปลี่ยนเป็นเฟืองเหล็กทั้งหมด
Gear เป็นส่วนที่เสียหายบ่อยที่สุดใน Servo Motor ส่วนใหญ่หุ่นยนต์ราคาถูกก็นิยมใช้กียร์พลาสติกเนื่องจากประหยัดต้นทุน
แต่หากต้องการความทนทานและสามารถรับภาระ หรือน้ำหนัก และการกระแทกได้สูงแล้ว เฟืองเหล็กดูจะเหมาะสมกว่าครับ
สำหรับมอเตอร์ wCK นั้นสามารถอัพเกรดเป็นเฟืองเหล็กทั้งหมดได้ครับ
โดยการเปลี่ยนเฟืองเกียร์ทั้งหมดมี 1 ตัวในมอเตอร์ 1 ตัวเรียกว่า Gear number 1 ถึง 4 นอกจากนั้น
Servo Motor 1108 สามารถอัพเกรดเป็น wCK1111 ได้โดยการเปลี่ยนเฟืองเกียร์ที่อยู่ภายในทั้งหมดคือ Gear number 2,3,4 โดยเกียร์ 1 ทั้งสองมอเตอร์จะเหมือนกัน
โดยปกติ wCK1108 ส่วนใหญ่จะเป็นเฟืองพลาสติกทั้งหมด (สามารถเปลี่ยนเกียร์ทั้งหมดเป็นเฟืองเหล็กได้)
และ wCK 1111 ส่วนใหญ่จะมีเฟืองเหล็ก 2 หรือ 3 ตัว ขึ้นอยู่กับแบบ (สามารถเปลี่ยนเกียร์ทั้งหมดเป็นเฟืองเหล็กได้)
เพราะฉะนั้นแล้วเราสามารถได้มอเตอร์ที่มีความทนทานมากขึ้น โดยเฉพาะการใช้กับไฟฟ้าแรงสูง และหุ่นยนต์ตัวใหญ่ขึ้น
3. เพิ่มความทนทานของข้อต่อ
ข้อต่อต่างๆของ wCK เป็นข้อต่อพลาสติกที่จับยึดกันผ่านแกนตัวเดียว ซึ่งหากต้องการดัดแปลงให้สามารถรับภาระได้สูงขึ้น
สามารถทำได้โดยใช้ joint 12 ซึ่งเป็นลักษณะหน้าแปลนจับกับแกนหมุน ซึ่งมีทั้งแบบพลาสติกและเหล็ก
ส่วนใหญ่จะไม่ขายแยก แต่จะมากับชุด upgrade
… by te’ CRV
Rate Gyroscope เป็นอุปกรณ์วัดอัตราการโน้มเอียง มีการตอบสนองดีต่อความถี่สูง อุปกรณ์นี้นิยมนำไปใช้ในอุปกรณ์อิเล็กทรอนิคหลายประเภทเช่น กล้องถ่ายรูป ถุงลมนิรภัยในรถยนต์ และวีดีโอเกมส์ เป็นต้น ชิปเซ็ต ADXRS300 ถูกนำมาใช้ในงานวิจัยนี้ สามารถตอบสนองอัตราเร็วได้ถึง 300 องศาต่อวินาที โดยมีน้ำหนักเพียง 0.5 กรัม เอาท์พุตที่ได้เป็นแรงดันไฟฟ้าแบบอะนาลอก รายละเอียดเพิ่มเติมที่ www.sparkfun.com
โดยติดตั้งเซ็นเซอร์ Rate Gyroscope ไว้บนลำตัวของหุ่นยนต์เพื่อหาอัตราการเอียงของหุ่นยนต์เทียบกับโลก

โดยรับค่าผ่าน NI USB-6008 สำหรับรับค่าสัญญาณ Analog เบื้องต้น โดยใช้อุปกรณ์ดังกล่าวสามารถรับสัญญาณ analog ได้สูงสุด 8 ช่องโดยใช้ RSE acquisition mode หรือ 3 ช่องสำหรับ Differential mode โดยมีความละเอียดในการอ่านค่า 10 bit
ช่องรับสัญญาณสำหรับ Analog input ของ NI USB-6008
สำหรับการใช้ Force sensor เพื่อเพิ่มประสิทธิภาพในการควบคุมการทรงตัว นั้นเป็นวิธีที่น่าสนใจวิธีหนึ่งโดย Force sensor ที่มีจำหน่ายในท้องตลาดแบ่งออกเป็น Flexiforce Pressure Sensor และ Force sensitive Resistor (FSR) ซึ่ง Flexiforce มีคุณสมบัติดีกว่าเล็กน้อยในแง่ Repeatability และ Response Time ที่มี ± 2.5% Repeatability error กับ 5 µsec Response Time แต่ในแง่ของขนาด sensor ที่มีขนาดยาวเกินไป คือ 197 mm ช่วงอุณหภูมิที่ต่ำกว่า รวมทั้งราคา FSR sensor เป็นตัวเลือกที่น่าสนใจกว่า FSR มีความยาวเพียง 54.1 mm ในขณะที่มี sensing area เท่ากันคือวงกลมเส้นผ่านศูนย์กลาง 12.7 mm

โครงสร้าง Force sensitive Resistor (FSR)
การตอบสนองของ FSR sensor เทียบกับโหลดแบ่งออกเป็น 2 ลักษณะคือ Resistance และ Conductance ซึ่ง Conductance มีข้อได้เปรียบตรงที่มีความเป็น Linearity มากกว่า

ค่าความต้านทานเทียบกับแรงที่กดบน FSR
Brake force ที่พบใน FSR sensor เท่ากับ 20 -100 g ซึ่งจะทำให้ไม่สามารถวัดแรงได้เมื่อพิจารณาหุ่นยนต์ Humanoid ที่มีความสูง 30 cm ขึ้นไปแล้ว ขนาดเท้าอย่างน้อยไม่มากกว่า 0.0032 ตารางเมตร ในกรณีที่หุ่นยนต์น้ำหนัก 2 Kg แล้วแรงกระจายเท่ากันบนเท้าจะได้ว่า แรงที่กระทำบนพื้นเท่ากับ 622.22 กิโลกรัม/ตารางเมตร เมื่อเทียบกับ sensing area พบว่าจะมีแรงตกอยู่เท่ากับ 76.319 กรัม
การทดสอบ FSR sensor ครั้งแรกคือการทดสอบวัดความต้านทานไฟฟ้าเมื่อกดแรงบนพื้นที่รับสัญญาณ (sensing area) เพื่อทดสอบว่า sensor ดังกล่าวสามารถทำงานได้ ซึ่งเมื่อไม่มีแรงกดใดๆ ความต้านทานของ FSR sensor จะเท่ากับ infinity และเมื่อทดลองกดบน sensing area
ทดสอบวัดแรงต้านไฟฟ้าของ FSR เมื่อรับโหลด
การต่อ FSR sensor เข้ากับ Op-Amp จะใช้ตัวต้านทาน 4.7 KOhm (RM) ต่อเข้ากับ Future Board โดยการต่อลักษณะนี้ FSR จะทำหน้าที่เป็นตัวต้านทานปรับค่าได้ซึ่งสามารถอ่านค่า Vout
การต่อ FSR กับ Op-Amp ในลักษณะอ่านค่าความต้านทาน
การต่อวงจร Op-Amp ดังกล่าวจะสามารถอ่านค่า Vout มีค่าดังนี้

การต่อ FSR กับ Op-Amp ในลักษณะอ่านค่าความต้านทาน
การทดลองอ่านค่าสัญญาณ FSR นั้นประกอบด้วย Op-Amp เบอร์ LM324 ซึ่งเป็น IC ที่มี Op-Amp ถึง 4 ตัว ในระบบรับสัญญาณ FSR จึงใช้ IC ดังกล่าวเพียง 2 ตัวเท่านั้น
ทดลอง FSR และวงจร signal conditioning บนหุ่นยนต์
.
.
.
.
.
.
.
.
.
.
.
.
..
.
By Te’ CRV Lab
ระบบประมวลผลภาพเป็นงานในเชิงวิศวกรรมคอมพิวเตอร์ที่อาศัยเซ็นเซอร์รับแสง ได้แก่ CMOS และ CCD ซึ่งด้านพื้นฐานและทฤษฎี ศึกษาได้จากหนังสือ 2 เล่มที่น่าสนใจคืน คือ Digital Imaging Theory and Applications, Burdick และ Image Processing with LabVIEW and IMAQ Vision
โปรแกรม Matlab เป็นโปรแกรมขั้นสูงที่สามารถประมวลผลภาพได้ดี ในขณะที่โปรแกรม Matlab สนับสนุนกับกล้อง USB มากมาย และง่ายต่อการเริ่มต้นประมวลผลด้วยภาพ เนื่องจากมีฟังก์ชั่นต่างๆให้ได้ทดลอง
การรับภาพเข้ามาด้วยโปรแกรม Matlab สามารถทำได้ด้วยการรันโปรแกรม imaqtool ซึ่งเป็นฟังก์ชั่นของ Image Acquisition Toolkit และสามารถบันทึกภาพเป็นไฟล์วีดีโอได้ด้วย
Follow ตามตัวอย่าง http://fibo.kmutt.ac.th/blog/humanoid/2009/09/23/opencv_tutorial_mswindow
การใช้โปรแกรม LabVIEW Vision สำหรับ Machine Vision สามารถทำได้อย่างมีประสิทธิภาพวิธีหนึ่ง DARwIn เป็นหุ่นยนต์หนึ่งที่ใช้ระบบ LabVIEW และ NI Vision ในการพัฒนาหุ่นยนต์ Humanoid ตั้งแต่ปี 2004 เป็นต้นมา
รถขับเคลื่อน 2 ล้อเพื่อทดลองฟังก์ชั่นของกล้อง นำมาติดตั้งกล้องไว้ด้านสำหรับทดสอบการจับภาพ
ในหุ่นยนต์ Humanoid Robot นั้นติดตั้งกล้อง Logitech QuickCam Pro 9000 เข้าไปเพื่อรับสัญญาณภาพ โดยกล้องดังกล่าวเป็นกล้อง USB ที่สามารถปรับค่า Brightness ได้เหมาะสำหรับสำหรับทุกสภาพแสง รวมทั้งและ Auto Focus ทำให้สามารถรับภาพได้ชัดทุกระยะ เนื่องจากหุ่นยนต์ที่ร่วมแข่งขันใน Robocup ไม่จำเป็นต้องใช้ Servo Vision หรือกล้อง 2 ตัวเท่าใดเพื่อหาระยะของภาพเนื่องจากขนาดของลูกบอลรวมทั้งสนามนั้นมีการกำหนดตายตัวอยู่แล้ว ในขณะที่ White Balance จะ set ค่าคงที่ไว้เพื่อไม่ให้เกิดการอ่านสีผิดเพี้ยน
การรับภาพจากกล้อง USB เป็นตัวเลือกที่จะใช้สำหรับหุ่นยนต์ Humanoid โดยปกติเมื่อติดตั้ง Vision Acquisition แล้ว LabVIEW จะไม่สามารถรับภาพจากกล้อง USB ได้โดยตรงต้องอาศัยโปรแกรม Captor ภาพจากโปรแกรมแล้วให้โปรแกรม LabVIEW ดึง File ภาพออกมาอ่านอีกรอบ แต่ไม่นานที่ผ่านมาได้มีชุด LV.lib ที่เขียนการรับค่าภาพจากกล้อง USB ได้โดยตรง หรือ NI-IMAQ for USB Cameras
สำหรับการปรับแต่งสีของภาพนั้นสามารถทำได้หลายวิธีหรือการ Filter แสง เช่นผ่าน Look-up Table ที่เป็นฟังก์ชั่นต่างๆ โดยง่ายนั้นเราสามารถปรับแต่งผ่านโปรแกรม Device Driver ของ Logitech WebCam Software ได้เลย โดยปรับค่าต่างๆให้ได้คงที่ ได้แก่ Brightness นั้นเราปรับให้มีค่าต่ำเล็กน้อยจะทำให้สามารถเก็บภาพได้ด้วยความเร็วชัดเตอร์สูงขึ้นภาพจะไม่เบลอง่าย Contrast นั้นปรับให้ต่ำเล็กน้อยเพื่อไม่ให้ภาพเป็นสีขาวจนเกินไปจนไม่สามารถเห็นความแตกต่างของสีได้ แต่หากน้อยเกินไปก็ไม่ได้เช่นกันภาพก็จะมืดไปเลย Color Intensity ปรับให้สูงเล็กน้อยเพื่อให้สีของภาพนั้นตัดกันชัดเจนหากปรับต่ำมากภาพจะเป็นสีขาวดำหรือหากสูงเกินไปภาพก็จะแยกสีผิดได้โดยเฉพาะสีเขียวกับสีเหลือง White Balance นั้นต้องปรับให้เหมาะสมกับสภาพแสง เช่นแสงที่เป็นไฟขาวจะนีออนต้องปรับค่าอุณหภูมิสีให้ต่ำ แต่หากเป็นไฟเหลืองต้องปรับตรงกันข้าม โดยปรับให้เหมาะสมกับสภาพห้องในขณะนั้น โดยไม่ควรปรับแบบอัตโนมัติเนื่องจากกล้องจะปรับเปลี่ยนแสงไปเองเพื่อให้แสงขาวสมดุลอาจทำให้สีเพี้ยนไปได้
การปรับแต่งสีและแสงของภาพเพื่อให้เหมาะสมในการนำไปใช่ (Filter)
การจัดท่าเดินของหุ่นยนต์นั้นอาศัยโดยแกรมที่กล่าวมาทั้งหมด โดยเขียนโปรแกรมเป็น ฟังก์ชั่นต่อเนื่องกันไปโดยมีระยะเวลา Delay Time ในแต่ละ Step ซึ่งทำให้สามารถควบคุมหุ่นยนต์แบบ Open-loop ได้ตามที่ต้องการ ส่วนการยืนยันเสถียรภาพต้องอาศัย Feedback Control ด้วย Sensor ต่างๆเช่น Rate Gyro และ FSR Force Sensor
By Te’ CRV Lab
สำหรับการ Train ค่าของหุ่นยนต์นั้นเราเขียนโปรแกรมขึ้นมาเพื่อใช้ฟังก์ชั่นต่างๆ รวมทั้งทดสอบการทำงานของ wCK แต่ละตัว โดย wCK ปกติประกอบด้วย ID 0 ถึง 15 ดังนี้
ในการอ่านค่า wCK ที่ต่อกันอยู่ 16 ตัวสามารถใช้ฟังก์ชั่น Read wCK ต่อเนื่องกันไปเรื่อยๆ ได้ดังนี้
โดยทำการทดลองเคลื่อนที่ wCK Servo Motor ทุกๆตัวแล้วจะสามารถหาช่วงการทำงานทั้งหมดของหุ่นยนต์ได้จาก Position ของ wCK Servo Motor ทั้ง 16 ได้ดังนี้
| ID | direction | Min | Min | direction | Max | Max | direction | |
| 0 | left_hip_roll | roll | 15 | 15 | left | 150 | 150 | right |
| 1 | left_hip_pitch | pitch | 4 | 4 | front | 193 | 193 | back |
| 2 | left_knee | pitch | 128 | 128 | front | 249 | 249 | back |
| 3 | left_ankle_pitch | pitch | 45 | 47 | back | 127 | 95 | front |
| 4 | left_ankle_roll | roll | 35 | 35 | right | 185 | 106 | left |
| 5 | right_hip_roll | roll | 71 | 71 | left | 193 | 193 | right |
| 6 | right_hip_pitch | pitch | 53 | 53 | back | 244 | 244 | front |
| 7 | right_knee | pitch | 5 | 5 | back | 119 | 119 | front |
| 8 | right_ankle_pitch | pitch | 123 | 132 | front | 201 | back | |
| 9 | right_ankle_roll | roll | 63 | 133 | right | 215 | 213 | left |
| 10 | left_shoulder_pitch | pitch | 0 | 20 | คว่ำแขน | 254 | 254 | หงายแขน |
| 11 | left_shoulder_roll | roll | 40 | 40 | หุบแขน | 213 | 213 | ชูแขน |
| 12 | left_arm_pitch | pitch | 7 | 7 | งอแขน | 195 | 121 | ยึดแขน |
| 13 | left_shoulder_pitch | pitch | 2 | 2 | ชูแขน | 254 | 235 | หงายแขน |
| 14 | left_shoulder_roll | roll | 37 | 37 | หุบแขน | 213 | 213 | ชูแขน |
| 15 | left_arm_pitch | pitch | 57 | 127 | งอแขน | 242 | 242 | ยึดแขน |
By Te’ CRV Lab