آموزش رانندگی خودران و ROS 2 - یادگیری عملی! برنامه ریزی و مسیریابی - آخرین آپدیت

دانلود Self Driving and ROS 2 - Learn by Doing! Plan & Navigation

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

ساخت ربات خودران با ROS2: آموزش جامع پایتون و ++C

آیا می‌خواهید یک ربات خودران واقعی با استفاده از ROS2 (آخرین نسخه سیستم‌عامل ربات) بسازید و ربات واقعی خود را به حرکت درآورید؟

آیا می‌خواهید با ناوبری خودکار ربات‌ها شروع کنید و جنبه‌های نظری و عملی ناوبری، برنامه‌ریزی مسیر و تصمیم‌گیری با استفاده از درخت‌های رفتاری (Behavior Trees) را از متخصصان این صنعت بیاموزید؟

آنچه در این دوره خواهید آموخت:

  • تسلط بر ROS2 (آخرین نسخه سیستم عامل ربات)
  • مبانی تئوری رباتیک
  • پیاده‌سازی الگوریتم‌های برنامه‌ریزی مسیر (Path Planning)
  • پیاده‌سازی الگوریتم‌های برنامه‌ریزی حرکت (Motion Planning)
  • ایجاد منطق‌های ناوبری پیشرفته با استفاده از درخت‌های رفتاری
  • شبیه‌سازی یک ربات خودران در Gazebo
  • برنامه‌نویسی Arduino برای کاربردهای رباتیک
  • تسلط بر Nav2

پیش نیازها:

  • دانش پایه پایتون یا ++C
  • دانش پایه لینوکس
  • عدم نیاز به دانش قبلی از ROS یا ROS2
  • عدم نیاز به دانش قبلی از تئوری رباتیک
  • عدم نیاز به سخت‌افزار. تمام دوره را می‌توانید فقط با استفاده از کامپیوتر دنبال کنید.

فلسفه این دوره، یادگیری از طریق انجام دادن است. به قول دیل کارنگی:

یادگیری یک فرآیند فعال است. ما با انجام دادن یاد می‌گیریم. فقط دانشی که مورد استفاده قرار می‌گیرد در ذهن شما باقی می‌ماند.

برای اینکه بر مفاهیم مطرح شده در این دوره مسلط شوید و از آنها در پروژه‌ها و همچنین شغل آینده خود استفاده کنید، من شما را در یادگیری تمام عملکردهای ROS از دیدگاه نظری و عملی راهنمایی خواهم کرد.

ساختار دوره:

هر بخش از سه قسمت تشکیل شده است:

  • توضیح نظری مفهوم و عملکرد
  • استفاده از مفهوم در یک مثال عملی ساده
  • کاربرد عملکرد در یک ربات واقعی

خبر خوب!

تمام دروس برنامه‌نویسی با استفاده از هر دو زبان پایتون و ++C توسعه یافته‌اند. این بدان معناست که می‌توانید زبانی را که بیشتر با آن آشنا هستید انتخاب کنید یا به یک توسعه‌دهنده نرم‌افزار رباتیک متخصص در هر دو زبان برنامه‌نویسی تبدیل شوید!

با گذراندن این دوره، درک عمیق‌تری از ربات‌های خودران و ROS2 به دست خواهید آورد، که فرصت‌هایی را در زمینه هیجان‌انگیز رباتیک برای شما باز می‌کند.


سرفصل ها و درس ها

مقدمه Introduction

  • انگیزه دوره Course Motivation

  • برنامه خودران The Self-Driving Program

  • ارائه دوره Course Presentation

  • آشنایی با مدرس Meet your Teacher

  • [EXTRA]: ارتقای شغلی توسعه‌دهنده نرم‌افزار رباتیک [EXTRA]: Boost your Robotics Software Developer Career

  • بهره‌برداری حداکثری از دوره Get the Most out of the Course

  • مواد آموزشی دوره Course Material

