final robotic project with appendix

84
شگاه صنعتي دان امیرکبیر)یک تهرانپلي تکن( انشکده د مهندسي برقوان عنه سازی روبات کنترل و شبی7 درجه آزادیUpper-Limb Powered Exoskeleton نگارش سحر بابایي( 13932929 ) تبي حاج مج يری می( 13932939 ) ( سعود حمصیان م19932192 ) ریم شریفي م( 13932929 ) ستاد ا درس دکتري طالبي حیدر عل اسفند ماه9213

Upload: mojtaba-hajimiri

Post on 12-Apr-2017

85 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: final robotic project with appendix

امیرکبیردانشگاه صنعتي

)پلي تکنیک تهران(

مهندسي برقدانشکده

عنوان

درجه آزادی 7کنترل و شبیه سازی روبات Upper-Limb Powered Exoskeleton

نگارش

(13932929) بابایيسحر

(13932939)میری يمجتبي حاج

(19932192مسعود حمصیان )

(13932929)مریم شریفي

درس استاد

حیدر علي طالبيدکتر

9213ماه اسفند

Page 2: final robotic project with appendix

فهرست عناوين

ب

صفحه عناوینفهرست

9 ........................................................................................................................................... مقدمه 9

5 ............................................................................................................ سینماتیک بازوی انسان 3

6 ........................................................................................................................................................................... مقدمه 2.1

7 .......................................................................................................................................................... حرکات عمومی 2.2

92 .............................................. درجه آزادی 7 اسکلت خارجيتحلیل سینماتیکي و طراحي 2

11........................................................................................................................................................................ مقدمه 3.1

16 ...................................................................................................................................... سینماتیک مستقیم روبات 3.2 DH ............................................................... 16مفاصل و تعیین چارامترهای مختصات یمحورها یاختصاص ده 3.2.1

11 .............................................................................................. پیاده سازی حرکات عمومی دست در فضای مفاصل 3.2.2

11...................................................................................................................... بررسی مشکل تکینگی در روبات 3.3

39 ...................................................................................................... روباتمدلسازی دینامیکي 2

21........................................................................................................................................................................ مقدمه 4.1

22.............................................................................................................................................. روبات یجنبش یانرژ 4.2

22 ........................................................................................................................................... انرژی جنبشی انتقالی روبات 4.2.1

23 ........................................................................................................................................... انرژی جنبشی دورانی روبات 4.2.2

23............................................................................................................................................ روبات لیپتانس یانرژ 4.3

24.......................................................................................................................................... استخراج معادله الگرانژ 4.4

simulink / matlab...................................................................... 35پیاده سازی معادالت در 5 26 ........................................................................................................................................................................ مقدمه 111

Simulink ........................................................................................................................ 26پروژه در یساز ادهیپ 1.2

27............................................................................................................. و مقدار مرجع روبات هیمولد مقدار اول 1.3

21........................................................................................................................................روبات یکنترل ستمیس ريز 1.4 21 ........................................................................................................................................................... روبات یکنترل خط 1.4.1

33 ..................................................................................................................................... معکوس روبات کیناميکنترل د 1.4.2

feedbak linearizer ............................................................................................................................ 31زير سیستم 1.4.3

tracking part ........................................................................................................................................... 32 ستمیس ريز 1.4.4

33.................................................................................................................................روبات یکیناميد ستمیس ريز 1.1

34................................................................................................................ و سرعت روبات تیموقع ستمیس ريز 1.6

34................................................................................................................ چرخش روبات یها هيزاو ستمیس ريز 1.7

Page 3: final robotic project with appendix

فهرست عناوين

ج

Simulink matlab ...................................... 25شبیه سازی حرکات عمومي دست انسان در 2

36 ........................................................................................................................................................................ مقدمه 116

36 ................................................................ کردن شانه از محور بدن کيدور کردن و نزد حرکت یساز هیشب 6.2

31...................................................................................................... انبساط و انتقباض شانهحرکت یساز هیشب 6.3

42......................................................................................... حرکت چرخش شانه به داخل و خارج یساز هیشب 6.4

41........................................................................................................ و انقباض آرنج انبساط حرکت یساز هیشب 116

41........................................................................................................................ حرکت چرخش آرنجی ساز هیشب 616

11............................................................................................................................ مچ یوضع حرکتی ساز هیشب 716

14.......................................................................................................... انبساط و انقباض مچ حرکتی ساز هیشب 116

17.............................................................................................. شانه یانبساط و انقباض افق حرکتی ساز هیشب 116

63 ............................................................................................................. چرخش کامل شانه حرکتی ساز هیشب 6.13

22 ........................................................................................................... ساخت انیمیشن روبات 7

64 ......................................................................................................................................... مراحل ساخت انیمیشن 117

79 .............................................................................................................................. نتیجه گیری 9

73 ............................................................................................................................................. مراجع

72 ........................................................................................................................................ هاپیوست

Page 4: final robotic project with appendix

مقدمه

9

9

فصل اول

مقدمه

Page 5: final robotic project with appendix

مقدمه

3

اين پروژه اختصاص دارد به طراحی سینماتیکی، تحلیل سینماتیکی، دينامیکی و کنترل اسکلت خارجی

های يک مکانزيم ساختاری خارجی با مفاصل و لینک 1(اسکلت خارجی)ور از در اين پروژه منظدست انسان.

حرکات بدن با تقلید تواندمی و (1،2و 1،1)شکل شودتوسط کاربر پوشیده می که شبیه بدن انسان است

های وی ياری رساندانسان کاربر را در انجام فعالیت

. در حالت مینیمال )يعنی توانايی [1]های مختلفی برای سااخت اين روبات اراهه شاده استتا کنون طرح

. اولین درجه آزادی قرار دارند 7های تولید کلیه حرکات دساات انسااان با کمترين درجه آزادی( طراحی

مربوط به آن هر مفصل ربات موتورهای صنعتی که در ها مربوط است به ساختاری شبیه به روباتطراحی

در باشدمیقابل توجه 2(لقی)دارای اينرسی زياد و در آن روبات که . اين روش(1,1)شکل داشات قرار

در رده بعدی . های محدودی پیدا کرده استو کاربرد عمل برای کمک به انساان با مشکتتی همراه است

ی مربوط به مفاصلموتورها کلیهساختار کابلی اراهه شده است که در آن با ساختارهای خارجی اسکلت

هايی به مفاصل انتقال داده و نیروی آنها توساط کابل( 2 ,1) شاکل گذاری شاده انديمجموعه جا پايهدر

نوع انتقال و باشدبسایار کمتری می سایدارای اينر هابه دلیل حذف موتور بازو شاود. در اين آرايش می

. همچنین مفاصل دارای سختی بیشتری نسبت به [1]تر مفاصال را به همراه داردلقی کمقدرت )کابلی(

اساات بصااورتی که کنترل مفاصاال با سااهولت حالت قبل ) وقتی که موتور ها در لینک ها قرار داشااتند(

مطلوب و دتوانند عملکرمیی روبات مچ و بازو ,نج با اين ساااختار کابلی آر .پذيردبیشااتری صااورت می

پیدا کرده است. متعددی کاربردهایای که نزديک به دست انسان را اراهه دهند بگونه

1 exoskeleton

2 backlash

Page 6: final robotic project with appendix

مقدمه

2

کابلی روبات بازو با ساختار 1,2شکل روبات بازو با ساختار معمولی)موتورها در لینک ها قرار دارند( 1,1شکل

شود:کاربردهای اين روبات در چهار قالب زير طبقه بندی می

دستگاه درمانی و تشخیص فیزيوتراپی ناستفاده به عنوا -1

کند. در اينخود از روبات اسااتفاده می فیزيکیمشااکتت به دلیل درمانی يا در اين حالت بیمار

نظور مگیرد. قرار میيا پسیو روبات را در حالت اکتیوحالت پس از پوشیدن روبات توسط بیمار،

فرمان های روبات توساااط بیمار و در يک محیط اکتیو به آن وارد از حال اکتیو اين اسااات که

شود. در نقطه مقابل منظور از حالت پسیو اين است که روبات توسط يک اپراتور ) در اين جا می

