23 กันยายน 2552

บางจาก IT Day 2009

บางจาก IT Day 2009
นำ Robo Builder ไปโชว์ตัวมาอีกแล้วครับ
คราวนี้ บริษัท บางจาก ปั๊มน้ำมันที่รู้จักกันดี จัดงาน IT ประจำปี
ปีนี้จัดใน Theme หุ่นยนต์
เริ่มแรกเปิดงาน ให้ RoboBuilder ส่งของที่ระลึกให้กับ ประธานเปิดงาน


ต่อจากนั้น รศ.ดร. ชิต เหล่าวัฒนา บรรยายเรื่องหุ่นยนต์ตั้งแต่ อดีตจนถึงปัจจุบัน

แล้ว รศ.ดร. สยาม เจริญเสียง บรรยาย หุ่นยนต์สำหรับ เด็ก หุ่นยนต์สำรวจถึงน้ำมัน

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

ตบท้ายด้วยเครื่องพ่นแอลกอฮอล์ล้างมืออัตโนมัติที่บางจาก




OpenCV 2.0 = OpenCV with Class

OpenCV 2.0 = OpenCV with Class
ได้รับคำแนะนำจากพี่ด๊องมาจาก HCI Meeting ครั้งที่แล้ว
ว่า OpenCV รุ่นใหม่้เค้าปรับให้ใช้งานแบบ Class ได้แล้วครับ
เช่นจากเดิมเราใช้
cvNamedWindow("Window", 1);
ของใหม่เราสามารถเรียกผ่าน Class ได้เลย
cv.NamedWindow("Window", cv.WINDOW_AUTOSIZE)
นอกจากนี้มันยังปรับให้คำสั่งชื่อคล้ายกับ Matlab Image Processing Toolbox
เช่น คำสั่ง Imread ใน Matlab
ใช้ CV::Imread() ได้เลยครับ
และถ้าเปิดไปดูที่ Sample จะพบภาษาใหม่ คือ

Octave    High-level
language, primarily intended for numerical computations

that is mostly
compatible with Matlab. History, news, documentation, and downloads.

มันคือภาษาที่เลียนแบบมาจาก Matlab นั่นเอง
นอกจากนี้ยังมีการ Sample ของ MaxOSX ในภาษา C++ มาให้ด้วย
นับว่า Version 2.0 มีการเปลี่ยนแปลงสำคัญๆ มากมายทีเดียว
ใครสนใจดาวน์โหลดได้ที่ http://sourceforge.net/projects/opencvlibrary/

18 กันยายน 2552

รับสมัครนักศึกษาประจำปีการศึกษา 2553

รับสมัครนักศึกษาประจำปีการศึกษา 2553 PDF พิมพ์ อีเมล์
เขียนโดย ras
Thursday, 20 August 2009

dpp_002_resize.jpg
หลักสูตรวิศวกรรมศาสตรมหาบัณฑิต สาขาวิทยาการหุ่นยนต์และระบบอัตโนมัติ สถาบันวิทยาการหุ่นยนต์ภาคสนาม มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี เปิดรับสมัครนักศึกษาระดับบัณฑิตศึกษา (ปริญญาโทและปริญญาเอก) โดยมีวิธีการรับสมัครดังต่อไปนี้


ขั้นตอนการรับสมัครนักศึกษาระดับบัณฑิตศึกษา ประจำปีการศึกษา 2553
รายละเอียด
วัน/เดือน/ปี
ขั้นตอนการสมัคร
1. กรอกใบสมัครผ่าน website http://hermes.kmutt.ac.th/kmuttadmission/FrontEnd/
MasterAdmission.aspx
ให้ถูกต้องครบถ้วน และพิมพ์ใบสมัครที่ได้
กรอกข้อมูลไว้แล้ว
2. พิมพ์ใบแจ้งชำระเงินค่าสมัคร
3. นำใบแจ้งการชำระเงินค่าสมัคร ไปชำระค่าสมัครด้วยเงินสดที่
เคาท์เตอร์ธนาคารกรุงศรีอยุธยาฯ ทุกสาขาทั่วประเทศ ภายในวันที่มหาวิทยาลัยกำหนด (หากพ้นกำหนด จะต้องดำเนินการสมัครใหม่)
ตั้งแต่บัดนี้ ถึงวันเสาร์ที่ 30 มกราคม 2553


