30 มีนาคม 2553

การออกแบบฉากโปรเจ็คเตอร์ในโครงการต้นส้ม

การออกแบบฉากโปรเจ็คเตอร์ในโครงการต้นส้ม

แบ่งออกเป็นฉาก และกระจกสะท้อน




อุปกรณ์ที่ใช้ทำฉาก

โปรไฟล์อลูมิเนียม ขนาด  20 x 20 mm ขนาดต่างๆดังนี้
PS2020-6 200 cm  2 ชิ้น
PS2020-6 170 cm  2 ชิ้น
PS2020-6 100 cm  2 ชิ้น
PS2020-6 เส้นในยาว28.28 cm เส้นนอกยาว 30.28 cm ปลายเฉียง 45 องศา 4 ชิ้น
PS2020-6 20 cm 2 ชิ้น

End CAP ACC-EC2020-6  6 ชิ้น


JE-AB 100X100-10  8 ชิัน



ตัวฐานรองน๊อต ตัวเมีย
JE-RN3(or 4)-6  40 ตัว

น็อต 40 ตัว



ตัว Bracket 135 องศา 6 ตัว




ขาตั้ง 4 ตัว




ฉากกระจก

โปรไฟล์อลูมิเนียม ขนาด  45X45 mm ขนาดต่างๆดังนี้
PS24545L-10  110 cm  4 ชิ้น
PS24545L-10  100 cm  6 ชิ้น
PS24545L-10  80 cm  2 ชิ้น
PS24545L-10 เส้นในยาว28.28 cm เส้นนอกยาว 30.28 cm ปลายเฉียง 45 องศา 4 ชิ้น


JE-AB4343-10 4 ตัว



End CAP ACC-EC4545-10  10 ชิ้น


ตัวฐานรองน๊อต ตัวเมีย
JE-RN3(or 4)-6  40 ตัว

น็อตตัวผู้ 40 ตัว



ขาตั้ง 4 ตัว


โครงการต้นส้ม Interacetive Wall

โครงการต้นส้ม Interacetive Wall

ประชุมเรื่องต้นส้มโดยวางองค์ประกอบที่สำคัญด้านการเขียน software ดังนี้


เราลองแบ่งการเขียนโปรแกรมออกเป็นคลาสและหน้าที่ของสมาชิกในทีมดังนี้


ปัจจุบันเราได้ทำการออกแบบขาตั้งฉากใหม่ขนาด 200 x 150 cm
สูงจากพื้น 20 cm
วาง Projectorr ขึ้นในมุม 45 องศา
วางกระจกห่่างจากฉาก 118 cm ทำมุม 112.5 องศาเทียบกับพื้น

เยี่ยมชมโรงงานประกอบรถยนต์โตโยต้า เก...

เยี่ยมชมโรงงานประกอบรถยนต์โตโยต้า  เกตุเวย์

โรงงานได้รับมาตรฐานต่างๆมากมาย เป็นเวอร์ชั่นใหม่ๆด้วย


ป้ายกำหนดการเยี่ยมชม

แต่งตัวเต็มยศ ความปลอดถัยเต็มร้อย

สมาชิกในการเดินทาง มีหลายคนไม่คุ้นหน้า เค้าเป็นน้องๆฝึกงานที่ FIBO นี้เองครับ

ในสายการผลิต 1 Unit ใช้เวลา 1:40 นาที มีการทำงานสองกะ คือกะเช้า กับกะกลางคืน
1 สายการผลิต ผลิตได้แตกต่างกัน 3 รุ่น คือ Camary Vios Yaris
ที่สำคัญอย่าลืมชี้นิ้วตามทางแยก

23 มีนาคม 2553

Robot Vision Version 2

Robot Vision Version 2
ในเวอร์ชันนี้เราได้ตรวจหาสี โดยใช้สีแบบRGB คือสีแดง เขียว และน้ำเงิน
โดยการอ่านค่าสี จาก Rubik แล้ว เก็บค่า RGB ไว้ 9 ช่อง ต่อหนึ่งสี
เพื่อป้องกันแสงที่ไม่เหมือนกัน แล้วจัดเก็บไว้ในไฟล์ xml ดังนี้


โดยมีทั้งหมด 6 ไฟล์ สำหรับ 6 สีดังนี้
clbRed.xml    
clbWhite.xml
clbGreen.xml
clbOrange.xml
clbYellow.xml
clbBlue.xml

ค้นหาสีด้วยหลักการ  Euclidean distance
โดย plot แกนของสีทั้งสามด้วยบนจุดใน3 มิติ (R, G, B)
แล้วคำนวนระยะห่างของสีจากสูตร