ها توسااط اپراتور به روبات داده و فرمان شااودیدر يک محیط پساایو کنترل م فیزيو تراپیساات(

شود. می

های انسانبردن توانايی الروبات کمکی برای با -2

تواند برای مثال میو فرد رفتهدر اين حاالات توانايی اپراتوری که اين روبات را می پوشاااد باال

را بلند کند.زياد اجسامی با وزن

1شبیه سازی واقعیت مجازیوسیله هپتیکی برای -3

برقرار نمايد . يکی از تعامل با محیط مجازی تواندمیر اين حالت اپراتور با پوشیدن اين روبات د

.باشدمیهای کامپیوتری از آن در بازی بارزترين کاربردهای اين بخش استفاده

1 virtual reality simulation

Page 7: final robotic project with appendix

مقدمه

2

2(عملکرد دو سويه)در کاربردهای 1(رهرو)روبات -4

اين تواند با پوشیدنمیمکانهايی که انسان نمی تواند به صورت مستقیم فعالیت نمايد . فرد در

رهرو در يک سیتسم دوسويه روبات اصلی را که در محیط خطرناک قرار دارد کنترل نمايد.روبات

ن بديدر اين پروژه هدف آن است که توانايی روبات برای انجام حرکات دست انسان بررسی شود.

به سازینظور حرکات اساسی دست انسان بر اساس مفاصل درگیر شناسايی شده و برای شبیهم

شود. روبات داده می

ات دست انسان بخش بندی پروژه حاضر بدين ترتیب است که در فصل دوم سینماتیک حرک

شود. تعیین محدوده حرکتی از ديگر معرفی شده و مفاصل درگیر در آن حرکات شناسايی می

سینماتیکی و تحلیل سازید انجام شده در اين بخش است. فصل سوم اختصاص دارد به مدلموار

گیرد. در فصل چهارم اسکلت خارجی دست انسان که براساس حرکات پايه دست انسان شکل می

سازی دينامیکی اسکلت خارجی شرح داده خواهد شد. فصل پنجم اشاره دارد به نحوه مدل

حاصل از . نتايج Simulinkهای مختلف در نرم افزار اعمال کنترلر اسکلت خارجی وسازی مدل

راهه اهای انجام شده برای حرکات پايه دست انسان با توضیحات مربوطه در فصل ششم سازیشبیه

سازی انیمیشنی حرکات دست انسان و اسکلت شده است. فصل هفتم اختصاص دارد به نحوه شبیه

کلی پروژه فصل هشتم آورده شده است. خارجی متصل به آن. نتیجه گیری

1 master

2 teleoperation

Page 8: final robotic project with appendix

فصل دوم : سینماتیک بازوی انسان

5

3

فصل دوم

سینماتیک بازوی انسان

Page 9: final robotic project with appendix

فصل دوم : سینماتیک بازوی انسان

2

مقدمه 3.9

بديهی اسات که برای ساخت روباتی که بتواند حرکات دست انسان را تقلیید کند در ابتدا حرک شناسی

حرکات قابل انجام توسااط دساات انسااان است.دسات بطور کامل انجام پذيرد. هدف اين فصال بررسای

هنگامی که مشغول انجام فعالیتهای روزانه آنحرکات ی بازوی انساان را می توان با ضبط ساشاناحرکت

ات یرتغیهايی که با فعالیتدر دهد که نشان می در آزمايشات بدست آمده نتايج باشد به دست آورد.می

مفاصال بزر ) شاانه و آرنج ( نسبت به مفاصل کوچک ای زاويهسارعت همراه اسات، بازو موقعیت زياد

بسیار زياد است. ( مچ)

سرعت بیشتر از ای مچهای کوچک مشاهده شده است که سرعت زاويهدر هنگام جابه جايی و بطور مشابه

رکتی جاذبه پارامتر غالب در معادالت حدهد که ها نشاان می. تجزيه و تحلیلاساتای شاانه و آرنج زاويه

, 1(اينرساای)بازو می باشااد. مقدار اين پارامتر در مفاصاال و در فعالیتهای مختلف از مجموع پارامترهای

.استبیشتر 3(کرولیوس )و 2( جانب مرکز)

نحوه گرفتن يک يک قاشق با قدرت خاص( تمامی معادالت حرکتی برای نمونه تنوع در گرفتن اجسام )

به همین دلیل بايد همواره معادالت کاملی از روبات .شودشامل میمفاصل روبات از جمله مفصل شانه را

را در اختیار داشت تا بتوان تقلید کاملی از حرکت دست انسان انجام داد.

های فعالیت شوند.نه تقسیم میاحرکات عمومی و فعالیت های روزهای بازو به دو گروه فعالیتبطور کلی

کند و ديگر شااود که طی آنها تنها يک مفصاال حرکت میعمومی به آندسااته از حرکات بازو اطتم می

های روزانه مانند غذا خوردن و نظافت شخصی آندسته از حرکاتی هستند مفاصال اابت هساتند. فعالیت

حرکات عمومی روبات بررساای در اينجا فقط بهبه انجام آنها مبادرت دارد. که يک انسااان عادی طی روز

باشااد و با علت آن اساات که کلیه حرکات روزانه ترکیبی از حرکات عمومی دساات می .شااودپرداخته می

توان حرکات روزانه را به آسانی پیدا کردن از صحت انجام حرکات عمومی توسط روبات میاطمینان خاطر

1 inertial

2 centrifugal

3 Coriolis

Page 10: final robotic project with appendix

فصل دوم : سینماتیک بازوی انسان

7

آمده [2]. درصد مشارکت حرکات عمومی در حرکات روزانه و موارد مربوط به اين حرکات در ايجاد کرد

.است

9حرکات عمومي 3.3

باشد. برای نمونه دست ناشی از دوران تنها يکی از مفاصل دست در يک راستای اابت می عمومیحرکات

برای بررسی حرکات کند.گوی و کاسه سه حرکت عمومی تولید میمفصال شاانه به عنوان يک مفصال

عمومی دست ابتدا الزم است که آناتومی دست مورد بررسی اجمالی قرار گیرد. هدف از اين بررسی تعیین

دهد. سه مفصل آناتومی دست انسان را نشان می 1،2شکل است. نوع حرکت قابل تولید توسط هر مفصل

نشاان داده شاده در اين شاکل عبارتند از مفصال شانهص مفصل آرنج و مفصل مچ. مطابق استخوان بندی

اين شاکلص مفصل شانه با دارا بودن سه محور دوران عمود بر هم يک (b)نشاان داده شاده در قسامت

مفصل آرنج نشان داده شده است. اين مفصل (c)در قسامت . دهدمفصال گوی و کاساه را تشاکیل می

,Ulnarهای توانايی دوران حول دو محور عمود بر هم را دارد. يکی از اين محور ها در راستای استخوان

Radius قرار دارد و محور ديگر در راساتای خطTrochlea .در قسمت قرار دارد(d) مفصل مچ آمده

است که در شکل مشخص شده است offsetعمود بر هم با است که شامل دو محور دوران

1 general motion

Page 11: final robotic project with appendix

فصل دوم : سینماتیک بازوی انسان

9

آناتومی دست انسان و مفاصل آن 1،2شکل

1،2هر يک از مفاصل مشخص شده در شکل برای دسات انسان نه حرکت عمومی شناسايی شده است و

ه جشود هفت حرکت. دو حرکت ديگر با توباشد که میمومی دسات میمربوط به تولید يکی از حرکات ع

ها )به لحاظ سینماتیکی تکینگی( و استفاده مککر آنها در به خاص بودن وضاعیت قرارگیری دست در آن

اين حرکات عمومی با 13،2تا 2،2های شااکلهای انسااان در زمره حرکات عمومی قرار دارند. در فعالیت

کات توسااط بازوی هدف اين پروژه باز تولید اين حر .ها نشااان داده شااده اسااتآن ذکر محدوده حرکتی

روباتی اسکلت خارجی است. حرکات عمومی دست انسان عبارتند از :

Page 12: final robotic project with appendix

فصل دوم : سینماتیک بازوی انسان

1

1)دور کردن و نزديک کردن شانه از محور بدن( -1

Shoulder adduction/abduction 323شکل

2(انبساط و انتقباض شانه) -2

Shoulder flexion/extension 223شکل

1 Shoulder adduction/abduction

2 Shoulder flexion/extension

Page 13: final robotic project with appendix

فصل دوم : سینماتیک بازوی انسان

99

1)چرخش شانه به داخل و خارج( -3

Shoulder interior/exterior rotation 223شکل

2)انبساط و انقباض آرنج ( 4

Elbow Flexion /Extension 112شکل

1 Shoulder interior/exterior rotation

2 Elbow flexion/extension

Page 14: final robotic project with appendix

فصل دوم : سینماتیک بازوی انسان

99

1)چرخش آرنج( -1

Elbow rotation (supination/pronation) 223شکل

2وضعی مچ()حرکت -6

Wrist ulnar/radial deviation 723شکل

1 Elbow rotation (supination/pronation)

2 Wrist ulnar/radial deviation

Page 15: final robotic project with appendix

فصل دوم : سینماتیک بازوی انسان

93

1انبساط و انقباض مچ( )-7

Wrist flexion/extension 923شکل

2)انبساط و انقباض افقی شانه( -1

Shoulder horizontal flexion/extension 123شکل

1 Wrist flexion/extension

2 Shoulder horizontal flexion/extension

Page 16: final robotic project with appendix

فصل دوم : سینماتیک بازوی انسان

92

1)چرخش کامل شانه( -1

Full-range shoulder free motion 9923شکل

1 Full-range shoulder free motion

Page 17: final robotic project with appendix

درجه آزادی 7فصل سوم : طراحی و تحلیل سینماتیکی اسکلت خارجی

92

2

فصل سوم

درجه آزادی 7اسکلت خارجي تحلیل سینماتیکي طراحي و

Page 18: final robotic project with appendix

درجه آزادی 7فصل سوم : طراحی و تحلیل سینماتیکی اسکلت خارجی

95

مقدمه 2.9

بررسی خواهد شد. در فصل قبل نشان 1 اسکلت خارجیروباتی بازوی ساینماتیکی تحلیلفصال در اين

برای اينکه اين روبات بتواند بنابر اين درجه آزادی است. 7داده شد که حرکت کامل دست انسان شامل

پايه با توجه به اين که .[4] درجه آزادی داشاته باشد 7حرکت بازوی انساان را تقلید نمايد حداقل بايد

ها را به دو دساته اابت و قابل حمل تقسایم بندی توان اين روباتمیاند. اين روباتها چگونه طراحی شاده

کند. زن روبات را تحمل میاين پايه بیشتر وو وی يک پايه اابت شده است ر کرد. در حالت اابت روبات بر

نمايد. در اين پروژه فرض بر آن است پوشد و وزن آنرا تحمل میمیولی در حالت قابل حمل فرد روبات را

ی و جابجايتوان مفصل دورانی شانه را بدون هیچ ای اابت قرار دارد. با اين ترتیب میوبات روی پايهکه ر

روبات اسکلت خارجی با پايه اابت است. ای ازنمونه 113شکل حرکت فرض کرد.

روبات پوشش محافظ خارجي با پایه ثابت 922شکل

1 exoskeleton robot (EXR)

Page 19: final robotic project with appendix

درجه آزادی 7فصل سوم : طراحی و تحلیل سینماتیکی اسکلت خارجی

92

سینماتیک مستقیم روبات 2.3

اساکلت خارجی دسات قرار اسات حرکات دست انسان را انجام دهد الزامی است که از آنجايی که روبات

یرکات انتقالگرفتن ح دهينادسینماتیک بازوی انسان را با سینماتیکی يکسان با دست انسان داشته باشد.

در نظر گرفت. 113درجه آزادی مانند شکل 7می توان به صورت يک مکانیزم نسبتا کوچک

DHهای و تعیین پارامتر محورهای مختصات مفاصلاختصاص دهي 2.3.9

ر دهای مختصات است. اسااسی ترين کار در طراحی و تحلیل سینماتیکی انتخاب و انتصاب صحی محور

. در اينجا شده استبه هر يک از مفاصل اختصاص داده 213شکل مطابق اين پروژه محورهای مختصات

که در مفصل شانه قرار دارد و هیچ حرکت انتقالی يا دورانی ددستگاه مختصات مرجع می باش 0منظور از

و به سمت مچ دست شده. اختصااص دهی محورهای مختصاات را از مفصال شاانه شروع دهدانجام نمی

و بازو عمود بر زمین و ساعد ,هادستگاهدر اين اختصااص دهی 2،3مطابق توضایحات شاکل .ادامه دارد

فته شده است.موازی با زمین در نظر گر دست

نحوه اختصاص دهي محورهای مختصات 322شکل

Page 20: final robotic project with appendix

درجه آزادی 7فصل سوم : طراحی و تحلیل سینماتیکی اسکلت خارجی

97

با تعريف DHهای های الصام شده به اجزای روبات پارامترتوجه به دستگاه سپس با

iα :يه بین زاوiZ وi+1Z در جهتiX .

ia : فاصله بینiZ وi+1Z در راستایiX .

id 1بین : فاصله-iX و iX راستای درiZ .

iθ : 1زاويه بین-iX و iX راستای درiZ .

آمده است. 1،3ها در جدول شوند که نتیجه آناستخراج می

روبات DHپارامترهای 922 جدول

Position

Shown

iθ id 1-ia 1-iα i

=0 1θ θ1 0 0 0 1

90-= 2θ θ2 0 0 +90 2

=03θ θ3 LU - 0 -90 3

=90 4θ θ4 0 0 +90 4

90= 5θ θ5 LF- 0 -90 5

90-= 6θ θ6 0 0 +90 6

=07θ θ7 0 0 +90 7

- 0 0 LH 0 8

توان به آسانی و بصورت سیستماتیک موقعیت، سرعت و شتاب سیستم می DHهای با بدست آمدن پارامتر

مفاصل و نقاط مختلف روبات را بدست آورد. توضیحات مربوط به استخراج موقعیت و سرعت در فصل

بعدی هنگام استخراج معادالت دينامیکی سیستم اراهه خواهد شد.

Page 21: final robotic project with appendix

درجه آزادی 7فصل سوم : طراحی و تحلیل سینماتیکی اسکلت خارجی

99

پیاده سازی حرکات عمومي دست در فضای مفاصل 2.3.3

توان حرکات عمومی دست را در حوزه می های مختصاتی به مفاصل حرکتی دستالصام دستگاهپس از

شده تهیه 213گانه آمده در فصل دوم جدول و حرکات نه 2،3با توجه به شکل فضای مفاصل ترجمه کرد.

ل ر مفاصکند و زاويه ديگشود در هر حرکت، زاويه يکی از مفاصل تغییر میاست. همانطور که مشاهده می

ماند.اابت باقی می

گانه دست 1پارامترهای مربوط به هر یک از حرکات 322جدول

Fig. θ7 θ6 θ5 θ4 θ3 θ2 θ1 Motion I

1,2 0 -90 0 0 0 -90 (0, 180)

Shoulder

abduction

adduction 1

2,2 0 -90 0 0 0 (−140,90) 0 Shoulder

flexion

extension 2

3,2 0 -90 +90 +90 (−90, 90) -90 0

Shoulder

interior/

exterior

rotation

3

4,2 0 -90 0 (0,120) 0 0 0 Elbow

flexion

extension 4

5,2 0 -90 (0,180) 90 0 -90 0 Elbow

supination

pronation

5

6,2 0 (−140, −70) 90 90 0 -90 0 Wrist ulnar

radial

rotation 6

7,2 (−90,70) -90 90 90 0 -90 0 Wrist

flexion

extension 7

8,2 0 -90 0 0 0 (−50,135) 90

Shoulder

horizontal

abduction

adduction

8

9,2 0 -90 0 0 0 (0,360) 30 Full-range

shoulder

free motion 9

Page 22: final robotic project with appendix

درجه آزادی 7فصل سوم : طراحی و تحلیل سینماتیکی اسکلت خارجی

91

در روبات 9تکینگيبررسي مشکل 2.2

[4]در دو حالت اتفام می افتدتکینی در حالت کلی

که در اين حالت روبات کامت کشاایده اساات و يا به ساامت ,روبات 2( مرزهای کاری)تکینی در -1

(213شکل بات در مرز کاری روبات قرار دارد )عقب خم شده است که در اين حالت مچ رو

چند مفصل روبات در يک راستا قرار در اين حالت دو يا ,روبات 3( نقاط داخلی)تکینی در -2

باشد.و در اينجا مچ روبات داخل مرز کاری روبات می گیرندمی

محور پايه چرخشااای روبات را در يک زاويه ای مانند در اينجاا می توانیم برای قلبه بر وقوع تکینی

قرار دهیم که اوال روبات به مرز کاری خود نزديک نشود ) نوع اول تکینی اتفام نیفتد( و 313شاکل

يک راستا قرار نگیرند) نوع دوم تکینی نیز اتفام نیفتد (. البته الزم به اانیا هیچ دو مفصال روبات در

توضی است که اين کار باعث سخت شدن تجزيه و تحلیل معادالت سینماتیکی روبات می گردد.

رفع مشکل قرار کرفتن روبات در نقاط تکینی 313حالتی که تکینی اتفام می افتد شکل 213شکل

1 singularity

2 Workspace-boundary singularities

3 Workspace-interior singularities

Page 23: final robotic project with appendix

فصل چهارم: مدلسازی دينامیکی روبات

23

2

فصل چهارم

مدلسازی دینامیکي روبات

Page 24: final robotic project with appendix

فصل چهارم: مدلسازی دينامیکی روبات

21

مقدمه 2.9

. در اين روش ابتدا انرژی جنبشی گرانژ استخراج شده استروش ال ازبا استفاده حرکتی روبات معادالت

ت معادالت حرکتی روبات بدسبا استفاده از الگرانژين سیستم سپس. و يدآو پتانسایل روبات بدسات می

.آيدمی

و 2(ساااعد) , 1(بازو)به سااه بخش توان بازوی انسااان را برای محاساابه انرژی جنبشاای و پتانساایل، می

هر بخش را محاسبه نمود. هو انرژی جنبشی و پتانسیل مربوط ب نمودتقسیم 1،4مطابق شکل 3(دست)

ها با استفاده از آنالیز سینماتیکی که در فصل ای اعضاای روبات و سارعت خطی مرکز جرمسارعت زاويه

مقدار جرم دانستنآيد. برای محاسبه انرژی جنبشی و پتانسیل نیازبه قبل گفته شد به آسانی بدست می

71ها اساات. اين مقادير برای يک انسااان مذکر ها و محل مرکز جرمهای ژيراساایون آناعضااا، شااعاع

(. [3]آمده است )مرجع 1،4و شکل 1،4کیلوگرمی در جدول

محل مرکز جرم هریک از بخش های بازوی انسان و روبات 9،2شکل

1 Upper Arm

2 ForeArm

3 Hand

Page 25: final robotic project with appendix

فصل چهارم: مدلسازی دينامیکی روبات

22

[3]سانتي متر( 972کیلوگرم و 75پارامترهای دینامیکي بازوی انسان ) 922جدول

ردیف طول وزن بخش

فاصله مرکز

جرم از مفصل𝑟𝑥𝑥 𝑟𝑦𝑦 𝑟𝑧𝑧

2kg بازو 1UL L57% U L% U28.5 L26.9% U L15.8% U

0.245m 0.139 0.0723 0.0659 0.0387

1.18kg ساعد 2FU F45.59%U F27.6% U F26.5% U F12.1% U

0.251m 0.114 0.0692 0.0665 0.0301

445gr دست 3HU H79%U H% U62.8 H51.3% U H10.1% U

0.190m 0.150 0.119 0.0974 0.0191

انرژی جنبشي روبات 2.3

انرژی جنبشی روبات از دو بخش انرژی جنبشی انتقالی و انرژی جنبشی دورانی تشکیل شده است.

انرژی جنبشي انتقالي روبات 2.3.9

و دست را به ساعد ,ابتدا سرعت های مراکز جرم بازو روبات انتقالی برای بدسات آوردن انرژی جنبشای

آوريم.صورت زير به دست می

(1)

0 0 1 2 3 0 0

    1   2   3      

0 0 1 2 3 4 5 0 0

    1   2   3   4   5      

0 0 1 2 3 4 5 6 7 0 0

    1   2   3   4   5   6   7      

 

   

   

U U U U

F F F F

H H H H

dP T T T P V P

dt

dP T T T T T P V P

dt

dP T T T T T T T P V P

dt

.ديآیبه دست م ريبه صورت ز یانتقال یجنبش یبه دست آمده در باال انرژ یحال با توجه به سرعت ها

Page 26: final robotic project with appendix

فصل چهارم: مدلسازی دينامیکی روبات

23

(2 ) 0   0 0   0 0   0

           

1

2

T T T

tr U U U F F F H H HT M V V M V V M V V

انرژی جنبشي دوراني روبات 2.3.3

بازو) یاهيابتدا سرعت زاو یدوران یجنبش یمنظور محاسابه انرژ بهU( ساعد ،)

