রোবট যখন গণিত দিয়ে পথ চেনে

রাত তখন প্রায় একটা। মেঝেতে কালো টেপ দিয়ে আঁকা একটা এলোমেলো লাইন, আর তার ওপর বসানো আমার হাতে বানানো Nexus-1—একটা লাইন ফলোয়ার রোবট, যার কাজ নিজে নিজে সেই কালো লাইন ধরে চলা। সুইচ অন করলাম। প্রথম কয়েক সেকেন্ড রোবটটা একবার বাঁয়ে কাঁপল, একবার ডানে। তারপর হঠাৎ স্থির হয়ে গিয়ে একদম মসৃণভাবে লাইন ধরে এগোতে লাগল, যেন সে চোখে দেখছে। কিন্তু Nexus-1-এর কোনো চোখ নেই। ওর আছে শুধু কয়েকটা সেন্সর আর দুটি সূত্র। সেই রাতে বুঝলাম, ‘দেখা’ জিনিসটা চোখ ছাড়াও সম্ভব—যদি হাতে থাকে সঠিক সংখ্যা আর সঠিক অঙ্ক।

রোবটের ভেতরে লুকানো একটা সংখ্যা

Nexus-1-এর নিচে পাশাপাশি বসানো পাঁচটা সেন্সর। প্রতিটা সেন্সর মেঝের রং পড়ে সংখ্যা পাঠায়—কালোর জন্য ১, সাদার জন্য ০।

প্রতিটা সেন্সরের একটা করে ‘অবস্থান-মান’ আছে, বাঁ থেকে ডানে: -২, -১, ০, ১, ২। মাঝেরটার মান ০। কারণ, সে-ই রোবটের আদর্শ অবস্থান—লাইনের ঠিক মাঝখানে।

ধরা যাক, রোবট একটু বাঁ দিকে সরে গেছে। সেন্সরগুলো তখন পড়বে: ০, ০, ১, ১, ০।

error = (প্রতিটি সেন্সরের মান ও তার অবস্থান মানের গুণফল)-এর যোগফল ÷ যতগুলো সেন্সর ১ দেখাচ্ছে, তাদের যোগফল

= ∑ (সেন্সরের মান × অবস্থান–মান) ÷ ∑ (সেন্সরের মান)

সংখ্যা বসিয়ে দেখি:

সেন্সর মান: ০, ০, ১, ১, ০

অবস্থান-মান: -২, -১, ০, ১, ২

ওপরের অংশ = (০×-২) + (০×-১) + (১×০) + (১×১) + (০×২) = ১

নিচের অংশ = ১ + ১ = ২

error = ১ ÷ ২ = ০.৫

রোবট বুঝে ফেলল, লাইনটি তার কেন্দ্র থেকে ০.৫ একক ডান দিকে আছে। error ধনাত্মক মানে লাইন ডানে, ঋণাত্মক মানে লাইন বাঁয়ে, শূন্য মানে ঠিক মাঝখানে। পাঁচটা সেন্সরের তথ্য মিলে একটামাত্র সংখ্যায় বদলে গেল—আর সেটাই রোবটকে বলে দিল সে কোথায় আছে।

রোবটের মাথায় তিনটি প্রশ্ন

error জানার পর ঠিক করতে হয় চাকা দুটি কতটা জোরে বা আস্তে ঘুরবে। এখানে কাজ করে PID কন্ট্রোল। রোবট নিজেকে তিনটি প্রশ্ন করে:

১. এখন কতটা ভুল আছে? (Proportional)

২. এতক্ষণ মোট কতটা ভুল জমেছে? (Integral)

৩. ভুলটা কি হঠাৎ বাড়ছে, নাকি কমছে? (Derivative)

সংশোধন = (Kp × error) + (Ki × জমে থাকা error-এর যোগফল)

+ (Kd × error পরিবর্তনের হার)

Kp, Ki, Kd—এই তিন সংখ্যা আমরা নিজেরা বসিয়ে দিই, যেগুলো ঠিক করে ওপরের প্রশ্নগুলোর প্রতিটি কতটা গুরুত্ব পাবে। যেমন তিন বন্ধু পরামর্শ দিচ্ছে—একজন এখন কী করা উচিত বলছে (Kp), একজন আগের ভুল মনে করাচ্ছে (Ki), আরেকজন পরিস্থিতি কত দ্রুত বদলাচ্ছে, সেটা সাবধান করছে (Kd)। এ সংখ্যাগুলোই তুমি তাদের কথায় কতটা কান দেবে তার মাপ।

শুধু Kp = ১০ ধরে হিসাব করি, error = ০.৫। তাহলে সংশোধন = ১০ × ০.৫ = ৫। স্বাভাবিক গতি ১০০ ধরলে:

বাঁ চাকার গতি = ১০০ + ৫ = ১০৫

ডান চাকার গতি = ১০০ − ৫ = ৯৫

বাঁ চাকা জোরে, ডান চাকা আস্তে ঘোরায় রোবট ডান দিকে বেঁকে লাইনের মাঝখানে ফিরে আসে। error যত বড়, সংশোধনও তত বড়—সাইকেল বেশি হেললে হ্যান্ডল যেমন বেশি ঘোরাতে হয়।

গণিত ভাইয়া
প্রতীকী ছবি

যে সূত্র যন্ত্রকে ভাবতে শেখায়

সেই রাতে Nexus-1 যখন প্রথমবার মসৃণভাবে লাইন ধরে চলল, বুঝলাম—এর পুরোটাই দুটি সূত্র। একটা বলে, ‘আমি কতটা ভুল পথে আছি’, আরেকটা বলে, ‘সেটা কীভাবে ঠিক করব’। এর বাইরে কোনো জাদু নেই—শুধু কয়েকটা যোগ, গুণ ও ভাগ।

গণিতের যে সূত্রগুলো একসময় শুধু খাতায় দেখতাম, সেগুলোই আজ আমার হাতে বানানো যন্ত্রকে চোখ ছাড়া পথ চিনতে শেখায়। গণিত হয়তো শুধু পরীক্ষার বিষয় নয়—এটা একটা ভাষা, যা দিয়ে প্রাণহীন জিনিসকেও চিন্তা করতে শেখানো যায়।

সহযোগিতায়: বাংলাদেশ গণিত অলিম্পিয়াড কমিটি