راه‌اندازی Setup

  • نصب اوبونتو روی WSL Install Ubuntu on WSL

  • نصب اوبونتو به صورت Dual Boot Install Ubuntu on Dual Boot

  • نصب اوبونتو روی ماشین مجازی Install Ubuntu on Virtual Machine

  • <LAB>نصب ROS 2 Jazzy روی اوبونتو 24.04</LAB> <LAB>Install ROS 2 Jazzy on Ubuntu 24.04</LAB>

  • <LAB>نصب ROS 2 Humble روی اوبونتو 22.04</LAB> <LAB>Install ROS 2 Humble on Ubuntu 22.04</LAB>

  • <LAB>پیکربندی محیط توسعه</LAB> <LAB>Configure the Development Environment</LAB>

  • <LAB>شروع کار با ربات شبیه‌سازی‌شده</LAB> <LAB>Getting Started with the Simulated Robot</LAB>

  • <LAB>نحوه استفاده از مواد آموزشی دوره</LAB> <LAB>How to use the Course Material</LAB>

معرفی ROS 2 Introduction to ROS 2

  • چرا سیستم عامل ربات؟ Why a Robot Operating System?

  • ROS 2 چیست؟ What is ROS 2

  • چرا یک سیستم عامل ربات جدید؟ Why a NEW Robot Operating System

  • معماری ROS 2 ROS 2 Architecture

  • انتزاع سخت‌افزار Hardware Abstraction

  • کنترل سطح پایین دستگاه Low-Level Device Control

  • پیام‌رسانی بین فرآیندها Messaging Between Process

  • مدیریت بسته Package Management

  • معماری یک برنامه ROS 2 Architecture of a ROS 2 Application

  • معرفی ROS 2 Introduction to ROS 2

  • <LAB>ایجاد و فعال‌سازی یک فضای کاری</LAB> <LAB>Create and Activate a Worksapce</LAB>

  • <PY>ناشر ساده</PY> <PY>Simple Publisher</PY>

  • <C++>ناشر ساده</C++> <C++>Simple Publisher</C++>

  • <PY>مشترک ساده</PY> <PY>Simple Subscriber</PY>

  • <C++>مشترک ساده</C++> <C++>Simple Subscriber</C++>

  • فضاهای کاری، ناشران، مشترکین Workspaces, Publishers, Subscribers

برنامه‌ریزی مسیر Path Planning

  • برنامه‌ریزی مسیر Path Planning

  • برنامه و اجرا Plan and Execution

  • فضای پیکربندی Configuration Space

  • از برنامه‌ریزی مسیر تا جستجوی گراف From Path Planning to Graph Search

  • ساخت گراف Graph Construction

  • OccupancyGrid OccupancyGrid

  • معرفی Nav2 Introduction to Nav2

  • گره‌های چرخه عمر ROS 2 ROS 2 Lifecycle Nodes

  • <PY>ایجاد یک گره چرخه عمر</PY> <PY>Create a Lifecycle Node</PY>

  • <C++>ایجاد یک گره چرخه عمر</C++> <C++>Create a Lifecycle Node</C++>

  • <LAB>CLI چرخه عمر ROS 2</LAB> <LAB>ROS 2 Lifecycle CLI</LAB>

  • Nav2 map_server Nav2 map_server

  • <LAB>Nav2 map_server</LAB> <LAB>Nav2 map_server</LAB>

  • کیفیت خدمات ROS 2 ROS 2 Quality of Service

  • <PY>ناشر Multi QoS</PY> <PY>Multi QoS Publisher</PY>

  • <C++>ناشر Multi QoS</C++> <C++>Multi QoS Publisher</C++>

  • <LAB>ناشر Multi QoS</LAB> <LAB>Multi QoS Publisher</LAB>

  • <LAB>Nav2 map_server CLI</LAB> <LAB>Nav2 map_server CLI</LAB>

  • جستجوی گراف Graph Search

  • جستجوی اول سطح Breadth-First Search

  • جستجوی اول عمق Depth-First Search

  • الگوریتم Dijkstra Dijkstra Algorithm

  • <PY>برنامه‌ریز Dijkstra</PY> <PY>Dijkstra Planner</PY>

  • <PY>الگوریتم Dijkstra</PY> <PY>Dijkstra Algorithm</PY>

  • <C++>برنامه‌ریز Dijkstra</C++> <C++>Dijkstra Planner</C++>

  • <C++>الگوریتم Dijkstra</C++> <C++>Dijkstra Algorithm</C++>

  • <LAB>الگوریتم Dijkstra</LAB> <LAB>Dijkstra Algorithm</LAB>

  • الگوریتم A A* Algorithm

  • <PY>الگوریتم A*</PY> <PY>A* Algorithm</PY>

  • <C++>الگوریتم A*</C++> <C++>A* Algorithm</C++>

  • <LAB>الگوریتم A*</LAB> <LAB>A* Algorithm</LAB>

  • <LAB>تست سرعت</LAB> <LAB>Speed Test</LAB>