F( و دست )H به )

:شودیاستخراج م ريصورت ز

(3 ) 0 0 0 3 0

1 2 3   1 0 2   2 2 3   3 3     0        ,ˆ ˆ ˆ    U

U U U Uk R k R k R

(4 ) 0 0 5 0

1 5   1 0 5   5 5     0      ,ˆ  ˆ    F

F F F Fk R k R

(1 ) 0 0 7 0

1 7   1 0 7   7 7     0      ,ˆ  ˆ    H

H H H Hk R k R

.ديآ یمبه دست ريبه صورت ز یدوران یجنبش یبه دست آمده در باال انرژ یبا توجه به سرعت ها حال

(6 )                 

           

1

2

T T TU U F F H H

ro U U U F F F H H HT

I I I

انرژی پتانسیل روبات 2.2

. با باشدیم نیکه تابع ارتفاع عضو از سط زم . است یتنها شامل بخش گرانش ساتمیسا لیپتانسا یانرژ

0نقاط ريتصاو 113توجه به شاکل 0 0

     ,  , U F HP P P یدر راساتا 0X از سط نشاان دهنده ارتفاع آن عضو

:ميدار لیپتانس یانرژ یاساس برا نياست. بر ا زمین

(7 ) 0 0 0

  ,   ,   ,U U X F F X H H XU g M P M P M P

0ازمنظور که

  ,U XP مولفه0x 0عبارت

  UP .است

Page 27: final robotic project with appendix

فصل چهارم: مدلسازی دينامیکی روبات

24

رانژگمعادله ال استخراج 2.2

بدست ريبصورت ز یو معادالت حرکت ستمیس نيالگرانژ ل،یو پتانسا یجنبشا یاساتخراج عبارات انرژ با

.نديآیم

(1 ) tr roL T U T T U

(1 ) 1 2 3 4 5 6 7 ,  , , , , , ,Td L L

u q t t t t t t tdt q q

. ديآیدر م ريبه صورت ز سیستم یکیناميمعادله د maple( در نرم افزار 1حل معادله ) با

(13 ) (q,q)q (q)M C G uq

