Robotic Knowledge
387 subscribers
242 photos
62 videos
2 files
172 links
دانش و برنامه‌نویسی برای رباتیک
Download Telegram
#Tools #CAD
#URDF #SDF
#Gazebo

مدل‌های شبیه‌سازی رباتی که همراه با mesh هستند و جزئیات خوبی دارند، توسط نرم‌افزارهای CAD آماده می‌شوند و به صورت URDF خروجی گرفته می‌شوند - نوشتن آنها با دست تقریبا غیرممکن است.

امروز از صبح در حال یادگیری قابلیت‌های نرم‌افزار FreeCAD بودم. اینجا در این لیست یوتوب به بهترین شکل آموزش داده شده است.

من قبلاً SOLIDWORKS کار کرده بودم و یادگیری یک نرم‌افزار دیگر مثل FreeCAD در چنین حالتی بسیار ساده است زیرا معمولا روش‌ها و ابزارهای CAD همه قواعد یکسان دارند.

چرا FreeCAD؟

- رایگان است و کم حجم.
- ساده است و قوی.
- برای استخراج URDF یک workbench رباتیک دارد و خیلی راحت‌تر از SOLIDWORKS این کار را انجام می‌دهد.
- بر روی Ubuntu 22 نصب می‌شود.

گزینه‌های دیگری مثل Fusion360 یا Blender نیز با پلاگین خروجی URDF می‌دهند، اما اگر سادگی ملاک باشد، آن هم در سن ۲۶ سالگی برای یک رباتیک کار چیزی مثل Blender انتخاب خوبی نیست. ترجیح می‌دهم وقتم را صرف چیز پیچیده دیگری بکنم! 🙂
----------
@roboticknowledge
👍4
Robotic Knowledge
#Tools #CAD #URDF #Gazebo #ROS2 نکته تکمیلی اول: من از ورک‌بنچ CROSS برای ایجاد مدل URDF در FreeCAD استفاده می‌کنم. ‌ تصویر از محیط FreeCAD من به همراه نمودار درختی ربات ایجاد شده با کمک CROSS گرفته شده است. ————— @roboticknowledge
#Tools #CAD
#URDF
#Gazebo #ROS2

نکته تکمیلی دوم: CROSS آموزش ندارد. 😂 حتی داکیومنت خاصی هم ندارد!
با تعداد زیادی آزمون و خطا آموختم از آن استفاده کنم. ابزار Set Placement آن‌ها که در تعریف مکان مفصل کاربردی است، باگ دارد و من راه دیگری برای تعریف مفصل پیدا کردم.
این ابزار توسط گروه یک استاد در دانشگاه پراگ جمهوری چک توسعه داده شده است - کلا در رباتیک این دانشگاه خدمات متن باز زیادی داده است - دمشان گرم.
—————
@roboticknowledge
👍4
Robotic Knowledge
#Tools #CAD #URDF #Gazebo #ROS2 نکته تکمیلی دوم: CROSS آموزش ندارد. 😂 حتی داکیومنت خاصی هم ندارد! با تعداد زیادی آزمون و خطا آموختم از آن استفاده کنم. ابزار Set Placement آن‌ها که در تعریف مکان مفصل کاربردی است، باگ دارد و من راه دیگری برای تعریف مفصل پیدا…
#Tools #CAD
#URDF
#Gazebo #ROS2

نکته تکمیلی سوم:‌پس از تعریف مدل - شامل لینک‌ها، مفاصل، هندسه واقعی و تصادف، کراس بصورت خودکار با تعریف ماده ویژگی‌های اینرسی را محاسبه می‌کند. نهایتا یک پکیج راس 2 برای ربات تولید می‌کند که دارای لانچ فایل برای گزبو و آرویز نیز است! 🙂