หลักฐานการสมัคร
1. ใบสมัคร (ตามข้อ 1)
2. รูปถ่าย ขนาด 3 x 4 ซม. จำนวน 1 ใบ (ติดในใบสมัคร)
3. สำเนาใบรับรองนักศึกษา หรือใบรายงานผลการศึกษา (Transcript)
3. หนังสือรับรองจากหัวหน้าหน่วยงานหรืออาจารย์ที่เคยสอนในสถาบันอุดมศึกษา (บศ2) จำนวน 2 ฉบับ
4. สำเนาใบแจ้งการชำระเงินค่าสมัคร (ตามข้อ 3)



การส่งหลักฐานการสมัคร
1. ทางไปรษณีย์ : ส่งหลักฐานการสมัครมาที่
สำนักบัณฑิตศึกษาและกิจการนานาชาติ
มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี
126 ถนนประชาอุทิศ แขวงบางมด เขตทุ่งครุ กรุงเทพฯ 10140
ภายในวันพุธที่ 27 มกราคม 2553
2. ด้วยตนเอง : ยื่นหลักฐานการสมัคร ณ สำนักบัณฑิตศึกษา มจธ. วันเสาร์ที่ 30 มกราคม 2553


ประกาศรายชื่อผู้มีสิทธิ์เข้าสอบข้อเขียน วันพุธที่ 17 กุมภาพันธ์ 2553
สอบข้อเขียน แบ่งเป็น 3 หมวด
1. หมวดพื้นฐานทางคณิตศาสตร์
2. หมวดพื้นฐานทางคอมพิวเตอร์
3. หมวดพื้นฐานทางด้านวิทยาศาสตร์ - วิศวกรรมศาสตร์
วันอาทิตย์ที่ 21 กุมภาพันธ์ 2553


ประกาศรายชื่อผู้มีสิทธิ์เข้าสอบสัมภาษณ์ วันพฤหัสบดีที่ 11 มีนาคม 2553


สอบสัมภาษณ์ วันพฤหัสบดีที่ 18 และวันศุกร์ที่ 19 มีนาคม 2553


ประกาศผลสอบคัดเลือก วันศุกร์ที่ 2 เมษายน 2553


การตรวจสอบสถานะการสมัคร
ผู้สมัครสามารถตรวจสอบสถานะการสมัครได้ที่ www.admission.kmutt.ac.th หัวข้อการตรวจสอบการสมัครเข้าศึกษาต่อ หลังจากส่งใบสมัครไปที่สำนักบัณฑิตไม่น้อยกว่า 1 สัปดาห์



การประกาศรายชื่อ
ผู้มีสิทธิ์สอบข้อเขียน สอบสัมภาษณ์ และผู้มีสิทธิ์เข้าศึกษาต่อ สามารถดูได้ที่ www.kmutt.ac.th/organization/gradio



อัตราค่าสมัครสอบ
มีผลภาษาอังกฤษ 300 บาท ไม่มีผลภาษาอังกฤษ 500 บาท
** ภาษาอังกฤษ หมายถึง ผลสอบภาษาอังกฤษมาตรฐานเทียบเท่า TOEFL 500 หรือมีผลสอบภาษาอังกฤษของมหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี



สอบถามรายละเอียดเพิ่มเติมได้ที่ 02 470 9715 หรือ ras@fibo.kmutt.ac.th

17 กันยายน 2552

b14

1

 

ภาคผนวก ก Inverted Pendulum Drawing

 

 

 


b13

อ้างอิง

[1]  Sukontanakarn, V. and M. Parnichkun (2009). "Real-Time Optimal Control for Rotary Inverted Pendulum." AmericanJournal of Applied Sciences 6(6): 1106-1115.

[2] PWM http://www.arduino.cc/en/Tutorial/PWM

[3] RotaryEncoders - Arduino playground  www.arduino.cc/playground/Main/RotaryEncoders

[4] Linear-quadratic regulator http://en.wikipedia.org/wiki/Linear-quadratic_regulator

[5] PID , Norman S.Nise Control System Engineering, 4th Edition 

 

 


b12

12. ข้อเสนอแนะ

1. การหาจุดทำงานที่ดีที่สุดของระบบ ต้องอาศัยการทดลองที่มากพอสมควร(การคำนวณกับงานจริงต้องมีการคลาดเคลื่อนเกิดขึ้นแน่นอน)

