آموزش ROS برای مبتدیان II: محلی سازی، ناوبری و SLAM

ROS for Beginners II: Localization, Navigation and SLAM

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: رویکردی کاربردی برای یادگیری پایه ربات های متحرک SLAM و Navigation با ROS مبانی نظری محلی سازی دو بعدی و سه بعدی تبدیل بین فریم ها در فضاهای دو بعدی و سه بعدی ویژگی قدرتمند پکیج tf برای نمایش فریم ها و انجام تبدیل و بومی سازی مبانی نظری محلی سازی و نقشه برداری (SLAM) پیشینه مفاهیم ناوبری (برنامه ریزی مسیر جهانی، برنامه ریزی مسیر محلی، اجتناب از برخورد) تفاوت بین ناوبری مبتنی بر نقشه و ناوبری واکنشی پشته ناوبری ROS (move_base، amcl، gmapping) پیش نیازها: دانش قبلی در مورد مفاهیم اولیه از سیستم عامل ربات (ROS) (الزامی) دانش در C++ و/یا زبان برنامه نویسی پایتون پیشینه مفاهیم جبر خطی، مثلثات و هندسه می خواهید ROS را یاد بگیرید مشتاق یادگیری ناوبری رباتیک

به روز رسانی

  • 9 اکتبر 2020: من دستورالعمل نصب Turtlebot3 را در ROS Noetic اضافه کردم

نمای کلی

محلی سازی، نقشه برداری و ناوبری موضوعات اساسی در سیستم عامل روبات (ROS) و روبات های متحرک هستند. با این حال، یادگیری بسیار پیچیده است. معمولا، مبتدیان حتی نمی دانند از کجا شروع کنند. آموزش‌های معمولی در ROS اطلاعات سطح بالایی در مورد نحوه اجرای گره‌های ROS برای انجام نقشه‌برداری و ناوبری می‌دهند، اما هیچ جزئیاتی در مورد جنبه‌های فنی ارائه نمی‌دهند. برخی از دوره‌های دیگر بیشتر بر جنبه‌های فنی تمرکز می‌کنند، که از نظر ریاضی پیچیده است، اما پیوند روشنی با نحوه پیوند این مفاهیم با پشته ناوبری ROS ارائه نمی‌دهد.

این دوره به این شکاف می پردازد و یک رویکرد عملی را دنبال می کند تا یادگیرندگان جدید را با مبانی ناوبری ربات موبایل و نحوه پیاده سازی آن در ROS آشنا کند. این دوره به گونه ای طراحی شده است که شما را با دنیای ناوبری ربات موبایل به شیوه ای سریع و موثر آشنا کند.

در این دوره، من پوشش مفصلی از مهمترین بسته ROS برای ناوبری ارائه کردم: بسته tf! بدون درک این بسته، درک عمیق نحوه عملکرد ناوبری در ROS دشوار خواهد بود. اگرچه آموزش های tf وجود دارد، بسته tf به شدت به مفاهیم نظری مهمی که در آموزش های ROS ارائه نشده است، متکی است. این دوره مقدمه ای سیستماتیک برای پیشینه نظری لازم و تکمیل فعالیت های نمایشی و برنامه نویسی ابزارهای بسته tf و API ارائه می دهد.

این دوره فرض می کند که شما پیش زمینه ای در زمینه مفاهیم اصلی سیستم عامل ربات (ROS) مانند گره های ROS، موضوعات ROS، خدمات ROS و درک مفهوم اساسی حرکت با ROS دارید. اگر این مهارت ها را ندارید، توصیه می کنم ابتدا در دوره ROS من برای مبتدیان ثبت نام کنید: Basics، Motion و OpenCV تا پیش زمینه لازم را به دست آورید.


تجربه من با ROS

من سال هاست که در پروژه های دانشگاهی و صنعتی با ROS برنامه نویسی می کنم. من بسیار مشتاق توسعه برنامه ها با ROS هستم. من همچنین ROS را در دانشگاه تدریس کرده ام و برنامه های آموزشی ارائه کرده ام. من مدیر R D Gaitech Robotics هستم و بسته‌های ROS زیادی برای روبات‌ها و پهپادها توسعه داده‌ام. من فعالیت‌های علمی بین‌المللی را در اطراف ROS رهبری کرده‌ام، و به‌ویژه، ویراستار پنج جلد کتاب با عنوان Robot Operating System، The Complete Reference با Springer هستم. من تجربیات زیادی در مورد مشکلاتی که کاربران جدید برای یادگیری ROS با آن مواجه می‌شوند به دست آوردم و همین امر باعث شد تا از طریق سخنرانی‌های مختلف این دوره، به درستی به نقطه پرداختن به این مشکلات پی ببرم.


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

