Robotic Knowledge
383 subscribers
242 photos
62 videos
2 files
172 links
دانش و برنامه‌نویسی برای رباتیک
Download Telegram
#یادگیری_تقویتی #هوش_مصنوعی #یادگیری #نقشه
#RL

قسمت دوم: الگوریتم‌های RL برای رباتیک

تعدادی از الگوریتم‌های RL برای یاد دادن به سیستم‌های رباتیک بیشتر مورد توجه بوده‌اند که الگوریتم Q-learning، الگوریتم‌های policy gradient و الگوریتم‌های actor-critic از آن‌ها هستند.

در ادامه این الگوریتم و روش‌ها را بررسی خواهیم کرد.
----------
@roboticknowledge
Robotic Knowledge
#یادگیری_تقویتی #هوش_مصنوعی #یادگیری #RL ---------- @roboticknowledge
#یادگیری_تقویتی #هوش_مصنوعی #یادگیری
#RL

قسمت سوم: یادگیری تقویتی یک ربات با الگوریتم Q-learning | تصمیم‌گیری و ساختار آن


⬅️ یک مثال برای بیان ساده الگوریتم و Q-table

تصور کنید که رباتی دارید و قصد دارید به آن بدون اینکه از تحلیل سینماتیکی استفاده کنید، مسیر بهینه برای رسیدن به یک هدف را به ربات یاد دهید. فضای کاری ربات یک صفحه است که دیوارهایی در آن قرار دارند و یک یا چند نقطه نهایی به عنوان اهدافی که ربات باید به آن‌ها برسد، در این صفحه وجود دارد. موقعیت اولیه ربات هم می‌تواند تصادفی انتخاب شود. ابتدا لازم است تا یک ماتریس ایجاد کنید که دارای x سطر، y ستون و a لایه (یا کانال) است. به این ماتریس Q-table گفته می‌شود.

⬅️ فضای حالت یا state space

در مثال قبل و ساختار ماتریس Q، مولفه x بیانگر مختصه طولی موقعیت ربات و y مختصه عرضی موقعیت ربات در environment می‌باشد. بعبارتی برای تجسم ساده الگوریتم Q-learning در این مثال و آموزش، ربات بصورت نقطه‌ای در یک صفحه حرکت می‌کند و ساده‌ترین state space ممکن تعریف شده است. پس state space به فضایی که حالت ربات (موقعیت آن) در آن عوض می‌شود، گفته می‌شود.

⬅️ ساختار ماتریس Q-table

بیان شد که ماتریس دارای a لایه هست (ماتریس چند بعدی می‌باشد) و تعداد لایه‌ها برابر با تعداد action های در دسترس ربات در هر state است. برای مثال اگر ربات در یک مکان (state) مشخص قرار دارد و می‌تواند چهار عمل حرکت به بالا، پایین، راست و چپ را بعنوان action برای رفتن به state بعدی بگمارد، a برابر ۴ می‌باشد. به تمام action های ممکن هم action space گفته می‌شود. بنابراین هر لایه (کانال) از ماتریس Q-table بیانگر یک action مستقل می‌باشد. باید متوجه شده باشید که در مثال این آموزش state space بصورت گسسته تعریف شد زیرا در صورت تعریف پیوسته آن ابعاد x و y ماتریس Q-table باید بصورت نظری بینهایت باشد که در پیاده‌سازی الگوریتم ممکن نیست.

⬅️ مقادیر ذخیره شده در ماتریس Q-table

مقادیر ماتریس Q-table مرجع عددی ربات برای تصمیم‌گیری انتخاب action در هر state (موقعیت) هستند. وقتی یک ربات با روش Q-learning آموزش هدف را یاد گرفت، این ماتریس در هر state (یعنی x و y مشخص) دارای a مقدار مستقل (برای مثال در مثال ربات مورد بحث چهار مقدار) است که به آن‌ها Q-value گفته می‌شود و ربات برای رفتن به state بعد آن action ای را انجام می‌دهد که بیشترین Q-value را دارد. Q-value همان مقدار هر المان در Q-table است که یک شاخص عددی برای بیان میزان مفید بودن هر action ممکن در یک state مشخص برای هدایت ربات به نقطه هدف می‌باشد. زمانی ربات به بهینه‌ترین شکل به سمت هدف هدایت می‌شود که معتبرترین action را در هر state انتخاب کند تا به state بعد برسد و معتبرترین action آن یک است که بیشترین Q-value را دارد.

