🐦C Robot Setup Guide
Setup Transform
အရင်ဆုံး tf ကို setup လုပ်ဖို့လိုပါတယ်။ map=>odom=>base_link=>base_laser စတဲ့ relation တွေရှိသလားစစ်ဆေးပါ။ လိုအပ်ရင် အကောင်းဆုံးနည်းလမ်းမဟုတ်ပေမဲ့ static_transform_publisher ကိုသုံးပါ။
robot_state_publisher သည် robot_description နဲ့ /joint_states တို့ကိုယူပြီး static tf , dynamic tf တွေကို ထုတ်တယ်ဆိုတာလည်း သိထားဖို့လိုပါတယ်။ လိုအပ်ရင် ရှာဖွေဖတ်ရှုပါ။
Setup URDF
ဒီအပိုင်းကတော့ simulation မှာသုံးမှာလား hardware robot လားဆိုတာဆုံးဖြတ်ပြီး urdf ကိုပြုပြင်ပါ။ ဒီအပိုင်းတော့ အကျယ်မချဲ့တော့ပါ။ လိုအပ်ရင် rom2109_simulation, rom2109 စတဲ့ meta packages များကို သွားကြည့်ပါ။
Setup Odometry
Odom ကတော့ သိတဲ့အတိုင်းဘဲ wheel encoders ကသော်လည်းကောင်း imu တွေကသော်လည်းကောင်း lidar, radar တွေက သော်လည်းကောင်း ထုတ်လို့ရတယ်။ ဒါပေသိ imu ဆိုရင်လဲ အချိန်နဲ့အမျှ rotate drift ဖြစ်နေသလို encoder ဆိုလည်း distance drift တွေဟာ distance ရှည်တာနဲ့အမျှ များလာမှာဖြစ်ပါတယ်။ အဲ့တာကြောင့် odom source တွေကို ပေါင်းပြီးသုံးလို့လည်းရပါတယ်။
Nav 2 package တွေဟာ odom=>base_link tf ကို လိုသလို နောက်ထပ် nav_msgs/Odometry ကိုလည်းလိုပါတယ်။ သူ့မှာ velocity information တွေပါတာမို့လို့ပေါ့။
ODOM TOPIC ရှိ/ မရှိစစ်ဆေးရန်
နောက် odom system အတွက် robot_localization ဆိုတဲ့ package လည်းအသုံးပြုနိုင်ပါတယ်။ သူကဘာလုပ်သလဲဆိုတော့ odom sensors တွေကို fuse လုပ်ပေးနိုင်တယ်။ ဥပမာအားဖြင့် geometry_msgs/TwistWithCovarianceStamped, geometry_msgs/PoseWithCovarianceStamped, nav_msgs/Odometry, sensor_msgs/Imu အဲ့လိုကောင် တွေကို sensor fusion လုပ်ပေးမှာပေါ့။ robot_localization package သည် extended kelman filter တို့ Unscented Kalman filter တို့ကိုသုံးပြီး gps နဲ့ပါ fuse လုပ်ပေးနိုင်ပါတယ်။
ပြီးရင် သူက အဲ့ဒီ topic တွေကို ( odom --> odom_filter ) ဆိုပြီး filter ဆိုတဲ့စကားလုံးထည့်ပြီး ပြန်ထုတ်ပေးပါတယ်။ သူ့အတွက် documentation သက်သက်ဖတ်ဖို့လိုမယ်။
တကယ်လို့ odometry source ကတစ်ခုပဲရှိရင်တော့ robot_localization ရဲ့ ထိရောက်မှုက နည်းပါလိမ့်မယ်။ သုံးလို့တော့ရတယ်။ odom topic နဲ့သုံးရမှာပေါ့။
နောက်တနည်းအနေနဲ့ကတော့ ကျတော်တို့ အခုသုံးနေတဲ့ နည်းဖြစ်ပြီး ကိုယ့်ဟာကိုယ် odom=> base_link တွက်တာပါ။ ( အာ့ကြောင့်နေမယ် မတိကျတာ 😂 )
Last updated