کنترل ربات با دوربین ثابت

masoodahmadian

عضو جدید
سلام. من میخام با یه دوربین ثابت روی سقف، یه روبات رو در ابعاد یه اتاق مسیریابی کنم.
یعنی رو کامپیوتر ٍ مثلا بهش بگم برو به نقطه A ، از تصویری که رو مانیتور میبینم، بعد دستور بفرسته که ربات بره اونجا با کنترلرهایی که داره.
میخواستم یه راهنمایی واسه استفاده از دوربین ثابت بهم بکنید. زیاد راجع به پردازش تصویر با دوربین نمی دونم.
کدی، جزوه ای، کتابی اگه بهم معرفی کنید ممنون میشم
 

ROBOTICS

کاربر فعال مهندسی رباتیک
اول به سوالات زیر جواب بده

۱- زبان برنامه نویسی شما چیست؟ سی پلاس پلاس؟ یا متلب؟

۲- اگر سی پلاس پلاس می نویسی ، با سیستم عاملا کوبونتو حاضری کار کنی

۳- ربات چه شکلی است ، آیا رنگش کاملا با محیط و موانع متفاوت است؟

۴- آیا موانعی داری که ربات بتواند از زیرش رد بشود (تو تصویر دیده نشود) مانند میز؟

۵- محیط آزمایشگاهی است (مانند زمین فوتبال که یک دست سبز است) یا محیط طبیعی است؟

==========

توضیح: زبان برنامه نویسی متلب بسیار راحت تر از سی پلاس پلاس است اما در عوض سرعتش بسیار کم است
این سرعت کم باعث می شود، خیلی ها به سمت سی پلاس پلاس روی بیاورند
 

masoodahmadian

عضو جدید
سلام . ممنون از جوابتون
میخوام با متلب انجام بدم.
ربات در واقع قایقه. با یه موتور که on/off میشه فقط و با یه سرعت خیلی کم حرکت می کنه. باله هم فقط چپ - راست - مستقیم داره
محیط بدون مانع است . میشه آب رو سیاه کرد و رنگ قایق رو کاملا متمایز و قایق تشخیص
ابعاد قایق 30cm است و سرعتش هم خیلی کم. rc boat است.
محیط آزمایشگاهیه
 

ROBOTICS

کاربر فعال مهندسی رباتیک
سه رنگ اصلی و هشت رنگ شبه اصلی داریم

رنگ های اصلی: قرمز - سبز - آبی
رنگ های شبه اصلی: سیاه - قرمز - زرد - سبز - فیروزه ای - آبی - سرخابی - سفید

آب را نمی شود سیاه کرد چون بازتاب دارد و رنگ های دیگر نشان می دهد. مگر این که از گواش استفاده کنی. اگر به قایق آسیبی نمی زند این کار را بکن

در غیر این صورت ، آب را به آبی تیره و قایق را قرمز (خونی) کن

تو متلب با دستور زیر تصویر را می خوانی

کد:
vid = videoinput('winvideo', 1);
set(vid, 'ReturnedColorSpace', 'RGB');
img = getsnapshot(vid);

سپس با دستور زیر رنگ قرمز را جدا می کنی

کد:
r=img(:,:,1)

حالا با دستور زیر قایق را تماشا کن.

کد:
imshow(r)

اکنون با دستور زیر تصویر را ذخیره کن تا در این جا بگذاری و من بگویم چه کار کنی

کد:
imwrite(r,'C:\test.bmp')

یک بار زمانی که ربات وسط آب بود و به درایو c برو و فایل test.bmp را در محل دیگری کپی کن. آن را در این جا قرار بده


تا این جا فقط یک دستور پردازش تصویر داشتیم. آن هم جدا کردن رنگ قرمز
به توجه به عکسی که قرار می دهی من می گویم که لازم است باز هم دستورات پردازش تصویرانجام دهی
شاید کار تمام شده باشد و لازم باشد دستورات بینایی ماشین (درک تصویر) بگویم
 

Similar threads

بالا