برنامه‌ریزی حرکت Motion Planning

  • برنامه و اجرا Plan and Execution

  • برنامه‌ریزان حرکت Motion Planners

  • ردیابی مسیر Path Tracking

  • کنترل PID PID Control

  • تنظیم PID PID Tuning

  • <PY>برنامه‌ریز حرکت PD</PY> <PY>PD Motion Planner</PY>

  • <C++>برنامه‌ریز حرکت PD</C++> <C++>PD Motion Planner</C++>

  • <LAB>برنامه‌ریز حرکت PD</LAB> <LAB>PD Motion Planner</LAB>

  • محلی‌سازی ربات Robot Localization

  • قرارداد رباتیک برای محلی‌سازی Robotics Convention for Localization

  • چرا یک قرارداد رباتیک برای محلی‌سازی؟ Why a Robotics Convention for Localization?

  • حالت یک ربات متحرک Pose of a Mobile Robot

  • بردار انتقال Translation Vector

  • ماتریس چرخش Rotation Matrix

  • ماتریس تبدیل Transformation Matrix

  • تبدیل فریم‌های مرجع Transform Reference Frames

  • تبدیل فریم‌های مرجع Transform Reference Frames

  • <PY>تبدیل مختصات در برنامه‌ریز حرکت PD</PY> <PY>Transform Coordinates in PD Motion Planner</PY>

  • <C++>تبدیل مختصات در برنامه‌ریز حرکت PD</C++> <C++>Transform Coordinates in PD Motion Planner</C++>

  • <PY>الگوریتم کنترل برنامه‌ریز حرکت PD</PY> <PY>PD Motion Planner Control Algotithm</PY>

  • <C++>الگوریتم کنترل برنامه‌ریز حرکت PD</C++> <C++>PD Motion Planner Control Algorithm</C++>

  • <LAB>برنامه‌ریز حرکت PD کامل</LAB> <LAB>Complete PD Motion Planner</LAB>

  • DWA - رویکرد پنجره دینامیکی (DWB) DWA - Dynamic Window Approach (DWB)

  • VFH - هیستوگرام میدان برداری VFH - Vector Field Histogram

  • MPC - کنترل پیش‌بینی‌کننده مدل (MPPI) MPC - Model Predictive Control (MPPI)

  • Pure Pursuit (RPP) Pure Pursuit (RPP)

  • <PY>Pure Pursuit</PY> <PY>Pure Pursuit</PY>

  • <C++>Pure Pursuit</C++> <C++>Pure Pursuit</C++>

  • <LAB>Pure Pursuit</LAB> <LAB>Pure Pursuit</LAB>

