• اولین مرجع آموزش رآس در ایران
  • info@iranros.com
wikiros-minwikiros-minwikiros-minwikiros-min
  • ایران رآس
  • ROS
    • پیش نیازهای شروع ROS
      • بررسی مفاهیم، اطلاعات فنی
      • نصب ROS برای تمام توزیع‌ها
      • برای آموزش ROS از کجا شروع کنیم؟
      • آموزش ROS
      • واژه‌نامه ROS
    • آموزش گام به گام
      • پیش‌نیازهای ROS
      • آموزش مقدماتی ROS
      • آموزش سطح متوسط
    • .
    • .
  • Software
    • نمایشگر سه‌بعدی (Rviz)
    • شبیه‌ساز گزبو Gazebo
    • نرم افزار moveit
  • Robots
    • Robots
      • ربات‌های پرکاربرد در ROS
        • ربات‌های زمینی
      • حسگرهای پرکاربرد در ROS
      • موتورهای پرکاربرد در ROS
  • publications
  • ایران رآس
  • ROS
    • پیش نیازهای شروع ROS
    • آموزش گام به گام
    • .
    • .
  • Software
    • نمایشگر سه‌بعدی (Rviz)
    • شبیه‌ساز گزبو Gazebo
    • نرم افزار moveit
  • Robots
    • Robots
  • publications
مفهوم service و parameters در ROS
گام ششم : مفهوم service و parameters در ROS
دسامبر 17, 2018
گام هشتم : ایجاد فایل‌های msg و srv در ROS
دسامبر 21, 2018

گام هفتم : مفهوم launch فایل‌ها در ROS

Categories
  • آموزش مقدماتی ROS
Tags
  • launch
  • roslaunch
  • فایل لانچ
در ROS این امکان وجود دارد که چندین نود را همزمان اجرا نمایید. این مفهوم که همزمان چند نود را اجرا کنید در ROS تحت عنوان Launch فایل شناخته می‌شود.

مفهوم launch فایل‌ها در ROS

مفهوم launch فایل‌ها در ROS : اگر بخواهیم مروری بر آنچه تا الآن درباره  ROS آموخته‌ایم، داشته‌ باشیم، می‌توان این‌گونه بیان کرد که بعد از ساختن محیط‌کاری در ROS یک بسته با نام beginner_tutorials ایجاد کردید. همچنین بسته‌ی turtlebot را نصب نمودید و نودهای لاک‌پشت را اجرا کردید. مشاهده نمودید که این لاک‌پشت را می‌توانید با استفاده از صفحه‌کلید و اجرای نود مربوطه، به حرکت درآورد.

اگر دقت کرده باشید نیاز بود تا نودها را تک‌تک اجرا کنید. حال فرض کنید که ربات A که دارای سطح کنترل پیشرفته‌ای است و شما قصد طراحی آن را دارید شامل چندین نود دیگر علاوه بر کنترل موقعیت و سرعت نیز هست.

طبق معمول نیاز هست تا شما تک‌تک این نودها را با دستور rosrun اجرا نماید. این کار خسته‌کننده است. در ROS این امکان وجود دارد که چندین نود را همزمان اجرا نمایید. این مفهوم که همزمان چند نود را اجرا کنید در ROS تحت عنوان Launch فایل شناخته می‌شود.

launch فایل‌ها عموماً برای راحتی کاربران ایجادشده‌اند. اگر بخواهیم همان مثال لاک‌پشت‌ که با اجرای نود مربوط به آن پنجره‌ای باز می‌شد را برای دو لاک‌پشت به‌صورت همزمان اجرا نماییم، باید از فایل launch برای اجرا استفاده کنیم. حال می‌خواهیم یک فایل لانچ ایجاد و آن را اجرا کنیم.

برای ایجاد لانچ فایل به ترتیب مراحل زیر را باید اجرا نمود:

مرحله اول، ایجاد Launch فایل:

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

roscd beginner_tutorials

بعد از اجرای دستور بالا باید وارد بسته‌ی نصب‌شده در مراحل قبل شوید. درصورتی‌که با خطایی مواجه شدید یکی از دلایل آن می‌تواند عدم source خط فرمان باشد که باید این کار را مطابق آموزش ارائه‌شده و یا مطابق زیر انجام دهید:

cd ~/catkin_ws
source devel/setup.bash
roscd beginner_tutorials

حال دایرکتوری مناسب را برای فایل‌های لانچ ایجاد نمایید:

mkdir launch
cd launch

دقت کنید که لزومی ندارد شما حتماً نام دایرکتوری را launch بگذارید و فایل‌های لانچ را در آنجا قرار دهید؛ اما نیاز است تا شما از همین ابتدا به‌درستی و همان استانداردهای تعریف‌شده توسط ROS بسته‌های خود را ایجاد کنید.
توجه : توصیه تیم ایران ROS نام‌گذاری با همین فرمت است.

حال داخل پوشه‌ای که ایجاد نمودید بروید و یک فایل با نام turtlemimic.launch ایجاد کنید سپس دستورات زیر را درون آن وارد نمایید.

<launch>
 <group ns="turtlesim1">
 <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
 </group>

 <group ns="turtlesim2">
 <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
 </group>

 <node pkg="turtlesim" name="mimic" type="mimic">
 <remap from="input" to="turtlesim1/turtle1"/>
 <remap from="output" to="turtlesim2/turtle1"/>
 </node>
</launch>