بنابراین اصلی‌ترین مسأله در الگوریتم Q-learning ایجاد یک Q-table است که عملا به هوش از پیش تمرین داده شده ربات تبدیل می‌شود و راهنمای ربات برای انجام بهینه‌ترین action برای رسیدن به هدف با عبور از state های مطلوب خواهد بود.

⬅️ ماتریس Q-table را برای یادگیری یک مسأله مشخص توسط ربات چگونه ایجاد کنیم؟

الگوریتم Q-learning پروسه پیدا کردن تمامی Q-value های بهینه را طی فرایند یادگیری بر اساس reward و penalty پس از هر action بسادگی مشخص کرده است که در مطلب دوم از آموزش الگوریتم Q-learning آن را شرح خواهم داد.
----------
@roboticknowledge
👍1
دوستان بگید ببینم داخل یک موتور DC، گشتاور تولیدی با جریان رابطه مستقیم داره یا ولتاژ؟ 😁
Final Results
43%
با جریان داره، اینجوری: taw=K×I
19%
با ولتاژ داره، اینجوری: taw= (K/R)×V
38%
با هر دو داره، بستگی داره کدوم رو دوست داشته باشیم. :)
#هوش_مصنوعی #ChatGPT
بزودی ChatGPT-4 ارائه می‌شود و قابلیت Multimodal خواهد داشت. نسخه فعلی یعنی ChatGPT-3.5 تنها ورودی و خروجی متنی می‌دهد درحالیکه نسخه جدید یعنی ChatGPT-4 امکان داشتن ورودی و خروجی صوتی، تصویری و ویدئویی نیز خواهد داشت! به همین دلیل به آن Multimodal گفته می‌شود.
برای داشتن تصوری از امکاناتی که نسخه Multimodal ارائه می‌کند، می‌توان به امکان نوشتن یک کتاب کاملا مصور چند صد صفحه‌ای در یک روز اشاره کرد!
اگر زمانی که ChatGPT-3 ارائه شد، از لفظ «انقلاب» برای آن استفاده شد، برای ChatGPT-4 باید از عبارت «سوپرانقلاب» استفاده کرد! امیدوارم در دسترس همه ما باشد تا بتوانیم بسیاری کارهای جالب با آن انجام دهیم.
----------
@roboticknowledge
Robotic Knowledge
#هوش_مصنوعی #ChatGPT بزودی ChatGPT-4 ارائه می‌شود و قابلیت Multimodal خواهد داشت. نسخه فعلی یعنی ChatGPT-3.5 تنها ورودی و خروجی متنی می‌دهد درحالیکه نسخه جدید یعنی ChatGPT-4 امکان داشتن ورودی و خروجی صوتی، تصویری و ویدئویی نیز خواهد داشت! به همین دلیل به آن…
#هوش_مصنوعی #ChatGPT
برای داشتن یک تخمین خیلی ساده از تغییر صورت گرفته برای Multimodal کردن ChatGPT لازم است اشاره شود که آنطور که در مدیا دیدم، تعداد پارامترهای مدل از ۱۷۵ میلیارد پارامتر به ۱۰۰ هزار میلیارد پارامتر افزایش یافته است.
----------
@roboticknowledge
#میکروکنترلر #MicroController #آردوینو #Arduino

سلام. عید نوروز شما مبارک و انشاالله سال جدید خیلی خوبی داشته باشید.💐

آردوینو قرار هست نسخه R4 از سری میکروکنترلرهای Uno رو تا چند مدت دیگه عرضه کنه و گفتن عملکرد سخت‌افزاری خیلی بهتری از نظر سرعت و حافظه ارائه میده. حتی یک نسخه Arduino Uno R4 همراه با wifi خواهد بود که در نوع خودش خیلی باحاله!

اطلاعات کامل رو اینجا میتونید بخونید.
----------
@roboticknowledge
🍾1
😁3
This media is not supported in your browser
VIEW IN TELEGRAM
#مکانیزم #عملگر #عملگر_الکتریکی #کنترل
تفاوت عملکردی Servo Motor و Stepper Motor

در این فیلم دو بازوی رباتیک آموزشی دیده می‌شود که یکی از آن‌ها از Servo Motor (مکانیزم سیاه) و دیگری از Stepper Motor (مکانیزم بنفش) استفاده می‌کند. هر دو موتور در این سیستم قابلیت Position Control در فضای مفصلی را به راحتی با کتابخانه در برنامه‌نویسی Microcontroller ارائه می‌کنند؛ موتور Servo در یک رنج محدود حرکت دقیق طبق فرمان انجام می‌دهد و موتور Stepper نیز با درایور خود می‌تواند بصورت Open loop با دقت خوبی فرمان حرکت بدهد. بنابراین بر روی کاغذ با هر دو موتور می‌توان در فضای مفصلی ربات Position Control بصورت حلقه باز سطح بالا (و حلقه بسته سطح پایین که توسعه دهنده کاری به آن ندارد) داشت.

