সুচিপত্র:
ভিডিও: Roomba Explorer: 4 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
MATLAB এবং iRobot এর Create2 রোবট ব্যবহার করে, এই প্রকল্পটি একটি অজানা অবস্থানের বিভিন্ন এলাকা অন্বেষণ করবে। আমরা রোবটের উপর সেন্সর নিযুক্ত করেছি যাতে একটি বিপজ্জনক ভূখণ্ড চালানো যায়। সংযুক্ত রাস্পবেরি পাই থেকে ফটোগ্রাফ এবং ভিডিও ফিড পেয়ে আমরা রোবট যেসব প্রতিবন্ধকতার মুখোমুখি হবে তা নির্ধারণ করতে সক্ষম হয়েছি এবং সেগুলিকে শ্রেণীবদ্ধ করা হবে।
যন্ত্রাংশ এবং উপকরণ
এই প্রকল্পের জন্য, আপনার প্রয়োজন হবে
-একটি কম্পিউটার
MATLAB এর নতুন সংস্করণ (MATLAB R2018b এই প্রকল্পের জন্য ব্যবহৃত হয়েছিল)
- রুমবাইনস্টল টুলবক্স
-iRobot এর Create2 রোবট
ক্যামেরা সহ রাস্পবেরি পাই
ধাপ 1: সূচনা এবং সেন্সর
কোন প্রোগ্রামিং শুরু করার আগে, আমরা রুমবাইনস্টল টুলবক্স ডাউনলোড করেছিলাম, যা রোবটের বিভিন্ন অংশে প্রবেশের অনুমতি দেয়।
প্রাথমিকভাবে, আমরা যে কোন রোবটকে আরম্ভ করার জন্য একটি GUI তৈরি করেছি। এটি করার জন্য, আপনাকে ইনপুট হিসাবে রোবটের সংখ্যা টাইপ করতে হবে। এটি রোবটকে আমাদের প্রোগ্রাম চালানোর জন্য অ্যাক্সেসের অনুমতি দেবে আমরা রোবটকে যেসব ভূখণ্ডের মুখোমুখি হবে তার মধ্য দিয়ে চালানোর জন্য কাজ করেছি। আমরা ক্লিফ সেন্সর, লাইট বাম্প সেন্সর এবং ফিজিক্যাল বাম্প সেন্সর প্রয়োগ করেছি, তাদের আউটপুট ব্যবহার করে রোবটের গতি এবং দিক পরিবর্তন করতে। যখন ছয়টি লাইট বাম্প সেন্সর কোন বস্তু সনাক্ত করছে, তখন তাদের উৎপাদিত মান হ্রাস পাবে, যার ফলে রোবটের গতি কমে যাবে যাতে পূর্ণ গতির সংঘর্ষ এড়ানো যায়। যখন রোবটটি শেষ পর্যন্ত একটি বাধার সাথে ধাক্কা খায়, তখন ফিজিক্যাল বাম্প সেন্সরগুলি শূন্যের চেয়ে বড় একটি মান রিপোর্ট করবে; এই কারণে, রোবটটি বন্ধ হয়ে যাবে, তাই আর কোন সংঘর্ষ হবে না এবং আরও ফাংশনগুলি কার্যকর করা যেতে পারে। ক্লিফ সেন্সরের জন্য, তারা তাদের চারপাশের এলাকার উজ্জ্বলতা পড়বে। যদি মান 2800 এর বেশি হয়, আমরা নির্ধারণ করেছি যে রোবট স্থিতিশীল স্থলে এবং নিরাপদ থাকবে। কিন্তু, যদি মান 800 এর কম হয়, ক্লিফ সেন্সরগুলি একটি চূড়া সনাক্ত করবে, অবিলম্বে থেমে যাবে যাতে না পড়ে। এর মধ্যে যেকোনো মান পানির প্রতিনিধিত্ব করার জন্য নির্ধারিত ছিল এবং রোবটকে তার কাজ বন্ধ করতে বাধ্য করবে। উপরের সেন্সরগুলি ব্যবহার করে, রোবটের গতি পরিবর্তন করা হয়েছে যাতে আমরা আরও ভালভাবে নির্ধারণ করতে পারি যে কোন বিপদ আছে কিনা।
নীচের কোডটি (MATLAB R2018b থেকে)
%% আরম্ভ
dlgPrompts = {'Roomba Number'};
dlgTitle = 'আপনার রুমবা নির্বাচন করুন';
dlgDefaults = {''};
opts. Resize = 'on';
dlgout = inputdlg (dlgPrompts, dlgTitle, 1, dlgDefaults, opts) % উইন্ডো তৈরি করুন যা ব্যবহারকারীকে তাদের রুমবা নম্বর ইনপুট করতে অনুরোধ করে
n = str2double (dlgout {1});
r = রুমবা (n); % ব্যবহারকারী নির্দিষ্ট রুম্বা সূচনা করে %% লাইট বাম্প সেন্সর থেকে গতি নির্ধারণ যখন সত্য s = r.getLightBumpers; % হালকা বাম্প সেন্সর পান
lbumpout_1 = extractfield (গুলি, 'বাম'); % সেন্সরের সংখ্যাসূচক মান নেয় এবং সেগুলিকে আরও ব্যবহারযোগ্য করে তোলে lbumpout_2 = extractfield (s, 'leftFront');
lbumpout_3 = extractfield (গুলি, 'leftCenter');
lbumpout_4 = extractfield (গুলি, 'rightCenter');
lbumpout_5 = extractfield (গুলি, 'rightFront');
lbumpout_6 = extractfield (গুলি, 'ডান');
lbout = [lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6] % মানকে ম্যাট্রিক্সে রূপান্তরিত করে
sLbump = সাজান (lbout); %সর্বনিম্ন মান থেকে ম্যাট্রিক্স বের করা যায়
lowLbump = sLbump (1); গতি =.05+(lowLbump)*।
r.setDriveVelocity (গতি, গতি)
শেষ
% শারীরিক বাম্পার
b = r.getBumpers; %আউটপুট সত্য, মিথ্যা
bsen_1 = extractfield (b, 'left')
bsen_2 = extractfield (b, 'right')
bsen_3 = extractfield (b, 'front')
bsen_4 = extractfield (b, 'leftWheelDrop')
bsen_5 = extractfield (b, 'rightWheelDrop')
বাধা = [bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump = sum (bums)
যদি tbump> 0 r.setDriveVelocity (0, 0)
শেষ
% ক্লিফ সেন্সর
c = r.getCliffSensors %% 2800 নিরাপদ, অন্যথায় জল
csen_1 = extractfield (c, 'left')
csen_2 = extractfield (c, 'right')
csen_3 = extractfield (c, 'leftFront')
csen_4 = extractfield (c, 'rightFront')
ক্লিফ = [csen_1, csen_2, csen_3, csen_4]
ordcliff = সাজান (cliffs)
যদি ordcliff (1) <2750
r.setDriveVelocity (0, 0)
যদি ক্লিফ <800
ডিপ 'ক্লিফ'
অন্য
ডিসপ 'জল'
শেষ
r. TurnAngle (45)
শেষ
ধাপ 2: ডেটা পাওয়া
ফিজিক্যাল বাম্প সেন্সর ট্রিপ করার পর, রোবট বাধাটির ছবি তোলার জন্য রাস্পবেরি পাই বোর্ডে এটি বাস্তবায়ন করবে। ছবি তোলার পর, ছবিতে যদি টেক্সট থাকে তাহলে টেক্সট রিকগনিশন ব্যবহার করে, রোবট নির্ধারণ করবে বাধা কি এবং বাধা কি বলে।
img = r.getImage; imshow (img);
imwrite (img, 'imgfromcamera.jpg')
ছবি = imread ('imgfromcamera.jpg')
ocrResults = ocr (ছবি)
স্বীকৃত পাঠ = ocrResults. Text;
চিত্র;
ইমশো (ছবি) পাঠ্য (220, 0, স্বীকৃত পাঠ্য, 'ব্যাকগ্রাউন্ড কালার', [1 1 1]);
ধাপ 3: মিশন শেষ করা
যখন রোবট নির্ধারণ করে যে বাধাটি হোম, এটি তার মিশন সম্পন্ন করবে এবং বাড়িতে থাকবে। মিশন শেষ হওয়ার পরে, রোবটটি একটি ই-মেইল সতর্কতা পাঠাবে যে এটি দেশে ফিরে এসেছে এবং এটি তার ভ্রমণের সময় নেওয়া ছবিগুলি পাঠাবে।
% ই-মেইল পাঠানো হচ্ছে
setpref ('ইন্টারনেট', 'SMTP_Server', 'smtp.gmail.com');
setpref ('ইন্টারনেট', 'E_mail', '[email protected]'); setpref ('ইন্টারনেট', 'SMTP_Username', 'প্রেরক ইমেল লিখুন') থেকে পাঠানোর জন্য % মেল অ্যাকাউন্ট; % প্রেরকদের ব্যবহারকারীর নাম setpref ('ইন্টারনেট', 'SMTP_Password', 'প্রেরকের পাসওয়ার্ড লিখুন'); % প্রেরকদের পাসওয়ার্ড
প্রপস = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
পাঠান
রোবটটির কাজ শেষ।
ধাপ 4: উপসংহার
MATLAB প্রোগ্রামটি অন্তর্ভুক্ত করা হয়েছে সম্পূর্ণ স্ক্রিপ্ট থেকে যা রোবটের সাথে ব্যবহার করা হয়েছিল। চূড়ান্ত খসড়ায়, বাম্পারগুলি ক্রমাগত চলছে কিনা তা নিশ্চিত করার জন্য, প্রাথমিক পদক্ষেপটি বাদ দিয়ে সমস্ত কোডটি কিছুক্ষণের জন্য লুপে রাখুন। এই প্রোগ্রামটি ব্যবহারকারীর চাহিদা অনুসারে সম্পাদনা করা যেতে পারে। আমাদের রোবটের কনফিগারেশন দেখানো হয়েছে।
*রিমাইন্ডার: ভুলে যাবেন না যে রুমবাইনস্টল টুলবক্সটি ম্যাটল্যাবকে রোবট এবং বোর্ডে রাস্পবেরি পাই এর সাথে যোগাযোগ করার জন্য প্রয়োজন।
প্রস্তাবিত:
Roomba Bot the Bulider: 5 ধাপ (ছবি সহ)
Roomba Bot the Bulider: Bot the Builder is a roomba, that with " grabbers " সামনের দিকে সংযুক্ত জিনিসগুলি চারপাশে সরাতে সক্ষম হবে। এর সাথে কোডটি একটি GUI বক্সের সাথে প্রথম মুভমেন্ট রেকর্ড করার জন্য সেট করা আছে যা আপনি আপনার মাউসের ক্লিক দিয়ে নিয়ন্ত্রণ করতে পারেন। পরে
Roomba MATLAB প্রকল্প: 5 টি ধাপ
রুম্বা ম্যাটল্যাব প্রজেক্ট: নাসা মঙ্গলের রোভারের জন্য যে বর্তমান পরিকল্পনাটি করেছে তা হল এটি একটি ডাটা কালেক্টর এবং মঙ্গলের চারপাশে ঘুরে বেড়ানো, পৃথিবীতে ফিরিয়ে আনার জন্য মাটির নমুনা সংগ্রহ করা যাতে বিজ্ঞানীরা দেখতে পারেন যে সেখানে আগের কোন জীবন ফর্ম আছে কিনা গ্রহ. অতিরিক্ত
Roomblock: Roomba, Raspberry Pi এবং RPLIDAR এর সাথে ROS Navigation শেখার জন্য একটি প্ল্যাটফর্ম: 9 টি ধাপ (ছবি সহ)
রুমব্লক: রুমবা, রাস্পবেরি পাই এবং আরপিএলআইডিএর সাথে আরওএস নেভিগেশন শেখার জন্য একটি প্ল্যাটফর্ম: এটি কী? &Quot; রুমব্লক " একটি রোবট প্ল্যাটফর্ম একটি রুম্বা, একটি রাস্পবেরি পাই 2, একটি লেজার সেন্সর (RPLIDAR) এবং একটি মোবাইল ব্যাটারি নিয়ে গঠিত। মাউন্ট ফ্রেম 3D প্রিন্টার দ্বারা তৈরি করা যেতে পারে। ROS নেভিগেশন সিস্টেম কক্ষের একটি মানচিত্র তৈরি করতে এবং আমি ব্যবহার করতে সক্ষম
Localino Tracks Roomba IRobot, মানচিত্র পরিবেশ এবং অনুমতি দেয় নিয়ন্ত্রণ: 4 ধাপ
Localino Tracks Roomba IRobot, Maps the Environment and Allows Control .: This instructable ব্যাখ্যা করে একটি পদ্ধতি কিভাবে লোকালিনো ইন্ডোর লোকালাইজেশন সিস্টেম, ওয়াইফাই-ইউএআরটি ব্রিজ এবং একটি পিসি অ্যাপ্লিকেশন দিয়ে আপনার রুম্বা আইরোবটকে ট্র্যাক এবং নিয়ন্ত্রণ করতে হয়। এই নির্দেশযোগ্য ব্যাখ্যা ব্যাখ্যা, একটি HIL- নিয়ন্ত্রণ ব্যাখ্যা
MATLAB সঙ্গে Roomba: 4 ধাপ (ছবি সহ)
MATLAB সঙ্গে Roomba: এই প্রকল্প MATLAB এবং একটি iRobot Create2 প্রোগ্রামযোগ্য রোবট ব্যবহার করে। ম্যাটল্যাব সম্পর্কে আমাদের জ্ঞান পরীক্ষা করে, আমরা ইমেজ ব্যাখ্যা এবং সংকেত সনাক্ত করতে Create2 প্রোগ্রাম করতে সক্ষম। রোবটের কার্যকারিতা মূলত নির্ভর করে