از آنها کيکد مربوط به هر واند بدست آمده mapleمعادالت در نرم افزار یتمام است که یالزم به توض

آورده شده است. (1) وستیدر پ

Page 28: final robotic project with appendix

Simulink/ matlabفصل پنجم : پیاده سازی معادالت در

21

5

پنجمفصل

Simulink/ matlabپیاده سازی معادالت در

Page 29: final robotic project with appendix

Simulink/ matlabفصل پنجم : پیاده سازی معادالت در

26

مقدمه 5.9

اند با اساااتفاده از پکیج شااادهتولید mapleتوساااط کاه معاادالت ديناامیکی و ژاکوبین سااایساااتم

“CodeGeneration” افزار قابل تبديل به زبان اين نرمmatlab توان با بکارگیری اين دستور می. اسات

ها را در آن محیط پیگیری نمود. سازیسازی کرد و شبیهپیاده matlabهمه معادالت را در فضای

Simulinkپیاده سازی پروژه در 5.3

Simulinkشماتیک کلي پروژه در نرم افزار 925شکل

که بیانگر ) initial conditionو ref راديمقاست. 111مطابق شاکل simulinkسااختار کلی پروژه در

روباتمفاصل هايی از موقعیت و سرعت به همراه فیدبک( موقعیت اولیه و حرکت مطلوب روبات هساتند

ref بق ورودیامطحرکت روبات برای را گشااتاورهای الزمبلوک کنترلر . شااودوارد میکنترلر بلوک به

شود به منظور يکسان شدن شرايط اولیه داده می روبات کیبه مدل دينامیگشتاور که اين نمايدتأمین می

Page 30: final robotic project with appendix

Simulink/ matlabفصل پنجم : پیاده سازی معادالت در

27

مدل دينامیکی روبات موقعیت خروجی .شودهر دو يکی فرض میشرايط اولیه refروبات با نقطه شاروع

های بلوک. در ادامه شوداست که برای مشاهده و کنترلر از آن استفاده میو سارعت مفاصال qمفاصال

شوند. بطور تفصیلی شرح داده می 1،1آمده در شکل

مرجع روباتمقدار مولد مقدار اولیه و 5.2

مدار داخلي زیر سیستم مولد مقدار اولیه روبات 325شکل

ای طراحی شده است کهبگونه اين زير سیستم باشد.می 211ساختار داخلی اين زير سیستم مطابق شکل

گانه دست انسان را 1روبات يکی از حرکات دهدمی command ورودیبه کاربر با توجه به مقداری که

در فصل دوم آورده شده با شاکل و محدوده حرکتی . توضایحات مربوط به هر يک از حرکاتبدهدانجام

آمده است. 213 در جدولاين حرکات برای انجام های روبات ضمن نحوه تغییر هر يک از پارامتراست. در

را انجام دهد ما 1دور و نزديک کردن شانه از محور بدنحرکت خواهدمیبرای مثال هنگامی که روبات

motionای که برای زير سیستم رد نمايیم . و با توجه به برنامهوا 1عدد Commandبايد در قسمت

1 Shoulder adduction/abduction

Page 31: final robotic project with appendix

Simulink/ matlabفصل پنجم : پیاده سازی معادالت در

21

generator آمده است تغییر 213ر جدول صورت مقاديری که دزاويه های روبات به نوشته شده است

باشند.می1،1 . اين مقادير برای اين حرکت به صورت جدول نمايدمی

Shoulder adduction/abductionزوايه های مربوط به حرکت 111جدول

7θ 6θ 5θ 4θ 3θ 2θ 1θ Motion I

0 -90 0 0 0 -90 0-180 Sh abduction 1

13نیز بايد برابر منفی 6θو 2θدرجه تغییر نمايد و زاويه 113تا 3از 1θبرای انجام اين حرکت بايد زاويه

بنابراين برنامه تولید اين مقادير در زير درجه باشد و بقیه زوايا برای انجام اين حرکت صفر می باشند.

آيد.زير در می به صورت Motion Generatorسیستم

if command ==1 % Shoulder Abduction/Adduction

inc=[0 -pi/2 0 0 0 -pi/2 0]';

theta_1 = (sin(0.5*t-pi/2)+1)*pi/2 ;

ref = [theta_1 -pi/2 0 0 0 -pi/2 0]';

else if ….

.شده استاستفاده sinاز تابع 113تا 3از 1θبرای تغییر زاويه شودديده می همانطور که در برنامه فوم

گانه دست انسان نیز به صورتی که در باال اشاره شد قابل انجام شدن می باشند. 1ساير حرکات

زیر سیستم کنترلي روبات 5.2

و وظیفه يکی از آنها ورودی مرجع است ن زير سایساتم دارای ساه ورودی است کهاي 311مطابق شاکل

های موقعیت و ساارعت مفاصاال روبات دو ورودی ديگر فیدبک. بر عهده داردنوع عمل حرکتی را تعیین

Page 32: final robotic project with appendix

Simulink/ matlabفصل پنجم : پیاده سازی معادالت در

21

زير ساایسااتم 4. برای بلوک کنترلراندخروجی مدل دينامیک روبات فیدبک گرفته شاادهکه از باشااندمی

کنترلر خطی و دينامیک معکوس ها که عبارتند از تای آندر اين جاا فقط دوتعريف شاااده اسااات کاه

ت نايز اند تا درصوربصورت ساختاری قرار گرفتهزير سیستم های کنترل نیرو و امپدانس شود.تفاده میاس

های کنترلی را به آسانی در آنها قرار داد.به ارتقای کنترلر بتوان الگوريتم

زیر سیستم کنترلي روبات 225شکل

کنترل خطي روبات 5.2.9

توان به باشد که میمی PDاساتفاده شاده در اينجا کنترلاسات. 411بلوک کنترل خطی مطابق شاکل

.ارتقا داد PIDآسانی آنرا به

Page 33: final robotic project with appendix

Simulink/ matlabفصل پنجم : پیاده سازی معادالت در

33

روبات PDکنترلر 225شکل

روبات 9دینامیک معکوسکنترل 5.2.3

در روابط زير و استفاده uساختار کنترلر دينامیک معکوس بصورت زير است. با استفاده از قانون کنترلی

𝐾𝑃از , 𝐾𝑑 توان از صفر شدن مجانبی خطا اطمینان حاصل کرد. مثبت معین مناسب می

(13 )(q,q)q (q)M C G uq

(11 )

1 1

( , , ) (q

( ) ( )

0 ( ) ( ) ( )

0

0

,q)q (q) a

a

a

q

d D d p d

d D d p d

D p

D

q

q

p

q

q K q q K q q

M q q K q q K q q

Me K e K

u f q

e

e M

q t C G

M

M

K e M K e

1 Inverse Dynamic

Page 34: final robotic project with appendix

Simulink/ matlabفصل پنجم : پیاده سازی معادالت در

31

که در ادامه توضیحی باشادمی 111دينامیک معکوس روبات به صاورت شاکل بلوک کنترلر مدار داخلی

شود. های آن اراهه میبرای هر يک از زير ساختار

کنترلر دینامیک معکوس روبات 525 شکل

feedback linearizerزیر سیستم 5.2.2

به منظور حدف جمتت غیر خطی تولید معادالت دينامیکی روبات رااين زير سایستم قسمت غیر خطی

,𝐶(𝑞کند )همان عبارات می �̇�)�̇� + 𝑔(𝑞) .)است. 611زير سیستم به صورت شکل ساختار داخلی اين

Page 35: final robotic project with appendix

Simulink/ matlabفصل پنجم : پیاده سازی معادالت در

32

feedbak linearizerزیر سیستم 225شکل

tracking partزیر سیستم 5.2.2

aکنترل را انجام می دهد. يعنی trackingير سیستم در واقع کار بخش اين ز q ( را 11موجود در رابطه)

ايجاد می نمايد.

(12 )( ) ( )a d D d pq dMq K q q K q q

Page 36: final robotic project with appendix

Simulink/ matlabفصل پنجم : پیاده سازی معادالت در

33

دینامیکي روباتزیر سیستم 5.5

زيرسیستم کنترلی و ين زير سیستم ورودی گشتاور خود را از شاود اديده می 111همانطور که در شاکل

موقعیت و دينامیک ساایسااتم گیرد.خروجیورودی مقدار اولیه خود را از زير ساایسااتم مقدار مرجع می

آمده است. 711مربوط به اين زير سیستم در شکل ساختار داخلی باشد.سرعت مفاصل روبات می

سیستم دینامیکي روبات مدار داخلي مربوط به زیر 725شکل

ت وسرع با انتیگرال گیری از آن سپس. کندتاب مفاصل روبات را تولید میش M INVتابع 711در شکل

نیز همان nonlinear part. در ضمن الزم به توضی است که زير سیستم آيدمیموقعیت مفاصل بدست

شده است.توضی داده 31411زير سیستمی است که در بخش

Page 37: final robotic project with appendix

Simulink/ matlabفصل پنجم : پیاده سازی معادالت در

34

موقعیت و سرعت روبات سیستم زیر 5.2

های و خروجی 3بدست آمده در فصل سینماتیک مستقیماين زير سیستم با توجه به 1،1مطابق شاکل

مچ و نوک انگشتان ,آرنج ست )موقعیت و سرعت بخش های مختلف د، 1،1دينامیک سیستم در شکل

دهد. را محاسبه کرده و نتايج را نشان میدست(

رخش روباتزاویه های چزیر سیستم 5.7

های و خروجی 3اين زير سیستم با توجه به سینماتیک مستقیم بدست آمده در فصل 1،1مطابق شاکل

های مختلف دست )بازو، ساعد و ، موقعیت دورانی و سرعت دورانی بخش 1،1دينامیک سیستم در شکل