اما تفاوت اصلی در قوام (Robustness) اجرا می‌باشد؛ Servo Motor بخاطر توان ضعیف و محدود عملکرد جالبی ندارد اما مکانیزمی که از Stepper Motor استفاده کرده است، بسیار نرم و با قوام حرکت می‌کند. بررسی گشتاورهای تامین شده برای موتورهای استفاده شده می‌تواند جالب باشد خصوصا الان که عملکرد آن‌ها قابل مشاهده است.
----------
@roboticknowledge
👍4
Robotic Knowledge
https://twitter.com/webots/status/1625422924986425345?s=19 😅
After the algorithm improvement of my NAO robot controller, I'm top of the table in the ICRA 2023 Humanoid Robot Wrestling Competition by Cyberbotics Ltd.

I know it's temporary, and probably my awesome competitors take back the position again, but this is the beauty of this competition! As it provides interactive learning opportunities by trying to win against the opponent by improving the algorithm's weaknesses.

I'm enjoying the competition, and hope to be consistent in learning from it until the end.🙂

You can watch the games here: https://lnkd.in/g_TPffBX
----------
@roboticknowledge
🏆6👏1
#ROS2 #open_source
Hi; Hope you are doing well.😊✌️🏼

I'm learning ROS2, and for remembering the commands and the developed programs/packages during the learning experience, I'm saving the progress inside a Github repo:

https://github.com/MJavadZallaghi/ros2humble_learningRepo

On the main page of the repo, you can find the most important commands of ROS2. As I learn, I'll add new stuff; Actually, this is the beginning of this journey for me!

Hope you find it useful for yourself too. Please fill free to contribute to the repo.

Start learning ROS2!
----------
@roboticknowledge
👍5
#نادانسته #تجربه #Decision #Planning
چیزهایی که در رباتیک نمی‌دانیم: استراتژی عملکرد یک ربات - الگوریتم و خودِ تصمیم‌گیری - Decision and Planning

ما برای تبدیل شدن به یک مهندس یا پژوهشگر یا علاقه‌مندی که دوست دارد Roboticist بشود، همواره در حال یادگیری چیزهایی هستیم؛ مدل‌سازی ریاضی و فیزیکی، شبیه‌سازی، کنترل حرکت و تعامل با محیط، کار با سنسورها و عملگرها، نمونه‌سازی و یکپارچه‌سازی مکاترونیکی ربات، هوش مصنوعی برای استخراج داده‌های سطح بالا و ... نمونه‌هایی از موارد متعددی است که ما در تلاش برای فراگیری هستیم.

اما مسأله مهم این است که اگر موارد فوق را به خوبی در یک سیستم رباتیک اجرا کنیم، در فاز نهایی به یک چالش اساسی خواهیم رسید: استراتژی کارکرد ربات را چگونه طراحی و پیاده کنیم؟

منظور از استراتژی کارکرد (این عبارت ساخته ذهن خودم است و شاید دقیق نباشد و در انتها یک ترم دقیق برای آن ارائه‌ خواهد شد) این است که هر رباتی برای انجام یک کاری توسعه داده شده است و برای انجام آن کار باید یک دستورالعمل داشته باشد! مثلا یک ربات صنعتی که کار Pick and Place انجام می‌دهد، میتوانید چنین الگوریتمی بعنوان استراتژی عملکرد کلی خود داشته باشد:

۱. موقعیت هدف را بگیر.
۲. موقعیت فعلی مجری نهایی را محاسبه کن.
۳. برای رسیدن به هدف با استفاده از سینماتیک معکوس، مسیر حرکتی مفصلی تولید کن.
۴. واحد کنترل، حرکت طراحی شده را اجرا کن.
۵. چند ثانیه مانده به موقعیت هدف، چنگک باز بشود.
۶. چند ثانیه بعد از رسیدن به موفقیت هدف، چنگک بسته بشود.
۷. موقعیت فعلی محاسبه شود.
۸. با توجه به موقعیت هدف، یک ترجکتوری مفصلی با استفاده از سینماتیک معکوس تولید بشود.
۹. واحد کنترلی ترجکتوری کنترلی را اجرا کند.
۱۰. در موقعیت نهایی، چنگک باز شود.
۱۱. به مرحله ۱ برگرد.

