آموزش ROS2 برای مبتدیان (ROS Foxy، Humble - 2023)

ROS2 For Beginners (ROS Foxy, Humble - 2023)

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: به مبانی ROS2 مسلط شوید و به یک توسعه دهنده سیستم عامل روبات تبدیل شوید | گام به گام | برنامه نویسی رباتیک مفاهیم اصلی اصلی ROS2 ساختن یک برنامه ROS2 کامل از A تا Z استفاده از Robot Operating System 2 با هر دو ابزار Python و Cpp Discover ROS2 Tools و نحوه استفاده از آنها بهترین شیوه ها برای توسعه ROS2 را بیاموزید با بسیاری از فعالیت ها و پروژه نهایی ROS2 بسیار تمرین کنید. گره‌ها، موضوعات، سرویس‌ها، پارامترها، فایل‌های راه‌اندازی و موارد دیگر پیش نیازها: اصول برنامه‌نویسی در پایتون و/یا C++ برخی از اصول اولیه در برنامه‌نویسی شی گرا (OOP) مورد استقبال قرار می‌گیرند، اگرچه 100% اجباری نیستند. باید بدانید که چگونه از پایه استفاده کنید. دستورات در ترمینال و البته، تمایل شدید به یادگیری دقت: نیازی به دانستن چیزی در مورد ROS1 نیست!

در این دوره، من شما را گام به گام، در عرض چند ساعت، از یک مبتدی کامل به یک توسعه دهنده ROS2 می برم که می تواند برنامه های روباتیک مقیاس پذیر بنویسد.


→ شما در حال یادگیری ROS 2 از ابتدا هستید؟


و ممکن است از خود بپرسید: از کجا شروع کنیم؟ چگونه یاد بگیریم؟ اول چه باید کرد؟

وقتی برای اولین بار استفاده از سیستم عامل روبات را شروع کردم، پاسخ دادن به این سؤالات برای من واقعاً سخت بود. بنابراین، یادگیری ROS/ROS2 سخت بود. اما اگر با منابع مناسب یاد بگیرید، لزومی ندارد.

همچنین، چیزی که من متوجه شدم این است که وقتی مردم ROS2 را آموزش می دهند (در سال 2023)، اغلب در حال مقایسه با ROS1 هستند. اما، اگر ROS1 را نمی‌دانید چه می‌شود؟

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

ساختار دوره به گونه ای است که می توانید آن را یک مرحله در یک زمان دنبال کنید و هر آنچه را که نیاز دارید به ترتیب درست دریافت کنید. در پایان دوره، به اندازه کافی مطمئن خواهید بود که برنامه Robot Operating System 2 خود را راه اندازی کنید.


→ چگونه تدریس کنم؟


روش تدریس من در 3 نکته در اینجا آمده است:

  • گام به گام.

  • رفتن به نقطه.

  • تمرین، تمرین، تمرین.

همین. بدون چیزهای بیهوده و حواس پرتی، فقط چیزهای مهمی که برای ایجاد برنامه های ROS 2 نیاز دارید.

تجربه من با سیستم عامل Robot بسیار کاربردی است. من در واقع از آن برای ساخت یک بازوی رباتیک استفاده کردم که اکنون در بازار وجود دارد. پس چاره ای جز عملی بودن و رفتن سر اصل مطلب نداشتم. و این راهی است که من می خواهم به شما یاد بدهم.


→ بنابراین، چه چیزی را می خواهید یاد بگیرید؟


مفاهیم اصلی که در این دوره خواهید دید در اینجا آمده است:

  • نصب ROS2، فضای کاری، بسته‌ها، …

  • گره‌های ROS2

  • موضوعات ROS2

  • خدمات ROS2

  • پیام‌های سفارشی ROS2

  • پارامترهای ROS2

  • راه‌اندازی فایل‌های ROS2

  • ...

هر بخش/ماژول دوره بر یک مفهوم کلیدی ROS2 متمرکز است. برای هر مفهوم، دریافت خواهید کرد:

  • توضیح مفهوم، با زمینه، و چرا باید آن را یاد بگیرید.

  • ویدئوهای "نحوه" گام به گام (هم برای Python و هم برای Cpp).

  • یک فعالیت برای تمرین + ویدئوی راه حل دقیق.

  • یک خلاصه + دانلود کد از همه کارهایی که در بخش انجام دادیم.

