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

درباره شبیه‌ساز Genesis یک جریان هیجانی وجود دارد که فکر می‌کنم کمی آرام بگیرد.

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

یک بحثی است که دیده‌ام بیان می‌کنند که این شبیه‌ساز از یک غول مانند Isaac Sim بهتر است. چند نکته بنظرم می‌آید:

۱. در همین مواردی که در تصویر بیان شده، سه مورد اول در Isaac Sim وجود جدی و قوی دارد. تنها مورد چهارم است که من در داکیومنت‌های Isaac Sim ندیده‌ام و در این شبیه‌ساز Genesis برایم جالب خواهد بود.

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

۳. بسیاری از چیزهایی که در Genesis مورد علاقه می‌تواند باشد هنوز متن باز نشده است و مادامی که آن‌ها در دسترس نباشند، خیلی روی همه ادعاها نباید حساب کشید.

۴. اینکه Genesis هسته متن باز خواهد داشت قشنگ است. شبیه‌ساز Isaac Sim متن باز نیست.

----------
@roboticknowledge
🫡3
Robotic Knowledge
#Genesis درباره شبیه‌ساز Genesis یک جریان هیجانی وجود دارد که فکر می‌کنم کمی آرام بگیرد. به این معنا نیست که بگویم این شبیه‌ساز بد است یا خوب نیست، ابدا، زیرا آن را امتحان نیز نکرده‌ام. اما اول این چیزها همیشه یک هیجانی وجود دارد. یک بحثی است که دیده‌ام…
#Isaac

اینکه گفته می‌شود Isaac Sim یک اکوسیستم رباتیکی است در مورد چهارم اینکه همین فردا یک اکستنشن برای ویژگی generative data engine می‌تواند توسط Nvidia یا توسط افراد علاقه‌مند برای این شبیه‌ساز ایجاد شود، بصورت فنی قابلیت اضافه کردن ویژگی‌های این چنینی در این شبیه‌ساز مقدور است.

هسته Isaac Sim که بر اساس Omniverse است متن باز نیست، اما بسیاری از ویژگی‌های آن بصورت Extension های رسمی و غیر رسمی ایجاد شده‌اند که متن باز هستند.

یک نمونه خیلی قوی Isaac Lab است که در واقع افزونه رسمی برای RL در اکوسیستم Isaac Sim است و البته متن باز نیز می‌باشد.

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

این شبیه‌ساز Isaac Sim حتی با سال قبل خودش نیز سخت قابل مقایسه است زیرا شدیداً تحت توسعه است.

در هر صورت در کار و استفاده باید دید چجوری می‌توان مسأله را حل کرد. با هر شبیه‌سازی که کارتان راحت پیش می‌رود، آن شبیه‌ساز چیز خوبی است. :) می‌خواهد Isaac باشد یا Genesis!

----------
@roboticknowledge
🤯31
Robotic Knowledge
Photo
#تجربه

فکر نمی‌کردم مردم اینقدر ریاضی کاربردی برای رباتیک را چنانچه ساده باشد دوست داشته باشند! بعد از قرار دادن این دو اسلاید در LinkedIn تا الان بیش از ۵۰ درخواست کانکشن و فالور جدید (تعدادی را دیشب قبول کردم برای همین در تصویر الان عدد ۳۵ است) به شبکه من اضافه شده است!
----------
@roboticknowledge
🏆8🍾1
#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