Thai Humanoid Robot

หุ่นยนต์ RoboCRV version 2


ตัวหุ่นยนต์ใหม่ RoboCRV ver 2.
…..
 
 
.
.
.
..
.
.
.
.
.
..
 
..
 
.
..
.
.
.
.
 
 
.
.
.
.
.
.
.
.
.
.
.
.
.
..
.
 

 . . .
สำหรับการ modifiy หุ่นยนต์ version เป็นการเพิ่มขนาดของหุ่นยนต์

เพื่อที่จะรองรับระบบประมวลผลที่จะต้องใส่เข้ามาในหุ่นยนต์

นอกจากนั้นยังรวมไปถึง battery อีกด้วยครับ

ซึ่งเราต้องดัดแปลงส่วนขาทั้งหมดครับ อีกทั้งเพื่อให้สัดส่วนสมส่วนมากยิ่งขึ้นครับ

แสดงความสูงและสัดส่วนของหุ่นยนต์ครับ
 .
.
.
.
 

credit to Na’ CRV Lab 

เบื้องต้น วิธีการเล่นฟุตบอล


Football Play

ในการเล่นฟุตบอลของ Humanoid Robot ใน RoboCUP นั้นตามกติกาแล้วจะมีพื้นสนามเป็นสีเขียวและมีลูกบอลสีส้ม และประตูสีเหลือง ซึ่งในขั้นต้นเรามีวิธีการในการเล่นฟุตบอลอย่างง่ายคือ การตรวจสอบว่าอยู่บนสนามหรือไม่ หากอยู่บนสนามแล้วก็ทำการหาลูกบอล หากหาไม่เจอก็ทำการหมุนตัว หากเจอลูกบอลก็เช็คขนาดของลูกบอลหากมีขนาดใหญ่ไม่พอ แสดงว่าอยู่ห่างจากลูกบอลก็เดินเข้าไปหาลูกบอลก่อน หาอยู่ใกล้เพียงพอก็สามารถหาตำแหน่งประตูเพื่อทำประตูได้ทันที

 
 

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

 
 
 

 
 .
.
.
.
.
.
.
.
.
.
.
.
..
.
.
.
.
.
.
.
.
.

 .

.

.

.

 

By Te’ CRV Lab

อัพเกรด wCK servo motor


ชุดอัพเกรดสำหรับมอเตอร์ 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

การทดลอง Gyro / FSR


 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


Analog input Block Diagram

สำหรับการใช้ 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

การจับสีของวัตถุ 3 สี


การหาสีส้ม (ลูกบอล) โดยกำหนด Color Threshold

หาสีเขียว (พื้นสนาม) โดยกำหนด Color Threshold

การหาสีเหลือง (กรอบประตู) โดยกำหนด Color Threshold


การหาตำแหน่งและระยะห่างของลูกบอล

By Te’ CRV Lab

การรับภาพจากกล้อง USB


ระบบประมวลผลภาพเป็นงานในเชิงวิศวกรรมคอมพิวเตอร์ที่อาศัยเซ็นเซอร์รับแสง ได้แก่ CMOS และ CCD ซึ่งด้านพื้นฐานและทฤษฎี ศึกษาได้จากหนังสือ 2 เล่มที่น่าสนใจคืน คือ Digital Imaging Theory and Applications, Burdick และ Image Processing with LabVIEW and IMAQ Vision

Matlab for Image Processing

โปรแกรม Matlab เป็นโปรแกรมขั้นสูงที่สามารถประมวลผลภาพได้ดี ในขณะที่โปรแกรม Matlab สนับสนุนกับกล้อง USB มากมาย และง่ายต่อการเริ่มต้นประมวลผลด้วยภาพ เนื่องจากมีฟังก์ชั่นต่างๆให้ได้ทดลอง

การรับภาพเข้ามาด้วยโปรแกรม Matlab สามารถทำได้ด้วยการรันโปรแกรม imaqtool ซึ่งเป็นฟังก์ชั่นของ Image Acquisition Toolkit และสามารถบันทึกภาพเป็นไฟล์วีดีโอได้ด้วย 

OpenCV for Image Processing

Follow ตามตัวอย่าง http://fibo.kmutt.ac.th/blog/humanoid/2009/09/23/opencv_tutorial_mswindow

 

Machine Vision with NI Software

การใช้โปรแกรม 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) 

    
.
.
.
.
.
.
..
.
.
.
.
.
.
..

 

 

 

.
.
.
.
 By Te’ CRV Lab

Set การเตะฟุตบอล


เตะฟุตบอล

By Te’ CRV Lab

ตั้งค่าการลุกยืน ด้านหน้า ด้านหลัง


By Te’ CRV Lab

ตั้งค่าการเดิน


การจัดท่าเดินของหุ่นยนต์นั้นอาศัยโดยแกรมที่กล่าวมาทั้งหมด โดยเขียนโปรแกรมเป็น ฟังก์ชั่นต่อเนื่องกันไปโดยมีระยะเวลา 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