#AGV #Iran
در این مطلب محصول رباتیک یک شرکت ایرانی برای دستهبندی مرسولههای پستی ارائه شده است. خروجی آنها بسیار جذاب است. اگر این پست را میبینید، خسته نباشید! دیدن کار شما لذتبخش بود — که چنین سیستمی در چنین مرتبهای توسعه دادهاید (به تعداد رباتهای در حال کار و الگوریتم کنترل آنها توجه کنید).
—————
@roboticknowledge
در این مطلب محصول رباتیک یک شرکت ایرانی برای دستهبندی مرسولههای پستی ارائه شده است. خروجی آنها بسیار جذاب است. اگر این پست را میبینید، خسته نباشید! دیدن کار شما لذتبخش بود — که چنین سیستمی در چنین مرتبهای توسعه دادهاید (به تعداد رباتهای در حال کار و الگوریتم کنترل آنها توجه کنید).
—————
@roboticknowledge
Linkedin
alireza pirhaji on LinkedIn: رباتهای AGV و نقش آنها در جداسازی مرسولات پستی
این رباتها با قابلیت… | 11 comments
این رباتها با قابلیت… | 11 comments
رباتهای AGV و نقش آنها در جداسازی مرسولات پستی
این رباتها با قابلیت تعامل و مسیریابی بهینه به صورت گسسته و نیز ممیزی وزن مرسولات به جداسازی بهینه مرسولات از… | 11 comments on LinkedIn
این رباتها با قابلیت تعامل و مسیریابی بهینه به صورت گسسته و نیز ممیزی وزن مرسولات به جداسازی بهینه مرسولات از… | 11 comments on LinkedIn
👏2🏆2
#منهای_رباتیک
ضد رزومه یا Anti CV
به صورت اتفاقی ضد رزومه یک استاد را دیدم که در آن شکستها و Failure های خودش را لیست کرده بود. نمیدانم کاربرد عمومی آن چیست (نشاندهنده شخصیت بزرگ یک فرد میتواند باشد)، اما کاربردهای خصوصی مهمی دارد — خصوصا وقتی موفقیت دشت میکنید!
همه باید یک Anti CV داشته باشیم تا یادمان بماند کجا و چرا شکست خوردیم.
—————
@roboticknowledge
ضد رزومه یا Anti CV
به صورت اتفاقی ضد رزومه یک استاد را دیدم که در آن شکستها و Failure های خودش را لیست کرده بود. نمیدانم کاربرد عمومی آن چیست (نشاندهنده شخصیت بزرگ یک فرد میتواند باشد)، اما کاربردهای خصوصی مهمی دارد — خصوصا وقتی موفقیت دشت میکنید!
همه باید یک Anti CV داشته باشیم تا یادمان بماند کجا و چرا شکست خوردیم.
—————
@roboticknowledge
👍8👏1
#CARLA #Simulator
تصویری از نقشه شبیهساز Carla. امروز برای اولین بار با GPU این شبیهساز را بالا آوردم - قدرت GPU بینظیر است.
قصد دارم یک پروژه ساده شروع کنم که در آن یک استک حداقلی رانندگی خودکار در ترافیک را توسعه دهم. سعی میکنم از معماری و الگوریتمهای اصلی که یاد میگیرم و استفاده میکنم در آن پروژه، محتوای مناسب استخراج و منتشر کنم.
—————
@roboticknowledge
تصویری از نقشه شبیهساز Carla. امروز برای اولین بار با GPU این شبیهساز را بالا آوردم - قدرت GPU بینظیر است.
قصد دارم یک پروژه ساده شروع کنم که در آن یک استک حداقلی رانندگی خودکار در ترافیک را توسعه دهم. سعی میکنم از معماری و الگوریتمهای اصلی که یاد میگیرم و استفاده میکنم در آن پروژه، محتوای مناسب استخراج و منتشر کنم.
—————
@roboticknowledge
⚡2👏1
#ROS2Webots #ROS2 #Webots
تا کنون در ترکیب Webots و ROS2 (برای پروژه ros2webots) یک ربات ROSBot داشتهام که برای آن یک Node برای Localization و یک Node برای کنترل و هدایت به سمت Waypoint ها توسعه دادهام.
گام بعدی برای من کنترل بازوی رباتیک Ned است. قصد دارم یاد بگیرم چگونه از moveit2 برای کنترل بازو استفاده کنم. اگر لیوانهای شیشهای را با بازو گرفتم و در مکان مطلوب قرار دادم، این هدف برای من محقق میشود.
—————
@roboticknowledge
تا کنون در ترکیب Webots و ROS2 (برای پروژه ros2webots) یک ربات ROSBot داشتهام که برای آن یک Node برای Localization و یک Node برای کنترل و هدایت به سمت Waypoint ها توسعه دادهام.
گام بعدی برای من کنترل بازوی رباتیک Ned است. قصد دارم یاد بگیرم چگونه از moveit2 برای کنترل بازو استفاده کنم. اگر لیوانهای شیشهای را با بازو گرفتم و در مکان مطلوب قرار دادم، این هدف برای من محقق میشود.
—————
@roboticknowledge
👏9🫡3🏆1
#Cpp
در ++C میتوانید متغیرهای پیچیده را به کمک لامبدا فانکشنها براحتی initialize کنید - با این ساختار:
یک مثال مشخص چنین است:
که بجای این روش غیربهینه میتواند استفاده شود:
این روش Immediately-invoked function expression یا IIFE نام دارد (منبع). در کدهای حرفهای این ساختار را اگر ببینید، اکنون دیگر درباره آن علامت سوال ندارید!
—————
@roboticknowledge
در ++C میتوانید متغیرهای پیچیده را به کمک لامبدا فانکشنها براحتی initialize کنید - با این ساختار:
const auto var = [&] {
return /* some complex code here */;
}(); // call it!
یک مثال مشخص چنین است:
const int myVariable = [&] {
if (bFirstContidion)
return bSecondCondition ? computeFunc(inputParam) : 0;
else
return inputParam * 2;
}(); // call!
که بجای این روش غیربهینه میتواند استفاده شود:
int myVariable = 0; // this should be const...
if (bFirstCondition)
myVariable = bSecondCindition ? computeFunc(inputParam) : 0;
else
myVariable = inputParam * 2;
این روش Immediately-invoked function expression یا IIFE نام دارد (منبع). در کدهای حرفهای این ساختار را اگر ببینید، اکنون دیگر درباره آن علامت سوال ندارید!
—————
@roboticknowledge
👍1
Robotic Knowledge
#Cpp در ++C میتوانید متغیرهای پیچیده را به کمک لامبدا فانکشنها براحتی initialize کنید - با این ساختار: const auto var = [&] { return /* some complex code here */; }(); // call it! یک مثال مشخص چنین است: const int myVariable = [&] { if (bFirstContidion)…
#Cpp
مثال رباتیکی آن در یکی از آموزشهای moveit2:
متغیر target_pose و جفت [success, plan] به این زیبایی initialize شدهاند - در نگاه اول شاید کمی سخت باشد، اما در واقع با لامبدا و IIFE خیلی ساده و تمیز شده است.
—————
@roboticknowledge
مثال رباتیکی آن در یکی از آموزشهای moveit2:
// Set a target Pose
auto const target_pose = []{
geometry_msgs::msg::Pose msg;
msg.orientation.w = 1.0;
msg.position.x = 0.28;
msg.position.y = -0.2;
msg.position.z = 0.5;
return msg;
}();
move_group_interface.setPoseTarget(target_pose);
// Create a plan to that target pose
auto const [success, plan] = [&move_group_interface]{
moveit::planning_interface::MoveGroupInterface::Plan msg;
auto const ok = static_cast<bool>(move_group_interface.plan(msg));
return std::make_pair(ok, msg);
}();
متغیر target_pose و جفت [success, plan] به این زیبایی initialize شدهاند - در نگاه اول شاید کمی سخت باشد، اما در واقع با لامبدا و IIFE خیلی ساده و تمیز شده است.
—————
@roboticknowledge
👍2
#ROS2 #moveit2
پکیج ROS2 برای بازوی رباتیک خود GENERATE کنید!
در استک moveit2 یک ابزار وجود دارد به نام Moveit Setup Assistant که تنها URDF ربات شما را لازم دارد و در خروجی یک بسته ROS2 تولید میکند که دارای کانفیگ کامل بازوی رباتیک شما به همراه کنترلکننده مفصلی و گریپری، دستههای حرکتی (مفاصل)، پوسچرهای مهم تعریف شده (مانند home یا gripper close)، انواع لانچ فایل، کنترلکننده ros2_control با قابلیت انتخاب اینترفیس و موارد مهمی دیگری مانند Perception است! تمام الگوریتمهای Planning و Control موجود در Moveit2 را بدون کمترین سختی به این ترتیب میتوان برای هر بازوی رباتیکی که URDF دارد استفاده کرد!
AWSOME!
—————
@roboticknowledge
پکیج ROS2 برای بازوی رباتیک خود GENERATE کنید!
در استک moveit2 یک ابزار وجود دارد به نام Moveit Setup Assistant که تنها URDF ربات شما را لازم دارد و در خروجی یک بسته ROS2 تولید میکند که دارای کانفیگ کامل بازوی رباتیک شما به همراه کنترلکننده مفصلی و گریپری، دستههای حرکتی (مفاصل)، پوسچرهای مهم تعریف شده (مانند home یا gripper close)، انواع لانچ فایل، کنترلکننده ros2_control با قابلیت انتخاب اینترفیس و موارد مهمی دیگری مانند Perception است! تمام الگوریتمهای Planning و Control موجود در Moveit2 را بدون کمترین سختی به این ترتیب میتوان برای هر بازوی رباتیکی که URDF دارد استفاده کرد!
AWSOME!
—————
@roboticknowledge
👍4
#Manipulator
مسابقه رباتیک پارچه یا Cloth Competition
در این مسابقه دو بازوی رباتیک باید به مانند فردی که یک پارچه را بدون چروک و روی هم افتادگی با دستانش باز میکند، باز کنند و نگه دارند.
در مقابل دو بازوی رباتیک یک سیستم Depth Camera وجود دارد که دادههای پایپلاین Perception را فراهم میکند. فیلم مسابقه جالب است:
https://youtu.be/716P6zG7NLc?si=whlMID7f2W660Sh6
شما چه الگوریتم تصمیمگیری را برای چنین چالشی طراحی میکنید؟ در ذهن خود فکر کنید و پاسخ دهید - تمرین خوبی هست.🙂
----------
@roboticknowledge
مسابقه رباتیک پارچه یا Cloth Competition
در این مسابقه دو بازوی رباتیک باید به مانند فردی که یک پارچه را بدون چروک و روی هم افتادگی با دستانش باز میکند، باز کنند و نگه دارند.
در مقابل دو بازوی رباتیک یک سیستم Depth Camera وجود دارد که دادههای پایپلاین Perception را فراهم میکند. فیلم مسابقه جالب است:
https://youtu.be/716P6zG7NLc?si=whlMID7f2W660Sh6
شما چه الگوریتم تصمیمگیری را برای چنین چالشی طراحی میکنید؟ در ذهن خود فکر کنید و پاسخ دهید - تمرین خوبی هست.🙂
----------
@roboticknowledge
YouTube
ICRA 2024 - Cloth Manipulation Competition
👍4
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
ابزار pybind11 برای تبدیل کتابخانه ++C به ماژول پایتون
قبلا درباره اینکه روش کلی فراخوانی کد C در پایتون چیست، به ماژول ctypes اشاره کرده بودیم - اما محدودیتهایی در استفاده از آن وجود دارد. راه حرفهایتری که اخیرا پیدا کردهام - مختص استفاده از کدهای ++C در پایتون و پشتیبانکننده OOP موجود در ++C - ابزار pybind11 است:
https://github.com/pybind/pybind11
—————
@roboticknowledge
GitHub
GitHub - pybind/pybind11: Seamless operability between C++11 and Python
Seamless operability between C++11 and Python. Contribute to pybind/pybind11 development by creating an account on GitHub.
#منهای_رباتیک
در فیلم میانستارهای (Interstellar) صحنهای وجود دارد که در آن کوپر (Cooper)، فرمانده فضاپیما، مجبور است فضاپیمای خود را به کشتی مادر اما گردان متصل کند. برای این کار باید نرخ گردش چرخشی فضاپیما و کشتی فضایی را یکسان کند و در شرایط ایجاد شده متصل شود. ربات در شرایطی که کوپر تحت شتاب نمیتواند کاری کند، دستور میگیرد تا کار را به سرانجام برساند.
این صحنه به همراه اجرای زنده موسیقی آن توسط Hans Zimmer بسیار با ارزش است:
https://www.youtube.com/watch?v=1YoSdfrb5GM&list=RDva1oiojnGrA&index=2
گاهی اوقات احتیاط در کار را باید کنار گذاشت - زیرا زمان احتیاط وجود ندارد.
به قول کوپر:
—————
@roboticknowledge
در فیلم میانستارهای (Interstellar) صحنهای وجود دارد که در آن کوپر (Cooper)، فرمانده فضاپیما، مجبور است فضاپیمای خود را به کشتی مادر اما گردان متصل کند. برای این کار باید نرخ گردش چرخشی فضاپیما و کشتی فضایی را یکسان کند و در شرایط ایجاد شده متصل شود. ربات در شرایطی که کوپر تحت شتاب نمیتواند کاری کند، دستور میگیرد تا کار را به سرانجام برساند.
این صحنه به همراه اجرای زنده موسیقی آن توسط Hans Zimmer بسیار با ارزش است:
https://www.youtube.com/watch?v=1YoSdfrb5GM&list=RDva1oiojnGrA&index=2
گاهی اوقات احتیاط در کار را باید کنار گذاشت - زیرا زمان احتیاط وجود ندارد.
به قول کوپر:
No Time for Caution
—————
@roboticknowledge
YouTube
Hans Zimmer LIVE - Docking Scene (No Time for Caution)
MOVIE and LIVE Performance. Side by side with both AUDIO ON. You can also turn on SUBs (English) now.
#Isaac #IsaacSim #Nvidia #ROS2
تکانه پشت سر توسعه رباتیک توسط Nvidia رشد شدیدی کرده است و خوشبختانه همه چیز Open Source هست. افرادی که این ریسمان را بگیرند میتوانند پیشگامان جهان باشند.
----------
@roboticknowledge
تکانه پشت سر توسعه رباتیک توسط Nvidia رشد شدیدی کرده است و خوشبختانه همه چیز Open Source هست. افرادی که این ریسمان را بگیرند میتوانند پیشگامان جهان باشند.
----------
@roboticknowledge
👍3
#منهای_رباتیک
میشود که ما هم پیشگام بشویم؟ برای آینده خواهم نوشت!
فضا یکی از زمینهای بازی پیشگامان بوده و است. امروز شرکت مشهور موفقیتی کسب کرده که مبارکشان باد.
وقتی سطح و حجم پیشرفت آنها را میبینم، از خود جویا میشوم که آیا ما هم به چنین موفقیتهایی و رضایت روحی پس از آن میرسیم؟ تصور آن هم زیباست که در جهان موازی ما پیشگام باشیم و پرچم سه رنگ زیبای مملکت ما بالا باشد.
این هدف والای شخصی من است: روزی رباتهایی با اسمهای پارسی خواهم ساخت تا زندگی بشر را بهتر کنند و نا ممکنها را ممکن. گرچه دست ما از امکانات و شرایط به دور است، اما افکار ما چون پرندههایی بلند پرواز هستند که با قدرت سختکوشی و لطف آنکه باید (خداوند) ما را به مقصد میرسانند.
—————
@roboticknowledge
میشود که ما هم پیشگام بشویم؟ برای آینده خواهم نوشت!
فضا یکی از زمینهای بازی پیشگامان بوده و است. امروز شرکت مشهور موفقیتی کسب کرده که مبارکشان باد.
وقتی سطح و حجم پیشرفت آنها را میبینم، از خود جویا میشوم که آیا ما هم به چنین موفقیتهایی و رضایت روحی پس از آن میرسیم؟ تصور آن هم زیباست که در جهان موازی ما پیشگام باشیم و پرچم سه رنگ زیبای مملکت ما بالا باشد.
این هدف والای شخصی من است: روزی رباتهایی با اسمهای پارسی خواهم ساخت تا زندگی بشر را بهتر کنند و نا ممکنها را ممکن. گرچه دست ما از امکانات و شرایط به دور است، اما افکار ما چون پرندههایی بلند پرواز هستند که با قدرت سختکوشی و لطف آنکه باید (خداوند) ما را به مقصد میرسانند.
—————
@roboticknowledge
👍11
Robotic Knowledge
#Isaac #IsaacSim #IsaacRos #IsaacPerceptor #ROS2 ————— @roboticknowledge
#Isaac #IsaacSim #IsaacRos #IsaacPerceptor #ROS2
https://developer.nvidia.com/blog/create-design-and-deploy-robotics-applications-using-new-nvidia-isaac-foundation-models-and-workflows/
https://developer.nvidia.com/blog/create-design-and-deploy-robotics-applications-using-new-nvidia-isaac-foundation-models-and-workflows/
NVIDIA Technical Blog
Create, Design, and Deploy Robotics Applications Using New NVIDIA Isaac Foundation Models and Workflows
The application of robotics is rapidly expanding in diverse environments such as smart manufacturing facilities, commercial kitchens, hospitals, warehouse logistics, and agricultural fields.
#منهای_رباتیک #تجربه
مدیریت پروژه یا Project Management
#Project_Management #PM
از حضور در صنعت میتوان درسهای بزرگی گرفت، مدیریت پروژه یکی از آنها است. اگر PM شما کار خود را درست انجام ندهد، کنترل امور تیم از دست خواهد رفت و محصول به مشتری نخواهد رسید و عواقب بعدی ظاهر میشوند!
برنامهنویسها باید اصول PM را دنبال کنند تا بدانند کجای نقشه راه یا Road Map هستند و در صنعت این بحث بسیار جدیتر است. پس از 2.5 سال دوری از دانشگاه قرار است دوباره وارد دانشگاه شوم و دکتری خود را ادامه دهم، اما در این فاصله حدود 1 سال و 3 ماه برای شرکتی چینی کار کردم که در آن به عنوان مهندس الگوریتم در حال توسعه و تطبیق نرمافزار خودرو برای رانندگی خودکار در سطوح مختلف برای خودروسازهای مطرح چینی و آمریکایی بودم. انواع روشهای PM را با آزمون و خطا دنبال کردیم و دعواهای زیادی داشتیم و بعضی مواقع خوشحال و بعضی مواقع ناراحت بودیم - اما برآیند مثبت است وقتی تیم تا حدی حرفهای باشد.
اکنون دید من نسبت به دکتری یک پروژه R&D صنعتی منعطف در محیط آکادمیک است (نه چیزی که عمده افراد وقتی بدون کار صنعتی مفید، پشت سر هم ادامه تحصیل میدهند) و علاوه بر دانش نظری و مهارتهای رباتیکی، یک ابزار قوی در دستانم دارم که مهارتهای PM شکل گرفته از صنعت است! ما یک کارگروه توسعه نرمافزار رباتیک در مرکز تحقیقاتی خود داریم که منه تازه وارد به نظریهپرداز روش مدیریت کردن امور آنها تبدیل شدهام. 🙂😎 با کارهایی که انجام میدهیم، کارها سرعت بهتری دارد و همه میدانند که چه میکنند و باید چه کنند و چطور به هدف خواهیم رسید.
نکته این است: ابعاد دیگر را در خود رشد دهید تا شتاب به حرکت خود بدهید و کیفیت کار خوبی داشته باشید. برای همه ما انبوهی از چیزها وجود دارد که یاد بگیریم، اما مهارتهای نرم مثل PM واقعا نیاز جدی هستند (و تفاوتساز) که اگر یاد نگیریم، خود را محدود کردهایم.
—————
@roboticknowledge
مدیریت پروژه یا Project Management
#Project_Management #PM
از حضور در صنعت میتوان درسهای بزرگی گرفت، مدیریت پروژه یکی از آنها است. اگر PM شما کار خود را درست انجام ندهد، کنترل امور تیم از دست خواهد رفت و محصول به مشتری نخواهد رسید و عواقب بعدی ظاهر میشوند!
برنامهنویسها باید اصول PM را دنبال کنند تا بدانند کجای نقشه راه یا Road Map هستند و در صنعت این بحث بسیار جدیتر است. پس از 2.5 سال دوری از دانشگاه قرار است دوباره وارد دانشگاه شوم و دکتری خود را ادامه دهم، اما در این فاصله حدود 1 سال و 3 ماه برای شرکتی چینی کار کردم که در آن به عنوان مهندس الگوریتم در حال توسعه و تطبیق نرمافزار خودرو برای رانندگی خودکار در سطوح مختلف برای خودروسازهای مطرح چینی و آمریکایی بودم. انواع روشهای PM را با آزمون و خطا دنبال کردیم و دعواهای زیادی داشتیم و بعضی مواقع خوشحال و بعضی مواقع ناراحت بودیم - اما برآیند مثبت است وقتی تیم تا حدی حرفهای باشد.
اکنون دید من نسبت به دکتری یک پروژه R&D صنعتی منعطف در محیط آکادمیک است (نه چیزی که عمده افراد وقتی بدون کار صنعتی مفید، پشت سر هم ادامه تحصیل میدهند) و علاوه بر دانش نظری و مهارتهای رباتیکی، یک ابزار قوی در دستانم دارم که مهارتهای PM شکل گرفته از صنعت است! ما یک کارگروه توسعه نرمافزار رباتیک در مرکز تحقیقاتی خود داریم که منه تازه وارد به نظریهپرداز روش مدیریت کردن امور آنها تبدیل شدهام. 🙂😎 با کارهایی که انجام میدهیم، کارها سرعت بهتری دارد و همه میدانند که چه میکنند و باید چه کنند و چطور به هدف خواهیم رسید.
نکته این است: ابعاد دیگر را در خود رشد دهید تا شتاب به حرکت خود بدهید و کیفیت کار خوبی داشته باشید. برای همه ما انبوهی از چیزها وجود دارد که یاد بگیریم، اما مهارتهای نرم مثل PM واقعا نیاز جدی هستند (و تفاوتساز) که اگر یاد نگیریم، خود را محدود کردهایم.
—————
@roboticknowledge
👍9
#توسعه_نرمافزار #مدیریت_پروژه
#Software_Development #Project_Management
از روشهای مطرح برای مدیریت پروژه توسعه نرمافزار روش Agile است که در واقع تعدادی اصل ساده است و میتوانید در اینجا بیابید:
https://agilemanifesto.org/principles.html
برخی از این اصول در انواع پروژهها قابل پیریزی است و آشنایی ذهن با این موارد خوب است.
—————
@roboticknowledge
#Software_Development #Project_Management
از روشهای مطرح برای مدیریت پروژه توسعه نرمافزار روش Agile است که در واقع تعدادی اصل ساده است و میتوانید در اینجا بیابید:
https://agilemanifesto.org/principles.html
برخی از این اصول در انواع پروژهها قابل پیریزی است و آشنایی ذهن با این موارد خوب است.
—————
@roboticknowledge
👍2
#Planning
#وسیله_خودران
در حرکت خودمختار [به اتوموبیل محدود نکردم و منظور ربات پرنده یا کشتی یا زیرسطحی و ... نیز میتواند باشد] طراح ریزی مسیر یا Path Planning اهمیت بسیاری دارد - ورودی مرجع کنترلکننده در این داده است. در بحث اتوموبیل خودران، به دلیل وجود انواع ماشین در اطراف، حضور افراد و قوانین رانندگی و ایمنی، این قضیه بسیار مهم است.
طرحریزها یا Planner ها، بصورت rule-based هستند و بر اساس فرضیهها توسعه داده شدهاند تا در شرایط ترافیکی متفاوت، مسیرهای کنترلی مطلوب و منطقی که با اثبات ایمنی همراه هستند را برای کنترلکننده فراهم سازند.
اما با پیچیدگی شرایط، برای مثال تعدد ایجنتهای خارجی، یک Planner مبتنی برrule چالشهایی خواهد داشت که ناشی از عدم قطعیت و محدود بودن دانش دینامیکی است. در اینجا AI وارد میشود و مفهومی به نام Planner مبتنی بر learning به وجود میآید که مزیت آن قابلیت انجام Planning های پیچیده بر اساس داده است - هر چند نیاز به یادگیری و training دارد و مهمتر اینکه ذاتا اثباتی برای ایمنی آنها وجود ندارد.
ترکیب دو روش میتواند راهگشا باشد. یک مثال Hydra-MDP از تیم توسعه Nvidia است که مقاله آن در اینجا قابل رویت است. کد آنها هنوز منتشر نشده، اما گویی بزودی خواهد شد.
—————
@roboticknowledge
#وسیله_خودران
در حرکت خودمختار [به اتوموبیل محدود نکردم و منظور ربات پرنده یا کشتی یا زیرسطحی و ... نیز میتواند باشد] طراح ریزی مسیر یا Path Planning اهمیت بسیاری دارد - ورودی مرجع کنترلکننده در این داده است. در بحث اتوموبیل خودران، به دلیل وجود انواع ماشین در اطراف، حضور افراد و قوانین رانندگی و ایمنی، این قضیه بسیار مهم است.
طرحریزها یا Planner ها، بصورت rule-based هستند و بر اساس فرضیهها توسعه داده شدهاند تا در شرایط ترافیکی متفاوت، مسیرهای کنترلی مطلوب و منطقی که با اثبات ایمنی همراه هستند را برای کنترلکننده فراهم سازند.
اما با پیچیدگی شرایط، برای مثال تعدد ایجنتهای خارجی، یک Planner مبتنی برrule چالشهایی خواهد داشت که ناشی از عدم قطعیت و محدود بودن دانش دینامیکی است. در اینجا AI وارد میشود و مفهومی به نام Planner مبتنی بر learning به وجود میآید که مزیت آن قابلیت انجام Planning های پیچیده بر اساس داده است - هر چند نیاز به یادگیری و training دارد و مهمتر اینکه ذاتا اثباتی برای ایمنی آنها وجود ندارد.
ترکیب دو روش میتواند راهگشا باشد. یک مثال Hydra-MDP از تیم توسعه Nvidia است که مقاله آن در اینجا قابل رویت است. کد آنها هنوز منتشر نشده، اما گویی بزودی خواهد شد.
—————
@roboticknowledge
NVIDIA Technical Blog
End-to-End Driving at Scale with Hydra-MDP
Building an autonomous system to navigate the complex physical world is extremely challenging. The system must perceive its environment and make quick, sensible decisions. Passenger experience is also…
👍2
#Tools
#Cpp
#AnalyticalDynamics
#OptimalControl
کتابخانهای برای ++C و البته بصورت bind شده در Python وجود دارد که مسائل دینامیک چندجسمی را برای شما حل میکند. مدل میتواند براحتی بصورت URDF در ورودی تعریف شود.
این کتابخانه pinocchio نام دارد:
https://github.com/stack-of-tasks/pinocchio
همچنین این کتابخانه میتواند با CasADI که خود کتابخانه کنترل بهینه است نیز کار کند! فکر نکنید رباتهای Boston Dynamics کنترل بهینه را از هیچ کامل در خود دارند بدون این ابزارها.
پیشروها با اینها و امثال اینها کارهای بزرگ میکنند. متاسفانه سیستم آموزشی کشور ما در قرن پیش مانده است و همین الان در بهترین دانشگاههای مملکت معادلات را بصورت اشتباه پیاده و غیر بهینه حل و برای جبران نتایج دست به تغییر دستی نتایج زده میشود! در هیچ دورهای به اینها اشاره نمیکنند چون نمیدانند و اینها چیزهای مدرن هستند که تفاوت میسازند.
—————
@roboticknowledge
#Cpp
#AnalyticalDynamics
#OptimalControl
کتابخانهای برای ++C و البته بصورت bind شده در Python وجود دارد که مسائل دینامیک چندجسمی را برای شما حل میکند. مدل میتواند براحتی بصورت URDF در ورودی تعریف شود.
این کتابخانه pinocchio نام دارد:
https://github.com/stack-of-tasks/pinocchio
همچنین این کتابخانه میتواند با CasADI که خود کتابخانه کنترل بهینه است نیز کار کند! فکر نکنید رباتهای Boston Dynamics کنترل بهینه را از هیچ کامل در خود دارند بدون این ابزارها.
پیشروها با اینها و امثال اینها کارهای بزرگ میکنند. متاسفانه سیستم آموزشی کشور ما در قرن پیش مانده است و همین الان در بهترین دانشگاههای مملکت معادلات را بصورت اشتباه پیاده و غیر بهینه حل و برای جبران نتایج دست به تغییر دستی نتایج زده میشود! در هیچ دورهای به اینها اشاره نمیکنند چون نمیدانند و اینها چیزهای مدرن هستند که تفاوت میسازند.
—————
@roboticknowledge
GitHub
GitHub - stack-of-tasks/pinocchio: A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives - stack-of-tasks/pinocchio
👍1🤯1