—————
@roboticknowledge
👍3
#منهای_رباتیک
سرعت تغییرات در تکنولوژی‌ها بسیار زیاد است.
امروز یک چیز ترند است، فردا چیزی دیگر. در فیلد خود ترندها را دنبال کنید و یاد بگیرید - البته این هم نیاز به مدیریت خاصی دارد که یاد خواهید گرفت اگر جوینده باشید.
اگر در طول روز از ترندهای فیلد خود چیزی را یاد نگیرید، نمی‌توانید جایگاه برتر در کار و برند شخصی خود داشته باشید.
یک فرد تطبیق پذیر یاد می‌گیرید چگونه Knowledge Adaptation انجام دهد تا بتواند براحتی جبهه برای حضور خود باز کند در جایی که دنبال افراد خاص هستند.
اگر هدف بزرگ شدن در کار خود را دارید، اما در راستای ترندها و نیازهای برتر هر روز چیزی یاد نمی‌گیرید، سخت است به آن هدف برسید.
گام بردارید، هر چند کوچک، اما تا حدودی پیوسته. خداوند به شما فرصت‌هایی می‌دهد که گمان نمی‌کنید آن‌ها را به شما پیشنهاد دهند.
این مصاحبه هم ارزش بالایی دارد که مقداری درباره این متن من نیز در دل خود همپوشانی دارد:
https://youtu.be/Gd4qK05CfE8?si=NFD2_onSwTUGThU5
—————
@roboticknowledge
👍8
#ROS2 #ROS
یکی از سختی‌های کار در استفاده از نرم‌افزارهای متن‌باز compatible بودن آن‌ها با سیستم شماست.
برای مثال شما برای داشتن مزیت LTS یا Long Time Support سراغ ROS 2 Humble می‌روید، اما برای استفاده از الگوریتم Volumetric Mapper می‌بینید که با اینکه پکیج جدیدی است،‌ اما در ROS توسعه پیدا کرده است و براحتی نمی‌توانید از آن استفاده کنید.
به همین دلیل است که بسیاری از نرم‌افزارهای رباتیکی و اکوسیتم ROS همچنان بر روی ROS پایه و توزیع‌های قدیمی آن که روی اوبنتو 18 یا 20 قابل نصب هست، توسعه می‌یابد - متاسفانه. دلیل هم این است که زنجیره وار بر روی نسخه‌های قدیمی توسعه ادامه دارد و تا پایه‌ها منتقل نشوند، نمی‌توان براحتی روی توزیع‌های جدید چیزی توسعه داد.

به الگوریتم Volumetric Mapper اشاره شد که اینجا قابل یافتن است و برای مپینگ می‌تواند به شما نقشه آنلاین ‌Occupency Grid به همراه Euclidean Distance Transform بدهد:
https://github.com/JINXER000/GIE-mapping

—————
@roboticknowledge
👍3
Robotic Knowledge
#ROS2 #ROS یکی از سختی‌های کار در استفاده از نرم‌افزارهای متن‌باز compatible بودن آن‌ها با سیستم شماست. برای مثال شما برای داشتن مزیت LTS یا Long Time Support سراغ ROS 2 Humble می‌روید، اما برای استفاده از الگوریتم Volumetric Mapper می‌بینید که با اینکه پکیج…
#مفاهیم
در بحث نقشه‌های رباتیک، منظور از Euclidean Distance Transform یا EDT در واقع یک نقشه سه بعدی است که هر المان آن - به آن ‌Voxl گفته می‌شوند - عددی است بیانگر فاصله کمینه تا اولین شی در نقشه است. بنابراین با گرادیان روی EDT می‌توانید کارهایی مثل حرکت در جهت دور شدن از نزدیک‌ترین مانع انجام دهید.
—————
@roboticknowledge
👍2
#LearnEveryDay
#Nvidia

گویا Nvidia آموزش‌های خوبی دارد - تحت عنوان training یا course.
از برنامه‌نویسی با CUDA تا رباتیک با Isaac Sim.
چک می‌کردم تعدادی از مورد علاقه‌های خودم را، بین ۳۰ تا ۹۰ دلار هزینه داشتند. البته برخی نیز رایگان بودند.
----------
@roboticknowledge
👍5
#Computer #Jetson #Nvidia

چیز دیگری که امروز برق از سر من پراند، آشنایی با Jetson AGX Orin Developer Kit بود. عملکرد AI آن معادل TOPS 275 است! ۶۴ گیگ رم و ۱۲ هسته cpu. ابعاد آن حدود ۱۰ سانت در ۱۰ سانت است. این یعنی با ۲۵۰۰ دلار می‌توانید کارهای فوق سنگین پرسپشنی را روی ربات خود انجام دهید، با عملکردی فوق‌العاده.
----------
@roboticknowledge
👍72
🔠🔠🔠🔠🔠🔠🔠💡🔠🔠🔠🔠🔠🔠🔠🔠🔠 😄😄😄
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳2👀21
#Docker
داکر در اینترنت بعضی‌ها از جمله خودم = بیچارگی!

با هیچ vpn و dns رایگان و غیر رایگانی نمی‌توان یک pull کرد! آخرش این است که به شما پیام rate limit می‌دهد! اگر شما این مشکل را قبلا داشته‌اید، چطوری حل کردین؟

تا چند ماه قبل با شکن رایگان کار می‌کرد، الان با شکن غیر رایگان هم کار نمی‌کند متأسفانه. استفاده از mirror چینی هم مشکلات خود را دارد که ترجیح میدهم به آن سمت نروم.

در کل چیز خوبی هست (داکر!)، اما نه برای هر اینترنتی.
----------
@roboticknowledge
#مفاهیم
#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