در یک تسک ساده خصوصاً Manipulation در محیط صنعتی توسعه یک استراتژی عملکردی کاملا ساده است و شهودی میتوان این کار را انجام داد و با آزمون و خطا، آن را بهبود نیز داد. اما برای یک کار پیچیده‌تر، مسأله طراحی استراتژی عملکرد می‌تواند بسیار پیچیده باشد. برای مثال یک ربات که باید یک خانه پویا را بصورت سیکلیک اسکن کند و دنبال پیدا و جمع کردن آشغال باشد، یا یک اتوموبیل خودران که با انواع موانع پویا درگیر است، برای عملکرد مناسب نیاز به استراتژی عملکرد با قوام و پیچیده دارند. تجربه شخصی من این است که معمولاً Roboticist ها این بحث مهم را فرا نمی‌گیرند یا موقع نیاز با آزمون و خطا یک چیز ساده را توسعه می‌دهند که قوام در برابر شرایط پیش‌بینی نشده را ندارد.

در این بحث سعی کردم در خصوص مبحث بسیار مهم استراتژی عملکرد یک ربات که عنوان Decision and Planing در سطح بالای یک ربات برای آن مناسبت‌تر است، یک صحبتی داشته باشم و حداقل طبق تجربه خودم، در خصوص یادگیری دقیق این مبحث به خودم و سایرین که در این بحث ضعف دارند، اخطار برای یادگیری بدهم. ما در سطح پایین مفهموم Planning را طراحی مسیر می‌دانیم، اما در سطح بالا که منظور ترسیم و طرح‌ریزی استراتژی عملکرد است، در آن عموما ضعف داریم و تا مرحله‌ای که نیاز به آن برای توسعه یک ربات داریم، متوجه اهمیت شدید آن نیستیم. چنانچه تجربه‌ای در این مورد دارید یا منابع آموزشی برای این بحث بسیار مهم دارید، در کامنت نظر ارزشمند خود را منتشر کنید.
----------
@roboticknowledge
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
#ROS2

یک RC F1 را با ROS2 برنامه‌نویسی کنید تا با بیشترین سرعت لوپ را طی کند و برنامه خود را با نسخه متن‌باز مثایسه کنید!

در HACKADAY مطلبی دیدم که مربوط به پیاده‌سازی الگوریتم حرکت خودکار یک وسیله RC F1 بود و بنظرم آمد آن را منتشر کنم.

در مطلب توضیحات کلی پیاده‌سازی ارائه شده است؛ برای مثال گفته شده است که پلتفرم از یک LiDAR بعنوان سنسور Perception استفاده می‌کند - همچنین از SLAM و Odometry برای نقشه‌کشی محیط و موقعیت یابی وسیله در محیط داخلی استفاده شده است.

موارد فوق زیاد اهمیتی ندارد و چیزی که بیشتر برای من جالب بود، پیاده‌سازی الگوریتم با ROS2 بود. در حقیقت کدهای وسیله شامل پکیج‌ها و ... در گیتهاب در دسترس است. این یک فرصت یادگیری عالی است تا با ساختار برنامه این وسیله که عملکرد عالی در تعقیب مسیر طرح‌ریزی شده داخلی داشته است، آشنا بشوید. نکته جالب‌تر اینکه برای RC F1 یک شبیه‌ساز هم ارائه کرده‌اند و می‌شود بدون سخت‌افزار با ROS2 الگوریتم را پیاده کرد و آن را برای سناریو شخصی تغییر داد.

لینک ws برای ROS2 وسیله

لینک شبیه‌ساز RC F1 در ROS2
----------
@roboticknowledge
👍5
#هوش_مصنوعی #هوش_فیزیکی
هوش فیزیکی مصنوعی و اهمیت آن در آینده رباتیک

در حالیکه هر روز شاهد پیشرفت هوش مصنوعی هستیم و اخیرا Large Language Model هایی همچون ChatGPT به ابزارهای روزانه کاری ما برای پرسش و پاسخ و کمک به توسعه محتوای متنی و زبانی تبدیل شده‌اند، باید بیان شود بشر در توسعه هوش مصنوعی برای Manipulation و Locomotion و Perception و بعبارتی توسعه ربات‌هایی توانا در امور فیزیکی بسیار عقب است و جای توسعه شدیدی در آینده وجود دارد.

