Robotic Knowledge
382 subscribers
242 photos
62 videos
2 files
172 links
دانش و برنامه‌نویسی برای رباتیک
Download Telegram
#Nvidia #Isaac
#ته‌دیگ

آیا ته‌دیگ رباتیک به ما می‌رسد؟

جوری که Nvidia و بقیه در حال درو کردن سرعتی و سنگین در رباتیک هستند، گاهی مردد می‌شوم که چیزی به ما می‌رسد یا نه.

در هر صورت دوره هوش مصنوعی هست و عجیب نیست که یک سال دیگه چیزهایی ببینیم که بهش اصلأ فکر هم نمی‌کردیم.

در هر صورت نامردا چیزی برای ما هم بذارید! :)
ما به یه خورده ته‌دیگ هم توی رباتیک راضی هستیم. 😋

----------
@roboticknowledge
😁3👨‍💻2
Robotic Knowledge
#Nvidia #Isaac #ته‌دیگ آیا ته‌دیگ رباتیک به ما می‌رسد؟ جوری که Nvidia و بقیه در حال درو کردن سرعتی و سنگین در رباتیک هستند، گاهی مردد می‌شوم که چیزی به ما می‌رسد یا نه. در هر صورت دوره هوش مصنوعی هست و عجیب نیست که یک سال دیگه چیزهایی ببینیم که بهش اصلأ…
اینکه چرا نگران #ته‌دیگ رباتیک هستم، همین چیزها هست که دو ماهی یه بار با کلی پیشرفت و چیز میز جدید میان وسط میدون.

کلا چسبیدن به این جریان قرار نیست ساده باشه، چون سرعت بالایی داره.

----------
@roboticknowledge
😁4
This media is not supported in your browser
VIEW IN TELEGRAM
#Isaac

اینجا بخشی از اکوسیستم Isaac که مدیرعامل Nvidia آن را گروه Nvidia Isaac Group می‌نامد، برای آموزش ربات‌های انسان‌نما ارائه شده است.

معنای تولید داده Synthetic برای آموزش گسترده و domain randomization بر اساس امکانات Omniverse اینجا مشاهده می‌شود.

----------
@roboticknowledge
6
در کنار Tesla Bot :)

----------
@roboticknowledge
10
#research

کار علمی در رباتیک باید به مانند بازی پینگ پنگ بین شما و همکاران باشد. اینکه همواره به کار شما انتقاد [درست] شود باعث می‌شود رشد کنید زیرا همواره یک فشار وجود دارد تا بهبود‍ دهید و از طرفی شما با این کار پاسخ انتقاد را میدهید و فشار را معکوس می‌کنید و این چرخه ادامه دارد.

تا چه زمانی؟

مادامی که شما بتوانید در یک جمله بیان کنید برتری کار شما نسبت به دیگران چیست. تا وقتی که آن یک جمله صحیح و قاطع را ندارید، کار شما اثر قوی نخواهد داشت.

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

----------
@roboticknowledge
8
#LLM

معمولا درباره مدل‌های زبانی کامنت خاصی ندارم، اما DeepSeek ارزش نظر دادن داره. اینکه تکنولوژی چند میلیارد دلاری Open AI از یک شرکت کوچیک (نسبی) با تکنولوژی چند میلیون دلاری ضربه اساسی می‌خوره اتفاق مهمی هست. اینکه مدلشون هم متن باز هست شدت ضربه رو بیشتر می‌کنه.

----------
@roboticknowledge
🫡4😁3
#RL

Maximum reward achieved. Network won!


یک خط لاگ بسیار زیبا و هیجان‌انگیز در ترمینال. :)
----------
@roboticknowledge
🫡5
#RL

با آزمون و خطا متوجه شدم هرچه تعداد نرون و لایه‌های شبکه کمتر باشد، می‌توان FPS بهتری گرفت. برای مثال اگر سه لایه داشته باشید و لایه اول ۵۱۲ نرون داشته باشد و هر لایه بعدی نصف لایه قبلی نرون داشته باشد، تقریبا FPS آموزش هر ایپاک را نسبت به حالتی که لایه اول ۲۵۶ نرون داشته باشد، یک چهارم کرده‌اید. یعنی ۴ برابر افت سرعت در آموزش در مقابل تعداد نورون دو برابر در هر لایه.

بصورت خلاصه سعی کنید با شبکه ساده یک Policy را طراحی و آموزش دهید. آموزش شبکه پیچیده زمان خیلی بیشتری از شما می‌گیرد.

----------
@roboticknowledge
4
#RL #Isaac