اجتناب از مانع Obstacle Avoidance

  • اجتناب از مانع Obstacle Avoidance

  • Costmap Costmap

  • Costmap لایه‌ای Layered Costmap

  • Nav2 Costmap 2D Nav2 Costmap 2D

  • لایه استاتیک Static Layer

  • <LAB>nav2_costmap_2d - لایه استاتیک</LAB> <LAB>nav2_costmap_2d - Static Layer</LAB>

  • لایه مانع Obstacle Layer

  • <LAB>nav2_costmap_2d - لایه مانع</LAB> <LAB>nav2_costmap_2d - Obstacle Layer</LAB>

  • لایه Inflation Inflation Layer

  • <LAB>nav2_costmap_2d - لایه Inflation</LAB> <LAB>nav2_costmap_2d - Inflation Layer</LAB>

  • استفاده از Costmap Using Costmap

  • <PY>برنامه‌ریز Costmap Dijkstra</PY> <PY>Dijkstra Costmap Planner</PY>

  • <C++>برنامه‌ریز Costmap Dijkstra</C++> <C++>Dijkstra Costmap Planner</C++>

  • <LAB>برنامه‌ریز Costmap Dijkstra</LAB> <LAB>Dijkstra Costmap Planner</LAB>

  • برنامه‌ریز Costmap A A* Costmap Planner

ناوبری Navigation

  • ناوبری Navigation

  • Actions در ROS 2 ROS 2 Actions

  • <PY>ایجاد یک سرور Action</PY> <PY>Create an Action Server</PY>

  • <C++>ایجاد یک سرور Action</C++> <C++>Create an Action Server</C++>

  • <LAB>ایجاد یک سرور Action</LAB> <LAB>Create an Action Server</LAB>

  • <PY>ایجاد یک کلاینت Action</PY> <PY>Create an Action Client</PY>

  • <C++>ایجاد یک کلاینت Action</C++> <C++>Create an Action Client</C++>

  • <LAB>ایجاد یک کلاینت Action</LAB> <LAB>Create an Action Client</LAB>

  • برنامه‌ریز Nav2 Nav2 Planner

  • <LAB>nav2_planner</LAB> <LAB>nav2_planner</LAB>

  • <C++>برنامه‌ریز Nav2 Dijkstra</C++> <C++>Dijkstra Nav2 Planner</C++>

  • <C++>برنامه‌ریز Nav2 Dijkstra - پلاگین</C++> <C++>Dijkstra Nav2 Planner - Plugin</C++>

  • <LAB>برنامه‌ریز Nav2 Dijkstra</LAB> <LAB>Dijkstra Nav2 Planner</LAB>

  • <C++>برنامه‌ریز Nav2 A*</C++> <C++>A* Nav2 Planner</C++>

  • <C++>برنامه‌ریز Nav2 A* - پلاگین</C++> <C++>A* Nav2 Planner - Plugin</C++>

  • <LAB>برنامه‌ریز Nav2 A*</LAB> <LAB>A* Nav2 Planner</LAB>

  • هموارساز Nav2 Nav2 Smoother

  • <LAB>nav2_smoother</LAB> <LAB>nav2_smoother</LAB>

  • <C++>هموارسازی برنامه Dijkstra</C++> <C++>Smoothing Dijkstra Plan</C++>

  • <LAB>هموارسازی برنامه Dijkstra</LAB> <LAB>Smoothing Dijkstra Plan</LAB>

  • هموارسازی برنامه A Smoothing A* Plan

  • کنترلر Nav2 Nav2 Controller

  • <LAB>nav2_controller</LAB> <LAB>nav2_controller</LAB>

  • <C++>کنترلر Nav2 PD</C++> <C++>PD Nav2 Controller</C++>

  • <C++>کنترلر Nav2 PD - پلاگین</C++> <C++>PD Nav2 Controller - Plugin</C++>

  • <LAB>کنترلر Nav2 PD</LAB> <LAB>PD Nav2 Controller</LAB>

  • <C++>کنترلر Nav2 Pure Pursuit</C++> <C++>Pure Pursuit Nav2 Controller</C++>

  • <C++>کنترلر Nav2 Pure Pursuit - پلاگین</C++> <C++>Pure Pursuit Nav2 Controller - Plugin</C++>

  • <LAB>کنترلر Nav2 Pure Pursuit</LAB> <LAB>Pure Pursuit Nav2 Controller</LAB>

  • مدیر چرخه عمر Nav2 Nav2 Lifecycle Manager

  • <LAB>nav2_lifecycle_manager</LAB> <LAB>nav2_lifecycle_manager</LAB>