فرض کنید در حال چت کردن با ChatGPT هستید؛ به ربات زبانی می‌گویید که دستور پخت و مراحل پخت یک غذا را برای شما آماده کند. طبیعتاً این LLM این کار را برای شما انجام می‌دهد و خروجی متنی هم تولید می‌کند. اما آیا برای پخت غذا و طی کردن مراحل آماده‌سازی فیزیکی و شیمیایی، رباتی وجود دارد که برای شما این کار را انجام بدهد؟ تلاش نکنید که چیزی وجود ندارد!

مثال ساده این قضیه مقایسه شطرنج و باز کردن در است. با اینکه مدل‌های هوش مصنوعی می‌توانند به بهترین شکل در شطرنج یک انسان را شکست دهند، اما تقریباً پیشرفته‌ترین ربات‌های جهان از بازکردن یک در براحتی عاجز هستند. به توانایی ذهنی برای انجام اعمال فیزیکی هوش فیزیکی یا Physical Intelligence گفته می‌شود و اگرچه در نگاه ما شطرنج پیچیده‌تر از باز کردن در می‌آید، اما برای یک ربات بصورت General ساده‌ترین حرکات و اعمال فیزیکی کاری بسیار سخت‌تر از پردازش فرمان‌های شطرنج خواهد بود.

در خصوص انسان هم فاز توسعه Physical Intelligence طولانی‌تر از فاز وجود آمدن زبان و استدلال فاز توسعه Language Intelligenc بوده است. البته این مورد صرفا یک مثال می‌تواند باشد و خود این مسأله بحث‌های شدیدی دارد که مرتبط به موضوع هوش فیزیکی نیست. این مورد درباره هوش مصنوعی هم اینچنین بوده است تقریباً زیرا شاهد توسعه سریع LLM ها و مدل‌های محتوایی بوده‌ایم مادامی که Artificial Physical Intelligence بسیار کمتر پیشرفت کرده‌ است.

اکنون در مراکز پیشرفته پژوهشی رباتیک در حال کار بر روی توسعه Artificial Physical Intelligence برای راه رفتن (با کمک RL و شبیه‌سازی فراوان) و Manipulation اجسام و اشیا بصورت دانش تعمیم یافته و نهایتا ادراک و توسعه سنسوری برای Physical Intelligence می‌باشند.

اینها را  نوشتم تا جریان مهم و آینده‌دار هوش مصنوعی برای رباتیک را بهتر دریابید و خیال نکنید با توسعه پیشرفته‌ترین LLM ها و GAN ها کار تمام شده است.

محتوا تماما از
این سخنرانی بسیار با ارزش
----------
@roboticknowledge
👍4
#Meme
😂😂
[منبع]
----------
@roboticknowledge
😁10
Robotic Knowledge
After the algorithm improvement of my NAO robot controller, I'm top of the table in the ICRA 2023 Humanoid Robot Wrestling Competition by Cyberbotics Ltd. I know it's temporary, and probably my awesome competitors take back the position again, but this is…
دیروز نهایتاً فاز جدولی مسابقات Humanoid Wrestling Competition در ICRA2023 به پایان رسید و با لطف خدا موفق شدیم در این مرحله نماینده موثری از جامعه Roboticist های ایرانی با عنوان تیمی MechaCheetahs در این مسابقات باشیم.
دور حذفی مسابقات از تاریخ 30 May شروع خواهد شد و مسابقات استریم برخط نیز خواهد داشت. در این خصوص روز قبل از مسابقه اطلاع‌رسانی خواهم کرد.
----------
@roboticknowledge
🏆7👍1
#Path_Planning
#Navigation
آقای محمد لقمان در این مطلب مختصری درباره Path Planning یا طرح‌ریزی مسیر در یک ربات و تفاوت آن با Navigation یا ناوبری ربات توضیح داده‌اند.
👍6
پژوهشگران فعال و موثر رباتیک جهان اکنون در لندن گرد هم آمده‌اند تا کنفرانس #ICRA2023 را برگزار کنند. به موازات کنفرانس، کارگاه‌های آموزشی و مسابقات فراوانی از جمله Humanoid Wrestling که بنده بصورت مجازی در آن شرکت دارم، برگزار خواهد شد.
تصاویری را که حاضرین فیزیکی در LinkedIn منتشر می‌کنند، بیانگر شادابی از حضور در چنین گردهمایی وزینی است. بعبارتی خوشا به سعادتشان! 😅
----------
@roboticknowledge
👍4