แก้ไข: จัดสัญเวลาเพื่อมาทำการทดลองให้ได้

2. Rotary Inverted Pendulum ต้องใช้ Motor ที่มีคุณสมบัติที่ดีมาก 3 ข้อ คือ

  1. Motor ต้องสามารถตอบสนองกับ Voltage น้อยๆได้และต้องมีการตอบสนองที่สม่ำเสมอด้วย

(จำนวน Pole มาก)

2. Motor ต้องมี Torque ที่สูงพอเนื่องจากระบบเป็นแบบDirect Driveและมี Moment of inertia สูง

                 3. Motor ต้องมี Encoder ที่ละเอียดมากเนื่องจากระบบเป็นแบบDirect Drive

 

 


รูป 25 เปรียบเทียบ Encoder ที่มีความละเอียด Pulse ต่างกัน

 

รูปที่ 1. เปรียบเทียบการใช้งานมอเตอร์ 2 แบบโดยทั้งสองรูปแบบจะขับเคลื่อนเพื่อให้ได้ระยะ 8 mmเหมือนกันซึ่งรูปแบบแรกจะได้จำนวน Pulse จำนวน 25 Pulse ในการควบคุมแต่ระบบที่สองจะมีแค่ 2.5 Pulse

3. สัญญาณ PWM มีความถี่ต่ำไป(ประมาณ 500 Hz) ซึ่งไม่เหมาะกับงานControl Motor ที่ต้องการความแม่นยำสูงโดยปรกติจะใช้อยู่ประมาณ 6-10 kHz

แก้ไข: เปลี่ยนไมโครคอนโทรลเลอร์เป็นเบอร์อื่นอาจจะเป็น ARM7 ซึ่งเป็น CPU ขนาด 32 bit ซึ่งสามารถกำเนิดสัญญาณ PWM ที่ความถี่ 8 kHz

4. วงจร Drive Motor ต้องไม่ลดทอนสัญญาณ PWM จากไมโครคอนโทลเลอร์ไปสู่ Motor (Motor Driver Board ใช้ IC Opto PC817)

 

รูป 26 IC Opto PC817


รูป 27 การลดทอนสัญญาณ PWM

แก้ไข: ออกแบบวงจรขับ Motor ใหม่ หรือเปลี่ยน Optocouplersเป็นเบอร์ 6N137 ซึ่งมีค่า Tr = 50 ns และ Tf = 18 ns


รูป 28 IC Optocouplers 6N137


 


b11

11. สรุปผลการทดลอง

1. ระบบการ Swing-up controller สามารถทำงานได้ 

2. ระบบการ Balancing controller ยังทำงานได้ไม่ดีเท่าที่ควร

3.การเปลี่ยนโหมดการทำงานระหว่างการ Swing-up  controller และ Balancing controller  ยังไม่สามารถทำได้

       ค่า Gain ที่ได้จากการคำนวณไม่สามารถนำมาใช้งานกับงานจริงได้เนื่องจาก ค่าตัวแปรต่างๆ มีความคลาดเคลื่อนซึ่งเกิดจากการวัดที่ใช้เครื่องมือวัดที่ไม่ละเอียดพอและมีผลต่อการคำนวณโมเมนต์ความเฉื่อย เนื่องจากเป็นระบบ MIMO เพื่อให้ง่ายต่อการปรับ Gain ควรตัด Gain บางตัวที่มีบทบาทน้อยทิ้ง (KI) และทำการทดลองโดยวิเคาระห์ ทาง Time Domain เพื่อหาจุดทำงานที่ดีที่สุด ซึ่งจากการทดลองได้ค่า Gain ดังนี้

Gain

Angle 1

Angle 2

KP

20

30

KD

 

20

Offset

 

92

ตารางที่ 4 การทดลองหาค่า Gain ที่มุมต่างๆ

 


b11

11. สรุปผลการทดลอง

1. ระบบการ Swing-up controller สามารถทำงานได้ 

2. ระบบการ Balancing controller ยังทำงานได้ไม่ดีเท่าที่ควร

