Robotic Knowledge
383 subscribers
242 photos
62 videos
2 files
172 links
دانش و برنامه‌نویسی برای رباتیک
Download Telegram
#مفاهیم
#Neural_Networks #NN #AI

ما شبکه‌های عصبی را با ساختار MLP می‌شناسیم، جایی که توابع فعالسازی ثابت اما وزن اتصالات یادگیری شونده است.

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

مزیت چیست؟ نخست اینکه یک شبکه KAN با تعداد نورون‌های خیلی کم می‌تواند دقت بهتری از یک شبکه MLP با تعداد زیادی نورون بدهد. دوم اینکه شبکه KAN می‌تواند فیزیک مسأله را یاد بگیرد - به لطف اینکه تابع غیرخطی فعال‌سازی چون spline یادگیری می‌شود - و مشخصا آنچه که یادگرفته قابل تفسیر است و مقدار Black Box بودن مسأله بسیار کم می‌شود.

مشکل شبکه‌های KAN این است که با GPU نمی‌تواند آموزش ببیند، اگرچه برای یادگیری فیزیک‌های نه چندان بزرگ با CPU های قوی بخوبی می‌توان بر روی KAN ها حساب باز کرد.

مقاله کامل در آی تریپل ای اسپکتروم قابل خواندن است.
https://spectrum.ieee.org/kan-neural-network

----------
@roboticknowledge
4🤯2🫡1
#مفاهیم #طراحی

ایشان آقای Brooks هستند، سازنده ربات (بیشتر ربات ساخته‌اند تا کار تحقیقاتی کرده باشند) و در جاهای معروفی چون irobot بوده‌اند.
سه قانون برای ربات‌ها دارند - ربات‌هایی که قرار است بتوانند در جهان واقعی کار کنند و نه فقط دموی آزمایشی باشند:

1. The visual appearance of a robot makes a promise about what it can do and how smart it is. It needs to deliver or slightly over deliver on that promise or it will not be accepted.

2. When robots and people coexist in the same spaces, the robots must not take away from people’s agency, particularly when the robots are failing, as inevitably they will at times.

3. Technologies for robots need 10+ years of steady improvement beyond lab demos of the target tasks to mature to low cost and to have their limitations characterized well enough that they can deliver 99.9 percent of the time. Every 10 more years gets another 9 in reliability.

در باره این قانون‌ها در بلاگ خود توضیح داده‌اند که جالب بود.

----------
@roboticknowledge
41
Robotic Knowledge
#مفاهیم #طراحی ایشان آقای Brooks هستند، سازنده ربات (بیشتر ربات ساخته‌اند تا کار تحقیقاتی کرده باشند) و در جاهای معروفی چون irobot بوده‌اند. سه قانون برای ربات‌ها دارند - ربات‌هایی که قرار است بتوانند در جهان واقعی کار کنند و نه فقط دموی آزمایشی باشند: 1.…
#طراحی

درباره ظاهر یک ربات، قانون اول، می‌گویند ظاهر باید بتواند به مشتری یا کسی که از ربات استفاده می‌کند درباره توانایی ربات اطلاعات دهد.
یک مثال دارند که ربات roomba از irobot است. ایشان می‌گویند طراحی گرد ربات می‌گوید که می‌تواند درجا بدون برخورد با چیزی دور بخورد هنگام پاکسازی‌. ارتفاع کم ربات می‌گوید که این امکان را دارد تا زیر کابینت و ... را پاک کند. و نهایتا دسته‌ای که روی آن است بیان می‌کند که صاحب آن راحت میتواند آن را در سطح دیگری قرار دهد برای پاکسازی. همچنین ظاهر ربات می‌گوید که نمی‌تواند دیوار یا شیشه را پاک کند و انتظار بیخود به مشتری نمی‌دهد!
----------
@roboticknowledge
41
#Linux
دوستی منابعی برای یکپارچه‌سازی دانش لینوکس برای من ارسال کردند تحت عنوان LPIC. کتاب‌های بسیار ارزشمند و جامعی برای محکم کردن دانش لینوکس هستند.
https://learning.lpi.org/en/

----------
@roboticknowledge
5🐳1
#RL #Isaac #IsaacGym

شبیه‌سازهای زیادی در عالم برای رباتیک وجود دارد (مثلا Drake)، اما اکثر آنها برای Reinforcement Learning مناسب (بهینه) نیستند، اما Isaac Gym بسیار مناسب است!