โดยเราจะหาระยะห่างที่น้อยที่สุด ระหว่างจุดที่รับเข้ามาใหม่ กับจุดที่ทราบสีอยู่แล้ว


เมื่อพบว่าจุดที่รับเข้ามาใหม่ใกล้กับจุดที่ทราบสีอยู่แล้วจุดใด ก็แสดงว่าจุดที่รับเข้ามาใหม่ควรมีสีเดียวกัน
แล้วแสดงสีที่ใกล้เคียงที่สุดลงบนภาพ






การหมุน Rubik ให้ Texture ด้านที่ต้อง...

การหมุน Rubik ให้ Texture ด้านที่ต้องการ อยู่ที่ด้าน Active Side A หรือ B โดยใช้การหมุนน้อยที่สุด
ซึ่งตำแหน่งเรานี้จะไม่มีการเปลี่ยนแปลง เมื่อเราคลี่ภาพออกมาใน 2 มิติจะได้ภาพดังนี้


E


D
A
B
C

F



เมื่อ Texture ที่เราต้องการไม่ได้อยู่ที่ด้าน Active Side เราต้องหมุน Rubik แสดงในตารางดังนี้

ด้านของแขนกล ที่มี Texture ที่ต้องการ
ขั้นตอนการหมุน
A
ไม่ต้องหมุน
-> Active Side: A
B
ไม่ต้องหมุน
-> Active Side: B
E
ถ้าแขนกล อยู่ด้าน A
RubikACw
-> Active Side: B

ถ้าแขนกลอยู่ด้าน B
RubikBCcw
-> Acitive Side: A
F
ถ้าแขนกล อยู่ด้าน A
RubikACcw
-> Active Side: B

ถ้าแขนกล อยู่ด้าน B
RubikBCw
-> Active Side: A
D
แขนกลต้องอยู่ด้าน A
RubikACw
RubikACw
-> Active Side: B
C
แขนกลต้องอยู่ด้าน B
RubikBCw
RubikBCw
-> Active Side: A


Texture Mapping เมื่อมีการหมุน Rubik

Texture Mapping เมื่อมีการหมุน Rubik

ตำแหน่งอ้างตั้งต้น ของ Rubik ระหว่างด้านซ้าย ตำแหน่ง Rubik ที่แขนกลสามารถทำงานได้ และขวาม ตำแหน่ง Texture ของ Rubik



E





T


D
A
B
C


L
F
R
B

F





D



ตำแหน่ง Rubik ที่แขนกล สามารถทำงานได้ คือด้าน A และ B ด้านอื่นๆมีไว้เพื่ออ้างอิง ใช้ตัวอักษร C D E F ตามลำดับ เมื่อมีการหมุน Rubik

Texture ของ Rubik แต่ละด้านมีความหมายดังนี้
T = Top ด้านบน
L = Left ด้านซ้าย
F = Front ด้านหน้า
R = Right ด้านขวา
B = Back ด้านหลัง
D = ด้านล่าง

เมื่อแขนกลหมุน Rubik ในท่าต่างๆตามรูปด้านล่าง
จะทำให้ Texture หมุนเทียบกับ ตำแหน่งแขนกลแสดงในตารางดังนี้

ท่าทาง
ตำแหน่งการหมุน Texture เทียบกับ ตำแหน่งแขนกล
rubikACw
D -> E -> B -> F
rubikACcw
D -> F -> B -> E
rubikBCw
A -> E -> C -> F
rubikBCcw
A -> F -> C -> E



ภาพรวมโปรแกรมฝั่ง High Level

ภาพรวมโปรแกรมฝั่ง High Level

ได้ทำการพัฒนาต่อยอดจาก โปรแกรมโอเพ่นซอร์สที่ชื่อว่า Rubik Cube ซึ่งมีจุดเด่นที่ GUI ทั้งแบบ 3 มิติ



และแบบ Texture



โดยนำมาปรับปรุงเพิ่มเติมดัง Class Diagram


โดยการสร้าง class CTCuvbeSlover เพื่อทำการเพื่มในส่วนของ
  1. Texture Mapping ความสัมพันธ์ระหว่าง ด้านของ Rubik กับด้านของแขนกล
  2. Task Planning การหมุนและบิด Rubik ตั้งแต่เริ่มต้นจนเสร็จสิ้น
  3. Serial Port การติดต่อสื่อสารระหว่าง Low Level ผ่านทาง Port: COM1


และสร้าง class CTCubeWnd เพื่อทำการเพิ่มในส่วนของ
  1. Vision อ่านหน้าของ Rubik ทั้ง 6 ด้าน
  2. GUI เพิ่มปุ่มที่จำเป็นสำหรับส่งงานแขนกล