من دوست دارم با سوال "چرا" شروع کنم، که برای من مهمترین سوالی است که می توانید بپرسید. اگر «چرا» را درک کنید، پس همه چیز بعد از آن معنا پیدا می‌کند، زیرا می‌دانید به کجا می‌روید و چرا به آنجا می‌روید.

من هم برای نوشتن همه کدها با شما وقت می گذارم. برخی از معلمان و مربیان دوست دارند مجموعه عظیمی از کدها را به شما نشان دهند و سپس به شما بگویند "خوب این کد آن را انجام می دهد". من شخصا این کار را نمی کنم. وقتی کد می نویسم، آن را به طور کامل با شما می نویسم و ​​توضیح می دهم که چرا چیزی را که می نویسم می نویسم.

در پایان دوره، شما این فرصت را خواهید داشت که با استفاده از شبیه سازی Turtlesim روی یک پروژه کامل کار کنید. این به شما کمک می کند تا در مورد هر چیزی که در دوره می بینید بیشتر تمرین کنید و این اولین پروژه واقعی شما از A تا Z خواهد بود.

در طول دوره، همچنین می‌آموزید که چگونه از ابزارهای ROS2 برای اشکال‌زدایی برنامه‌تان، نظارت بر آنچه در جریان است، و ساخت کدتان استفاده کنید.

با همه چیزهایی که یاد خواهید گرفت + بهترین روش هایی که به شما خواهم داد، آماده شروع هر پروژه ROS2 با یک پایه خوب خواهید بود.

بنابراین... چرا باید حدس بزنید چه چیزی را یاد بگیرید؟ اکنون با این دوره کامل و ساختاریافته شروع به یادگیری ROS2 کنید!


→ توجه - این دوره برای شما مناسب نیست اگر:

  • از قبل یک توسعه دهنده پیشرفته یا متخصص ROS2 هستید.

  • قبلاً از Python یا C++ استفاده نکرده‌ام.

  • همچنین، این راهنمای "ROS1 به ROS2" نیست. این دوره ای است که در آن شما ROS2 را از ابتدا و بدون نیاز به دانش ROS1 یاد می گیرید.


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

معرفی Introduction

  • خوش آمدی! Welcome!

  • ROS2 چیست، چه زمانی از آن استفاده کنیم و چرا؟ What is ROS2, When to use it, and Why?

  • چگونه از این دوره بیشترین بهره را ببرید How to get the most out of this course

ROS2 را نصب کنید و محیط خود را راه اندازی کنید Install ROS2 and Setup Your Environment

  • مقدمه Intro

  • از کدام توزیع ROS2 استفاده شود Which ROS2 Distribution to Use

  • [اگر از ROS2 Humble استفاده می کنید] اوبونتو 22.04 را روی یک ماشین مجازی (VirtualBox) نصب کنید. [If you use ROS2 Humble] Install Ubuntu 22.04 on a Virtual Machine (VirtualBox)

  • [اگر از ROS2 Foxy استفاده می کنید] اوبونتو 20.04 را روی یک ماشین مجازی (VirtualBox) نصب کنید. [If you use ROS2 Foxy] Install Ubuntu 20.04 on a Virtual Machine (VirtualBox)

  • ابزارهای برنامه نویسی که در این دوره استفاده خواهم کرد Programming Tools I Will Use During this Course

  • [اگر از ROS2 Humble استفاده می کنید] ROS2 Humble را در اوبونتو 22.04 نصب کنید [If you use ROS2 Humble] Install ROS2 Humble on Ubuntu 22.04

  • [اگر از ROS2 Foxy استفاده می کنید] ROS2 Foxy Fitzroy را در اوبونتو 20.04 نصب کنید [If you use ROS2 Foxy] Install ROS2 Foxy Fitzroy on Ubuntu 20.04

  • محیط خود را برای ROS2 تنظیم کنید Setup your Environment for ROS2

  • یک برنامه ROS2 راه اندازی کنید! Launch a ROS2 Program!

  • بخش نتیجه گیری Section Conclusion