بطور سنتی یک شبیه‌ساز، فیزیک را با CPU حل میکند و فقط قسمت مدل یادگیری شونده با GPU در بهترین حالت آموزش می‌بیند. این ترکیب - یعنی CPU برای فیزیک و GPU برای آموزش مدل - یک ترکیب ناکارآمد است زیرا معماری ذاتی آنها تفاوت اساسی دارد و این یعنی افت در سرعت و نیاز به منابع سخت‌افزاری زیاد.

بر اساس این ناکارآمدی، تیم توسعه Isaac Gym در Nvidia آمد و فیزیک را نیز با کمک Physx که خودشان توسعه داده‌اند، با GPU حل کرد. بعبارتی در Isaac Gym هم فیزیک، هم گرافیک، و هم مدل یادگیری (همه چیز) در یک GPU پیاده می‌شود و همین نکته باعث سرعت بسیار زیاد و قابلیت داشتن Parallel Simulation می‌شود. در بنچمارک‌ها کاری را که حدود ۳۰۰۰۰ هسته CPU برای rl در یک شبیه‌ساز کلاسیک انجام می‌شود، در Isaac Gym فقط با یک GPU انجام میدهند!

آنچه که نوشتم بر اساس مقاله اصلی Isaac Gym می‌باشد. برای خبره شدن در این مباحث، خواندن عمیق مقاله‌ها و کدها واجب و ضروری است.
----------
@roboticknowledge
4
Robotic Knowledge
#RL #Isaac #IsaacGym شبیه‌سازهای زیادی در عالم برای رباتیک وجود دارد (مثلا Drake)، اما اکثر آنها برای Reinforcement Learning مناسب (بهینه) نیستند، اما Isaac Gym بسیار مناسب است! بطور سنتی یک شبیه‌ساز، فیزیک را با CPU حل میکند و فقط قسمت مدل یادگیری شونده…
#Isaac #IsaacSim #IsaacGym
دوستان Isaac Sim با Isaac Gym یکی نیستن و می‌نویسم که خودم هم قاطی نکنم. 😂

Isaac Sim: Omniverse based simulator for robotics.

Isaac Gym: High performance GPU-based robotic simulator for RL applications, a python module.

----------
@roboticknowledge
Please open Telegram to view this post
VIEW IN TELEGRAM
5👨‍💻22
#ROS2 #Tools

توسعه‌دهنده‌ای یک برنامه درست کرده‌اند به نام Turtle Nest که کار دستور
ros2 pkg create 

را بصورت GUI انجام می‌دهد و برای پکیج درست کردن و دپندنسی اضافه کردن دیگر درگیر Command Line نمی‌شود آدم! استفاده نکرده‌ام اما این تیپ کارها دوست داشتنی هستند. 🙂

https://discourse.ros.org/t/introducing-turtle-nest-gui-for-ros-2-package-creation/39229

----------
@roboticknowledge
Please open Telegram to view this post
VIEW IN TELEGRAM
311
#تجربه
این سبزها نشانگر توسعه پایدار برای من هستند.
خاکستری یعنی چیزی مانع توسعه شده است. مشخص است که دو هفته پیش سرماخوردگی شدیدی داشته‌ام! 🙃
استاد من با کامیت‌های من آنچه را که دارم پیش میبرم می‌بیند و این مکانیزم زندگی کاری من است.
—————
@roboticknowledge
421
#تجریه

https://t.iss.one/htuniversity/245

دوست ما نکته صحیحی درباره لینکدین نوشته‌اند.

فارسی‌نویس‌ها در #لینکدین آنچنان مطالب کم ارزشی می‌نویسند که شخصا هر کسی که کوچکترین فعالیتی در آن فضا (بصورت فارسی و کم ارزش) داشته باشد را از شبکه خود حذف می‌کنم. حتی کسایی که لایک می‌کنند آن محتوای کم ارزش را، حذف می‌شوند از شبکه‌هایی که دنبال ارزش هستند.

در لینکدین، گیتهاب و ایکس باید جنتلمن باشید و فاخر اگر به دنبال موفقیت در آن (شبکه‌ و برندسازی) هستید. بنابراین اگر شبکه شما اینچنین نیست، ‌حتما آن‌را پاک‌سازی کنید و چیزی فاخر برای خود بسازید.
—————
@roboticknowledge
5🫡2
#ROS2 #Build #Conflict

اخیرا دچار یک conflict در سیستم بیلد خود برای ROS 2 humble شدم. این conflict ناشی از انتخاب پایتون Anaconda بجای پایتون سیستم توسط colcon ایجاد شده بود.

خود Open Robotics می‌گوید که conflict بین colcon و Anaconda وجود دارد و توصیه کرده هر دو با هم نباشند. توصیه غلطی است زیرا شاید شخصی به هر دو نیاز داشته باشد!

