سادهترین روش تست ربات:
ربات خود را با کمک شاسی چرخ دار مورد نظر خود و قطعات اسمبل کنید(بستن و سرهم کردن) .
برنامه آردوینو را هم دانلود کنید و روی برد آردوینو، آپلود نمایید.
سپس اپلیکیشن را دانلود کرده و با وصل کردن گوشی اندروید به ربات و استفاده از اپلیکیشن و منوی “دنبالکردن شخص/شئی” این قسمت از برنامه را تست نمایید.
و در صورتی که کد خاصی دارید یا طرح ویژه ای دارید، میتوانید آن را کدنویسی کرده و در برنامه آپلود کنید.
فرض کن یک ربات کوچک داری که مثل یک دوست باهوش، هر جا میروی پشت سر تو حرکت میکند؛ بدون اینکه با چیزی برخورد کند یا گم شود. این همان ایدهی «ربات دنبالکننده شخص» یا Person Following Robot است. در این پروژه، ما از ربات آموزشی–صنعتی CarBot استفاده میکنیم تا یاد بگیریم چطور با دوربین موبایل، هوش مصنوعی و کمی برنامهنویسی، یک ربات دنبالکننده انسان بسازیم.
ربات دنبالکننده شخص (Person Following) چیست؟
ربات دنبالکننده شخص یک ربات چرخدار است که با استفاده از دوربین و حسگرها، جای انسان را میبیند و سعی میکند با فاصلهای امن پشت سر او حرکت کند. این نوع رباتها در دنیای واقعی کاربردهای زیادی دارند؛ از حمل چمدان در فرودگاه گرفته تا کمک به سالمندان در خانه.
- استفاده از دوربین برای دیدن انسان در تصویر
- تشخیص موقعیت شخص با کمک هوش مصنوعی
- محاسبه جهت و سرعت حرکت ربات
- حفظ فاصله امن تا شخص، بدون برخورد با موانع
تاریخچه کوتاه رباتهای دنبالکننده
۱. نسل اول: دنبالخط و سیگنالهای ساده
اولین رباتهای دنبالکننده، رباتهای دنبالخط بودند. این رباتها فقط یک خط مشکی یا سفید روی زمین را با سنسور مادونقرمز دنبال میکردند. بعد از آن، رباتهایی ساخته شد که دنبال یک فرستنده ساده مثل IR یا RFID حرکت میکردند. این رباتها هنوز انسان را نمیدیدند، فقط یک سیگنال را دنبال میکردند.
۲. نسل دوم: دید کامپیوتری کلاسیک
با ارزان شدن دوربینها و قویتر شدن کامپیوترها، روشهای کلاسیک پردازش تصویر به وجود آمدند. در این نسل از روشهایی مثل Haar Cascade برای تشخیص صورت یا HOG + SVM برای تشخیص انسان استفاده میشد. ربات میتوانست بدن یا صورت را در تصویر پیدا کند و با کمک آن فرد را دنبال کند؛ اما در نورهای مختلف و پسزمینه شلوغ، زیاد قابل اعتماد نبود.
۳. نسل سوم: رباتهای شخصدنبالکن با یادگیری عمیق
امروز با مدلهای هوش مصنوعی مثل YOLO، PoseNet و MoveNet، ربات میتواند انسان را با دقت بسیار بالا در تصویر تشخیص دهد. این مدلها حتی میتوانند اسکلت بدن (نقطههای سر، شانه، زانو و غیره) را پیدا کنند. ربات CarBot در همین نسل قرار میگیرد و برای آموزش همین مفاهیم طراحی شده است.
پروژه دنبالکردن شخص با CarBot چه کاری انجام میدهد؟
در نمونهکار «دنبالکردن شخص»، ربات CarBot با استفاده از دوربین موبایل و یک مدل هوش مصنوعی، انسان را در تصویر پیدا میکند و سعی میکند همیشه روبهروی او بماند. این پروژه برای یک دانشآموز ۱۳ ساله هم قابل فهم و پیادهسازی است، فقط کافی است کمی با برنامهنویسی پایتون یا اپلیکیشن موبایل CarBot آشنا باشد.
- نمای زنده دوربین روی صفحه موبایل یا لپتاپ نمایش داده میشود.
- مدل هوش مصنوعی، شخص را پیدا کرده و دور او یک باکس رنگی میکشد.
- بر اساس محل این باکس، ربات میفهمد باید به چپ برود، به راست برود یا مستقیم حرکت کند.
- اگر شخص خیلی نزدیک شود، ربات عقب میرود یا میایستد تا به او برخورد نکند.
معماری سیستم Person Following در CarBot
برای اینکه ربات دنبالکننده شخص کار کند، چند بخش اصلی با هم همکاری میکنند. این معماری را میتوانیم به شکل چهار لایه ساده توضیح دهیم.
۱. لایه دید (Perception)
- دوربین موبایل روی CarBot، از محیط فیلم میگیرد.
- هر فریم تصویر به مدل هوش مصنوعی ارسال میشود.
۲. لایه تشخیص انسان
در این مرحله از یکی از مدلهای معروف هوش مصنوعی استفاده میکنیم:
- YOLO: برای تشخیص انسان به صورت یک باکس (Bounding Box)
- PoseNet / MoveNet: برای تشخیص اسکلت کامل بدن و نقطههای مفصلها
خروجی این مرحله، نقطهای در تصویر است که نشان میدهد مرکز بدن انسان کجاست و حدوداً چقدر با ربات فاصله دارد.
۳. لایه کنترل حرکت با PID
در این قسمت، ربات باید تصمیم بگیرد با چه سرعتی به جلو برود و چقدر به چپ یا راست بچرخد. برای این کار از یک کنترلکننده به نام PID استفاده میکنیم. PID مثل یک راننده باحوصله است که مدام اشتباهها را نگاه میکند و فرمون را آرام آرام تنظیم میکند.
۴. لایه ایمنی و منطق سطح بالا
- اگر شخص از تصویر خارج شود، ربات میایستد و به آرامی دور خود میچرخد تا او را دوباره پیدا کند.
- اگر مانعی در مسیر باشد، سرعت را کم میکند یا توقف میکند.
- فاصله با شخص همیشه در یک محدوده امن نگه داشته میشود.
PID چیست؟ توضیح ساده برای دانشآموز
فرض کن با دوچرخه در حال دنبالکردن دوستی هستی. اگر خیلی از او عقب بیفتی، سریعتر رکاب میزنی و اگر زیادی نزدیک شوی، سرعت را کم میکنی. همین کار را مغز ربات با فرمول PID انجام میدهد.
- P – بخش تناسبی: هر چقدر فاصله بیشتر باشد، ربات سریعتر جلو میرود.
- I – بخش انتگرالی: اگر برای مدتی طولانی اشتباه باقی بماند، کمی فشار اضافه میدهد تا خطا صفر شود.
- D – بخش مشتقی: تغییرات ناگهانی را میبیند تا ربات از هدف عبور نکند و «ویراژ» نزند.
در CarBot از دو PID استفاده میکنیم: یکی برای فاصله (سرعت جلو/عقب) و یکی برای زاویه (چرخش به چپ/راست). خروجی این دو PID در نهایت به موتورهای چهارچرخ CarBot ارسال میشود.
کدام مدل هوش مصنوعی برای دنبالکردن شخص بهتر است؟
YOLO
- خروجی: باکس دور شخص (کلاس person)
- مزیت: پیادهسازی ساده و مناسب برای آموزش، میتواند همزمان اشیای دیگر را هم تشخیص دهد.
- عیب: اطلاعات دقیق اسکلت بدن را نمیدهد.
PoseNet
- خروجی: نقطههای بدن (سر، شانه، زانو و ...)
- مزیت: میتوانی حالت بدن (ایستاده، نشسته، دست بالا) را تشخیص دهی.
- عیب: نسبت به مدلهای جدیدتر مثل MoveNet کمی کندتر و کمدقتتر است.
MoveNet
- خروجی: اسکلت بدن با سرعت و دقت بالا، مخصوص موبایل و رباتهای کوچک.
- مزیت: عالی برای کلاسها و کارگاههایی که میخواهند حرکت بدن را تجزیه و تحلیل کنند.
- عیب: فقط انسان را تشخیص میدهد؛ اگر بخواهی علائم راهنمایی یا موانع را هم ببینی، باید یک مدل دیگر کنار آن استفاده کنی.
برای شروع، استفاده از YOLO نسخه سبک معمولا بهترین انتخاب برای پروژه Person Following روی CarBot است. وقتی دانشآموزان مسلط شدند، میتوانی پروژه را با MoveNet و تحلیل اسکلت بدن حرفهایتر کنی.
ایدههایی برای توسعه پروژه در کلاس یا کارگاه
- تعریف حالت Stop وقتی شخص دستش را بالا میبرد.
- ترکیب Person Following با دورزدن مانع؛ ربات هم شخص را دنبال کند و هم از موانع دوری کند.
- ضبط دیتای ویدئویی و آموزش یک مدل شخصیسازی شده برای کلاس خودتان.
- مقایسه عملکرد YOLO، PoseNet و MoveNet روی همان ویدئوها و رسم نمودار دقت/سرعت.
جمعبندی
پروژه دنبالکردن شخص با CarBot بهترین نقطهی شروع برای آشنایی دانشآموزان با هوش مصنوعی، بینایی ماشین و مفاهیم کنترل است. در این پروژه نوجوان ۱۳ ساله یاد میگیرد چطور یک ربات واقعی، با استفاده از مدلهای هوش مصنوعی مثل YOLO و MoveNet، انسان را در تصویر پیدا میکند و با الگوریتم PID او را با فاصلهای امن دنبال میکند. این نمونهکار میتواند پایهای برای پروژههای بزرگتر در مدرسه، دانشگاه و حتی صنعت باشد.
دنبالکردن شخص (Person Following)
از رباتهای حملبار در انبارها تا پهپادهای فیلمبرداری، «دنبالکردن هوشمند» یکی از جذابترین کاربردهای بینایی ماشین است. در CarBot میتوان همین ویژگی را بهصورت تعاملی تجربه کرد.
توضیح کامل
در این پروژه، مدل هوش مصنوعی روی تصویر دوربین موبایل اجرا میشود تا شخص موردنظر را تشخیص دهد. تاریخچهی این ایده به رباتهای صنعتی و خدمترسان برمیگردد که باید اپراتور یا مشتری را در محیط دنبال میکردند. امروزه بسیاری از گجتها (مثل گیمبالها و پهپادها) این قابلیت را دارند.
کاربر با اپلیکیشن یا کد پایتون/بلوکها، یک «هدف» تعریف میکند؛ مثلا کسی که لباس مشخصی پوشیده یا در کادر وسط تصویر قرار دارد. ربات با تحلیل موقعیت هدف در تصویر (چپ، راست، نزدیک، دور) فرمانهای حرکتی تولید میکند تا فاصلهی ثابت را حفظ کند. این پروژه برای آموزش مفاهیمی مثل تشخیص انسان، فریمبهفریمکردن ویدئو، فیدبک بصری و کنترل سرعت بسیار مناسب است و بلافاصله با یک تست ساده در کلاس یا خانه قابل نمایش است.
دنبالکردن شخص (Person Following)
از رباتهای حملبار در انبارها تا پهپادهای فیلمبرداری، «دنبالکردن هوشمند» یکی از جذابترین کاربردهای بینایی ماشین است. در CarBot میتوان همین ویژگی را بهصورت تعاملی تجربه کرد.
توضیح کامل
در این پروژه، مدل هوش مصنوعی روی تصویر دوربین موبایل اجرا میشود تا شخص موردنظر را تشخیص دهد. تاریخچهی این ایده به رباتهای صنعتی و خدمترسان برمیگردد که باید اپراتور یا مشتری را در محیط دنبال میکردند. امروزه بسیاری از گجتها (مثل گیمبالها و پهپادها) این قابلیت را دارند.
کاربر با اپلیکیشن یا کد پایتون/بلوکها، یک «هدف» تعریف میکند؛ مثلا کسی که لباس مشخصی پوشیده یا در کادر وسط تصویر قرار دارد. ربات با تحلیل موقعیت هدف در تصویر (چپ، راست، نزدیک، دور) فرمانهای حرکتی تولید میکند تا فاصلهی ثابت را حفظ کند. این پروژه برای آموزش مفاهیمی مثل تشخیص انسان، فریمبهفریمکردن ویدئو، فیدبک بصری و کنترل سرعت بسیار مناسب است و بلافاصله با یک تست ساده در کلاس یا خانه قابل نمایش است.
. تاریخچهای کوتاه از رباتهای دنبالکننده و انواع آن
ایدهی «ربات دنبالکننده» از دههی ۶۰–۷۰ میلادی در پروژههای رباتیک دانشگاهی دیده شد؛ جایی که رباتها باید به صورت خودکار یک شیء یا فرد را دنبال میکردند. در طول زمان، چند نسل اصلی شکل گرفت:
الف) نسل اول – دنبالکنندهی خط و سیگنالهای ساده
رباتهای دنبالخط (Line Follower) که فقط یک مسیر مشکی یا سفید روی زمین را با سنسورهای مادونقرمز دنبال میکردند.
رباتهای دنبالکنندهی فرستندهی IR یا RFID که بهجای فرد، یک تگ یا فرستنده را دنبال میکردند.
این نسل بیشتر برای آموزش مفاهیم کنترل و سنسور استفاده میشد و «شخصدنبالکن» به معنای امروزی نبود.
ب) نسل دوم – دنبالکردن فرد با بینایی ماشین کلاسیک
با ارزان شدن دوربینها و ظهور پردازش تصویر روی PC:
تشخیص فرد با روشهای کلاسیک مثل:
آشکارساز Haar برای صورت
HOG + SVM برای تشخیص انسان
رباتها معمولاً با:
ردیابی رنگ لباس،
یا مرکز مستطیل صورت / بدن
، فرد را دنبال میکردند.
این سیستمها در نورهای مختلف و پسزمینههای شلوغ، پایداری کمی داشتند.
ج) نسل سوم – رباتهای شخصدنبالکن مبتنی بر یادگیری عمیق
با ظهور YOLO، PoseNet، MoveNet و مدلهای deep learning:
ربات میتواند:
انسان را با دقت بالا در تصویر شناسایی کند.
اسکلت بدن (keypoints) را استخراج کند.
فاصله و جهت حرکت شخص را تخمین بزند.
این نسل، پایهی رباتهای امروزی Person Following در سرویسهای حملونقل داخلی، رباتهای سرویسدهندهی فروشگاهی و رباتهای آموزشی مانند CarBot است.
د) انواع رباتهای شخصدنبالکن از نظر کاربرد
ربات همراه (Companion Robot)
دنبالکردن صاحب در خانه / بیمارستان، کمک به سالمندان.ربات حمل بار (Luggage / Cargo Follower)
دنبال کردن صاحب با چمدان یا سبد خرید در فرودگاهها و فروشگاهها.ربات آموزشی – تحقیقاتی (Educational / Research)
مثل CarBot برای آموزش:بینایی ماشین،
کنترل و PID،
هوش مصنوعی روی یک پلتفرم کوچک و امن.
ربات صنعتی / لجستیکی
دنبالکردن اپراتور یا مسیر حرکت اپراتور در انبار و کارخانه برای کمک در حمل قطعات.
CarBot در این بین بهعنوان پلتفرم آموزشی و نیمهصنعتی جای میگیرد: هم مناسب کارگاه و مدرسه است، هم میتواند ایدهی رباتهای صنعتی واقعی را شبیهسازی کند.
جدول مقایسه نهایی
| معیار | YOLO (Tiny/Nano) | MoveNet | PoseNet |
|---|---|---|---|
| نوع خروجی | Box + Confidence | Skeleton | Skeleton |
| پایداری برای دنبالکردن | عالی | متوسط | ضعیف |
| سرعت روی Jetson Nano | بسیار خوب | متوسط | ضعیف |
| دقت در شلوغی | عالی | متوسط | ضعیف |
| پیچیدگی پردازش | کم | زیاد | زیاد |
| پیادهسازی کنترل PID | ساده | متوسط | سخت |
| مناسب CarBot | بهترین انتخاب | قابل قبول | نامناسب |