بررسی اجمالی دوره Course Overview

  • این دوره در مورد چیست؟ What is this course about?

  • در مورد مربی About the instructor

  • [جدید] مهم: ROS Navigation و SLAM را نصب کنید [NEW] Important: Install ROS Navigation and SLAM

  • [جدید] مهم: دستورالعمل نصب TB3 [NEW] Important: Installation Instructions of TB3

  • [ROS Noetic] Turtlebot3 Simulator را نصب کنید [ROS Noetic] Install Turtlebot3 Simulator

  • محیط های شبیه سازی Turtlebot3 Turtlebot3 Simulation Enviornments

  • دمو ساده Turtlebot3 Simple Turtlebot3 Demo

  • کد را از مخزن GitHub دریافت کنید Get the code from GitHub Repository

  • نکته در مورد تنظیم مسیر برای ناوبری مبتنی بر نقشه Note about path setting for map-based navigation

  • پیوند به ماشین مجازی از پیش نصب شده Link to the pre-installed virtual machine

نسخه ی نمایشی معرفی ناوبری ROS ROS Navigation Introductive Demo

  • معرفی نسخه ی نمایشی ناوبری Navigation Demo Intro

  • نکته مهم در مورد نسخه ی نمایشی Important note about the demo

  • Turtlebot3 Simulator را راه اندازی کنید Start the Turtlebot3 Simulator

  • اگر در راه اندازی شبیه ساز Turtlebot3 مشکل دارید If you have a problem starting Turtlebot3 simulator

  • تنظیم مکان اولیه ربات Setting the initial location of the robot

  • قاب ها Frames

  • محل قرارگیری ربات در فریم های مختلف Location of the robot in different frames

  • جهت گیری در فضای سه بعدی چگونه نمایش داده می شود؟ How orientation is represented in 3D space?

  • مثال ناوبری Navigation Example

  • سوال عمومی در مورد نسخه نمایشی ناوبری General Question on the Navigation Demo

فریم های دوبعدی، تبدیل ها و محلی سازی 2D Frames, Transformations and Localization

  • بخش بررسی اجمالی و نتایج یادگیری Section Overview and Learning Outcomes

  • ژست یک ربات در یک قاب Pose of a robot in a frame

  • ژست یک ربات Pose of a robot

  • برخورد با فریم های متعدد Dealing with Multiple Frames

  • بررسی اجمالی تحولات Transformations Overview

  • ترجمه دو بعدی 2D Translation

  • چرخش دو بعدی 2D Rotation

  • ماتریس تحول عمومی: ترجمه + چرخش The General Transformation Matrix: Translation + Rotation

  • مثال گویا در مورد تبدیل دوبعدی Illustrative Example on 2D Transformation

  • تحولات دو بعدی 2D Transformations

فریم های سه بعدی، تبدیل ها و محلی سازی 3D Frames, Transformations and Localization

  • معرفی قاب سه بعدی 3D Frame Introduction

  • قانون دست راست The Right-Hand Rule

  • قاب ها و دگرگونی های سه بعدی 3D Frames and Transformations

  • مثال تبدیل سه بعدی 3D Transformation Example

جهت یابی در فضای سه بعدی Orientation in 3D Space

  • جهت گیری در فضای سه بعدی چگونه نمایش داده می شود؟ How orientation is represented in 3D Space?

  • نمایش سه زاویه The Three-Angle Representation

  • نمایندگی بردار دلخواه The Arbitrary Vector Representation

  • کواترنیون ها Quaternions