همان‌طور که مشاهده می‌کنید لانچ فایل‌ها درواقع یک ساختار xml دارند. البته تگ‌ها متناسب با موارد تعریف‌شده در ROS هستند. در مثال بالا می‌خواستیم تا دو لاک‌پشت ایجاد شوند؛ اما این نکته را مدنظر داشتیم که نام‌های آن‌ها با یکدیگر متفاوت باشد تا بتوانیم دستورات مجزا را به آن‌ها بدهیم.

برای اینکه دو ربات را از یکدیگر مجزا سازیم باید از namespace استفاده کرد. همان‌طور که می‌بینید مثلاً برای لاک‌پشت اول داخل تگ group، از دستور ns به همراه نام دلخواه که در اینجا turtlesim1 است استفاده شده است.

در مورد namespace بعداً توضیحات مفصلی ارائه خواهد شد. بعد از نود مربوط به group نود mimic نیز در لانچ وجود دارد این نود به‌منظور تقلید کردن یک لاک‌پشت توسط دیگری تعریف‌شده است. این نود شامل یک ورودی و یک خروجی به نام‌های turtlesim1 و turtlesim2 است. با این نام‌گذاری درواقع ربات  turtlesim2 لاک‌پشت turtlesim1 را دنبال می‌کند.

مرحله دوم، اجرای Launch فایل  ایجاد شده:

اجرای فایل launch ایجادشده توسط دستور roslaunch، این دستور به‌صورت زیر وارد کنید:

roslaunch beginner_tutorials turtlemimic.launch

همان‌طور که مشاهده می‌کنید این دستور درواقع به‌صورت کلی برای تمام launch فایل‌ها در فرمت زیر خواهد بود:

roslaunch [package] [filename.launch]

بنابراین اگر شما می‌خواهید تا لانچ فایل مربوط به یک پکیج خاص را اجرا نمایید از دستور بالا استفاده نمایید.

مرحله آخر، ارسال فرمان سرعت :

در این گام نیاز است تا به لاک‌پشت لیدر فرمان سرعت را بدهید. این فرمان را مطابق بخش مفهوم topic در ros به‌صورت زیر وارد نمایید:

rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'

در این صورت درنهایت شما تصاویری مطابق زیر را مشاهده خواهید کرد:

Share
8

Related posts

مارس 16, 2020

نصب ROS بر روی ویندوز ۱۰


Read more
سپتامبر 20, 2019

گام سیزدهم: نوشتن یک service و client ساده (Python)


Read more
سپتامبر 19, 2019

گام دوازدهم: نوشتن یک service و client ساده (C++)


Read more

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آموزش سیستم عامل رباتیک ROS

  • پیش‌نیازهای شروع ROS
    • نصب Ubuntu در کنار ویندوز به صورت Dual Boot
    • نحوه نصب اوبونتو بر روی VMware در ویندوز ۱۰
    • اشتراک اطلاعات بین ویندوز و ماشین مجازی(VMware)
    • راه اندازی و تنظیمات اولیه Ubuntu جهت کار با ROS
    • نصب ROS
  • آموزش مقدماتی ROS
    • گام اول: نصب و پیکربندی محیط ROS
    • گام دوم: آدرس دهی در ROS
    • گام سوم: ایجاد بسته در ROS
    • گام چهارم :مفهوم Node در ROS
    • گام پنجم : مفهوم تاپیک در ROS
    • گام ششم : مفهوم service و parameters در ROS
    • گام هفتم : مفهوم launch فایل‌ها در ROS
    • گام هشتم : ایجاد فایل‌های msg و srv در ROS
    • گام نهم: مفهوم Publisher-Subscriber در ROS به زبان ++C
    • گام دهم: مفهوم Publisher-Subscriber در ROS به زبان python
    • گام یازدهم: ضبط و بازپخش داده‌ها در ROS
    • گام دوازدهم: نوشتن یک service و client ساده (C++)
    • گام سیزدهم: نوشتن یک service و client ساده (Python)
  • آموزش سطح متوسط ROS
    • ساخت یک پکیج به صورت دستی
    • مدیریت وابستگی‌های سیستم
    • تعریف پیام های سفارشی در ROS
    • مقدمه‌ای بر شبیه‌ ساز گزبو Gazebo
    • مقدمه‌ای بر RVIZ نمایشگر سه‌بعدی

ربات‌ها

  • ربات‌های زمینی
    • ربات TIAGo
    • TurtleBot
  • ربات‌های هوایی
  • بازوهای رباتیک
  • ربات‌های دریایی

برچسب‌ها

  • ;hvhdd fhgh
  • A Gentle Introduction to ROS
  • actor
  • actor_Gazebo
  • ajk nv vhs
  • bash
  • C++
  • ca tvhsd v
  • catkin
  • chmode

Google-fomrs

ایران رآس، اولین مرجع آموزش و توسعه ROS در ایران

سایت ایران رآس با بهره گیری از متخصصین حوزه رباتیک به تولید محتوای آموزشی پرداخته و آنها را در اختیار کاربران قرار می­دهد . همچنین متخصصین ما این آمادگی را دارند تا به موسسات و مراکزی که قصد ورود به دنیای رآس را دارند مشاوره های تخصصی داده و برای آنها دوره های آموزشی خصوصی برگزار کند.


درباره ما تماس با ما قوانین و مقررات ثبت شکایات
  • پیش نیازهای ROS
  • آموزش مقدماتی ROS
  • آموزش سطح متوسط ROS
  • کتاب آموزش ROS
  • نرم افزارها
  • ربات‌ها
© تمام حقوق مادی و معنوی برای ایران رآس محفوظ است.
  • No translations available for this page