در Isaac Gym با یک GPU 3090 می‌توان حدود ۶ هزار محیط موازی برای آموزش یک Policy که در آن سنسور depth هم رندر می‌شود، ایجاد کرد.

دلیل bottleneck این محدودیت تعداد محیط ابتدا بخاطر Cuda Memory است و سپس توان GPU. بطور مشخص اگر روی همین 3090 بجای ۲۴ گیگ حافظه، ۳۲ گیگابایت حافظه در دسترس بود، می‌شد که تا ۸ هزار محیط آموزشی داشت که معنای آن سرعت آموزش بیشتر است زیرا batch data بزرگ‌تر شده است.

----------
@roboticknowledge
7
#RL

در هنگام آموزش یک Policy RL مراقب باشید در تله reward function نیافتید. مقدار بیشینه reward function صرفا accumulated value است و نباید گول آن عدد را خورد.

از کجا باید فهمید که Policy آموزش دیده است؟

باید یک Success rate تعریف کنید و آن را با آپدیت شدن Policy مانیتور کنید. فرض کنید که هدف رسیدن ربات به یک نقطه‌ تصادفی در فضا است. در این حالت Success rate را می‌توان بدین صورت تعریف کرد:

تعداد محیطی که در آن ربات با Policy فعلی توانسته است به حوالی هدف برسد، تقسیم بر تعداد کل محیط‌ها.


اگر در جایی از آموزش Success rate از 0.9 عبور کرد، و تعداد محیط‌ها 1000 بود، معنا این است که با آن Policy ربات موفق شده به 900 هدف متفاوت برسد، پس آموزش خوب بوده است.


با رسیدن به یک سطح مشخص از Success rate میتوان محیط را سخت‌تر کرد و مشخصا Policy را قوی‌تر.

----------
@roboticknowledge
🫡5
#Jetpack #Jetson

یک ابزار وجود دارد به نام SDKManager - از Nvidia - که برای نصب Jetpack بر روی Jetson ها استفاده می‌شود.

یک چیز بد درباره این ابزار این است که شما بر اساس اینکه Host machine دارای چه OS ای است می‌توانید نسخه مد نظر Jetpack را نصب کنید. برای مثال شما امکان فلش کردن Jetpack 4.x را با Ubuntu 20.04 ندارید و این کار را با Ubuntu 18.04 می‌توانید انجام دهید.

حالا ممکن است بپرسید Jetpack قدیمی به چه کار می‌آید؟
خیلی به کار می‌آید - یعنی مجبور می‌شوید! مثلا اگر شما از Jetson Xavier NX استفاده می‌کنید و Stereo Camera ZED دارید، بر روی Jetpack 5.x مشکل درایور دوربین دارید و مجبور خواهید بود که به Jetpack 4.x برگردید.

خلاصه به لیست دراز OS های من Ubuntu 18.04 نیز اضافه شد. 😁

It's a headache. You see me? 😉

----------
@roboticknowledge
7
#ROS
ارتباط بین چند کامپیوتر با ROS

فرض کنید در دو کامپیوتر یک نسخه از ROS را نصب دارید و قصد دارید یک ارتباط بصورت Master-Slave ایجاد کنید تا دیتای ROS از جمله Topic ها را بین دو سیستم منتشر کنید.

ابتدا باید در هر کامپیوتر یک IP تعریف کنید. برای این کار یک Connection جدید از نوع Ethernet تعریف کنید و در بخش IPV4 settings یک IP بصورت Manual تعریف کنید. مثلاً برای Master:
192.168.4.65

و برای Slave:
192.168.4.66

سپس دو کامپیوتر را با کابل Ethernet به واسطه یک مودم یا سوییچ متصل کنید. کانکشن پروفایل ایجاد شده را انتخاب کنید و با دستور ping مطمئن شوید ارتباط برقرار است. برای مثال از روی Master باید
ping 192.168.4.66

را اجرا کنید و خروجی بگیرید و از روی Slave باید
ping 192.168.4.65

اجرا بشود و خروجی بگیرید.

گام بعدی این هست که در فایل bashrc. هر دو کامپیوتر دو خط اضافه کنید. در Master:
export ROS_IP=192.168.4.65
export ROS_MASTER_URI=https://192.168.4.65:11313

و در Slave:
export ROS_IP=192.168.4.66
export ROS_MASTER_URI=https://192.168.4.65:11313

و تمام. چگونه چک کنید که شبکه برقرار است؟
کافی است در Master یک roscore اجرا بشود و شما در Slave می‌توانید با دستور
rostopic list

