• اولین مرجع آموزش رآس در ایران
  • 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
افزودن مدل انسان به گزبو (Gazebo)
افزودن مدل انسان به گزبو (Gazebo)
اکتبر 26, 2019
ربات متحرک TIAGo
ربات TIAGo
نوامبر 1, 2019

ارتباط MATLAB و ROS

Categories
  • آموزش جامع ROS
  • آموزش سطح متوسط ROS
Tags
  • communication
  • interface
  • ROS Network
  • ros-matlab
  • simulink-ros
  • رآس و سیمولینک
  • رآس-متلب

ارتباط MATLAB و  ROS

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

بیایید ابتدا دلایلی که ما را ترغیب می‌کند تا این ارتباط را برقرار کنیم بررسی کنیم.

  • بی شک متلب یک نرم‌افزار محاسباتی قدرتمند است که با امکانات و تولباکسهای متنوعی که دارد کار برنامه‌نویسی و پیاده‌سازی الگوریتم‌های گوناگون را آسان کرده است. در حوزه رباتیک نیز سیمولینک و تولباکس‌های کنترلی متلب بسیار کارگشاست. لذا ممکن است برای بسیاری از افراد، پیاده سازی اولیه الگوریتم مورد نظرشان و رفع عیب آن با متلب منطقی‌تر به‌نظر برسد.
  • یکی از مشکلاتی که همواره محققین با آن درگیر بوده‌اند مسئله شبیه‌سازی دینامیکی مدل مورد مطالعه هست که معمولاً وقت زیادی از آنها می‌گیرد. این درحالی است که در ROS ربات‌های بسیار زیادی با دقت بسیار خوبی مدل‌سازی شده‌اند و همچنین ROS شبیه ساز قدرتمندی به نام Gazebo در اختیار دارد که رفتارهای دینامیکی در آن تعریف شده است و نیازی به کدنویسی‌های پیچیده برای رفتارهایی نظیر برخورد و مقامت هوا و … نیست.
  • دیدن یک نمای گرافیکی مناسب از مدل در حین اجرای الگوریتم نیز یکی از مواردی است که کمک زیادی به تشخیص صحت عملکرد الگوریتم‌ها و کنترل‌کننده‌های طراحی شده می‌کند که رسیدن به این خواسته در متلب معمولاً دشوار است. اما در ROS نمایش گرافیکی مدل به آسانی توسط Gazebo قابل دسترس است.
  • ممکن است شما قبلاً الگوریتمی را در متلب پیاده‌سازی کرده باشید و حالا که با ROS آشنا شده‌اید دوست دارید تا آن را بر روی ربات‌های شبیه‌سازی شده در ROS تست کنید اما تسلط کافی به زبان C++ یا پایتون برای تبدیل کدهایتان ندارید، از این‌رو ارتباط متلب و ROS برای شما خوشایند خواهد بود.

تا اینجا برخی از دلایلی که ممکن است این ارتباط را توجیه کند برشمردیم. حالا می‌رویم سراغ اصل مطلب.

خب ممکن است این سوال برای شما پیش آمده باشد که این ارتباط در چه حالتهایی ممکن است ایجاد شود؟

در جواب باید گفت که شما در سه حالت زیر ممکن است که متلب و ROS را در اختیار داشته باشید:

  1. سیستم عامل شما ویندوز است و متلب را روی آن نصب کرده‌اید و برای ROS از ماشین مجازی استفاده می‌کنید.
  2. از سیستم عامل Ubuntu استفاده می‌کنید و علاوه بر ROS نسخه لینوکس متلب را نیز نصب کرده‌اید.
  3. شما از دو کامپیوتر مجزا استفاده می‌کنید که متلب روی یکی از آنها و ROS روی دیگری قرار دارد.

شما از هر کدام از موارد بالا که استفاده می‌کنید تفاوتی ندارد چرا که در هر سه حالت فوق می‌توان بین متلب و رآس ارتباط برقرار کرد.

توجه داشته باشید که این قابلیت از نسخه ۲۰۱۶ به بعد در متلب وجود دارد.

مراحل کار در سه حالت فوق مشابه هم هست و تفاوت چندانی با هم ندارد. ما در اینجا حالت اول را درنظر می‌گیریم.

ابتدا ماشین مجازی خودتان (نظیر VMware) که ROS روی آن نصب است را باز کنید.

