ඔන්න ගොඩක් කාලෙකට පස්සේ මේකට පෝස්ට් එකක් දාන්නෙ. පහුගිය ටිකේම ඔලුව උස්සන්න බැරි තරමට වැඩ. විභාගයි කැම්පස් එකේ අනිත් වැඩයි.. බ්ලොග් එකෙන් කියන්න බැරි උනා, දැන් මම ට්‍රේනින් එකකට යනවා සොෆ්ට්වෙයාර් කම්පැනියක මාස 6කට.

කොහොම්න් හරි පහුගිය ටිකේ හරියට වැඩ තිබ්බා. නොනගතෙත් කෝඩින් :P ….. මේ අපි මහන්සි උනේ 3 වෙනි වසර ගෘප් ප්‍රොජෙක්ට් එක වෙනුවෙන්. සෑහෙන මහන්සියක් දරලා අන්තිමට ගොඩක් හොඳ දෙයක් අපිට එළි දක්වන්න පුළුවන් උනා.

 

UCSC එකේ CS කරන අපිට 3 වෙනි වසරෙ පළමු සෙමෙස්ටරේදි ප්‍රොජෙක්ට් එකක් කරන්න පුළුවන්. ඉතින් මේකට අපි යාළුවෝ 5 දෙනෙක් සෙට් උනා. කණ්ඩායමේ අනිත් අය තමා පසිඳු මලින්, මනුප්‍රිය බානු, යුවකාන්ත් සහ මනෝජ් බුද්ධික. ඉතින් මුලදි මාතෘකාවක් හොයාගන්න ටිකක් අමාරු උනත් අන්තිමට අපිට හොඳ මාතෘකාවක් හොයාගන්න පුළුවන් උනා. අහපු හැමෝම වගේ මේක ගොඩක් අමාරු වෙයි කියලා අපිට කිව්වත් අපි වැඩේ අතෑරියේ නෑ.

 

පොඩ්ඩක් විස්තර කරන්නම්කෝ මොකක්ද මේක කියලා. අපි නම දැම්මේ “Sign Following Robot” ,( ප්‍රොජෙක්ට් එකේ නම දැම්මේ නම් මෙහෙම “Sign Following Path Navigation System” ) කියලා. ප්‍රොජෙක්ට් එකේ නමට Robot කෑල්ල අයින් කරන්න හේතු උනේ අපිට Hardware Part එක හදාගන්න බැරි වේදෝ සැකයක් තිබ්බ නිසා.

 

මේකෙ අදහස මෙහෙමයි. දැන් ඔය ලොකු කොම්පැනි වල, Automobile Company වගේ, ඇතුලත භාණ්ඩ ප්‍රවාහනයට යොදාගන්නේ ෆෝර්ක් ලිෆ්ට් වගේ මිනිස්සුම ධාවනය කරන ඒවානේ. ලොකු වතු වල වගේත් මේ වගේ දේ පාවිච්චි වෙනවා. කොහොමින් හරි ඔබ දන්නවා ඇති එකම මාර්ගයක තමා මේවා ධාවනය වෙන්නේ හැම වෙලේම. ඉතින් මේකට මිනිසුක් රහිත නැත්නම් “Automated Vehicle” එකක් විසඳුම විදියට දෙන එක තමා අපේ ප්‍රයත්නය උනේ.

 

Getting Ready

 

Getting Ready

 

ඔබ අහලා ඇති “Line Following Robot” ලා ගැන. ඒ කියන්නේ රේඛාවක් අඳුනගෙන ඒ දිගේ යන රොබෝවෙක්. හැබැයි අපේ රොබෝවා Line Following එකෙක් නෙමේ. එයා Sign Following Robot කෙනෙක්. ඒ කියන්නේ පාරෙ තියෙන එක එක සලකුණු තමා අඳුනගන්නේ. නැතුව ඉරක් අඳුන ගෙන ඉර දිගේ යන්නේ නෑ.