دهد. کف دست( را محاسبه کرده و نتايج را نشان می

Page 38: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

31

2

ششمفصل

Simulinkشبیه سازی حرکات عمومي دست انسان در

matlab

Page 39: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

36

مقدمه 2.9

مطابق اعمال گانه عمومی دساات انسااان. اين بخش اختصاااص دارد به اراهه نتايج حاصاال از حرکات نه

گانه به سایستم معرفی شده در فصل پنجم های تعريف شاده در فصال ساوم برای اين حرکات نهورودی

نتايج اين فصل حاصل شده است که در ادامه به تفصیل توضی داده خواهد شد.

9دور کردن و نزدیک کردن شانه از محور بدن شبیه سازی حرکت 2.3

باشند و همچنین در 213سطر اول جدول برای انجام اين حرکت بايد زاويه های مفاصل روبات به صورت

x,y,zموقعیت وارد شود در اين صورت 1زير سیستم مقدار دهی اولیه روبات عدد commandقسامت

آيند.در می 116مچ و نوک انگشتان ( به صورت شکل ,هريک از بخش های مختلف دست ) آرنج

Shoulder adduction/abductionمچ و نوک انگشتان ( در حرکت ,بخش های مختلف دست ) آرنج موقعیت 922شکل

1 Shoulder adduction/abduction

Page 40: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

37

به صورت x,y صفحه مچ و نوک انگشتان ( در ,هريک از بخش های مختلف دسات ) آرنج x,yموقعیت

در می آيد. 216شکل

x-yدر صفحه Shoulder adduction/abductionمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 322شکل

مچ و نوک انگشتان ( در حالت سه بعدی به ,هريک از بخش های مختلف دسات ) آرنج x,y,zموقعیت

در می آيد. 316صورت شکل

در حالت سه بعدی Shoulder adduction/abductionمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 222شکل

Page 41: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

31

می باشد. 416نحوه تغییر زاويه ها و گشتاورهای مفاصل به صورت شکل

Shoulder adduction/abductionنحوه تغییر زاویه ها و گشتاورهای مفاصل در حرکت 222شکل

Page 42: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

31

9انبساط و انتقباض شانهشبیه سازی حرکت 2.2

باشند و همچنین در 213برای انجام اين حرکت بايد زاويه های مفاصل روبات به صورت سطر دوم جدول

x,y,zموقعیت وارد شود در اين صورت 2زير سیستم مقدار دهی اولیه روبات عدد commandقسامت

آيند.در می 116مچ و نوک انگشتان ( به صورت شکل ,هريک از بخش های مختلف دست ) آرنج

Shoulder flexion/extensionمچ و نوک انگشتان ( در حرکت ,بخش های مختلف دست ) آرنج موقعیت 522شکل

1 Shoulder flexion/extension

Page 43: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

43

به صورت x,z صفحه مچ و نوک انگشتان ( در ,هريک از بخش های مختلف دسات ) آرنج x,zموقعیت

آيد.در می 616شکل

x-zدر صفحه Shoulder flexion/extensionمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 222شکل

مچ و نوک انگشتان ( در حالت سه بعدی به ,هريک از بخش های مختلف دسات ) آرنج x,y,zموقعیت

آيد.در می 716صورت شکل

در حالت سه بعدی Shoulder flexion/extensionمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 722شکل

Page 44: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

41

باشد.می 116نحوه تغییر زاويه ها و گشتاورهای مفاصل به صورت شکل

Shoulder flexion/extensionنحوه تغییر زاویه ها و گشتاورهای مفاصل در حرکت 922شکل

Page 45: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

42

9شبیه سازی حرکت)چرخش شانه به داخل و خارج( 2.2

باشند و همچنین 213برای انجام اين حرکت بايد زاويه های مفاصال روبات به صاورت سطر سوم جدول

وارد شااود در اين صااورت موقعیت 3زير ساایسااتم مقدار دهی اولیه روبات عدد commandدر قساامت

x,y,z آيند.در می 116مچ و نوک انگشتان ( به صورت شکل ,هريک از بخش های مختلف دست ) آرنج

Shoulder interior/exterior rotationمچ و نوک انگشتان ( در حرکت ,بخش های مختلف دست ) آرنج موقعیت 122شکل

1 Shoulder interior/exterior rotation

Page 46: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

43

به صاورت شکل y,zمچ و نوک انگشاتان ( در ,هريک از بخش های مختلف دسات ) آرنج y,zموقعیت

آيد.در می 1316

x-zدر صفحه Shoulder interior/exterior rotationمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 9922شکل

مچ و نوک انگشتان ( در حالت سه بعدی به ,هريک از بخش های مختلف دسات ) آرنج x,y,zموقعیت

در می آيد. 1116صورت شکل

در حالت سه بعدی Shoulder interior/exterior rotationمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 9922شکل

Page 47: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

44

باشد.می 1216نحوه تغییر زاويه ها و گشتاورهای مفاصل به صورت شکل

Shoulder interior/exterior rotationنحوه تغییر زاویه ها و گشتاورهای مفاصل در حرکت 9322شکل

Page 48: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

41

9انبساط و انقباض آرنج شبیه سازی حرکت 2.5

باشند و همچنین 213برای انجام اين حرکت بايد زاويه های مفاصل روبات به صورت سطر چهارم جدول

وارد شااود در اين صااورت موقعیت 4زير ساایسااتم مقدار دهی اولیه روبات عدد commandدر قساامت

x,y,z ند.آيدر می 1316مچ و نوک انگشتان ( به صورت شکل ,هريک از بخش های مختلف دست ) آرنج

Elbow flexion/extensionمچ و نوک انگشتان ( در حرکت ,بخش های مختلف دست ) آرنج موقعیت 9222شکل

1 Elbow flexion/extension

Page 49: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

46

به صورت x,z صفحهمچ و نوک انگشتان ( در ,هريک از بخش های مختلف دسات ) آرنج x, zموقعیت

آيد.در می 1416شکل

x-zدر صفحه Elbow flexion/extensionمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 9222شکل

مچ و نوک انگشتان ( در حالت سه بعدی به ,هريک از بخش های مختلف دسات ) آرنج x,y,zموقعیت

آيد.در می 1116صورت شکل

در حالت سه بعدی Elbow flexion/extensionمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 9522شکل

Page 50: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

47

باشد.می 1616ورهای مفاصل به صورت شکل نحوه تغییر زاويه ها و گشتا

Elbow flexion/extensionنحوه تغییر زاویه ها و گشتاورهای مفاصل در حرکت 9222شکل

Page 51: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

41

9)چرخش آرنج(شبیه سازی حرکت 2.2

باشند و همچنین 213برای انجام اين حرکت بايد زاويه های مفاصال روبات به صورت سطر پنجم جدول

وارد شااود در اين صااورت موقعیت 1زير ساایسااتم مقدار دهی اولیه روبات عدد commandدر قساامت

x,y,z د.آيندر می 1716مچ و نوک انگشتان ( به صورت شکل ,هريک از بخش های مختلف دست ) آرنج

Elbow rotationمچ و نوک انگشتان ( در حرکت ,بخش های مختلف دست ) آرنج موقعیت 9722شکل

(supination/pronation)

مچ و نوک انگشتان اابت ,ديده می شود در اين حرکت موقعیت آرنج 1716همانطور که در شکل

.باشدمی

1 Elbow rotation (supination/pronation)

Page 52: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

41

به صورت شکل x,zمچ و نوک انگشااتان ( در ,هريک از بخش های مختلف دسات ) آرنج x,zموقعیت

آيد.در می 1116

x-zدر صفحه Elbow rotation (supination/pronation)مچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 9922شکل

مچ و نوک انگشتان ( در حالت سه بعدی به ,هريک از بخش های مختلف دسات ) آرنج x,y,zموقعیت

آيد.در می 1116ل صورت شک

در حالت سه Elbow rotation (supination/pronation)مچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 9122شکل

بعدی

Page 53: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

13

باشد.می 2316نحوه تغییر زاويه ها و گشتاورهای مفاصل به صورت شکل

Elbow rotation (supination/pronation)نحوه تغییر زاویه ها و گشتاورهای مفاصل در حرکت 3922شکل

Page 54: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

11

9حرکت وضعي مچبیه سازی ش ( 2.7

باشند و همچنین 213جدول ششمبرای انجام اين حرکت بايد زاويه های مفاصال روبات به صورت سطر

وارد شااود در اين صااورت موقعیت 6زير ساایسااتم مقدار دهی اولیه روبات عدد commandدر قساامت

x,y,z آيند.در می 2116مچ و نوک انگشتان ( به صورت شکل ,هريک از بخش های مختلف دست ) آرنج

Wrist ulnar/radial deviationمچ و نوک انگشتان ( در حرکت ,بخش های مختلف دست ) آرنج موقعیت 3922شکل

1 Wrist ulnar/radial deviation

Page 55: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

12

به صورت y,z صفحه مچ و نوک انگشتان ( در ,هريک از بخش های مختلف دسات ) آرنج y,zموقعیت

آيد.در می 2216شکل

y-zدر صفحه Wrist ulnar/radial deviation مچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 3322شکل

مچ و نوک انگشتان ( در حالت سه بعدی به ,هريک از بخش های مختلف دسات ) آرنج x,y,zموقعیت

آيد.در می 2316صورت شکل

در حالت سه بعدی Wrist ulnar/radial deviationمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 3222شکل

Page 56: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

13

باشد.می 2416نحوه تغییر زاويه ها و گشتاورهای مفاصل به صورت شکل

Wrist ulnar/radial deviationنحوه تغییر زاویه ها و گشتاورهای مفاصل در حرکت 3222شکل

Page 57: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

14

9انبساط و انقباض مچ( شبیه سازی حرکت 2.9

باشند و همچنین 213برای انجام اين حرکت بايد زاويه های مفاصال روبات به صورت سطر هفتم جدول

وارد شااود در اين صااورت موقعیت 7زير ساایسااتم مقدار دهی اولیه روبات عدد commandدر قساامت

x,y,z آيند.در می 2116ک انگشتان ( به صورت شکل مچ و نو ,هريک از بخش های مختلف دست ) آرنج

Wrist flexion/extensionمچ و نوک انگشتان ( در حرکت ,بخش های مختلف دست ) آرنج موقعیت 3522شکل

1 Wrist flexion/extension

Page 58: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

11

به صورت x,z صفحه مچ و نوک انگشتان ( در ,هريک از بخش های مختلف دسات ) آرنج x,zموقعیت

آيد.در می 2616شکل

x-zدر صفحه Wrist flexion/extensionمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 3222شکل

مچ و نوک انگشتان ( در حالت سه بعدی به ,هريک از بخش های مختلف دسات ) آرنج x,y,zموقعیت

در می آيد. 2716صورت شکل

در حالت سه بعدی Wrist flexion/extensionمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 3722شکل

Page 59: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

16

باشد.می 2116نحوه تغییر زاويه ها و گشتاورهای مفاصل به صورت شکل

Wrist flexion/extension مفاصل در حرکت یها و گشتاورها هیزاو ریینحوه تغ 3922شکل

Page 60: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

17

9انبساط و انقباض افقي شانهشبیه سازی حرکت 2.1

باشند و همچنین 213برای انجام اين حرکت بايد زاويه های مفاصل روبات به صورت سطر هشتم جدول

وارد شااود در اين صااورت موقعیت 1زير ساایسااتم مقدار دهی اولیه روبات عدد commandدر قساامت

x,y,z د.آيندر می 2116مچ و نوک انگشتان ( به صورت شکل ,هريک از بخش های مختلف دست ) آرنج

Wrist flexion/extensionمچ و نوک انگشتان ( در حرکت ,بخش های مختلف دست ) آرنج موقعیت 3122شکل

1 Shoulder horizontal flexion/extension

Page 61: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

11

به صورت x,z صفحه مچ و نوک انگشتان ( در ,هريک از بخش های مختلف دسات ) آرنج y,zموقعیت

آيد.در می 3316شکل

y-zدر صفحه Shoulder horizontal flexion/extensionدر حرکت مچ و نوک انگشتان ( ,دست ) آرنج موقعیت 2922شکل

مچ و نوک انگشتان ( در حالت سه بعدی به ,هريک از بخش های مختلف دسات ) آرنج x,y,zموقعیت

در می آيد. 3116صورت شکل

در حالت سه Shoulder horizontal flexion/extensionمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 2922شکل

بعدی

Page 62: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

11

باشد.می 3216نحوه تغییر زاويه ها و گشتاورهای مفاصل به صورت شکل

Shoulder horizontal flexion/extension مفاصل در حرکت یها و گشتاورها هیزاو ریینحوه تغ 2322شکل

Page 63: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

63

9چرخش کامل شانهحرکت سازی شبیه 2.99

باشند و همچنین در 213برای انجام اين حرکت بايد زاويه های مفاصل روبات به صورت سطر نهم جدول

x,y,zوارد شود در اين صورت موقعیت 1زير سیستم مقدار دهی اولیه روبات عدد commandقسامت

.آينددر می 3316مچ و نوک انگشتان ( به صورت شکل ,هريک از بخش های مختلف دست ) آرنج

Full-range shoulder free motionمچ و نوک انگشتان ( در حرکت ,بخش های مختلف دست ) آرنج موقعیت 2222شکل

1 Full-range shoulder free motion

Page 64: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

61

به صورت y,z صفحه مچ و نوک انگشاتان ( در ,هريک از بخش های مختلف دسات ) آرنج y,zموقعیت

آيد.در می 3416شکل

x-zدر صفحه Full-range shoulder free motionمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 2222شکل

مچ و نوک انگشتان ( در حالت سه بعدی به ,هريک از بخش های مختلف دسات ) آرنج x,y,zموقعیت

در می آيد. 3116صورت شکل

در حالت سه بعدی Full-range shoulder free motionمچ و نوک انگشتان ( در حرکت ,دست ) آرنج موقعیت 2522شکل

Page 65: final robotic project with appendix

Simulink/ matlabفصل ششم : شبیه سازی حرکات عمومی دست انسان در

62

باشد.می 3616نحوه تغییر زاويه ها و گشتاورهای مفاصل به صورت شکل

Full-range shoulder free motion مفاصل در حرکت یها و گشتاورها هیزاو ریینحوه تغ 2222شکل

Page 66: final robotic project with appendix

فصل هفتم: مراحل ساخت انیمیشن روبات

63

7

فصل هفتم

ساخت انیمیشن ربات

Page 67: final robotic project with appendix

فصل هفتم: مراحل ساخت انیمیشن روبات

64

ربات شنیمیمراحل ساخت ان 7.9

مشاهده 117 مايا که نمای کلی آن را در شکل افزاردر اين بخش ابتدا به تشري نحوه طراحی ربات در نرم

پیوند مدل در متلب و مکانیک طراحی شده و انیمیشن و نهايتا به تشري ارتباط شده کنید، پرداختهمی

پردازيم.نهايی می

افزار مایانمای نرم 927شکل

لینک به ترتیب با سه، يک و سه درجه آزادی را وارد محیط نموده و 3ابتدا 317و 217های مطابق شکل

دهیم.قرار میها مدل را تشکیل داده و مطابق مدل اصلی آن

اول( نکی)وارد کردن ل امای افزار نرم ینما 327شکل

Page 68: final robotic project with appendix

فصل هفتم: مراحل ساخت انیمیشن روبات

61

)وارد کردن مفصل اول( امای افزار¬نرم ینما 227شکل

باشد. ما به دنبال اين هستیم که ها همگی قابل تنظیم می طول و اندازه لینک 317و 217که مطابق شکل

با آن حرکت کنند و به همین ترتیب با حرکت دستگاه های دو تا هفت با حرکت دستگاه اول همه دستگاه

ا ها به هم ر ست وضعیت لینکيهای سه تا هفت با آن حرکت کنند برای اين کار می بادوم همه دستگاه

مطابق شکل مشخص نمايیم.

واض است که اگر هر لینک را فرزند لینک قبلی خود بگیريم اين فرزند حرکت والدين خود را تعقیب

کردن groupو همچنین 417مطابق شکل children و parentپس با بکارگیری دو متد کندمی

نمايیم. الزم به ذکر است ها را معلوم می وضعیت اين لینک 117های با سه درجه آزادی مطابق شکل لینک

گزينیم که کلیک کرده و سپس فرزندان آن را برمی parentابتدا روی لینک parentبرای بکارگیری متد

دهد. همچنین ها را نشان می رسیم که رابطه لینکمی 117پس از انجام اين کار به لیستی مطابق شکل

groupدرجه آزادی خودش را با خودش 3بار به دلیل داشتن 3کردن يک لینک با خودش groupبرای

کنیم.می

Page 69: final robotic project with appendix

فصل هفتم: مراحل ساخت انیمیشن روبات

66

کردن( parent) امای افزار¬نرم ینما 227شکل

کردن( group) امای افزار¬نرم ینما 527شکل

(ها¬نکیل تی)وضع امای افزار¬نرم ینما 227شکل

Page 70: final robotic project with appendix

فصل هفتم: مراحل ساخت انیمیشن روبات

67

ذخیره کرده تا بتوانیم در متلب باز wrlکنید را با فرمت مشاهده می717نهايتا مدل نهايی که در شکل

.نموده تا انیمیشن را بسازيم

شده يربات طراح یينها ینما 727شکل

ها را به هم ، وضاااعیت لینک117مطابق شاااکل editدر نرم افزار متلب مدل را وارد کرده و در قسااامت

بینیم.می

را در متلب ها نکیل تیوضع شینما 927شکل

Page 71: final robotic project with appendix

فصل هفتم: مراحل ساخت انیمیشن روبات

61

کنیم که ورودی مورد نظر زوايای چرخش مفاصل است. و با اين تنظیم هفت در اينجا تعیین می

ها د، اين ورودینگیر شود که به ترتیب هريک چهار ورودی میروی بلوک ظاهر می117ورودی مطابق شکل

ای که تعیین کننده محور چرخش است و يک اسکالر که زاويه چرخش به مولفه 3عبارتند از يک بردار

ورت صبات در حالت ابتدايی دقیقا به شکل دست انسان باشد يکسری زاويه بهوراديان است. برای اين که ر

م.دهیست نیز میآف

بمتل در ها بلوک شینما 127شکل

بريم. می بهره VR sinkبرای تطبیق و دادن اين چهار ورودی به بلوک signal expanderاز بلوک

مشاهده 111ای مطابق شکلبات را در پنجرهوها حرکت رکردن متلب و تغییر ورودی Runنهايتا با

نمايیم.می

Page 72: final robotic project with appendix

فصل هفتم: مراحل ساخت انیمیشن روبات

61

در متلب شنیمیان شینما 9927شکل

Page 73: final robotic project with appendix

فصل هشتم : نتیجه گیری

73

9

فصل هشتم

نتیجه گیری

Page 74: final robotic project with appendix

فصل هشتم : نتیجه گیری

71

درجه آزادی مورد بررسی قرار 7سازی حرکات عمومی دست انسان توسط يک روبات در اين پروژه شبیه

ت شود و قرار اسگرفت. روبات مورد بررسی عبارتست از يک اسکلت خارجی که توسط انسان پوشیده می

کی از اهداف تمام حرکات دست انسان را بطور کامل و بدون هیچ عیب و نقصی انجام دهد. از همین رو ي

اين امر 3و 2اساسی اين پروژه شناسايی حرکات عمومی دست انسان با جزويات تمام است که در فصل

بايست حرکاتی انجام شاده اسات. از آنجايی که روبات در تعامل همیشاگی با دسات انسان قرار دارد می

معادالت دينامیکی دست انسان مشابه حرکات انسان داشته باشد و از اينرو معادالت دينامیکی آن مشابه

نحوه 1اسااتخراج شااد و در فصاال 4اساات. معادالت دينامیکی دساات انسااان و بازوی روباتی در فصاال

درجه آزادی پیشنهادی به 7نشان دادند که روبات 6سازی آن شرح داده شد. نتايج حاصل از فصل شبیه

ت را بخوبی دارد. همچنین عنوان اساااکلت خارجی دسااات انساااان قابلیت انجام حرکات عمومی دسااا

های اين فصال حاکی از عبور روبات از نقاط تکینگی )يا خیلی نزديک به تکینگی( است که ساازیشابیه

هايی مانند آفساات دادن به زوايای مفاصاال برای قرار دادن نقطه بايساات به ترفندبرای پرهیز از آنها می

. تکینگی در خارج از محدوده حرکتی دست انسان متوسل شد

Page 75: final robotic project with appendix

مراجع

72

مراجعمنابع و

[1]

Joel C. Perry, Jacob Rosen, and Stephen Burns; “Upper-Limb Powered Exoskeleton Design”,

IEEE/ASME TRANSACTIONS ON MECHATRONICS, VOL. 12, NO. 4, AUGUST 2007

[2]

Joel C. Perry, Jacob Rosen, and Stephen Burns; “The Human Arm Kinematics and Dynamics During Daily Activities – Toward a 7 DOF Upper Limb Powered Exoskeleton”, Advanced

Robotics, 2005. ICAR '05. Proceedings., 12th International Conference on 18-20 July 2005 page

532 - 539

[3]

Paolo de Leva; “Adjustments to Zatsiorsky-Seluyanov's segment inertia parameters”, Journal of

Biomechanics. 10/1996; 29(9):1223-30. DOI:10.1016/0021-9290(95)00178-6

[4]

Byoung Gook Loh; “Kinematic Analysis of 7 Degrees of Freedom Upper-limb Exoskeleton Robot with Tilted Shoulder Abduction”, INTERNATIONAL JOURNAL

OF PRECISION ENGINEERING AND MANUFACTURING Vol. 14, No. 1, pp. 69-76

[1]

R. A. R. C. Gopura, Kazuo Kiguchi; “Mechanical Designs of Active Upper-Limb Exoskeleton

Robots: State-of-the-Art and Design Difficulties”, International Conference on Rehabilitation

Robotics, Kyoto International Conference Center, Japan, 2009

Page 76: final robotic project with appendix

پیوست ها

73

هاپیوست

به صورت زیر می باشد. mapleدر نرم افزار برنامه مربوط به بدست آوردن معادالت دینامیکی روبات -1

Appendix1.pdf

Page 77: final robotic project with appendix

> >

> >

> >

> >

> >

Initializationrestart;with(LinearAlgebra):

Defining Arm lenghts [ref: zatsiorsky]U__L := 0.245; # male upper arm length , for female use 0.236F__L := 0.251; # male forearm length , for female use 0.247H__L := 0.190; # male hand lenght , for female use 0.172

Transformation Matricies# Transformation Matrix from DH ParametersTrans d proc alpha, a, d, theta Matrix cos theta , Ksin theta , 0 , a , sin theta * cos alpha , cos theta * cos alpha , Ksin alpha , Ksin alpha * d , sin theta * sin alpha , cos theta * sin alpha , cos alpha , cos alpha * d , 0 , 0 , 0 , 1 ;end proc:Defining Homogenious TransformationsT__1 := (Trans(0,0,0,theta__1));T__2 := (Trans(Pi/2,0,0,theta__2));T__3 := (Trans(-Pi/2,0,-U__L,theta__3));T__4 := (Trans(Pi/2,0,0,theta__4));T__5 := (Trans(-Pi/2,0,-F__L,theta__5));T__6 := (Trans(Pi/2,0,0,theta__6));T__7 := (Trans(Pi/2,0,0,theta__7));T__E := (Trans(0,H__L,0,0));

# Defining Rotation Matrix From TransformationR1 d T1 1 ..3, 1 ..3 :R2 d T2 1 ..3, 1 ..3 :R3 d T3 1 ..3, 1 ..3 :R4 d T4 1 ..3, 1 ..3 :R5 d T5 1 ..3, 1 ..3 :R6 d T6 1 ..3, 1 ..3 :R7 d T7 1 ..3, 1 ..3 :

Generating Elbow position, Wrist position and End of Middle finger position with respect to frame attached at Body in shoulder Joint.

P__E := (T__1 . T__2. T__3 . Matrix([[0],[0],[0],[1]]))[1..3]; # Positionof ElbowP__W := (T__1 . T__2. T__3 . T__4 . T__5 . Matrix([[0],[0],[0],[1]]))[1..3]: # Position of WristP__H := (T__1 . T__2. T__3 . T__4 . T__5 . T__6 . T__7 . T__E)[1..3,4]: #Position of middle Finger last point

Executing Linear Jacobian

Page 78: final robotic project with appendix

> >

> > > >

LJacobian d proc position LJ d Matrix 3, 7 : LJ 1 ..3, 1 d map diff, position, theta1 : LJ 1 ..3, 2 d map diff, position, theta2 : LJ 1 ..3, 3 d map diff, position, theta3 : LJ 1 ..3, 4 d map diff, position, theta4 : LJ 1 ..3, 5 d map diff, position, theta5 : LJ 1 ..3, 6 d map diff, position, theta6 : LJ 1 ..3, 7 d map diff, position, theta7 : LJ end proc:Warning, `LJ` is implicitly declared local to procedure `LJacobian`

Jv__E := LJacobian(P__E): # Linear Jacobian of Elbow Jv__W := LJacobian(P__W): # Linear Jacobian of WristJv__Fe := LJacobian(P__H): # Linear Jacobian of finger-end point

Angular Velocity Jacobian# Calculating Angular Velocities of Links in base and link frameKd d Matrix 0 , 0 , 1 ;## angular velocity of Upper ArmOmegaU d dt1 * Kd C dt2 * R1 . R2 . Kd C dt3 * R1 . R2 . R3 .Kd : # In base frameomegaU d simplify Transpose R1 . R2 . R3 .OmegaU : # in Link Frameomegau d dt3 * Kd C dt2 * Transpose R3 . Kd Cdt1 * Transpose R2.R3 . Kd; # In link Framesimplify omegauKomegaU : # Check of Correction ## angular velocity of Fore ArmOmegaF d simplify OmegaU C dt4 * R1 . R2 . R3 . R4 . Kd C dt5 * R1 . R2 . R3 . R4 . R5 . Kd : # In base frameomegaF d simplify Transpose R1 . R2 . R3 . R4 . R5 .OmegaF :

# In Link frameomegaf d simplify dt5 * Kd C dt4 * Transpose R5 . Kd C dt3 * Transpose R4.R5 . Kd C dt2 * Transpose R3.R4.R5 . Kd C dt1 * Transpose R2.R3.R4.R5 . Kd :

# In Link framesimplify omegaF K omegaf :

# Check of Correction ## angular velocity of HandOmegaH d simplify OmegaF C dt6 * R1 . R2 . R3 . R4 . R5 . R6 .Kd C dt7 * R1 . R2 . R3 . R4 . R5 . R6 . R7 .Kd :

# In base frameomegaH d simplify Transpose R1 . R2 . R3 . R4 . R5 . R6 . R7 .OmegaH : # In Link frameomegah d simplify dt7 * Kd C dt6 * Transpose R7 . Kd C dt5 * Transpose R6.R7 . Kd C dt4 * Transpose R5.R6.R7 . Kd C dt3 * Transpose R4.R5.R6.R7 . Kd C dt2 * Transpose R3.R4.R5.R6.R7 . Kd C dt1 * Transpose R2.R3.R4.R5.R6.R7 . Kd : # In Link framesimplify omegaH K omegah :

# Check of Correction

Page 79: final robotic project with appendix

(5.1)(5.1)

(5.1)(5.1)

0

0

1

dt2 Transpose T31 ..3, 1 ..3.

0

0

1

C dt1 Transpose T21 ..3, 1 ..3.T31 ..3, 1 ..3

.

0

0

1

C

0

0

dt3

Calculation of Angular Velocity Jacobianexpr1 d Vector omegau 1 ..3, 1 :expr2 d Vector omegaf 1 ..3, 1 :expr3 d Vector omegah 1 ..3, 1 :with VectorCalculus :dt d dt1, dt2, dt3, dt4, dt5, dt6, dt7 :jou d Jacobian expr1, dt ; # Angular Jacobian of Upper Armjof d Jacobian expr2, dt ; # Angular Jacobian of Fore Armjoh d Jacobian expr3, dt : # Angular Jacobian of Hand

Center of masses, their Positions and moment of inertias mU d 2; # mass of Upper armPU d 0.57 * PE : # Position of CM of upper armIU d Matrix 3, 3 :IU 3, 3 d mU * 0.158 * UL ^2 : IU 1, 1 d mU * 0.285 * UL ^2 :IU 2, 2 d mU * 0.269 * UL ^2 : mF d 1.18; # mass of ForearmPF d 0.46 * PW : # Position of CM of Fore armIF d Matrix 3, 3 :IF 3, 3 d mF * 0.121 * FL ^2 : # IzzU r

fz^2:#IF 1, 1 d mF * 0.276 * FL ^2 : # IxxU r

fx^2:#IF 2, 2 d mF * 0.265 * FL ^2 : # IyyU r

fy^2:##`#` mH d 0.445; # mass of HandPcH d 0.79 * PH : # Position of CM of HandIH d Matrix 3, 3 :IH 3, 3 d mH * 0.628 * HL ^2 : IH 1, 1 d mH * 0.401 * HL ^2 : IH 2, 2 d mH * 0.513 * HL ^2 : IU d IU;IF d IF;IH d IH;

Page 80: final robotic project with appendix

> >

> > > >

Linear Jacobian of Center of massesJv__U := LJacobian(P__U):# Linear Jacobian of Upper Arm Center of massJv__F := LJacobian(P__F): # Linear Jacobian of Forearm Center of massJv__H := LJacobian(P__cH): # Linear Jacobian of Hand Center of mass

Inertia Tensor, Kinetic Energy and potential Energy Inertia d mU * Transpose JvU . JvU C mF * Transpose JvF .JvF C mH * Transpose JvH . JvH C Transpose jou . IU . jou C Transpose jof . IF . jof C Transpose joh . IH . joh :

# Executing Potential Energy of the systemUU d mU * 9.81 * PU 1, 1 : #Potential Energy of Upper armUF d mF * 9.81 * PF 1, 1 : #Potential Energy of Fore armUH d mH * 9.81 * PcH 1 : #Potential Energy of HandU d UU C UF C UH ; # Huamn Arm Potential Energy

LAGRANGIAN AND EQUATIONS OF MOTIONS# Compose Lagrangian and equatiom of motion theta1 d phi1 t ; theta2 d phi2 t : theta3 d phi3 t :theta4 d phi4 t : theta5 d phi5 t : theta6 d phi6 t :theta7 d phi7 t :dphi d Matrix diff phi1 t , t , diff phi2 t , t , diff phi3 t , t , diff phi4 t , t , diff phi5 t , t , diff phi6 t , t , diff phi7 t , t :KineticE d 0.5 * Transpose dphi .Inertia.dphi 1, 1 :PotentiE d U : Lag d KineticE K PotentiE :with VariationalCalculus :EQ d EulerLagrange KLag, t, phi1 t , phi2 t , phi3 t , phi4 t , phi5 t , phi6 t , phi7 t :

simplification and chenge variables in order to transfer to MATLABfor i from 1 by 1 to 7 do eq__ i d simplify EQ i :eq__ i d algsubs diff phi1 t , t, t = ddphi

1, eq__ i :

eq__ i d algsubs diff phi2 t , t, t = ddphi2, eq__ i :

eq__ i d algsubs diff phi3 t , t, t = ddphi3, eq__ i :

eq__ i d algsubs diff phi4 t , t, t = ddphi4, eq__ i :

Page 81: final robotic project with appendix

eq__ i d algsubs diff phi5 t , t, t = ddphi5, eq__ i :

eq__ i d algsubs diff phi6 t , t, t = ddphi6, eq__ i :

eq__ i d algsubs diff phi7 t , t, t = ddphi7, eq__ i :

eq__ i d algsubs diff phi1 t , t = dphi1, eq__ i :

eq__ i d algsubs diff phi2 t , t = dphi2, eq__ i :

eq__ i d algsubs diff phi3 t , t = dphi3, eq__ i :

eq__ i d algsubs diff phi4 t , t = dphi4, eq__ i :

eq__ i d algsubs diff phi5 t , t = dphi5, eq__ i :

eq__ i d algsubs diff phi6 t , t = dphi6, eq__ i :

eq__ i d algsubs diff phi7 t , t = dphi7, eq__ i :

eq__ i d algsubs cos phi1 t = C1, eq__ i :eq__ i d algsubs cos phi2 t = C2, eq__ i :eq__ i d algsubs cos phi3 t = C3, eq__ i :eq__ i d algsubs cos phi4 t = C4, eq__ i :eq__ i d algsubs cos phi5 t = C5, eq__ i :eq__ i d algsubs cos phi6 t = C6, eq__ i :eq__ i d algsubs cos phi7 t = C7, eq__ i :eq__ i d algsubs sin phi1 t = S1, eq__ i :eq__ i d algsubs sin phi2 t = S2, eq__ i :eq__ i d algsubs sin phi3 t = S3, eq__ i :eq__ i d algsubs sin phi4 t = S4, eq__ i :eq__ i d algsubs sin phi5 t = S5, eq__ i :eq__ i d algsubs sin phi6 t = S6, eq__ i :eq__ i d algsubs sin phi7 t = S7, eq__ i :end do :# correct number of equationseq1 d eq__ 6 :eq2 d eq__ 7 :eq3 d eq__ 4 :eq4 d eq__ 5 :eq5 d eq__ 3 :eq6 d eq__ 1 :eq7 d eq__ 2 :#eq__ 1 d eq1 :eq__ 2 d eq2 :eq__ 3 d eq3 :eq__ 4 d eq4 :eq__ 5 d eq5 :eq__ 6 d eq6 :

Page 82: final robotic project with appendix

eq__ 7 d eq7 :

INERTIA TENSOR# Inertia Tensor IM d Matrix diff eq__ 1 , ddphi

1 , diff eq__ 1 , ddphi

2 , diff eq__ 1 , ddphi

3 , diff eq__ 1 ,

ddphi4

, diff eq__ 1 , ddphi5

, diff eq__ 1 , ddphi6

, diff eq__ 1 , ddphi7

,

diff eq__ 2 , ddphi1

, diff eq__ 2 , ddphi2

, diff eq__ 2 , ddphi3

, diff eq__ 2 , ddphi4

,

diff eq__ 2 , ddphi5

, diff eq__ 2 , ddphi6

, diff eq__ 2 , ddphi7

,

diff eq__ 3 , ddphi1

, diff eq__ 3 , ddphi2

, diff eq__ 3 , ddphi3

, diff eq__ 3 , ddphi4

,

diff eq__ 3 , ddphi5

, diff eq__ 3 , ddphi6

, diff eq__ 3 , ddphi7

,

diff eq__ 4 , ddphi1

, diff eq__ 4 , ddphi2

, diff eq__ 4 , ddphi3

, diff eq__ 4 , ddphi4

,

diff eq__ 4 , ddphi5

, diff eq__ 4 , ddphi6

, diff eq__ 4 , ddphi7

,

diff eq__ 5 , ddphi1

, diff eq__ 5 , ddphi2

, diff eq__ 5 , ddphi3

, diff eq__ 5 , ddphi4

,

diff eq__ 5 , ddphi5

, diff eq__ 5 , ddphi6

, diff eq__ 5 , ddphi7

,

diff eq__ 6 , ddphi1

, diff eq__ 6 , ddphi2

, diff eq__ 6 , ddphi3

, diff eq__ 6 , ddphi4

,

diff eq__ 6 , ddphi5

, diff eq__ 6 , ddphi6

, diff eq__ 6 , ddphi7

,

diff eq__ 7 , ddphi1

, diff eq__ 7 , ddphi2

, diff eq__ 7 , ddphi3

, diff eq__ 7 , ddphi4

,

diff eq__ 7 , ddphi5

, diff eq__ 7 , ddphi6

, diff eq__ 7 , ddphi7

:

NONLINEAR PARTS# nonlinear/graviational part exploited when acceeration is zero (ddq =0); H1 d simplify subs ddphi

1= 0, ddphi

2= 0, ddphi

3= 0, ddphi

4= 0, ddphi

5= 0, ddphi

6= 0, ddphi

7= 0, eq__ 1 :

H2 d simplify subs ddphi1

= 0, ddphi2

= 0, ddphi3

= 0, ddphi4

= 0, ddphi5

= 0, ddphi6

= 0, ddphi7

= 0, eq__ 2 :

H3 d simplify subs ddphi1

= 0, ddphi2

= 0, ddphi3

= 0, ddphi4

= 0, ddphi5

= 0, ddphi6

= 0, ddphi7

= 0, eq__ 3 :

H4 d simplify subs ddphi1

= 0, ddphi2

= 0, ddphi3

= 0, ddphi4

= 0, ddphi5

= 0, ddphi6

= 0, ddphi7

= 0, eq__ 4 :

H5 d simplify subs ddphi1

= 0, ddphi2

= 0, ddphi3

= 0, ddphi4

= 0, ddphi5

= 0, ddphi6

= 0, ddphi7

= 0, eq__ 5 :

H6 d simplify subs ddphi1

= 0, ddphi2

= 0, ddphi3

= 0, ddphi4

= 0, ddphi5

= 0, ddphi6

= 0, ddphi7

= 0, eq__ 6 :

H7 d simplify subs ddphi1

= 0, ddphi2

= 0, ddphi3

= 0, ddphi4

= 0, ddphi5

= 0, ddphi6

= 0, ddphi7

= 0, eq__ 7 :

Inertia Tensr Component to MatlabIM = map simplified, IM : #Matlab(IM[1,1],resultname="M11"); Matlab(IM[1,2],resultname="M12"); #Matlab(IM[1,3],resultname="M13"); Matlab(IM[1,4],resultname="M14"); #Matlab(IM[1,5],resultname="M15"); Matlab(IM[1,6],resultname="M16"); #Matlab(IM[1,7],resultname="M17"); Matlab(IM[2,2],resultname="M22"); #Matlab(IM[2,3],resultname="M23"); Matlab(IM[2,4],resultname="M24");

Page 83: final robotic project with appendix

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

#Matlab(IM[2,5],resultname="M25"); Matlab(IM[2,6],resultname="M26"); #Matlab(IM[2,7],resultname="M27"); Matlab(IM[3,3],resultname="M33"); #Matlab(IM[3,4],resultname="M34"); Matlab(IM[3,5],resultname="M35"); #Matlab(IM[3,6],resultname="M36"); Matlab(IM[3,7],resultname="M37"); #Matlab IM 4, 4 , resultname = "M44" ; Matlab IM 4, 5 , resultname = "M45" ; #Matlab(IM[4,6],resultname="M46"); Matlab(IM[4,7],resultname="M47"); #Matlab(IM[5,5],resultname="M55"); Matlab(IM[5,6],resultname="M56"); #Matlab(IM[5,7],resultname="M57"); Matlab(IM[6,6],resultname="M66"); #Matlab(IM[6,7],resultname="M67"); Matlab(IM[7,7],resultname="M77");

Nonlinear Part to matlab#Matlab(H__1,resultname="h1");#Matlab(H__2,resultname="h2");#Matlab(H__3,resultname="h3");#Matlab(H__4,resultname="h4");#Matlab(H__5,resultname="h5");#Matlab(H__6,resultname="h6");#Matlab(H__7,resultname="h7");

Positions and Orientations to MatlabP__E := map2(subs,phi__1(t)=phi__1,P__E):P__E := map2(subs,phi__2(t)=phi__2,P__E):Matlab(P__E,resultname="P__E"):P__W:P__W := map2(subs,phi__1(t)=phi__1,P__W):P__W := map2(subs,phi__2(t)=phi__2,P__W):P__W := map2(subs,phi__3(t)=phi__3,P__W):P__W := map2(subs,phi__4(t)=phi__4,P__W):#Matlab(P__W,resultname="P__W");P__H := map2(subs,phi__1(t)=phi__1,P__H):P__H := map2(subs,phi__2(t)=phi__2,P__H):P__H := map2(subs,phi__3(t)=phi__3,P__H):P__H := map2(subs,phi__4(t)=phi__4,P__H):P__H := map2(subs,phi__5(t)=phi__5,P__H):P__H := map2(subs,phi__6(t)=phi__6,P__H):P__H := map2(subs,phi__7(t)=phi__7,P__H):#Matlab(P__H,resultname="P__H"):

MATLAB CODE FOR ORIENTATIONUpperArmO := map(simplify,(R__1.R__2.R__3)):UpperArmO := map2(subs,phi__1(t)=phi__1,UpperArmO):UpperArmO := map2(subs,phi__2(t)=phi__2,UpperArmO):UpperArmO := map2(subs,phi__3(t)=phi__3,UpperArmO):#Matlab(UpperArmO,resultname="UpperArmOrient");ForeArmO := map(simplify,(R__1.R__2.R__3.R__4.R__5)):ForeArmO := map2(subs,phi__1(t)=phi__1,ForeArmO):ForeArmO := map2(subs,phi__2(t)=phi__2,ForeArmO):ForeArmO := map2(subs,phi__3(t)=phi__3,ForeArmO):ForeArmO := map2(subs,phi__4(t)=phi__4,ForeArmO):ForeArmO := map2(subs,phi__5(t)=phi__5,ForeArmO):#Matlab(ForeArmO,resultname="ForeArmOrient");PalmHandO := map(simplify,(R__1.R__2.R__3.R__4.R__5.R__6.R__7)):PalmHandO := map2(subs,phi__1(t)=phi__1,PalmHandO):PalmHandO := map2(subs,phi__2(t)=phi__2,PalmHandO):PalmHandO := map2(subs,phi__3(t)=phi__3,PalmHandO):PalmHandO := map2(subs,phi__4(t)=phi__4,PalmHandO):

Page 84: final robotic project with appendix

PalmHandO := map2(subs,phi__5(t)=phi__5,PalmHandO):PalmHandO := map2(subs,phi__6(t)=phi__6,PalmHandO):PalmHandO := map2(subs,phi__7(t)=phi__7,PalmHandO):#Matlab(PalmHandO,resultname="PalmHandOrient"):