تاپیک‌های روی Master را ببینید.

این آموزش برای ROS 1 است و بر روی توزیع‌های Melodic و Noetic خودم تست و پیاده‌سازی کرده‌ام. در ROS 2 هنوز این کار را نکرده‌ام اما فکر می‌کنم بصورت فنی آنجا حتی کار راحت‌تر باشد.

-----------
@roboticknowledge
🫡4👨‍💻2
#RL #Isaac

اگر در training خود محیطی داشته باشید که رندرینگ آن برای سنسور ساده‌تر باشد، مشخصا FPS بیشتری خواهید گرفت. بصورت تجربی متوجه شدم که چنانچه از یک Primitive shape مانند Sphere به عنوان مانع استفاده کنید، FPS Drop بیشتری خواهید داشت نسبت به یک Cube.

دلیل؟

مشخصا رندر شدن یک Sphere از Cube برای سنسور سخت‌تر است چون تعداد سطح مش بیشتری دارد! پس یک راه برای افزایش سرعت آموزش استفاده از Cube بجای Sphere در بحث ایجاد محیط است.

این چیزها فقط و فقط با تجربه و درگیری زیاد با Isaac یادگیری و تجربه می‌شود. با این حال پشت فیزیک این ماجرا بحث‌های ray casting برای مدل‌سازی سنسورها برقرار است.

----------
@roboticknowledge
6🏆2
#پادکست

خیلی دوست دارم یک پادکست خیلی ساده داشته باشم که درباره رباتیک (و تکنولوژی‌های مربوط به آن) صحبت کنم. چیزی که بصورت فنی سخت نباشد و ساده باشد. معتقدم زیبایی و جاذبه در سادگی است.
دوست دارم بصورت هفتگی باشد و زمان آن نهایتاً ۱۰ دقیقه باشد.
نظر شما چیست؟ اساسا برای شما باحال است؟ چه چیزی صحبت بشود برای شما مورد علاقه خواهد بود؟

----------
@roboticknowledge
🏆21
#پادکست
خب این قرار هست پوستر ما باشه. بعدا کیفیت‌ها ممکنه بهتر بشه. :)

این سری از صحبت‌ها فارسی خواهد بود و در YouTube آپلود می‌کنیم:
https://www.youtube.com/@roboticknowledge

قسمت اول حالت مقدمه خواهد داشت و درباره این صحبت می‌کنم که چه چیز‌هایی رو توی این پادکست دنبال می‌کنیم.
🏆11🍾3🐳2
#Robotics

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

----------
@roboticknowledge
6🤯1
#Community

عاشق reddit شدم. یک سوال درباره یک کامپیوتر داشتم، در reddit پرسیدم و کمتر از دو ساعت چند جواب خوب گرفتم.

تاپیک‌های دیگه همون چنل رو چک کردم و دیدم چه چیزهای خوبی پرسیده و پاسخ داده شده و چند چیز جالب پیدا کردم. جالب اینجا بود که جواب‌هایی که آدم می‌بینه و می‌گیره معمولا این چت‌بات‌ها به شما در چند پرامپت اول نمیدن.

به دوستام به شوخی گفتم از این به بعد باید من رو با بیل از کف reddit جمع کنن! 😂

----------
@roboticknowledge
😁6
سال نو پارسی مبارک باشه ❤️
آرزو می‌کنم شاد و سلامت باشید توی این سال جدید 🌹
🍾94
#Jetson

اگر روزی از یک Carrier برد غیر رسمی Nvidia برای یک ماژول Jetson مانند Orin NX استفاده کردید بدانید که دستور

apt upgrade

بسیار خطرناک است و پکیج‌های لایه کرنل لینوکس را دچار ناسازگاری می‌کند و مجبور خواهید شد که مجدد Jetpack را Flash کنید تا کامپیوتر به درستی کار کند.

استفاده از Carrier board غیر رسمی هم بسیار رایج است برای سیستم‌های مشخص و احتمال چنین رخدادی چنانچه درگیر این سیستم‌ها شدید کم نیست.

----------
@roboticknowledge
👨‍💻3
#ROS

داستان ROS 1 هم از نظر توسعه رسمی تا انتهای May به پایان خواهد رسید اگرچه حداقل تا چند سال دیگر توزیع Noetic همچنان با قدرت محبوب‌ترین توزیع خواهند ماند.

عمده Autonomy Stack های فعلی برای Noetic هستند و فرآیند Migration طولانی. بنابراین همچنان ROS 1 محبوب خواهد ماند.

----------
@roboticknowledge
1🤯1