අනිත් වැදගත්ම කාරණේ ඔබ අහල ඇත්තේ අනිවාර්යයෙන්ම Sensors භාවිතා කරමින් මාර්ගය අඳුන ගන්න Robot ලා ගැන. අපේ නිර්මාණය විශේෂ වෙන්නේ කිසිම Sensor එකක් පාවිච්චි වෙන්නේ නෑ. Image Processing සහ Computer Vision තමා මේකෙදි සම්පූර්ණෙන් පාවිච්චි වෙන්නේ. මේ වගේ එකක් වෙන කොහෙවත් හදලා තියෙන බවක් නම් අපිට හොයාගන්න ලැබුනේ නෑ. ඉතින් මේක ගොඩක් විශේෂයි ඒ අතින්. නව නිර්මාණයක්.

 

අපේ Mentor උනේ Prof. N.D. Kodikara මහතා. කසුන් සර්ත්  WASN එකේ හිටපු ලක්මාල් සර්ත් අපිට උදව් කලා. WASN ( දැන්  SCORE ) එකෙන් අපිට ලැබුනු සහය අනිවාර්යයෙන් මතක් කරන්න ඕනි. අපිට අවශ්‍ය පහසුකම් කිසිම පැකිලීමකින් තොරව ලක්මාල් සර්ත් අනිත් අයත් සපයලා දුන්නා.

 

කොහොම හරි මුලදි අපිට ගොඩක් අපහසුතාවන්ට මුහුණ දෙන්න උනා. පහුගිය සෙමෙස්ටරේම ලෙක්චර්ස් නැති හැම වෙලේකම වගේ කලේ මේකෙ වැඩ. Research Type project එකක් කියලා අපි නොදැම්මට Research පැත්තෙන් ගොඩක් දේවල් කරන්න උනා. එක එක Technologies මාරු කරන්නත් උනා. මුලින් අපි තීරණය කලේ Lego kit (බිල්ඩින් බ්ලොක්ස් වගේ පොඩි රොබෝලා හදලා බලන්න පාවිච්චි කරන කෑලි සෙට් එකක්) පාවිච්චි කරන්න. ඒත් අපිට තේරුනා කැම්පස් එකේ තිබුණු IR වලින් විතරක් Wireless Communicate කරන්න පුළුවන් Lego Kit එකෙන් වැඩේ හරියන් නැති බව. ඉතින් අපිට කසුන් සර් කීවා “Electronic එක්ක සෙල්ලම් කරන්න කැමති නම් ඕක අතින් හදන්න” කියලා. ඔන්න අන්තිමේදි Risk එකක් තියන් උනත් අපි වැඩේට අතගැහුවා.

කොඩිකාර සර් Image Processing සහ Computer Vision පිළිබඳව අපිට උපදෙස් ලබා දුන්නා.

 

ඔන්න කොහොමින් හරි බොහොම අමාරුවෙන් වැඩේ කරන් ගියා. සමහර Technologies අපි අළුතින්ම මුල ඉඳන්ම ඉගෙන ගත්තා. සර්කිට් බඩු ගන්න පිටකොටුවේ කට්ට කෑවා. පළවෙනි PIC එක වැඩ කරන් නෑ. ඔහොම ඔහොම සෑහෙන ගැටළු වලට මූන දෙන්න උනා. දවස් ගනන් නිදි මැරුවා. අවුරුද්ද දවස් වලත් මේකෙ වැඩ.

 

ඒවා ගැව තවත් විස්තර නොකියා මම මේකේ තියෙන දේ ගැන කියන්නම්කෝ.

අන්තිමේදි අපි වාහනය හැදුවා Lego කෑලි පාවිච්චි කරලා. ඒක wireless විදිහට හසුරුවන්න පුළුවන් විදියට PIC එකක් සහ FM Module එකක් යොදපු Circuit එකක් අපි හැදුවා. මේ තියෙන්නේ අපේ රොබෝවා

 