3.การเปลี่ยนโหมดการทำงานระหว่างการ Swing-up  controller และ Balancing controller  ยังไม่สามารถทำได้

       ค่า Gain ที่ได้จากการคำนวณไม่สามารถนำมาใช้งานกับงานจริงได้เนื่องจาก ค่าตัวแปรต่างๆ มีความคลาดเคลื่อนซึ่งเกิดจากการวัดที่ใช้เครื่องมือวัดที่ไม่ละเอียดพอและมีผลต่อการคำนวณโมเมนต์ความเฉื่อย เนื่องจากเป็นระบบ MIMO เพื่อให้ง่ายต่อการปรับ Gain ควรตัด Gain บางตัวที่มีบทบาทน้อยทิ้ง (KI) และทำการทดลองโดยวิเคาระห์ ทาง Time Domain เพื่อหาจุดทำงานที่ดีที่สุด ซึ่งจากการทดลองได้ค่า Gain ดังนี้

Gain

Angle 1

Angle 2

KP

20

30

KD

 

20

Offset

 

92

ตารางที่ 4 การทดลองหาค่า Gain ที่มุมต่างๆ

 


b10

10. ผลการทดลอง

ตัวอย่างผลการทดลองบางส่วนของ Rotary Inverted pendulum ระบบที่ 2


รูป 19 ผลการทดลองระบบที่ 2 เมื่อค่า KP =35, KD =20, KP2 =20, Offset =92


รูป 20 ผลการทดลองระบบที่ 2 เมื่อค่า KP =30, KD =20, KP2 =20, Offset =80


รูป 21 ผลการทดลองระบบที่ 2 เมื่อค่า KP =30, KD =20, KP2 =20, Offset =92

ตัวอย่างผลการทดลองบางส่วนของ Rotary Inverted pendulum ระบบที่ 3

KP=16

KI=0

KD=0


รูป 22 ผลการทดลองระบบที่ 3 เมื่อค่า KP =16, KI =0, KD =0

KP=11

KI=0

KD=0


รูป 23 ผลการทดลองระบบที่ 3 เมื่อค่า KP =11, KI =0, KD =0

KP=90

KI=0

KD=0


รูป 24 ผลการทดลองระบบที่ 3 เมื่อค่า KP =90, KI =0, KD =0

 


b9

9. Graphic User Interface

รูป 18 Graphic User Interface


ส่วนประกอบของโปรแกรม

  1. Motor Position ตำแหน่ง พันซ์ ของ Motor
  2. Motor On/Off สีเขียวเปิดมอเตอร์ สีแดงปิดมอเตอร์
  3. Pendulum Postionตำแหน่ง พันซ์ของ ตัวต้านทานปรับค่าได้
  4. Program Iteration จำนวณรอบของโปรแกรมที่ทำงานซ้ำ
  5. Grain PID ประกอบด้วย ค่าคงที่ของ P  I และ D
  6. Start Program เริ่มต้นการทำงานโปรแกรม
  7. Start Arduino หลังจากเปิด Arduino Board แล้วต้องรอบูตระบบ 8 วินาที จึงจะสามารถกดปุ่มนี้ได้ เพื่อเริ่มติดต่อกับ Arduino ผ่านทาง Serial Port
  8. Set Motor Position กำหนดตำแหน่งให้กับมอเตอร์
     

                           

 

 

 


b8

8. Flow Chart

รูป 16 Rotary Inverted Pendulum Flow Chart


Pseudo Code การควบคุม Pendulum Rod
Algo: Rotary Inverted Pedulum
Input: Motor Encoder(A1), Magnetic Rotary Encoder(A2)
Output: Motor Degree(A1), Motor Volt(PWM)

Process:
While(Turn On)
     A1 <- Motor Encoder
     A2 <- Magnetic Rotary Encoder
     If (87<=A1 && A1<=93)
          Call Balancing Controller(LQR)
     Else
          Call Swing Up Controller(PID)
     End If
End While

การอ่าน Quadrature Encoder

รูป 17 การส่งข้อมูลจาก Megnetic Rotary Encoder และ Motor Encoder             

Megnetic Rotary Encoder และ Moter Encoder ใช้ การส่งข้อมูลแบบ Quad A/B-Mode เมื่อเกิดการหมุนและสามารถพิจารณาทิศทางการหมุน ได้จาก เฟสขาขึ้นของ A เทียบกับ B ดังนี้

  1. หมุนทวนเข็มนาฬิกา เฟสขาขึ้นของ A จะเกิดขึ้นก่อนเฟสขาขึ้นของ B
  2. หมุนตามเข็มนาฬิกา เฟสขาขึ้นของ A จะเกิดขึ้นหลังเฟสขาขึ้นของ B

