ROS Arduino.1. Arduino IDE Setup For ROS
ဒီလင့္မွာ rosserial_arduino အတြက္ Tutorials ေတြကို series လိုက္ေတြ႕ ျမင္ရမွာ ျဖစ္ပါတယ္။ မိမိကိုယ္တိုင္ မူရင္းလင့္မွာလည္းပဲ သြားေရာက္ေလ့လာနိုင္ပါတယ္။ rosserial_arduino သည္ ဘာလုပ္သလဲ ၾကည့္ရေအာင္။

ros က ဘယ္လုိ အလုပ္လုပ္လဲဆိုတာကို အထက္ပါပံု နဲ႕ တကြ ရွင္းလင္းထားတာကိုဒီလင့္မွာ သြားေရာက္ဖတ္နိုင္ပါတယ္။ ဒီပံုမွာၾကည့္လိုက္ရင္ path planner သည္ motor driver ေတြကို /Motor command ဆိုတာကို ပို႕လႊတ္လိုက္မွာ ျဖစ္ပါတယ္။ motor driver ေတြကေန motor command ကို ရလာတဲ့အခါမွာ သက္ဆိုင္ရာ device ေတြကို ထပ္ဆင့္ေစခိုင္းမွာျဖစ္ပါတယ္။ ဒီေနရာမွာ arduino ေတြသည္ driver ရဲ႕ တာဝန္ကို ထမ္းေဆာင္ပါလိမ့္မယ္။ ကြန္ျပဴတာကေန arduino ကို serial communication နဲ႕ လည္း ခ်ိတ္ဆက္ျပီး အသံုးျပဳနိုင္ပါတယ္။ ဒါေပမယ့္ ပိုျပီး လြယ္ကူေစတဲ့ library ေလးတစ္ခုရွိပါတယ္ roslib ဆိုတဲ့ library ေလးပဲျဖစ္ပါတယ္။ roslib ေတြကို ဘယ္လို controller ေတြမွာ အသံုးျပဳနိုင္လဲကို ေအာက္မွာ ေဖာ္ျပထားပါတယ္။
rosserial_arduino =======> Arduino, especially UNO and Leonardo
rosserial_embeddedlinux =======> support for Embedded Linux (eg, routers)
rosserial_windows =======> support for communicating with Windows applications
rosserial_mbed =======> support for mbed platforms
rosserial_tivac =======> support for TI’s Launchpad boards, TM4C123GXL and TM4C1294XL
rosserial_mbed ကေတာ့ STM ကထုတ္တဲ့ single board microcontrollers ေတြ အတြက္ျဖစ္ျပီး၊ rosserial_tivac ကေတာ့ Texas Instruments ကထုတ္တဲ့ single board microcontrollers ေတြ အတြက္ျဖစ္ပါတယ္။ rosserial_arduino ကေတာ့ arduino board ေတြအတြက္ ရည္ရြယ္ထားတဲ့ library ပဲ ျဖစ္ပါတယ္။ arduino IDE မွာ ဘယ္လို setup ျပဳလုပ္လဲ ၾကည့္ရေအာင္။ rosserial_arduino ကို setup လုပ္ဖို႕အတြက္ ေအာက္ပါ rosserail နဲ႕ rosserial_arduino ဆိုျပီး package ၂ ခုလိုအပ္ပါတယ္။ ဒါကိုေတာ့ ေအာက္ပါ command ေတြနဲ႕ install ျပဳလုပ္ထားလိုက္ပါမယ္။
sudo apt-get install ros-kinetic-rosserial-arduino
sudo apt-get install ros-kinetic-rosserial
ကြၽန္ေတာ္က ros kinetic version ကို အသံုးျပဳတာျဖစ္တဲ့အတြက္ ros-kinetic ဆိုျပီး install လုပ္တာ ျဖစ္ပါတယ္။ ဒီေနရာမွာ မိတ္ေဆြတို႕ က ros indigo version ကို သံုးတယ္ဆိုရင္ ros-indigo လို႕ ေျပာင္းျပီး ေအာက္ပါအတိုင္း install ျပဳလုပ္ထားပါမယ္။
sudo apt-get install ros-indigo-rosserial-arduino
sudo apt-get install ros-indigo-rosserial
ဒါကေတာ့ တိုက္ရိုက္ download လုပ္ျပီး install လုပ္တာပါ။ တိုက္ရိုက္ install မလုပ္ပဲနဲ႕ rosserial package ကို catkin_ws/src ထဲမွာ install လုပ္မယ္ဆိုရင္ေတာ့ ေအာက္ပါအတိုင္း install လုပ္ပါမယ္။ ဒီလို install လုပ္ဖို႕ အတြက္ အားေပးပါတယ္။ တိုက္ရိုက္ install လုပ္တာကေတာ့ တကယ္ run တဲ့ အခ်ိန္မွာ error အနည္းငယ္ရွိပါတယ္။
cd catkin_ws/src
git clone https://github.com/ros-drivers/rosserial.git
cd catkin_ws
catkin_make
ကၽြန္ေတာ္ကတာ့ working directory နာမည္ကို catkin_ws လို႕ေပးခဲ့လို႕ cd catkin_ws/src ဆိုျပီး install လုပ္တာျဖစ္ပါတယ္။ မိတ္ေဆြတို႕ကလည္း ကိုယ္နွစ္သက္အမည္ေပးထားတဲ့ directory ကို သြားျပီး install လုပ္ရမွာ ျဖစ္ပါတယ္။ working directory တည္ေဆာက္ပံုကိုေတာ့ဒီလင့္မွာသြားေရာက္ ဖတ္ရွဳနိုင္ပါတယ္။
လိုအပ္တဲ့ packages ေတြ အားလံုးကို install ျပဳလုပ္ျပီးတာနဲ႕ arduino ရဲ႕ sketchbook/libraries ထဲမွာ ros_lib ကို install ျပဳလုပ္ပါမယ္။ install ျပဳလုပ္ပံု အဆင့္ဆင့္ကေတာ့ ေအာက္ပါအတိုင္းပဲ ျဖစ္ပါတယ္။
cd <sketchbook>/libraries
rm -rf ros_lib
rosrun rosserial_arduino make_libraries.py .
cd <sketchbook>/libraries ကေတာ့ sketchbook/libraries ရွိတဲ့ ေနရာကို သြားတာျဖစ္ပါတယ္။ cd <sketchbook> မွာ <> ဒါေလးပါေနပါမယ္။ ဒီေနရာမွာေတာ့ ကိုယ္ထားထားတဲ့ နာမည္ေပါ့။ ဥပမာ ကၽြန္ေတာ့္ robotech လို႕ေပးထားရင္ ေအာက္ပါ command အတိုင္း run ရမွာျဖစ္ပါတယ္။
cd robotech/libraries
တကယ္လို႕ မိတ္ေဆြတို႕က default အတိုင္းပဲ sketchbook ကို သံုးရင္ေတာ့ ေအာက္ပါအတိုင္း run ရပါမယ္။
cd sketchbook/libraries
rm -rf ros_lib ကေတာ့ တကယ္လို႕ libraries ထဲမွာ installed လုပ္ျပီးသားရွိေနခဲ့လ ွ်င္ အရင္ remove လုပ္လိုက္တာျဖစ္ပါတယ္။
rosrun rosserial_arduino make_libraries.py .
ဒါကေတာ့ ရွင္းပါတယ္ install လုပ္တာပါ။ မူရင္း links မွာေတာ့ window မွာ install လုပ္တာကို ျပထားပါတယ္။ ကၽြန္ေတာ္ကေတာ့ ထည့္မေရးေတာ့ပါဘူး။ ros ကို သံုးျပီးဆိုမွာေတာ့ window ကို လွည့္ၾကည့္စရာ မလိုေတာ့လုိ႕ ယူဆျပီး မေဖာ္ျပေတာ့ျဖစ္ပါတယ္။ တကယ္လို႕ install လုပ္တာ ေအာင္ျမင္တယ္ဆိုရင္ေတာ့ ေအာက္ပါပံုအတိုင္းပဲ examples ထဲမွာ ros_lib ဆိုတာေပၚလာမွာ ျဖစ္ပါတယ္။
