Robotic Knowledge
#RL #Isaac #IsaacGym شبیهسازهای زیادی در عالم برای رباتیک وجود دارد (مثلا Drake)، اما اکثر آنها برای Reinforcement Learning مناسب (بهینه) نیستند، اما Isaac Gym بسیار مناسب است! بطور سنتی یک شبیهساز، فیزیک را با CPU حل میکند و فقط قسمت مدل یادگیری شونده…
#Isaac #IsaacSim #IsaacGym
دوستان Isaac Sim با Isaac Gym یکی نیستن و مینویسم که خودم هم قاطی نکنم.😂
Isaac Sim: Omniverse based simulator for robotics.
Isaac Gym: High performance GPU-based robotic simulator for RL applications, a python module.
----------
@roboticknowledge
دوستان Isaac Sim با Isaac Gym یکی نیستن و مینویسم که خودم هم قاطی نکنم.
Isaac Sim: Omniverse based simulator for robotics.
Isaac Gym: High performance GPU-based robotic simulator for RL applications, a python module.
----------
@roboticknowledge
Please open Telegram to view this post
VIEW IN TELEGRAM
#ROS2 #Tools
توسعهدهندهای یک برنامه درست کردهاند به نام Turtle Nest که کار دستور
را بصورت GUI انجام میدهد و برای پکیج درست کردن و دپندنسی اضافه کردن دیگر درگیر Command Line نمیشود آدم! استفاده نکردهام اما این تیپ کارها دوست داشتنی هستند.🙂
https://discourse.ros.org/t/introducing-turtle-nest-gui-for-ros-2-package-creation/39229
----------
@roboticknowledge
توسعهدهندهای یک برنامه درست کردهاند به نام Turtle Nest که کار دستور
ros2 pkg create
را بصورت GUI انجام میدهد و برای پکیج درست کردن و دپندنسی اضافه کردن دیگر درگیر Command Line نمیشود آدم! استفاده نکردهام اما این تیپ کارها دوست داشتنی هستند.
https://discourse.ros.org/t/introducing-turtle-nest-gui-for-ros-2-package-creation/39229
----------
@roboticknowledge
Please open Telegram to view this post
VIEW IN TELEGRAM
ROS Discourse
Introducing Turtle Nest: GUI for ROS 2 package creation
Hi everyone, I’m here to announce Turtle Nest - a GUI application to create ROS 2 packages. I started this project recently to make ROS 2 package creation easier and to reduce the likelihood of user-made errors. I believe Turtle Nest will help the beginners…
⚡3 1 1
#تجربه
این سبزها نشانگر توسعه پایدار برای من هستند.
خاکستری یعنی چیزی مانع توسعه شده است. مشخص است که دو هفته پیش سرماخوردگی شدیدی داشتهام! 🙃
استاد من با کامیتهای من آنچه را که دارم پیش میبرم میبیند و این مکانیزم زندگی کاری من است.
—————
@roboticknowledge
این سبزها نشانگر توسعه پایدار برای من هستند.
خاکستری یعنی چیزی مانع توسعه شده است. مشخص است که دو هفته پیش سرماخوردگی شدیدی داشتهام! 🙃
استاد من با کامیتهای من آنچه را که دارم پیش میبرم میبیند و این مکانیزم زندگی کاری من است.
—————
@roboticknowledge
⚡4 2 1
#تجریه
https://t.iss.one/htuniversity/245
دوست ما نکته صحیحی درباره لینکدین نوشتهاند.
فارسینویسها در #لینکدین آنچنان مطالب کم ارزشی مینویسند که شخصا هر کسی که کوچکترین فعالیتی در آن فضا (بصورت فارسی و کم ارزش) داشته باشد را از شبکه خود حذف میکنم. حتی کسایی که لایک میکنند آن محتوای کم ارزش را، حذف میشوند از شبکههایی که دنبال ارزش هستند.
در لینکدین، گیتهاب و ایکس باید جنتلمن باشید و فاخر اگر به دنبال موفقیت در آن (شبکه و برندسازی) هستید. بنابراین اگر شبکه شما اینچنین نیست، حتما آنرا پاکسازی کنید و چیزی فاخر برای خود بسازید.
—————
@roboticknowledge
https://t.iss.one/htuniversity/245
دوست ما نکته صحیحی درباره لینکدین نوشتهاند.
فارسینویسها در #لینکدین آنچنان مطالب کم ارزشی مینویسند که شخصا هر کسی که کوچکترین فعالیتی در آن فضا (بصورت فارسی و کم ارزش) داشته باشد را از شبکه خود حذف میکنم. حتی کسایی که لایک میکنند آن محتوای کم ارزش را، حذف میشوند از شبکههایی که دنبال ارزش هستند.
در لینکدین، گیتهاب و ایکس باید جنتلمن باشید و فاخر اگر به دنبال موفقیت در آن (شبکه و برندسازی) هستید. بنابراین اگر شبکه شما اینچنین نیست، حتما آنرا پاکسازی کنید و چیزی فاخر برای خود بسازید.
—————
@roboticknowledge
Telegram
HT University
لینکدین رو جدی بگیرید، خیلی جدی!
واقعا حالم بهم میخوره وقتی پستای فارسی لینکدین میاد تو فیدم.
تو جایی که پر از فرصت شغلیه، اکثرا دارن به هم توصیه خروج از کشور میکنند و فاز ناامیدی میدن.
در حالیکه وقتی به پروفایلشون سر میزنی، ذرهای حرکت برای بهبود شرایطشون…
واقعا حالم بهم میخوره وقتی پستای فارسی لینکدین میاد تو فیدم.
تو جایی که پر از فرصت شغلیه، اکثرا دارن به هم توصیه خروج از کشور میکنند و فاز ناامیدی میدن.
در حالیکه وقتی به پروفایلشون سر میزنی، ذرهای حرکت برای بهبود شرایطشون…
#ROS2 #Build #Conflict
اخیرا دچار یک conflict در سیستم بیلد خود برای ROS 2 humble شدم. این conflict ناشی از انتخاب پایتون Anaconda بجای پایتون سیستم توسط colcon ایجاد شده بود.
خود Open Robotics میگوید که conflict بین colcon و Anaconda وجود دارد و توصیه کرده هر دو با هم نباشند. توصیه غلطی است زیرا شاید شخصی به هر دو نیاز داشته باشد!
راه حل چیست؟
ابتدا باید ببینیم که خود conflict چه بوده است. Conflict این بود که executer انتخاب شده توسط colcon هنگام اجرای دستور colcon build، از Anaconda انتخاب میشود نه سیستم.
من آمدم و در محیط base برای Anaconda، پایتون ۱۰ و پکیج ament_pkg را نصب کردم. محیط base را فعال کردم، در آن ROS 2 را source کردم و نهایتا دستور
بدون خطا اجرا شد.
راههای دیگری مثل دستکاری متغیرهای محیطی را تست کردم و جواب نداد. همچین colcon در رفرنس خود گفته است که میتوان با آرگومان executer-- اجرا کننده را تعریف کرد، که باز هم کار نکرد! نهایتاً آنچه که colcon لازم دارد را در محیط base آناکندا نصب کردم و مسأله حل شد.
----------
@roboticknowledge
اخیرا دچار یک conflict در سیستم بیلد خود برای ROS 2 humble شدم. این conflict ناشی از انتخاب پایتون Anaconda بجای پایتون سیستم توسط colcon ایجاد شده بود.
خود Open Robotics میگوید که conflict بین colcon و Anaconda وجود دارد و توصیه کرده هر دو با هم نباشند. توصیه غلطی است زیرا شاید شخصی به هر دو نیاز داشته باشد!
راه حل چیست؟
ابتدا باید ببینیم که خود conflict چه بوده است. Conflict این بود که executer انتخاب شده توسط colcon هنگام اجرای دستور colcon build، از Anaconda انتخاب میشود نه سیستم.
من آمدم و در محیط base برای Anaconda، پایتون ۱۰ و پکیج ament_pkg را نصب کردم. محیط base را فعال کردم، در آن ROS 2 را source کردم و نهایتا دستور
colcon build
بدون خطا اجرا شد.
راههای دیگری مثل دستکاری متغیرهای محیطی را تست کردم و جواب نداد. همچین colcon در رفرنس خود گفته است که میتوان با آرگومان executer-- اجرا کننده را تعریف کرد، که باز هم کار نکرد! نهایتاً آنچه که colcon لازم دارد را در محیط base آناکندا نصب کردم و مسأله حل شد.
----------
@roboticknowledge
#طراحی #رباتیک #OOP
در برنامهنویسی برای رباتیک، یک برنامهنویس خوب دیتای پارامترها و هر آنچه را که جزئی از بخش طراحی الگوریتم نیست، در خارج از منبع اصلی در یک yaml یا json فایل تعریف میکند و فقط با پارس کردن فایل configuration، برنامه خود را اجرا میکند.
یک برنامهنویس بهتر ساختاری را پیاده میکند که کاربر برنامه (دیگران) بتوانند با ایجاد yaml فایلهای استاندارد برای آن کار، کل نرمافزار را برای خود شخصیسازی کنند. در این صورت کد شما کد خوبی است و برای این هدف باید OOP را برای نرمافزار خود پیاده کنید.
باز یک برنامهنویس بهتر میآید و Logger کنسولی پیاده میکند تا استفاده کننده بداند خطا یا هشدار چیست و چطوری باید آن را رفع کند. همیشه قرار نیست خطا ببینید، همینکه در کنسول به کاربر Information بدهید درباره current stage خود بسیار مهم است.
—————
@roboticknowledge
در برنامهنویسی برای رباتیک، یک برنامهنویس خوب دیتای پارامترها و هر آنچه را که جزئی از بخش طراحی الگوریتم نیست، در خارج از منبع اصلی در یک yaml یا json فایل تعریف میکند و فقط با پارس کردن فایل configuration، برنامه خود را اجرا میکند.
یک برنامهنویس بهتر ساختاری را پیاده میکند که کاربر برنامه (دیگران) بتوانند با ایجاد yaml فایلهای استاندارد برای آن کار، کل نرمافزار را برای خود شخصیسازی کنند. در این صورت کد شما کد خوبی است و برای این هدف باید OOP را برای نرمافزار خود پیاده کنید.
باز یک برنامهنویس بهتر میآید و Logger کنسولی پیاده میکند تا استفاده کننده بداند خطا یا هشدار چیست و چطوری باید آن را رفع کند. همیشه قرار نیست خطا ببینید، همینکه در کنسول به کاربر Information بدهید درباره current stage خود بسیار مهم است.
—————
@roboticknowledge
1 7 4
#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