Robotic Knowledge
382 subscribers
242 photos
62 videos
2 files
172 links
دانش و برنامه‌نویسی برای رباتیک
Download Telegram
Forwarded from Robotic Knowledge
تصویر: نسخه پرنده ربات متن باز آموزشی mini pupper با قابلیت Hybrid motion.
#RL #Navigation

مهندسی دردآور یک Reward Function برای تسک مشخص Navigation

شما یک ربات دارید که در شبیه‌ساز چند هزار محیط موازی برای آموزش آن ایجاد می‌کنید. نکته اساسی در اینکه RL را چگونه استفاده کنید نیست، زیرا در این شبیه‌سازها اساسا ساده‌ترین کار صدا زدن الگوریتم‌های State of the Art مانند PPO یا Actor Critic است.

چیزی که در چنین آموزش‌هایی دردآور است مهندسی Reward Function است. ممکن است چند ماه زمان ببرد تا بتوانید یک Reward Function طراحی بکنید تا بتواند مسأله مشخص شما را حل کند و ربات بتواند با آن Navigation یاد بگیرد.

حال شما اگر Terrain را تغییر دهید یا ربات را تغییر دهید، مجدد باید با یک Policy جدید بر اساس یک Reward Function جدید آموزش بدهید.

در بحث AGI برای فقط کاری مثل آموزش Navigation (یک AGI که بتواند انواع ربات در یک کلاس مشخص را را در انواع Terrain حرکت بدهد)، گپ اساسی همین مسأله است که چیزی وجود ندارد که Reward Function برای شما طراحی کند و این یک کار مهندسی و Human in the loop سخت و زمان بر است.

----------
@roboticknowledge
😁2
#ROS2 #Gazebo

برای انتقال داده از ROS2 به Gazebo و برعکس به یک پل به نام ros_ign_bridge نیاز است که در واقع خود یک ROS پکیج است.

وقتی شبیه‌سازی در Gazebo اجرا می‌شود، داده‌ها به خودی خود در برابر ROS دچار expose نمی‌شوند و شما باید تاپیک‌های مطلوب را پل کنید که با این پکیج ممکن می‌شود.

این یک مثال است که من چگونه در Launch فایل تاپیک سرعت موتور در ROS را به همان تاپیک در Ignition پل می‌کنم:

Node(
package='ros_ign_bridge',
executable='parameter_bridge',
arguments=['/model/X4/command/motor_speed/m0@std_msgs/msg/[email protected]'],
output='screen'
),

اینجا بطور مشخص داده تاپیک /model/X4/command/motor_speed/m0 که از نوع std_msgs/msg/Float32 است از ROS به Ign ارسال می‌شود و نوع نهایی آن نیز ignition.msgs.Float خواهد شد.
----------
@roboticknowledge
🍾1👨‍💻1
#Python

اگر قصد داشتید در پایتون از کیبورد یا ماوس داده بخوانید، از کتابخانه pynput استفاده کنید. این کتابخانه به شما یک Thread برای مانیتور کردن کیبورد یا ماوس می‌دهد.

در موازی با کمک ماژول threading و انجام multi threading می‌توانید برنامه خود را در یک Thread دیگر اجرا کنید و با یک متغیر global خروجی کیبورد را در ترد برنامه اصلی استفاده کنید.

برای Data collection در یک شبیه‌سازی لازم بود که یک ربات را با کیبورد حرکت دهم که یک Thread برای شبیه‌سازی ایجاد کردم و یک Thread هم برای مانیتور کردن کیبورد و شبیه‌ساز سرعت لحظه‌ای ربات را بر اساس متغیر جهانی سرعت که توسط ترد مانیتورینگ کیبورد بروز می‌شود را برای کنترل‌کننده سرعت در نظر می‌گیرد.

بدین ترتیب شما Parallel Processing انجام میدهید و حلقه شبیه‌سازی شما مستقل از حلقه callback کیبورد کارش را انجام می‌دهد، بصورت موازی.

----------
@roboticknowledge
4
#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