🧡E.2 Robot footprint vs Radius

Robot footprint vs Radius

Nav 2 မှာ robot ပုံစံကို နည်းလမ်းနှစ်ခုနဲ့ ဖေါ်ပြနိုင်တယ်။

  • footprint

  • radius

ROS 1 မှာတုန်းက robot radius နဲ့ အလုပ်လုပ်တာ။ အဲ့ကောင်ကို globla planner က အသုံးမပြုဘဲ local planner နဲ့ local costmaps ကသာအသုံးပြုပါတယ်။

Nav 2 မှဆိုရင်တော့ planning နဲ့ controlling algorithm တွေက အမျိုးမျိုးရှိလေတော့ robot ဟာ စက်ဝိုင်းပုံစံမဟုတ်ဘူးဆိုရင် planners နဲ့ controllers တွေကို တကယ့် robot ရဲ့ geometric footprint ပေးသင့်ပါတယ်။ ဒါမှ ဒီကောင်တွေက ကျဥ်းထဲကျပ်ထဲလိုနေရာတွေအတွက် trajectories or plan တွက်ပေးနိုင်မှာပေါ့။ ( ပြောချင်တာက တီကောင်ပုံစံ စက်ရုပ်မျိုးဆိုရင် circular radius မထည့်သင့်ဘူး။ )

actual footprint နဲ့သာ ဖေါ်ပြထားမယ်ဆိုရင် Smac Hybird-A*, Smac State Lattice တို့လိုကောင်တွေသည် SE2 footprint ကိုသုံးပြီး kinematic အရ အဆင်ပြေစေတဲ့ plan တွေကို တွက်ပေးနိုင်မှာဖြစ်ပါတယ်။

( စကားချပ်။ ။ SE2 ဆိုတာက special Euclidean ကို ပြောတာဖြစ်ပြီး ကြည့်ရတာ special Euclidean group of rigid body movement in two-dimensions ကို ပြောချင်တာဖြစ်မယ်။ အဲ့လိုပဲ Robotics မှာ SE3 တို့ SO3 တို့ so3 တို့ ဆိုတာတွေရှိပါတယ်။ special orthogonal ကိုပြောတာပေါ့။ so3 နဲ့ SO3 တောင်မတူဘူး။ စာလုံးအသေးအကြီးကွာတယ်။ :P ။ စာလုံးကွာသလို ယူဆချက်လည်း အနည်းငယ်ကွာပါတယ်။ )

2021 December လောက်မှာ ROS2 ရဲ့ planner controllers တွေအားလုံးဟာ Footprint ကို support လုပ်လာကြပါတယ်။ အဲ့တော့ footprint သုံးမယ်ဆိုရင် robot ဟာ stuck ဖြစ်မဲ့ အကြိမ်အရေနည်းသွားပြီး အေးဆေး သွားလို့ရပြီတဲ့။ ( ပြောတာပါပဲဗျာ )

တကယ်လို့ စက်ဝိုင်း ပုံစံ robot ကြီး တည်ဆောက်ထားတယ်ဆိုရင်တော့ robot_radius ဆိုတဲ့ parameter ကို သုံးပေါ့ဗျာ။ တခါတလေကျတော့ စက်ဝိုင်းပုံ robot မဟုတ်ပေမဲ့ robot_radius နဲ့ လုပ်ရတဲ့ case တွေလည်းရှိနိုင်ပါတယ်။ ဘယ်လိုမျိုးတွေလည်းဆိုတော့

  • robot ဟာ environment နဲ့ ယှဥ်ရင် သိပ် သေးလွန်းတဲ့အခါ

  • robot မှာ compute power နည်းတဲ့အခါ ( foodprint နဲ့ တွက်တာက cost ပိုကျတယ်။ )

  • Theta* , Smac 2D A* , Navfn တို့လို Holonomic planner တွေသုံးမယ်ဆိုရင် circular footprint ကိုပဲသုံးတာမျိုးဖြစ်ပါလိမ့်မယ်။ ဒီကောင်တွေက SE2 footprint အသုံးပြုလို့မရဘူးဆိုတဲ့ သဘောပေါ့။

Last updated