අපේ රොබෝ

අපේ රොබෝ

 

මේකට අපි පාවිච්චි කළේ 18F4520 කියන PIC එක. ඔය ඇන්ටෙනාවක් එක්ක තියෙන්නෙ FM Module එක. ඒකෙන් තමයි කොම්පියුටරේ ඉඳලා එන Control Signals ලබාගෙන PIC එකට දෙන්නෙ. PIC එකෙන් ඒ අනුව වාහනේ රෝද හසුරුවනවා. ඕකෙ ඔය කහ පාට කොටස ගාවා දකුණු පැත්තේන් තමා කැමරාව තියෙන්නේ. මේකෙදි අපි භාවිතා කළේ Android Mobile Phone එකක්. ඒකේ app එකකින් WIFI වලින් පරිගණකයට එවනවා වාහනේ ඉස්ස්රහින් පේන Image Stream එකක්. WIFI Router එකක් හරහා ඒ Image Stream එක පරිගණකයේ අපි හදපු Software එකට ලබාගන්නවා. වාහනේ Circuit එකටයි මෝටර් වලටයි ජවය සපයන්න 3.7V 3800mAh බැටරි 2ක් පාවිච්චි කළා. අපි කළින් පාවිච්චි කළ WIFI Security Camera එක අතෑරලා දැම්මේ ඒකට ගොඩක් ජවයක් ඕන නිසා සහ අපිට අවශ්‍ය image quality එක නොලැබුණු නිසයි.

 

පරිගණකය පැත්තතෙනුත් අපි Circuit එකක් හැදුවා. අපි Serial Port එකක් භාවිතා කරන්නයි අදහස් කළේ. ඒත් ඒකට Serial Port අපේ ලැප්ටොප් වල නැති නිසා USB to Serial කේබලයක් භාවිතා කළා. MAX 232 IC එකකින් Serial Port එකෙන් එන signal, FM Module එකට දෙන්න සුදුසු විදියට හදාගත්තා. දැන් අපේ සොෆ්ට්වෙයාර් එකෙන් එවන Signal වාහනේට ලබාගන්න පුළුවනි.

MAX232 + FM Module

 

Hardware කොටස් එහෙමයි හදාගත්තේ. Software එක හැදුවේ C++ වලින් QT භාවිතා කරලා. දියුණු GUI එකක් හද හදා ඉන්න වෙලාවක් අපිට තිබ්බේ නෑ. ඒ නැතාට අවශ්‍ය සියලු අනෙක් දේවල් මෙකේ අපි හැදුවා.

කැමරාවෙන් WIFI හරහා ලැබෙන Image Stream එකෙන් Images එකින් එක අරගෙන ඒවා සකසන්න හා විවිධ දේ අඳුනගන්න මේක සකස් කළා. මේකෙදි ඉමේජ් එකක් අරගෙන ඒකෙන් පාර හරහා මොකක් හරි බාධාවක් (Obstacle එකක්) තියෙනවද අඳුනගන්න පුළුවන්. ඊගාවට මාර්ගයට සමාන්තරව තියෙන රේඛා අඳුනගන්න පුලුවන්. සැරින් සැරේ වාහනේ කෙලින් යනවාද බලන්න ඒක යොදාගන්නනේ. අපේ සිතියම බැලුවොත් ඔබ දකීවි හරස් ඉරි තියෙනවා. ඒවත් අඳුනගන්නවා. ඊගාවට වැදගත්ම කොටස. අපි Neural Network එකකින් Train කරපු OCR (Optical Character Recognition) පද්ධතියක් පාවිච්චි කරනවා පාරේ තියෙන සලකුණු අඳුනගන්න (මේකෙ නම් ඉලක්කම්) . ඊගාවට වාහනේට  Signal යවන්න Serial Port එක එක්ක Communicate කරන්න පුළුවන් කොටසක් මේකෙ තියෙනවා. තව කියන්න අමතක උනා. මේකෙ තියෙනවා Optimal Path Recognition System එකක්. ඒ කියන්නේ අපි ඉන්න තැනයි යන්න ඕනි තැනයි දුන්නම හොඳම ලඟම Path එක හොයාගන්න පුළුවන්. ඒ වගේම Obstacle එකකින් පාරක් block උනොත්  ඒ පාරෙ ආයෙ යන්න දෙන්නේ නෑ.

 