โปรแกรมที่ได้ทำการเพิ่มเติม


Joint Space Trajectory Generation จากจุด q0 ไปจุด q1 ด้วย Robotics Toolbox

Joint Space Trajectory Generation จากจุด q0 ไปจุด q1 ด้วย Robotics Toolbox
โดยใช้หลักการ ให้ ความเร็วต้นและความเร็วปลายเป็นศูนย์ เพื่อให้การเคลื่อนที่ Smooth จากจุด q0, ไปที่ จุด q1
  1. แขนกลแบบ RRR ที q0 มีตำแหน่งมุม 46 195 180 และ q1 มีตำแหน่งมุม 61 194 158
    q0 = deg2rad([46 195 180])
    q1 = deg2rad([61 194 158])

  2. ใช้ step ในการหมุนทั้งหมด 10 step
    step =10
    t = [1:1:step];
    j0t = rad2deg(jtraj(q0(1), q1(1), t))
    j1t = rad2deg(jtraj(q0(2), q1(2), t))
    j2t = rad2deg(jtraj(q0(3), q1(3), t))
    jt = round([j0t j1t j2t])

  3. จะได้ Trajectory ออกมาดังรูป






  4. ซึ่งการทำ Joint Space Trajectory Generation จะช่วยให้การเคลื่อนที่ของ RRR Robot เคลื่อนที่ได้ Smooth ไม่กระตุก

จำลอง Terminator Rubik' Cube Slover ด...

จำลอง Terminator Rubik' Cube Slover ด้วย Robotics Toolbox for Matlab
  1. สร้าง link ทั้งหมดของแขนกล ซึ่งประกอบด้วย 3 link คือ L1 L2 L3
    %% make Robot
    L1 = link([0 12.78 0 0 0],'standard');
    L2 = link([0 12.78 0 0 0],'standard');
    L3 = link([0 14.7 0 0 0],'standard');

  2.  นำ Link ทั้งสามเชื่อมต่อกันเป็นแขนกล
    rbArm = robot({L1 L2 L3});

  3. ตรวจสอบโดยการ Plot
    plot(rbArm, [0 0 0])

  4. ทดสอบ Drive Motor
    q = [0 0 pi/2];
    drivebot(rbArm, q)

  5. ทำ forward kenematic จำได้ Transformation Matrix มา 1 อัน
    T = fkine(rbArm,q)


  6. Robotics Toolbox สามารถหา invert kenematics ได้ แต่ที่ได้ทำการทดสอบจะเกิด Error ขึ้นซึ่งอาจมีสาเหตุมาจากการใช้งาน Matlab ไม่ตรงรุ่นกัน


การติดตั้งและใช้งาน Robotics Toolbox ...

การติดตั้งและใช้งาน Robotics Toolbox for Matlab
  1. Download file จาก http://petercorke.com/Robotics_Toolbox.html  แนะนำให้โหลดรูปแบบ zip
  2. แตกไฟล์ ไปไว้ที่ C:\Program Files\MATLAB\R2009a\toolbox
  3. เปิด Matlab แล้วไปที่ File>Set Path คลิกปุ่ม Add Folder ใส่ C:\Program Files\MATLAB\R2009a\toolbox\robot
    คลิก save คลิก close

  4. อ่านคู่มือการใช้งาน ได้จากไฟล์ README.txt และ robot.pdf ใน C:\Program Files\MATLAB\R2009a\toolbox\robot จะมีตัวอย่างให้ดู

  5. ทดสอบว่าที่ติดตั้งไปใช้ได้หรือไม่ ใช้คำสั่ง rtdemo

    ถ้ามี menu แสดงขึ้นมาแสดงว่าติดตั้งได้สำเร็จ


08 มีนาคม 2553

GPS ราคาถูกน่าใช้

http://xn--gps--ygofi7hzg.blogspot.com/
GPS iPhone 4.3นิ้วมี Bluetooth มี AV in ราคา 3850บาทล๊อตนี้ของยังไม่มีมาครับ อัพเดท 4/3/53 คาดว่า น่าจะมาอาทิตย์หน้านี้แล้วครับ
GPS iPhone 4.3นิ้วไม่มีBluetooth และ AV in ราคา 3200 บาท มีของพร้อมจัดส่งครับ
GPS iPhone 5 นิ้ว มีBluetooth มี AV in ราคา 4300 บาท ล๊อตนี้ของยังไม่มีมาครับ อัพเดท 4/3/53 คาดว่าน่าจะมาอาทิตย์หน้านี้แล้วครับ
GPS iPhone 5 นิ้ว ไม่มี Bluetooth และ AV in ราคา 3800 บาท มีของพร้อมจัดส่งครับ