تصمیم‌گیری Decision Making

  • درخت‌های رفتاری Behavior Trees

  • گره‌های درخت رفتاری Behavior Tree Nodes

  • نحوه عملکرد Tick How tick works

  • Blackboard و پورت‌ها Blackboard and Ports

  • درخت‌های رفتاری Behavior Trees

  • Nav2 BT Navigator Nav2 BT Navigator

  • <LAB>nav2_bt_navigator</LAB> <LAB>nav2_bt_navigator</LAB>

  • <LAB>ایجاد یک درخت رفتاری</LAB> <LAB>Create a Behavior Tree</LAB>

  • <LAB>استفاده از درخت رفتاری برای ناوبری</LAB> <LAB>Use the Behavior Tree for Navigation</LAB>

  • <LAB>بهبود پلاگین‌های برنامه‌ریز و کنترلر</LAB> <LAB>Improve Planner and Controller Plugins</LAB>

  • <LAB>ناوبری به حالت با برنامه‌ریزی مجدد</LAB> <LAB>Navigate to Pose with Replanning</LAB>

  • رفتارهای Nav2 Nav2 Behaviors

  • مروری بر ناوبری خودکار Autonomous Navigation Overview

  • <LAB>nav2_behaviors</LAB> <LAB>nav2_behaviors</LAB>

  • <LAB>ناوبری به حالت با برنامه‌ریزی مجدد و بازیابی</LAB> <LAB>Navigate to Pose with Replanning and Recoveries</LAB>

ساخت ربات Build the Robot

  • <HWLAB>پیکربندی محیط توسعه در رزبری پای<HWLAB> <HWLAB>Configure the Development Environment in Raspberry Pi<HWLAB>

  • <HWLAB>نصب ROS 2 روی رزبری پای</HWLAB> <HWLAB>Install ROS 2 on Raspberry Pi</HWLAB>

  • <HWLAB>مونتاژ ربات - قسمت 1</HWLAB> <HWLAB>Assemble the Robot - Part 1</HWLAB>

  • <HWLAB>مونتاژ ربات - قسمت 2</HWLAB> <HWLAB>Assemble the Robot - Part 2</HWLAB>

  • <HWLAB>مونتاژ ربات - قسمت 3</HWLAB> <HWLAB>Assemble the Robot - Part 3</HWLAB>

  • <HWLAB>مونتاژ ربات - قسمت 4</HWLAB> <HWLAB>Assemble the Robot - Part 4</HWLAB>

  • <HWLAB>قوانین udev لینوکس</HWLAB> <HWLAB>Linux udev rules</HWLAB>

  • <HWLAB>ROS DOMAIN ID</HWLAB> <HWLAB>ROS DOMAIN ID</HWLAB>

  • <HWLAB>شروع کار با ربات واقعی</HWLAB> <HWLAB>Getting Started with the Real Robot</HWLAB>

  • <HWLAB>اجرای تمام عملکردها</HWLAB> <HWLAB>Launch all the Functionalities</HWLAB>

نتیجه‌گیری‌ها Conclusions

  • خلاصه Recap

  • بعدش چی؟ What's Next?

  • جایزه BONUS

نمایش نظرات

آموزش رانندگی خودران و ROS 2 - یادگیری عملی! برنامه ریزی و مسیریابی
جزییات دوره
28 hours
160
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
718
4.8 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Antonio Brandi Antonio Brandi

ربات مهندس ناوبری خودمختار