راه حل چیست؟
ابتدا باید ببینیم که خود conflict چه بوده است. Conflict این بود که executer انتخاب شده توسط colcon هنگام اجرای دستور colcon build، از Anaconda انتخاب می‌شود نه سیستم.
من آمدم و در محیط base برای Anaconda، پایتون ۱۰ و پکیج ament_pkg را نصب کردم. محیط base را فعال کردم، در آن ROS 2 را source کردم و نهایتا دستور
colcon build

بدون خطا اجرا شد.

راه‌های دیگری مثل دستکاری متغیرهای محیطی را تست کردم و جواب نداد. همچین colcon در رفرنس خود گفته است که می‌توان با آرگومان executer-- اجرا کننده را تعریف کرد، که باز هم کار نکرد! نهایتاً آنچه که colcon لازم دارد را در محیط base آناکندا نصب کردم و مسأله حل شد.
----------
@roboticknowledge
41
#طراحی #رباتیک #OOP
در برنامه‌نویسی برای رباتیک، یک برنامه‌نویس خوب دیتای پارامترها و هر آنچه را که جزئی از بخش طراحی الگوریتم نیست، در خارج از منبع اصلی در یک yaml یا json فایل تعریف می‌کند و فقط با پارس کردن فایل configuration، برنامه خود را اجرا می‌کند.

یک برنامه‌نویس بهتر ساختاری را پیاده می‌کند که کاربر برنامه (دیگران) بتوانند با ایجاد yaml فایل‌های استاندارد برای آن کار، کل نرم‌افزار را برای خود شخصی‌سازی کنند. در این صورت کد شما کد خوبی است و برای این هدف باید OOP را برای نرم‌افزار خود پیاده کنید.

باز یک برنامه‌نویس بهتر می‌آید و Logger کنسولی پیاده می‌کند تا استفاده کننده بداند خطا یا هشدار چیست و چطوری باید آن را رفع کند. همیشه قرار نیست خطا ببینید، همینکه در کنسول به کاربر Information بدهید درباره current stage خود بسیار مهم است.

—————
@roboticknowledge
174
#تجربه
همراه با Baxter، آزمایشگاه هوش مصنوعی بروکسل، دانشگاه VUB
----------
@roboticknowledge
116🫡3
#مفاهیم
#Planning

در #رباتیک طرح‌ریزی‌ها برای چند دسته از مسائل می‌توانند تفکیک بشوند:

۱. طرح‌ریزی که می‌داند باید ربات را به کجا ببرد و قیدهایی مانند Obstacle Avoidance را نیز ارضا کند. این‌ها ساده‌ترین‌ها هستند و تمام Sampling Based Planner ها چنین کاری می‌کنند. به مانند RRT و غیره.

۲. طرح‌ریزی که علاوه بر هدایت ربات به مکان خاص و همچنین تامین قیدهای intrinsic مانند جلوگیری از تصادف، تعدادی قید extrinsic را نیز تامین می‌کند. قیدهای extrinsic مسائل بهینه‌سازی هستند که به طرح‌ریزی کمک‌های زیادی می‌کنند. به‌عنوان یک مثال کلیدی، طرح‌ریزی که همراه با هدایت ربات، اقدام به Environmental Exploration هم می‌کند تا نواحی شلوغ را پیدا کند و اطلاعات بدرد بخور طرح‌ریزی مسیر بدست آورد، در این دسته قرار می‌گیرد.

دسته دوم از نظر Theory و البته اجرایی، به مراتب سخت‌تر خواهد بود از دسته اول.

دسته سومی هم وجود دارد که طرح‌ریزی بر اساس Learning (آفلاین یا مداوم برخط) باشد. با توجه به جدید بودن این دسته، خیلی منظم نمی‌توان دسته‌بندی جزیی‌تر برای آن ارائه داد، اگرچه عمده کارهای این سبکی با استفاده از RL برای ناوبری یا استفاده از CNN برای ادراک محیطی بهتر و استفاده آن داده در طرح‌ریزی است. مشخصاً می‌توان با این روش سرعت‌های اجرایی بالایی گرفت، اما طراحی یک شبکه برای هدفی مناسب و البته آموزش آن چالش است. نباید فراموش هم کرد که تضمین ایمنی براحتی نمی‌توان ارائه داد!

----------
@roboticknowledge
72
😁4🐳1
#منهای_رباتیک
اینترنت نرمال که گفته می‌شود این است!
----------
@roboticknowledge
🤯8🫡2🍾1
علاقه‌ای به بحث آزاد رباتیک (صوتی) دارید؟
Final Results
89%
بله
11%
خیر
Live stream scheduled for
Live stream started