اولین برنامه ROS2 خود را بنویسید Write Your First ROS2 Program

  • مقدمه Intro

  • ابزار ساخت ROS2 - Colcon را نصب کنید Install the ROS2 build tool - Colcon

  • یک فضای کاری ROS2 ایجاد کنید Create a ROS2 Workspace

  • یک بسته پایتون ایجاد کنید Create a Python Package

  • یک بسته C++ ایجاد کنید Create a C++ Package

  • گره ROS2 چیست؟ What is a ROS2 Node?

  • یک گره پایتون - کد حداقلی بنویسید Write a Python Node - Minimal Code

  • یک گره پایتون بنویسید - با OOP Write a Python Node - With OOP

  • یک گره ++C بنویسید - کد حداقل Write a C++ Node - Minimal Code

  • یک گره C++ بنویسید - با OOP Write a C++ Node - With OOP

  • الگوی OOP برای گره های شما OOP Template for Your Nodes

  • اطلاعات بیشتر در مورد کتابخانه های مشتری ROS2 برای زبان های مختلف More about the ROS2 Client Libraries for Different Languages

  • بخش نتیجه گیری Section Conclusion

مقدمه ای بر ابزار ROS2 Introduction to ROS2 Tools

  • مقدمه Intro

  • اشکال زدایی و نظارت بر گره های خود با ros2 cli Debug and Monitor Your Nodes With ros2 cli

  • تغییر نام یک گره در زمان اجرا Rename a Node at Runtime

  • روده بزرگ Colcon

  • Rqt و rqt_graph Rqt and rqt_graph

  • Turtlesim را کشف کنید Discover Turtlesim

  • فعالیت 001 Activity 001

  • فعالیت 001 - راه حل Activity 001 - Solution

  • بخش نتیجه گیری Section Conclusion

موضوعات ROS2 - کاری کنید که گره های خود بین یکدیگر ارتباط برقرار کنند ROS2 Topics - Make Your Nodes Communicate Between Each Other

  • مقدمه Intro

  • موضوع ROS2 چیست؟ What is a ROS2 Topic?

  • یک ناشر پایتون بنویسید Write a Python Publisher

  • یک مشترک پایتون بنویسید Write a Python Subscriber

  • یک ناشر C++ بنویسید Write a C++ Publisher

  • یک مشترک C++ بنویسید Write a C++ Subscriber

  • عیب‌یابی موضوعات ROS2 با ابزارهای خط فرمان Debug ROS2 Topics with Command Line Tools

  • Remap یک موضوع در زمان اجرا Remap a Topic at Runtime

  • مانیتور موضوعات با rqt و rqt_graph Monitor Topics With rqt and rqt_graph

  • روی موضوعات با Turtlesim آزمایش کنید Experiment on Topics with Turtlesim

  • فعالیت 002 - موضوعات ROS2 Activity 002 - ROS2 Topics

  • فعالیت 002 - راه حل [1/2] Activity 002 - Solution [1/2]

  • فعالیت 002 - راه حل [2/2] Activity 002 - Solution [2/2]

  • بخش نتیجه گیری Section Conclusion

خدمات ROS2 - ارتباط مشتری/سرور بین گره ها ROS2 Services - Client/Server Communication Between Nodes

  • مقدمه Intro

  • سرویس ROS2 چیست؟ What is a ROS2 Service?

  • یک سرور سرویس پایتون بنویسید Write a Python Service Server

  • یک سرویس گیرنده پایتون بنویسید - بدون OOP Write a Python Service Client - no OOP

  • یک سرویس گیرنده پایتون بنویسید - OOP Write a Python Service Client - OOP

  • یک سرور سرویس C++ بنویسید Write a C++ Service Server

  • یک سرویس گیرنده C++ بنویسید - بدون OOP Write a C++ Service Client - no OOP

  • یک سرویس گیرنده C++ بنویسید - OOP Write a C++ Service Client - OOP

  • خدمات اشکال زدایی با ابزار ROS2 Debug Services with ROS2 Tools

  • نقشه مجدد یک سرویس در زمان اجرا Remap a Service at Runtime

  • خدمات را با Turtlesim آزمایش کنید Experiment on Services with Turtlesim

  • فعالیت 003 - خدمات ROS2 Activitiy 003 - ROS2 Services

  • فعالیت 003 - راه حل Activity 003 - Solution

  • بخش نتیجه گیری Section Conclusion