بسته TF: Frames، Transformations and Localization در ROS توضیح داده شده است The TF Package: Frames, Transformations and Localization in ROS Explained

  • نمای کلی بسته tf The tf package overview

  • TF در ROS چیست؟ What is TF in ROS?

  • URDF: زبانی برای توصیف فریم ها و تبدیل در یک مدل ربات URDF: Language for the Description of Frames and Transformation in a Robot Model

  • چرا TF مهم است؟ Why TF is important?

  • مروری بر ابزارهای پکیج tf Overview of tf package utilities

  • تبدیل جهت بین کواترنیون و Roll-Pitch-Yaw با استفاده از TF Convert Orientation between Quaternion and Roll-Pitch-Yaw using TF

  • خواندن انحراف یک ربات از جهت گیری آن در کواترنیون Reading the Yaw of a Robot from its Orientation in Quaternion

  • خط فرمان پکیج tf و ابزارهای کمکی The tf package command line and utilities

  • خط فرمان [PRE-ROS-NOETIC] view_frames [PRE-ROS-NOETIC] view_frames command line

  • [جدید در ROS Noetic] نکته در مورد view_frames [NEW in ROS Noetic] Note about view_frames

  • بیشتر در مورد view_frames more about view_frames

  • خط فرمان tf_echo tf_echo command line

  • خط فرمان tf_monitor tf_monitor command line

  • ناشر تبدیل استاتیک static transform publisher

  • یک تبدیل را در یک گره ROS پخش کنید Broadcast a transformation in a ROS Node

  • به یک تبدیل در یک گره ROS گوش دهید Listen to a transformation in a ROS Node

ناوبری مبتنی بر نقشه Map-based navigation

  • بررسی اجمالی ناوبری ربات موبایل Mobile Robot Navigation Overview

  • نمای کلی ناوبری مبتنی بر نقشه Map-based Navigation Overview

  • SLAM نمایش و بحث SLAM Demonstration and Discussions

  • ساختار Maps در ROS را درک کنید Understand the structure of Maps in ROS

  • گره های ROS و فایل راه اندازی مورد استفاده برای SLAM را درک کنید Understand ROS Nodes and Launch File used for SLAM

  • نسخه نمایشی ناوبری مبتنی بر نقشه Map-based Navigation Demo

  • رفتار بازیابی The Recovery Behavior

  • فایل راه اندازی ناوبری را درک کنید Understand the navigation launch file

  • نوشتن یک گره ROS برای ناوبری ربات (پایتون) Writing a ROS Node for Robot Navigation (Python)

  • رفتارهای بازیابی پشته ناوبری را درک کنید Understand the Recovery Behaviors of the Navigation Stack

  • راه اندازی ربات برای پشتیبانی از پشته ناوبری ROS Robot Setup to Support the ROS Navigation Stack

پیکربندی و تنظیم پارامترهای پشته ناوبری Configuration and Tuning of the Navigation Stack Parameters

  • تنظیم پشته ناوبری: بیان مشکل Navigation Stack Tuning: Problem Statement

  • تنظیم حداکثر/حداقل سرعت و شتاب ربات Tuning Max/Min Velocities and Accelerations of the Robot

  • تنظیم پارامتر Global Planner Global Planner Parameter Tuning

  • نمای کلی برنامه ریز مسیر محلی Local Path Planner Overview

  • الگوریتم رویکرد پنجره پویا (DWA). The Dynamic Window Approach (DWA) Algorithm

  • تنظیم زمان شبیه سازی الگوریتم DWA Tuning the Simulation Time of the DWA Algorithm

  • امتیازدهی مسیر DWA DWA Trajectory Scoring

  • تنظیم امتیازات مسیر DWA Tuning the DWA Trajectory Scores

ناوبری واکنشی Reactive Navigation

  • بررسی اجمالی Overview

  • نمای کلی اپلیکیشن فالوور Overview of the Follower Application

  • یک پخش کننده TF برای فریم های متصل به ربات ایجاد کنید Create a TF Broadcaster for the frames attached to the robot

  • شنونده TF برای فالوور TF Listener for the follower

  • الگوریتم های اشکال: بررسی اجمالی Bug Algorithms: Overview

  • رویکردهای BUG0، BUG1 و BUG2 BUG0, BUG1 and BUG2 Approaches

  • BUG0 را در ROS پیاده سازی کنید Implement the BUG0 in ROS

نمایش نظرات

آموزش ROS برای مبتدیان II: محلی سازی، ناوبری و SLAM
جزییات دوره
4.5 hours
76
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
8,480
4.5 از 5
دارد
دارد
دارد
Anis Koubaa
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Anis Koubaa Anis Koubaa

استاد علوم کامپیوتر