آموزش نصب ubuntu روی ماشین مجازی

آموزش نصب ROS

یک ترمینال جدید باز کرده و دستور زیر را در آن وارد کنید.

ifconfig

با اجرای این دستور باید اطلاعات شبکه مربوط به سیستم عامل شما، همانند تصویر زیر، نشان داده می‌شود.

توجه: اگر با اجرای دستور فوق خروجی مانند شکل بالا مشاهده نکردید از دستور ifconfig –a استفاده کنید.

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

گام بعدی تنظیم دو متغیر محیطی  ROS_MASTER_URI و  ROS_HOSTNAME در ROS است.

echo export ROS_MASTER_URI=http://IP_OF_VM:11311 >> ~/.bashrc
echo export ROS_HOSTNAME=IP_OF_VM >> ~/.bashrc

که در آن به جای IP_OF_VM باید IP ماشین مجازی خودتان که قبلاً به دست آوردید قرار بگیرد. به عنوان مثال این دستورات برای سیستم ما به صورت زیر خواهد بود.

echo export ROS_MASTER_URI=http://192.168.154.144:11311 >> ~/.bashrc
echo export ROS_HOSTNAME=192.168.154.144 >> ~/.bashrc

این دستورات درواقع دو خط زیر را در فایل bashrc قرار می‌دهد. (اگر به فایل bashrc مراجعه کنید این دو خط را مشاهده خواهید کرد).

export ROS_MASTER_URI=http://192.168.154.144:11311 
export ROS_HOSTNAME=192.168.154.144 

شما همچنین می‌توانستید به صورت مستقیم این دو خط را به انتهای فایل bashrc اضافه کنید.

حال برای اطمینان از صحت تنظیم این دو متغیر دستورات زیر را در ترمینال وارد کنید.

 echo $ROS_MASTER_URI
 echo $ROS_HOSTNAME

اگر خروجی مشابه زیر مشاهده کردید، این تنظیمات به درستی انجام شده است.

گام بعدی شناساندان این IP آدرس به متلب است. برای این کار در صورتی که متلب و ROS  هر دو بر روی یک سیستم نصب شده باشند تنها با وارد کردن دستور زیر در متلب و قرار دادن IP موردنظر در آن ارتباط متلب و ROS  برقرار می­شود.

ipaddress='192.168.154.144 ';
rosinit(ipaddress);

در صورتی که مراحل بالا به درستی انجام شده باشد با پیغامی مشابه زیر رویرو خواهید شد.

Initializing global node /matlab_global_node_38658 with NodeURI http:// 192.168.154.144.251:60724/

درصورتی که از دو سیستم مجزا استفاده می­کنید و روی یک سیستم ROS و روی دیگری متلب را اجرا می­کنید، ابتدا از ایجاد ارتباط بین دو سیستم چه از طریق وایرلس و یا کابل LAN مطمئن شوید سپس دستور فوق را اجرا کنید.

برای اطمینان از اتصال دو سیستم به یکدیگر می­توانید در محیط cmd ویندوز IP موردنظر را ping کنید، اگر خروجی مشابه زیر بود اتصال به درستی برقرار شده است.

درصورتی‌که از ماشین مجازی استفاده می‌کنید نیز می­توانید به­صورت فوق عمل کنید. همچنین با وارد کردن دستور ipconfig در cmd خروجی مشابه زیر را مشاهده خواهید کرد که در آن بایستیIP ماشین مجازی شما نمایش داده شود.

شروع کار با متلب

نحوه ارتباط نودها در ROS مطابق شکل زیر است.

در ادامه برای استفاده از متلب، ابتدا باید هسته ROS در اوبونتو فراخوانی شود، برای این منظور می­توان از دستور roscore استفاده کرد یا اینکه پروژه موردنظر را توسط فایل لانچ فراخوانی کرد.

برای مشاهده تاپیک­های موجود می‌توان از دستور rostopic list در متلب استفاده کرد که با اجرای این دستور در متلب خروجی مشابه با اجرای در ترمینال لینوکس مشاهده خواهید کرد.

Share
6

Related posts

ژوئن 10, 2021

آشنایی با افزونه‌ها در Gazebo


Read more
مارس 25, 2021

کتابخانه tf در ROS


Read more
مارس 16, 2020

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


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