ایجاد رابط های سفارشی ROS2 (Msg و Srv) Create Custom ROS2 Interfaces (Msg and Srv)

  • مقدمه Intro

  • رابط های ROS2 چیست؟ What are ROS2 Interfaces?

  • اولین پیام سفارشی خود را ایجاد و بسازید Create and Build Your First Custom Msg

  • از پیام سفارشی خود در گره پایتون استفاده کنید Use Your Custom Msg in a Python Node

  • از پیام سفارشی خود در یک گره Cpp استفاده کنید Use Your Custom Msg in a Cpp Node

  • اولین Srv سفارشی خود را ایجاد و بسازید Create and Build Your First Custom Srv

  • اشکال زدایی پیام و Srv با ابزار ROS2 Debug Msg and Srv With ROS2 Tools

  • فعالیت 004 - رابط های سفارشی ROS2 Activity 004 - ROS2 Custom Interfaces

  • فعالیت 004 - راه حل [1/3] Activity 004 - Solution [1/3]

  • فعالیت 004 - راه حل [2/3] Activity 004 - Solution [2/3]

  • فعالیت 004 - راه حل [3/3] Activity 004 - Solution [3/3]

  • بخش نتیجه گیری Section Conclusion

تنظیمات Node را در زمان اجرا با پارامترهای ROS2 تغییر دهید Change Node Settings at Runtime with ROS2 Parameters

  • مقدمه Intro

  • پارامتر ROS2 چیست؟ What is a ROS2 Parameter?

  • پارامترهای خود را اعلام کنید Declare Your Parameters

  • پارامترها را از گره پایتون دریافت کنید Get Parameters from a Python Node

  • پارامترها را از یک گره C++ دریافت کنید Get Parameters from a C++ Node

  • فعالیت 005 - پارامترهای ROS2 Activity 005 - ROS2 Parameters

  • فعالیت 005 - راه حل [1/2] Activity 005 - Solution [1/2]

  • فعالیت 005 - راه حل [2/2] Activity 005 - Solution [2/2]

  • بخش نتیجه گیری Section Conclusion

برنامه خود را با فایل های راه اندازی ROS2 مقیاس کنید Scale Your Application With ROS2 Launch Files

  • مقدمه Intro

  • فایل راه اندازی ROS2 چیست؟ What is a ROS2 Launch File?

  • یک فایل راه اندازی ایجاد و نصب کنید Create and Install a Launch File

  • گره های خود را در یک فایل راه اندازی پیکربندی کنید Configure Your Nodes in a Launch File

  • فعالیت 006 - فایل های راه اندازی ROS2 Activity 006 - ROS2 Launch Files

  • فعالیت 006 - راه حل Activity 006 - Solution

  • بخش نتیجه گیری Section Conclusion

پروژه کامل با Turtlesim Complete Project With Turtlesim

  • پروژه Turtlesim - نتیجه ای که در پایان خواهید گرفت Turtlesim Project - The Result You'll Get at the End

  • چالش شما Your Challenge

  • چند نکته برای شروع Some Tips to Get Started

  • راه حل پروژه [1/6] Project Solution [1/6]

  • راه حل پروژه [2/6] Project Solution [2/6]

  • راه حل پروژه [3/6] Project Solution [3/6]

  • راه حل پروژه [4/6] Project Solution [4/6]

  • راه حل پروژه [5/6] Project Solution [5/6]

  • راه حل پروژه [6/6] Project Solution [6/6]

  • نتیجه گیری پروژه Project Conclusion

اضافی Extra

  • داده های موضوع را با کیسه های ROS2 ذخیره و پخش کنید Save and Replay Topic Data with ROS2 Bags

نتیجه Conclusion

  • آنچه شما آموخته اید What You've Learned

  • کار بعدی چیه؟ چگونه درباره ROS2 بیشتر بیاموزیم؟ What to do next? How to learn more about ROS2?

  • سخنرانی پاداش Bonus Lecture

نمایش نظرات

آموزش ROS2 برای مبتدیان (ROS Foxy، Humble - 2023)
جزییات دوره
11.5 hours
105
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
7,192
4.7 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Edouard Renard Edouard Renard

مهندس نرم افزار و مدرس رباتیک