Pseudo Code การอ่าน Encoder โดยใช้ Interrupt
Algo: Encoder Interrupt
Input: A,B
Output: Position
Process:
     If A = HIGH Then
         If B = HIGH Then
Incresses Position
         Else
Decresses Position
     Else
          If B = HIGH Then
Decresses Position
         Else
Incresses Position
 

การแปลงค่าจากพันซ์เป็นมุมองศา

Magnetic Rotary Encoder มีค่า 512 พันซ์ใน1รอบ
เมื่อ พันซ์เป็นค่าบวก หมุนทวนเข็มนาฬิกา

เมื่อ พันซ์เป็นค่าบวก หมุนทวนเข็มนาฬิกา

เมื่อ

A คือ มุมหน่วยองศา
P คือ พันซ์ที่ถูกนับในระบบ
S คือ มุมเริ่มต้นที่นับ พันซ์

 

 


b8

8. Flow Chart

รูป 16 Rotary Inverted Pendulum Flow Chart


Pseudo Code การควบคุม Pendulum Rod
Algo: Rotary Inverted Pedulum
Input: Motor Encoder(A1), Magnetic Rotary Encoder(A2)
Output: Motor Degree(A1), Motor Volt(PWM)

Process:
While(Turn On)
     A1 <- Motor Encoder
     A2 <- Magnetic Rotary Encoder
     If (87<=A1 && A1<=93)
          Call Balancing Controller(LQR)
     Else
          Call Swing Up Controller(PID)
     End If
End While

การอ่าน Quadrature Encoder

รูป 17 การส่งข้อมูลจาก Megnetic Rotary Encoder และ Motor Encoder             

Megnetic Rotary Encoder และ Moter Encoder ใช้ การส่งข้อมูลแบบ Quad A/B-Mode เมื่อเกิดการหมุนและสามารถพิจารณาทิศทางการหมุน ได้จาก เฟสขาขึ้นของ A เทียบกับ B ดังนี้

  1. หมุนทวนเข็มนาฬิกา เฟสขาขึ้นของ A จะเกิดขึ้นก่อนเฟสขาขึ้นของ B
  2. หมุนตามเข็มนาฬิกา เฟสขาขึ้นของ A จะเกิดขึ้นหลังเฟสขาขึ้นของ B

Pseudo Code การอ่าน Encoder โดยใช้ Interrupt
Algo: Encoder Interrupt
Input: A,B
Output: Position
Process:
     If A = HIGH Then
         If B = HIGH Then
Incresses Position
         Else
Decresses Position
     Else
          If B = HIGH Then
Decresses Position
         Else
Incresses Position
 

การแปลงค่าจากพันซ์เป็นมุมองศา

Magnetic Rotary Encoder มีค่า 512 พันซ์ใน1รอบ
เมื่อ พันซ์เป็นค่าบวก หมุนทวนเข็มนาฬิกา

เมื่อ พันซ์เป็นค่าบวก หมุนทวนเข็มนาฬิกา

เมื่อ

A คือ มุมหน่วยองศา
P คือ พันซ์ที่ถูกนับในระบบ
S คือ มุมเริ่มต้นที่นับ พันซ์

 

 


b7

7. Data Flow Diagram

รูปที่ 14 Rotary Inverted Pedulum Data Flow Diagram

ภาพรวมของDFD ระบบจะอ่านค่ามุมของPendulum Rod() และRotary Arm () และนำมาพิจารณาเลือกโหมดเพื่อรักษาสมดุลของ Pendulum Rod หรือ เหวี่ยง Pendulum Rod ขึ้น คำนวณค่า Pendulum Rod() และ แรงดันไฟฟ้า (PWM)ของมอเตอร์

 

รูป 15 มุม Pendulum Rod โหมดรักษาสมดุลและเหวี่ยงขึ้น

E:\ดาวน์โหลด\t500-007.jpg

 

 

การพิจารณาเลือกโหมด

1.รักษาสมดุล โหมดนี้จะทำงานเมื่อ Pendulum Rod() มีค่ามุม ระหว่าง 87 ถึง 93 องศา หรืออาจเรียกได้ว่า ห่างจากจุด 90 องศา ได้ไม่เกิน 3 องศา

2. เหวี่ยงขึ้น โหมดนี้จะทำงานเมื่อ Pendulum Rod() ตกอยู่ล่างสุด และทำงานจนกว่าจะเหวี่ยงขึ้นสู่ตำแหน่ง องศา

 

 


