Understanding the ROS file system level

ROS နဲ႕ အလုပ္မလုပ္ခင္မွာ ROS မွာ ဖိုင္ေတြကို ဘယ္လိုဖြဲ႕စည္းထားလဲဆိုတာကို အရင္သိထားဖို႕ လိုအပ္ပါတယ္။ Operating system မွာလိုပဲ ROS ကိုလည္း folders ေတြနဲ႕ ဖြဲ႕စည္းထားပါတယ္။ folders ေတြ ဖြဲ႕စည္းထားပံုကိုေတာ့ အေပၚပံုမွာ ျမင္ေတြ႕နိုင္ပါတယ္။ ပါဝင္ဖြဲ႕စည္းထားတဲ့ folders ေတြ ေပါင္းျပီးေတာ့ packages ေတြလုိ႕ေခၚပါတယ္။ packages ေတြထဲမွာပါဝင္တဲ့ အစိတ္အပိုင္းတစ္ခုစီကို ေအာက္မွာ ရွင္းလင္းျပပါမယ္။

  • Packages - packages ေတြကေတာ့ ROS ရဲ႕ အေသးဆံုးအစိတ္အပိုင္းေတြျဖစ္ပါတယ္။ packages ေတြထဲမွာ program တစ္ခုကို တည္ေဆာက္ဖို႕ရာအတြက္ လိုအပ္ေသာအရာေတြျဖစ္တဲ့ nodes ေတြ၊ configuration files ေတြ၊ information file ေတြ အားလံုးပါဝင္ပါတယ္။
  • Package manifests - package manifests ကေတာ့ package လိုအပ္တဲ့ information ေတြျဖစ္တဲ့ licenses, dependencies, compilation flags ေတြပါဝင္ပါတယ္။ ထို informations ေတြကိုေတာ့ package.xml ထဲမွာ ေရးသားထားပါတယ္။ node ေတြ၊ services ေတြ၊ messages ေတြ၊ actionlib ေတြကို compile လုပ္ဖို႕အတြက္ configuration ေတြကိုေတာ့ CMakeLists.txt ထဲမွာ ေရးသားထားပါတယ္။
  • Message (msg) types - node တစ္ခုနဲ႕ node တစ္ခုဆက္သြယ္ဖို႕အတြက္ information ေတြ တနည္းအားျဖင့္ message ေတြျဖစ္ပါတယ္။ ROS မွာ standard messages ေတြ အမ်ားၾကီးပါဝင္ပါတယ္။ msg files ထဲမွာေတာ့ ကိုယ္ပိုင္ဖန္တီးထားတဲ့ msg ေတြအမ်ားဆံုးပါဝင္ပါတယ္။ message descriptions ေတြကိုေတာ့ package ထဲက msg ဆိုတဲ့ folder ထဲမွာ စုစည္းထားရွိပါတယ္။
  • Service (srv) types - request နဲ႕ response ဆိုတဲ့ data structures ေတြျဖစ္တဲ့ service description ေတြျဖစ္ပါတယ္။ သူ႕ကိုေတာ့ package ထဲက srv ဆိုတဲ့ folder ထဲမွာ စုစည္းထားရွိပါတယ္။
  • Code - code ဆိုတဲ့ folder ကေတာ့ nodes ေတြကို စုစည္းထားတာျဖစ္ပါတယ္။ မ်ားေသာအားျဖင့္ src ဆိုတဲ့ဖိုင္မွာ တစုတစည္းထားရွိပါတယ္။ python ကို အသံုးျပဳတဲ့သူေတြကေတာ့ scripts ဆိုတဲ့ ဖိုင္ထဲမွာ python code ေတြကို ထားေလ့ရွိျပီး src ထဲမွာေတာ့ C++ codes ေတြကို ထားေလ့ရွိပါတယ္။
  • Others - ဒါကေတာ့ robot ရဲ႕ description ေတြျဖစ္တဲ့ urdf ဖိုင္ေတြ၊ simulation လုပ္ဖို႕ rviz ဖိုင္ေတြ၊ map ဖိုင္ေတြ အားလံုးစုျပီး others လိုေခၚလိုက္တာျဖစ္ပါတယ္။
  • Metapackages - packages ေတြ အမ်ားၾကီးစုထားတာကို metapackages လို႕ေခၚပါတယ္။ သင္ရဲ႕ robot မွာ functions ေတြမ်ားလာတဲ့နဲ႕ အမွ် packages ေတြကို တေပါင္းတစည္းထဲ စုစည္းအသံုးျပဳဖို႕ လိုလာပါလိမ့္မယ္။ ဒါကို metapackages က တာဝန္ယူေပးပါလိမ့္မယ္။

ေအာက္ကပံုမွာေတာ့ turtlesim ဆိုတဲ့ package ရဲ႕ ဖြဲ႕စည္းပံုကို ျပထားပါတယ္။

The workspace

workspace ဆုိတာကေတာ့ packages ေတြကို စုစည္းထားတဲ့ folder တစ္ခုပဲ ျဖစ္ပါတယ္။ packages ထဲမွာေတာ့ အေပၚမွာရွင္းျပခဲ့သလိုပဲ source files ေတြပါဝင္ပါတယ္။ workspace ကေတာ့ packages ေတြကို တစ္ခ်ိန္တည္း တစ္ျပိဳင္တည္းမွာ compile လုပ္နုိင္ေစဖို႕အတြက္ အကူအညီေပးပါတယ္။ workspace ထဲမွာ ဘာေတြပါလဲဆိုတာကို ေအာက္ပါပံုမွာ ျပထားပါတယ္။

  • The source space - source space သို႕မဟုတ္ src folder ထဲမွာေတာ့ ကြၽန္ေတာ္တို႕ ဖန္တီးထားတဲ့ packages ေတြ clone လုပ္ထားတဲ့ packages ေတြပါဝင္ပါတယ္။ src folder ထဲမွာ အေရးအၾကီးဆံုးဖိုင္ကေတာ့ CMakeLists.txt ျဖစ္ပါတယ္။
  • The build space - build folder ထဲမွာေတာ့ cmake နဲ႕ catkin တို႕က cache information ေတြ၊ configuration ေတြနဲ႕ other intermediate files ေတြကို သိမ္းထားေပးပါတယ္။
  • Development (devel) space - ဒီ folder ထဲမွေတာ့ compile လုပ္ျပီးသား programs ေတြပါဝင္ပါတယ္။ programs ေတြကို installation မလုပ္ဘဲ စမ္းသပ္ဖို႕ အကူအညီေပးပါတယ္။

results matching ""

    No results matching ""