#ROS #Gazebo #AerialRobotics
https://www.linkedin.com/posts/mjavadzallaghi_ros-gazebo-robotics-activity-7242159293074952193-ZCl-
https://www.linkedin.com/posts/mjavadzallaghi_ros-gazebo-robotics-activity-7242159293074952193-ZCl-
Linkedin
Mohammad Javad Zallaghi on LinkedIn: #ros #gazebo #robotics #aerialrobotics
Commanding [manually] an aerial robot equipped with RGB-D sensor in CTU MRS Gazebo simulator, in a dummy forest. I'll use this framework for my research and…
🐳2🫡2 2 1
#مفاهیم
#Planning
در #رباتیک طرحریزیها برای چند دسته از مسائل میتوانند تفکیک بشوند:
۱. طرحریزی که میداند باید ربات را به کجا ببرد و قیدهایی مانند Obstacle Avoidance را نیز ارضا کند. اینها سادهترینها هستند و تمام Sampling Based Planner ها چنین کاری میکنند. به مانند RRT و غیره.
۲. طرحریزی که علاوه بر هدایت ربات به مکان خاص و همچنین تامین قیدهای intrinsic مانند جلوگیری از تصادف، تعدادی قید extrinsic را نیز تامین میکند. قیدهای extrinsic مسائل بهینهسازی هستند که به طرحریزی کمکهای زیادی میکنند. بهعنوان یک مثال کلیدی، طرحریزی که همراه با هدایت ربات، اقدام به Environmental Exploration هم میکند تا نواحی شلوغ را پیدا کند و اطلاعات بدرد بخور طرحریزی مسیر بدست آورد، در این دسته قرار میگیرد.
دسته دوم از نظر Theory و البته اجرایی، به مراتب سختتر خواهد بود از دسته اول.
دسته سومی هم وجود دارد که طرحریزی بر اساس Learning (آفلاین یا مداوم برخط) باشد. با توجه به جدید بودن این دسته، خیلی منظم نمیتوان دستهبندی جزییتر برای آن ارائه داد، اگرچه عمده کارهای این سبکی با استفاده از RL برای ناوبری یا استفاده از CNN برای ادراک محیطی بهتر و استفاده آن داده در طرحریزی است. مشخصاً میتوان با این روش سرعتهای اجرایی بالایی گرفت، اما طراحی یک شبکه برای هدفی مناسب و البته آموزش آن چالش است. نباید فراموش هم کرد که تضمین ایمنی براحتی نمیتوان ارائه داد!
----------
@roboticknowledge
#Planning
در #رباتیک طرحریزیها برای چند دسته از مسائل میتوانند تفکیک بشوند:
۱. طرحریزی که میداند باید ربات را به کجا ببرد و قیدهایی مانند Obstacle Avoidance را نیز ارضا کند. اینها سادهترینها هستند و تمام Sampling Based Planner ها چنین کاری میکنند. به مانند RRT و غیره.
۲. طرحریزی که علاوه بر هدایت ربات به مکان خاص و همچنین تامین قیدهای intrinsic مانند جلوگیری از تصادف، تعدادی قید extrinsic را نیز تامین میکند. قیدهای extrinsic مسائل بهینهسازی هستند که به طرحریزی کمکهای زیادی میکنند. بهعنوان یک مثال کلیدی، طرحریزی که همراه با هدایت ربات، اقدام به Environmental Exploration هم میکند تا نواحی شلوغ را پیدا کند و اطلاعات بدرد بخور طرحریزی مسیر بدست آورد، در این دسته قرار میگیرد.
دسته دوم از نظر Theory و البته اجرایی، به مراتب سختتر خواهد بود از دسته اول.
دسته سومی هم وجود دارد که طرحریزی بر اساس Learning (آفلاین یا مداوم برخط) باشد. با توجه به جدید بودن این دسته، خیلی منظم نمیتوان دستهبندی جزییتر برای آن ارائه داد، اگرچه عمده کارهای این سبکی با استفاده از RL برای ناوبری یا استفاده از CNN برای ادراک محیطی بهتر و استفاده آن داده در طرحریزی است. مشخصاً میتوان با این روش سرعتهای اجرایی بالایی گرفت، اما طراحی یک شبکه برای هدفی مناسب و البته آموزش آن چالش است. نباید فراموش هم کرد که تضمین ایمنی براحتی نمیتوان ارائه داد!
----------
@roboticknowledge
#ROS2
کدی به شما داده میشود، با ابعادی بزرگ.
این کد در واقع یک استک کنترلی رباتیک است که بر اساس استک دیگری چند سال پیش (۳ سال) توسعه یافته است. حال شما وارد میشوید که از آن استفاده کنید، اما استک پایه در این چند سال مداوم آپدیت شده است (آپدیت سنگین).
اولین چیزی که لازم دارید تا کد قدیمی را با پایه جدید سازگار کنید، طبیعتاً دانش آن دو سیستم است. دومین چیزی که لازم دارید، اعصاب پولادین است. چرا؟
خطاها میتوانند در compile time رخ بدهند یا در run time. شما هنگام compile time میتوانید همیشه دیباگ کنید، زیرا کامپایلر بنده خدا به شما سر نخ میدهد. اما در run time شما همیشه امکان traceback ندارید. در آن نقطه شرط ادامه دادن وجود اعصاب پولادین است! ریزبینی هم بسیار مهم است که چطور خطاها را از بین ببرید.
در مجموع #رباتیک یک ویترین خوشگل دارد که همه میبینند و به عشق آن ویترین رویای بزرگ شدن در آن را دارند، اما در حقیقت پشت ویترین چیزهایی وجود دارد پیچیده، که کار هر کسی نیست رسیدن به یک نقطه خوب.
----------
@roboticknowledge
کدی به شما داده میشود، با ابعادی بزرگ.
این کد در واقع یک استک کنترلی رباتیک است که بر اساس استک دیگری چند سال پیش (۳ سال) توسعه یافته است. حال شما وارد میشوید که از آن استفاده کنید، اما استک پایه در این چند سال مداوم آپدیت شده است (آپدیت سنگین).
اولین چیزی که لازم دارید تا کد قدیمی را با پایه جدید سازگار کنید، طبیعتاً دانش آن دو سیستم است. دومین چیزی که لازم دارید، اعصاب پولادین است. چرا؟
خطاها میتوانند در compile time رخ بدهند یا در run time. شما هنگام compile time میتوانید همیشه دیباگ کنید، زیرا کامپایلر بنده خدا به شما سر نخ میدهد. اما در run time شما همیشه امکان traceback ندارید. در آن نقطه شرط ادامه دادن وجود اعصاب پولادین است! ریزبینی هم بسیار مهم است که چطور خطاها را از بین ببرید.
در مجموع #رباتیک یک ویترین خوشگل دارد که همه میبینند و به عشق آن ویترین رویای بزرگ شدن در آن را دارند، اما در حقیقت پشت ویترین چیزهایی وجود دارد پیچیده، که کار هر کسی نیست رسیدن به یک نقطه خوب.
----------
@roboticknowledge
This media is not supported in your browser
VIEW IN TELEGRAM
این ربات گرامی در حال جارو کردن طبقه ما در دانشکده بود که رفتم و یکم اذیتش کردم. :)
----------
@roboticknowledge
----------
@roboticknowledge
😁7 3😎2
چهار Ubuntu برای چهار هدف مختلف! یک ۲۲، سه ۲۰.
وقتی که چیزهای مختلفی نیازی داری، اما compatible نیستند، ناچار به این کار هستید. :)
--------
@roboticknowledge
وقتی که چیزهای مختلفی نیازی داری، اما compatible نیستند، ناچار به این کار هستید. :)
--------
@roboticknowledge
😁3👨💻1
#Isaac #ROS2
از طرفی Omni Graph با نسخه ۴.۱ و بالاتر ویژگیهای جدید را دارد! طبیعتاً Isaac ROS بسیار با ارزشتر است، پس ورژن را بر میگردانم. اما meme «اسیر شدیم» برازنده شرایط است!
----------
@roboticknowledge
Isaac Sim 4.1 and Isaac Sim 4.2 are not compatible with any version of Isaac ROS.
از طرفی Omni Graph با نسخه ۴.۱ و بالاتر ویژگیهای جدید را دارد! طبیعتاً Isaac ROS بسیار با ارزشتر است، پس ورژن را بر میگردانم. اما meme «اسیر شدیم» برازنده شرایط است!
----------
@roboticknowledge
😁5
#Isaac #IssacSim
عمده آموزشهای Isaac Sim را که اکنون طی کردهام و در میانههای Learning Curve آن هستم، نظرم را درباره این شبیهساز مینویسم.
✅ با فاصله بهترین گرافیک را ارائه میکند - به عبارتی Photorealistic ترین شبیهساز رباتیکی جهان است و چیزهای دیگر در برابر آن جک هستند.
✅ با ROS 2 با کمک Bridge ارتباط میگیرد. در نسخه 4.2 ارتباط با نسخههای قدیمی ROS ممکن نیست که بدیهی است.
✅ تعدادی از الگوریتمهای معروف رباتیکی در پکیج Isaac ROS پیاده شدهاند و در شبیهساز قابل استفاده هستند.
✅ با مفاهیم Standalone Scripting به شما اجازه میدهد براحتی کل شبیهسازی را با تمام core API ها کنترل و customize کنید.
✅ چند صد اکستنشن برای Isaac Sim Platform توسعه یافته که کار شما را آسان کند؛ یک مثال Isaac Lab است که برای RL است.
✅ شما میتوانید اکستنشن خود را برای کار خود توسعه دهید و اگر چیز خوبی شد، برای community بصورت open source منتشر کنید.
✅ امکان deploy بصورت SITL با این شبیهساز برقرار است، به شرط اینکه ربات هاردور استاندارد داشته باشد (مشخصا از خاندان Jetson).
موارد دیگر را بعدا مکتوب میکنم. اگر درباره Isaac Sim سوال داشتید، میتوانید بپرسید.
----------
@roboticknowledge
عمده آموزشهای Isaac Sim را که اکنون طی کردهام و در میانههای Learning Curve آن هستم، نظرم را درباره این شبیهساز مینویسم.
✅ با فاصله بهترین گرافیک را ارائه میکند - به عبارتی Photorealistic ترین شبیهساز رباتیکی جهان است و چیزهای دیگر در برابر آن جک هستند.
✅ با ROS 2 با کمک Bridge ارتباط میگیرد. در نسخه 4.2 ارتباط با نسخههای قدیمی ROS ممکن نیست که بدیهی است.
✅ تعدادی از الگوریتمهای معروف رباتیکی در پکیج Isaac ROS پیاده شدهاند و در شبیهساز قابل استفاده هستند.
✅ با مفاهیم Standalone Scripting به شما اجازه میدهد براحتی کل شبیهسازی را با تمام core API ها کنترل و customize کنید.
✅ چند صد اکستنشن برای Isaac Sim Platform توسعه یافته که کار شما را آسان کند؛ یک مثال Isaac Lab است که برای RL است.
✅ شما میتوانید اکستنشن خود را برای کار خود توسعه دهید و اگر چیز خوبی شد، برای community بصورت open source منتشر کنید.
✅ امکان deploy بصورت SITL با این شبیهساز برقرار است، به شرط اینکه ربات هاردور استاندارد داشته باشد (مشخصا از خاندان Jetson).
موارد دیگر را بعدا مکتوب میکنم. اگر درباره Isaac Sim سوال داشتید، میتوانید بپرسید.
----------
@roboticknowledge
Robotic Knowledge
#Isaac #IssacSim عمده آموزشهای Isaac Sim را که اکنون طی کردهام و در میانههای Learning Curve آن هستم، نظرم را درباره این شبیهساز مینویسم. ✅ با فاصله بهترین گرافیک را ارائه میکند - به عبارتی Photorealistic ترین شبیهساز رباتیکی جهان است و چیزهای دیگر…
#Isaac #IssacSim
این موجود (Isaac Sim) یک اکوسیستم است که خود بر اساس موجود بزرگ دیگری به نام Omniverse است.
در این تصویر نمایی از این اکوسیستم میبینید، هر چند اکستنشنهای Third party در آن دیده نمیشود که بخشی از قدرت پنهان این پلتفرم است.
----------
@roboticknowledge
این موجود (Isaac Sim) یک اکوسیستم است که خود بر اساس موجود بزرگ دیگری به نام Omniverse است.
در این تصویر نمایی از این اکوسیستم میبینید، هر چند اکستنشنهای Third party در آن دیده نمیشود که بخشی از قدرت پنهان این پلتفرم است.
----------
@roboticknowledge
#RL #IsaacLab #Isaac
چهار کتابخانه سازگار با Isaac Lab که مشخصا SKRL از بقیه بهتر است. در Isaac Lab هر چهار کتابخانه بصورت workflow براحتی قابل استفاده هستند.
----------
@roboticknowledge
چهار کتابخانه سازگار با Isaac Lab که مشخصا SKRL از بقیه بهتر است. در Isaac Lab هر چهار کتابخانه بصورت workflow براحتی قابل استفاده هستند.
----------
@roboticknowledge
#رباتیک #تجربه #داستان
چند وقت پیش دوستی از من پرسید کار تو چیست؟ گفتم کار من رباتیک است؛ کمی بیشتر توضیح دهم، کنترل ایمن ربات برای حرکت است (مسأله را باز نکردم). پرسید با چه روشی؟ گفتم کنترل کلاسیک را قرار است با روشهای مبتنی بر یادگیری ترکیب کنیم. سپس گفت که پس تو رباتیک کار نمیکنی و هوش مصنوعی کار میکنی!!!
شوکه شدم و کمی بحث کردیم. فایده نداشت چون کسی که رباتیک کار نکرده نمیفهمد ابعاد کاری رباتیک را. این پست لینکدین را دیدم و یاد آن بحث افتادم:
https://www.linkedin.com/posts/enzo-ghisoni-robotics_ros2-robotics-opensource-activity-7258827911242076160-c8A3
نتیجه اینکه رباتیک را کسانی درک میکنند که ابعاد آن را چشیدهاند. کسی با صرف کار نظری، یا شبیهسازی تنها، یا فقط جنبه مکانیکی یا الکتریکی یا کامپیوتری دیدن، بدون در نظر گرفتن ابعاد دیگر، نمیتواند درک کند رباتیک چیست و چرا افرادی که معتقد هستند Robotics کار میکنند خیلی تفاوت دارند با افرادی که صرفا هوش مصنوعی یا کنترل یا هر چیز دیگری به تنهایی کار میکنند.
شب بخیر! :)))))
----------
@roboticknowledge
چند وقت پیش دوستی از من پرسید کار تو چیست؟ گفتم کار من رباتیک است؛ کمی بیشتر توضیح دهم، کنترل ایمن ربات برای حرکت است (مسأله را باز نکردم). پرسید با چه روشی؟ گفتم کنترل کلاسیک را قرار است با روشهای مبتنی بر یادگیری ترکیب کنیم. سپس گفت که پس تو رباتیک کار نمیکنی و هوش مصنوعی کار میکنی!!!
شوکه شدم و کمی بحث کردیم. فایده نداشت چون کسی که رباتیک کار نکرده نمیفهمد ابعاد کاری رباتیک را. این پست لینکدین را دیدم و یاد آن بحث افتادم:
https://www.linkedin.com/posts/enzo-ghisoni-robotics_ros2-robotics-opensource-activity-7258827911242076160-c8A3
نتیجه اینکه رباتیک را کسانی درک میکنند که ابعاد آن را چشیدهاند. کسی با صرف کار نظری، یا شبیهسازی تنها، یا فقط جنبه مکانیکی یا الکتریکی یا کامپیوتری دیدن، بدون در نظر گرفتن ابعاد دیگر، نمیتواند درک کند رباتیک چیست و چرا افرادی که معتقد هستند Robotics کار میکنند خیلی تفاوت دارند با افرادی که صرفا هوش مصنوعی یا کنترل یا هر چیز دیگری به تنهایی کار میکنند.
شب بخیر! :)))))
----------
@roboticknowledge
Linkedin
Enzo Ghisoni on LinkedIn: #ros2 #robotics #opensource #community #startup | 12 comments
The life of a robotics engineer in a start-up
The thing I like most about the start-up environment is that everything has to be done, and if nobody knows how… | 12 comments on LinkedIn
The thing I like most about the start-up environment is that everything has to be done, and if nobody knows how… | 12 comments on LinkedIn
#Isaac #RL
در یادگیری تقویتی محیطهای موازی سرعت آموزش را تا 1000X زیاد میکنند. چگونه؟
تعدد محیط یعنی تعدد sample برای observation. پس عملیات گرادیان گیری یادگیری شبکه با batch سایز بزرگتر میتواند انجام شود که سرعت زیاد برای آموزش شبکه را محقق میکند. بنابراین شما میتوانید با یک GPU در شبیهسازی مثل Isaac Gym اقدام به آموزش یک Policy در چند دقیقه تا چند ساعت بکنید.
البته به این سادگی که نوشتم نیست و زحمت زیادی دارد. برای مثال صرفا یک Reward Function درست نوشتن کار خیلی سادهای نیست، بماند که توانایی پیادهسازی درست با Torch هم خود چالش دیگر این ماجرا است.
----------
@roboticknowledge
در یادگیری تقویتی محیطهای موازی سرعت آموزش را تا 1000X زیاد میکنند. چگونه؟
تعدد محیط یعنی تعدد sample برای observation. پس عملیات گرادیان گیری یادگیری شبکه با batch سایز بزرگتر میتواند انجام شود که سرعت زیاد برای آموزش شبکه را محقق میکند. بنابراین شما میتوانید با یک GPU در شبیهسازی مثل Isaac Gym اقدام به آموزش یک Policy در چند دقیقه تا چند ساعت بکنید.
البته به این سادگی که نوشتم نیست و زحمت زیادی دارد. برای مثال صرفا یک Reward Function درست نوشتن کار خیلی سادهای نیست، بماند که توانایی پیادهسازی درست با Torch هم خود چالش دیگر این ماجرا است.
----------
@roboticknowledge
🏆3
#RL
شما وقتی یک Agent را در محیط train میکنید، باید شرایطی را تعریف کنید تا آموزش در یک Episode متوقف شود و اصطلاحا محیط را reset کنید. طی reset کردن محیط، میتوانید Target را نیز بصورت تصادفی بروز کنید تا شبکه generalized بشود و حالتهای مختلف را یاد بگیرد.
اما چه زمانی باید یک Episode را reset کرد؟ بسته به طراحی دارد، اما یک مثال ساده این است که agent در محیط crash کند. حال مهندسی مسأله این است که crash را چطوری ببینید. مثلا اگه مقدار tilt یک ربات پرنده یا زاویه پای یک ربات انسان نما از حدی تجاوز کرد، آن شرایط را میتوان بهعنوان trigger برای ثبت یک crash در نظر گرفت.
----------
@roboticknowledge
شما وقتی یک Agent را در محیط train میکنید، باید شرایطی را تعریف کنید تا آموزش در یک Episode متوقف شود و اصطلاحا محیط را reset کنید. طی reset کردن محیط، میتوانید Target را نیز بصورت تصادفی بروز کنید تا شبکه generalized بشود و حالتهای مختلف را یاد بگیرد.
اما چه زمانی باید یک Episode را reset کرد؟ بسته به طراحی دارد، اما یک مثال ساده این است که agent در محیط crash کند. حال مهندسی مسأله این است که crash را چطوری ببینید. مثلا اگه مقدار tilt یک ربات پرنده یا زاویه پای یک ربات انسان نما از حدی تجاوز کرد، آن شرایط را میتوان بهعنوان trigger برای ثبت یک crash در نظر گرفت.
----------
@roboticknowledge
⚡2