Software Running

 

දැන් ඔන්න මම Hardware සහ Software ගැන විස්තර කරලා දුන්නා අපි හදපු. දැන් මම කියන්නම් වැඩේ වෙන්නේ කොහොමද කියලා.

පහත වීඩියෝ එක බැලුවම වැඩේ තවත් තේරෙයි.

වීඩියෝ එකේ තියෙන මැප් එකම අරන් විස්තර කරන්නම්කෝ.

වාහනේ යන මඟ

 

ඉස්සෙල්ලාම වාහනේ යවන්න අපි ඉන්න තැන සහ යවන්න ඕනි තැන දෙනවා. එතකොට වාහනේ ඉස්සරයට යන්න ගන්නවා. මේකේ මුල ඉඳන් 4ට යන්න පාරවල් 2ක් තියෙනවා. ඉස්සේල්ලාම යනකොට වාහනේ යන්න ඕනි 1 >> 4 පාරේ.

එන ඉමේජස් වලින් ඉස්සෙල්ලාම කරන්නේ obstacle අඳුනගන්න එක. හදිසියේවත් තිබ්බොත් එහෙම එකක් වාහනේ එතනම නවතිනවා.

කෙලින් ඉර ගැන සැරින් සැරේ බලනවා වාහනේ කෙලින් යනවාද කියලා. ඊළඟට ඉමේජ් එකේ හරස් ඉරක් තියෙනවද බලනවා. ඔබට පෙනෙයි ඉලක්කම් වලට කලින් හරස් ඉරි තියෙනවා. මෙහෙම හරස් ඉරක් අඳුන ගත්තොත් ඒ ඉර නැති වෙනකම්ම් ඊළඟට එන ඉමේජස් ගැන බලනවා. නැති උනු ගමන් ඊළඟට එන ඉමේජ් එකේ අංකය සඳහන් වෙන එකක්. ඒක අරගෙන අංකය තියෙන පෙදෙස් crop කරලා OCR එකට යවනවා.

 

මේක කලින් කීවා වගේ Neural Network එකක් පාවිච්චි කරලා train කරලා තියෙන්නේ. ඒකෙන් නිවැරදිව අංකය අඳුනගන්නවා. අංක තියලා තියෙන්නේ විශේෂ තැන් වල. ඒ කියන්නේ වාහනේ ගමන් මඟ පිළිබඳ තීරණ ගන්න ඕනි වංගු, හන්දි වගේ තැන් වල. දැන් හිතන්නකෝ 1 හඳුනගත්තයි කියලා.

මේකෙ තියෙනවා Rule Engine එකක් අපි හදපු. ඒකෙන් තමා යන්න ඕනි විදිය ගැන තීරණ ගන්නනේ. දැන් පළවෙනි සැරේ 4ට යනකොට 1 දි හැරෙන් නැතුව කෙලින් යන එකනේ හොඳම මාර්ගය.  Rule Engine එක optimal path එක ගැන බලලා වාහනේට දෙනවා ඉදිරියටම යන්න කියලා Signal එකක්. Signal එක යන හැටි මම කීවනේ. FM Module 2 පාවිච්චි කරලා තමා වාහනේට මේ Signal යවන්නේ. PIC එකෙන් ඒ අනුව මෝටර් හසුරුවනවා.

 

දැන් ඔන්න වාහනේ 1 පහු කරන් යනකොට ඕගොල්ලො දකීවි map එකේ තියෙනවා පොඩි Obstacle එකක් තියලා. වාහනේ ඒක අඳුන ගත්තු ගමන් නවතිනවා (video එකේ මේ කොටස නෑ).

