Robotic Knowledge
381 subscribers
242 photos
62 videos
2 files
170 links
دانش و برنامه‌نویسی برای رباتیک
Download Telegram
Media is too big
VIEW IN TELEGRAM
I want to express my sincere gratitude to everyone who participated in our recent workshop, "Emerging Robotics Education for Engineers: Challenges and Future Prospects." Your presence and engagement made it a resounding success!

As promised, I will provide some video clips of the presentations for the interested audience. Stay tuned for the upcoming posts and enjoy!

📘 Book Details
📦 Order the Book
🌐 Workshop Outcomes

Thank you for being a part of this exciting journey, and let's continue to explore the exciting world of robotics education together. 🤝

Hamid D. Taghirad

#ARAS #Robotics #Education #Books #Biomimetic #Matlab #Python

@ARASKNTU
👏1
#Simulink #C #Cpp #Algorithm #CodeGeneration #Python
شبیه‌سازهای مطرح RL همگی از Python استفاده می‌کنند و شما یک ++C/C نویس هستید. تکلیف چیست؟

شاید برای افرادی که از Python برای کار رباتیکی خود استفاده می‌کنند و زیاد از ++C/C در کار خود استفاده نکرده‌اند، پایتون یک بهشت باشد اما برای افرادی که به ++C/C نویسی عادت دارند، نوشتن Python بصورت فراتر از یک اسکریپت ساده عذاب بزرگی خواهد بود از بس که محدودیت دارد این زبان و وقتی قدرت C بزرگ را بدانید متوجه خواهید شد - خصوصا اگر C را از Simulink تولید کنید!
حال تصویر کنید در Isaac Gym یا هر Gym دیگری ربات و محیط شما باید با اسکریپت Python شبیه‌سازی و کنترل شود — که دردناک خواهد بود برای همان دسته توسعه‌دهنگان صنعتی‌تر.
اما خیلی راحت می‌توان الگوریتم را با C نوشت (یا کد C از آن در Simulink تولید کرد) و آن را کامپایل کرد و یک کتابخانه AlgoSDK.so از آن تولید کرد. از اینجا به بعد براحتی می‌نوانید فایل so. کتابخانه C را در اسکریپت مینیمال پایتون خود صدا بزنید:
from ctypes import * #Import ctypes library
libc = CDLL("./AlgoSDK.so") #Load library

—————
@roboticknowledge
👍3👀2🫡2
Robotic Knowledge
#Simulink #C #Cpp #Algorithm #CodeGeneration #Python شبیه‌سازهای مطرح RL همگی از Python استفاده می‌کنند و شما یک ++C/C نویس هستید. تکلیف چیست؟ شاید برای افرادی که از Python برای کار رباتیکی خود استفاده می‌کنند و زیاد از ++C/C در کار خود استفاده نکرده‌اند،…
#Simulink #C #Cpp #Algorithm #CodeGeneration #Python
پایتون در توسعه و پیاده‌سازی الگوریتم کنترلی = SHIT

بسیار افراد متخصص و صاحب موقعیت در آکادمیا دیده‌ام که نمی‌دانند Code Generation چیست و چگونه باید از قابلیت‌های آن استفاده کنند — واقعا نصف عمرشان بر فنا هست حتی بیشتر! در رباتیک واقعی و هر جا که به سیستم امبدد منتهی شود، پایتون یک SHIT است — البته برای افرادی که با ++C/C پیمان قلبی دارند و می‌دانند چقدر قابل هستند!
و وقتی برای آن دسته از افراد مواردی از امکانات Code Generation ارائه می‌کنم، متوجه میشوم حسرت را در نگاهشان که وای از چه نعمتی غافل بودیم. 😎
—————
@roboticknowledge
👍2🤯1🍾1👀1
Robotic Knowledge
#Simulink #C #Cpp #Algorithm #CodeGeneration #Python شبیه‌سازهای مطرح RL همگی از Python استفاده می‌کنند و شما یک ++C/C نویس هستید. تکلیف چیست؟ شاید برای افرادی که از Python برای کار رباتیکی خود استفاده می‌کنند و زیاد از ++C/C در کار خود استفاده نکرده‌اند،…
#Cpp #C #Python
ابزار pybind11 برای تبدیل کتابخانه ++C به ماژول پایتون

قبلا درباره اینکه روش کلی فراخوانی کد C در پایتون چیست، به ماژول ctypes اشاره کرده بودیم - اما محدودیت‌هایی در استفاده از آن وجود دارد. راه حرفه‌ای‌تری که اخیرا پیدا کرده‌ام - مختص استفاده از کدهای ++C در پایتون و پشتیبان‌کننده OOP موجود در ++C - ابزار pybind11 است:
https://github.com/pybind/pybind11
—————
@roboticknowledge
#Python

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

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

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

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

----------
@roboticknowledge
4