Search This Blog

Tuesday, February 22, 2011

Denavit-Hartenberg Representation of Robots

D-H model ဟာ robot links နဲ့ joints တွေကို ဖော်ပြဖို့ အတွက် ရိုးရှင်းတဲ့ ပုံစံ တစ်ခု ဖြစ်ပြီး ဘယ်လို robot ပုံစံ မျိုး အတွက် မဆို သုံးလို့ရပါတယ်။ လက်တံ (link) တစ်ခုစီ အတွက် z ဝင်ရိုးနဲ့ x ဝင်ရိုး တို့ကို သတ်မှတ်ပေးဖို့ လိုပါတယ်။ D-H representation မှာ y ဝင်ရိုးကို သုံးစရာ မလိုပါဘူး။ Lk ကို link k အတွက် frame လို့ သတ်မှတ်ကြမယ် ဆိုပါစို့။



၁။ Joint အားလုံး အတွက် Z ဝင်ရိုးကို သတ်မှတ်ပါ

Joint k+1 ရဲ့ ဝင်ရိုးကို zk လို့ သတ်မှတ်ပါ။ အကယ်၍ လည်တဲ့ revolute joint မျိုးဆိုရင် z axis ကို လည်တဲ့ဖက် အတိုင်း right hand rule သုံးပြီး သတ်မှတ်ပါ။ အကယ်၍ ဆန့်ထွက်တဲ့ prismatic joint မျိုးဆိုရင် z-axis ကို ဆန့်ထွက်တဲ့ ဖက် အတိုင်း သတ်မှတ်ပါ။

၂။ Origin များကို သတ်မှတ်ပါ

zk နဲ့ zk-1 တို့ အချင်းချင်း ဖြတ်သွားတဲ့ နေရာကို Lk ရဲ့ origin လို့ သတ်မှတ်ပါ။ အကယ်၍ မဖြတ်ခဲ့ ရင် zk ရော zk-1 ကိုပါ ထောင့်မတ်ကျတဲ့ common normal နဲ့ zk နဲ့ ဖြတ်တဲ့နေရာကို ယူပါ။ လိုင်း နှစ်လိုင်း ဟာ ဘယ်လိုပဲ ရှိ ရှိ နှစ်လိုင်း စလုံးကို ထောင့်မတ်ကျတဲ့ common normal လို့ ခေါ်တဲ့ လိုင်းတစ်လိုင်းတော့ အမြဲရှိပြီး အဲဒီနှစ်လိုင်း ရဲ့ အနီးဆုံး အကွာအဝေး လည်း ဖြစ်ပါတယ်။

၃။ X ဝင်ရိုးများကို သတ်မှတ်ပါ

xk ကို zk နဲ့ zk-1 ကြားက common normal ရဲ့ ဦးတည်ရာ အတိုင်း သတ်မှတ်ပါ။ အကယ်၍ z ဝင်ရိုး အချင်းချင်း ဖြတ်နေရင် xk ကို zk နဲ့ရော zk-1 နဲ့ပါ ထောင့်မတ်ကျ အောင် သတ်မှတ်ပါ။ (z ဝင်ရိုး တွေရဲ့ cross-product ဦးတည်ရာ အတိုင်း လို့ လည်းပြောလို့ ရပါတယ်)။ အကယ်၍ zk နဲ့ zk-1 တွေက ပြိုင်နေရင် xk ကို zk-1 နဲ့ ဝေးရာကို ဦးတည်ပါ။ အရင် ရှေ့က common normal ရဲ့ ဦးတည်ရာ အတိုင်း ဖြစ်နိုင်ရင် သတ်မှတ်ပါ။

၄။ Y ဝင်ရိုးများကို သတ်မှတ်ပါ

yk ကို right-handed frame Lk ဖြစ်အောင် သတ်မှတ်ပါ။

၅။ Kinematic Parameter လေးခု ကို ရှာပါ

k က xk-1 နဲ့ xk ကြားက zk-1 ဝင်ရိုးပေါ်က ထောင့်ပါ။ *dk က xk-1 နဲ့ xk ကြားက zk-1 ဝင်ရိုး တစ်လျှောက် အကွာအဝေး ပါ။ *ak က zk-1 နဲ့ zk ကြားက xk ဝင်ရိုး တစ်လျှောက် အကွာအဝေး ပါ။ *αk က zk-1 နဲ့ zk ကြားက xk ဝင်ရိုးပေါ်က ထောင့်ပါ။

၆။ Frame k-1 မှ Frame k သို့ ပြောင်းခြင်း

*Lk-1 ကို zk-1 ဝင်ရိုး ပေါ်မှာ θk လှည့်လိုက်ရင် xk-1 နဲ့ xk နဲ့ အပြိုင်ဖြစ် သွားပါမယ်။ ဘာ့ကြောင့်လဲ ဆိုတော့ common normals တွေ ဖြစ်တဲ့ ak-1 နဲ့ ak နှစ်ခုစလုံးက zk-1 ဝင်ရိုးနဲ့ perpendicular ဖြစ်နေလို့ပါ။ *Lk-1 ကို zk-1 ဝင်ရိုး တစ်လျှောက် dk ရွှေ့ရင် xk-1 နဲ့ xk က တစ်တန်းတည်း ဖြစ်သွားပါမယ်။ *Lk-1 ကို xk ဝင်ရိုး တစ်လျှောက် ak ရွှေ့ရင် Lk-1 နဲ့ Lk တို့ရဲ့ origin တွေဟာ တစ်ထပ်တည်း ဖြစ်သွား ပါမယ်။ *Lk-1 ကို xk ဝင်ရိုး ပေါ်မှာ αk လှည့်လိုက်ရင် zk-1 နဲ့ zk ဝင်ရိုး တွေဟာ အပြိုင်ဖြစ် သွားပါမယ်။ ဒီအချိန်မှာ frames Lk-1 နဲ့ Lk တို့ဟာ တထပ်တည်း ကျသွားပါပြီ။


simulation လုပ်ကြည့်မယ် ဆိုရင် Robotassist ဆိုတဲ့ free software လေးက အဆင်ပြေမယ် ထင်ပါတယ်။
Ref:
Introduction to Robotics -Analysis, Control, Applications; Second Edition, Saeed Benjamin Niku
Fundamental of Robotics -Analysis & Control, Robert J. Schilling