දැන් අපි ආයෙ මුල ඉඳන් වාහනේ ගෙනිච්චොත් 1 >> 4 පාරේ යන්නේ නෑ. 1 >> 2 >> 3 >> 4 පාරේ යන්නේ. වීඩියෝ එකේ තියෙන්නේ ඒක.

අංකයක් අඳුන ගත්තම ටිකක් ඉස්සරහට ගිහින් වාහනේ අදාල විදියට හැරෙනවා. හැරෙන්න ඕනි විදිය System එකේ දාලා තියෙන්නේ. ඉතින් ඔහොම 4 වෙනකම් ගිහින් වාහනේ නවතිනවා.

 

Sign Following Robot – A Computer Science 3rd Year project done by UCSC Students

 

ඉතින් ඔන්න ඔහොමයි වැඩේ වෙන්නේ. කට්ටියට දැන් නම් තේරුම් ගන්න පුළුවන් වෙන්න ඇති කියලා හිතනවා ඔක්කොම දේවල්……

 

මේ ඉන්නේ හැමවෙලේම ජෝක් එකක් කරලා පැලෙන්න හිනා වෙන අපේ කණ්ඩායම :)

 

Our Group - From left Me, Banu, Pasindu, Yuwakanth, in the back Manoj

 

මම හිතන්නේ දැන් කට්ටියට තේරෙනවා ඇති මේකෙ වෙන්නේ මොකක්ද කියන එක වගේම අපි මේකට උනු මහන්සිය ගැන. මාස 6ක දි කැම්පස් එකේ අනිත් වැඩත් කරන ගමන් මේක කරන්න ලොකු වෙහෙසක් ගත්තා. හැබැයි ඒකෙ අන්තිම ප්‍රතිඵලය ගොඩක් හොඳයි. කට්ටියටම ගොඩක් සතුටුයි අන්තිමට.

 

After the Demonstration - me, Mr. Brian, Mr. Lakmal and Manoj

 

අපිට අවශ්‍ය උනු දේ අපි කළා. අපිට ඕනි උනේ වෙනසක් කරන්න. ඒකට පුළුවන් උපරිමය අපි කළා.

මේකට වචනෙකින් හරි උදවු කරපු හැමෝටම බොහොම ස්තුතියි. UCSC එකෙන් ලැබුනු සහය අති මහත්. FM Module 2 සපයලා දුන්නු ලසන්තටත් තව උදවු කරපු ආරුණ්‍යටත් ගොඩක් ස්තුතියි.

නම් නොකළට ඔබ සැම දුන්නු සහයෝගයට බොහොම ස්තුතියි!!!

 

මේ ඔක්කොම සාර්ථක කරගන්න හැමවෙලේම එකට හිටපු මගේ ලඟම මිත්‍රයෝ ටික පසිඳු, බානු, යුවා, මනෝජ්.. අපි හැමෝගෙම මහන්සියෙ ප්‍රතිඵලය ගැන මට ගොඩක් සතුටුයි…..

 

 ඒ වගේම මතක් කරන්න ඕනි මේ පෝස්ට් එක පම්පෝරියක් නෙවේ. වීඩියෝ එක බලපු සමහර අයට තේරෙන්නේ නෑ කීවා. සමහරු මේක Line Following Robot එකක් කියල හිතල තිබ්බා. ඒ නිසයි මේක ලියන්න අදහස් කළේ. ඒ වගේම UCSC එකේ ගොඩක් නිර්මාණ බිහි උනාට සාමාන්‍ය කෙනෙක්ට දැනගන්න ලැබෙන අවස්ථාව ටිකක් අඩුයි. ඉතින් මේක ඒකටත් අවස්ථාවක් කරගන්නවා….

 

මේ ගැන ඔබේ අදහස පහළ Comment එකක දාලා යන්න අමතක කරන්නෙපා.