b6

6. การศึกษาจากแบบจำลอง

 

รูปที่ 10 โปรแกรมจำลองระบบควบคุม

              เป็นโปรแกรมจำลองระบบการควบคุมของ Rotary Inverted Pendulum โดยโปรแกรมสามารถจำลองกลศาสตร์การเคลื่อนที่ของระบบได้และใช้ทดสอบสมการก่อนนำไปใช้กับระบบจริงเพื่อป้องกันความเสียหายของระบบและเพื่อความสะดวกในการทดลอง

เครื่องมือที่ใช้สร้างโปรแกรม

              Python 2.5

              Pyode 1.2.0

              VPython 5

              Panda 3D

 

 

ขั้นตอนการสร้างโปรแกรม

              -กำหนดสภาพแวดล้อมของระบบ

                            การกำหนดสภาพแวดล้อมของระบบมีดังนี้ ความกว้างของหน้าต่าง แรงโน้มถ่วง เช่น

 

scene.height = 800                       กำหนดความสูงของหน้าต่าง

scene.width = 800                          กำหนดความกว้างของหน้าต่าง

world.setGravity((0,-9.81,0))       กำหนดค่าแรงโน้มถ่วงในระบบ

              -สร้างฐานของ Rotary Inverted Pendulum

                            ในการสร้างฐานของโปรแกรมจะไม่พิจรณาด้านกลศาสตร์โดยมีการแสดงผลเฉพาะวัตถุเท่านั้นดังตัวอย่าง

Box1 = box(pos=(0,1,0), length=10, height=1, width=2)

โดยคำสั้งนี้ระบบจะสร้างกล่องสี่เหลี่ยมอยู่ที่ตำแหน่ง x=0,y=1,z=และขนาดของกล่องมีขนาดความกว้าง=2 ยาว=10 และสูง = ดังภาพที่

รูปที่ 11 วัตถุที่ได้จากคำสั่ง(box(pos=(0,1,0), length=10, height=1, width=2))

 

Box1.rotate(angle=pi/2., axis=(0,1,0), origin=(0,0,0))

คำสั่งนี้ใช้สำหรับสั่งหมุนชิ้นงานโดยจากคำสั่งจะได้กล่องถูกหมุนไป 90 องศาแนวแกน y ดังภาพที่ 



 

              -

 

 

 

 

 

รูปที่ 12 กล่องที่ได้จากคำสั่ง(rotate(angle=pi/2., axis=(0,1,0), origin=(0,0,0)))

  • สร้างข้อต่อต่างๆของ   Rotary Inverted Pendulum

                            ในการสร้างข้อต่อต้องสร้างสร้างวัตถุ(Body) ขึ้นมาเมื่อกำหนดว่าวัตถุนั้นๆเป็นวัตถุอ้างอิงของแกนและกำหนดประเภทและค่าต่างๆของข้อต่อ (Joint Parameter) เช่น

j1 = ode.HingeJoint(world)

j1.attach(body1,body2)

j1.setAnchor(body2.getPosition())

จากคำสั่งอธิบายว่า วัตถุ body1 เป็นข้อค่อแบบหมุนกับวัตถุ body2 แต่ยังไม่มีการแสดงผล การแสดงผลทำได้โดยสร้างวัตถุ (Fream) เพื่อสั่งให้ Freamนั้นๆเคลื่อนที่ไปตามตำแหน่งของข้อต่อเช่น

Link.pos= body1.pos

Link.axis = (body4.pos- body1.pos)

ตัวอย่างข้อต่อที่ได้ ดังภาพที่

รูปที่ 13 ข้อต่อ แบบหมุน ที่ได้จากคำสั่ง

ข้อดีของโปรแกรมจำลองการเคลื่อนที่

  • สามารถใช้ศึกษาสมการ PID ของระบได้
  • สามารถทดลองสมการของระบบก่อนใช้กับระบบจริง
  • ลดข้อผิดพลาดและป้องกันการเสียหายของระบบจริง
  • สะดวกในการทดลองได้ทุกที่ทุกเวลา

ข้อเสียของโปรแกรมจำลองการเคลื่อนที่

  • ค่าอัตราขยายต่างๆที่ได้ไม่สามารถนำมาใช้ได้จริง
  • เสียเวลาในการศึกษาและพัฒนามาก