شبیه سازی شبکه پهپادی FANET با ابزار FlyNetSim تحت NS3

شبیه سازی شبکه پهپادی FANET با ابزار FlyNetSim تحت NS3

شبیه سازی شبکه پهپادی FANET با FlyNetSim تحت NS3

طبق توضیحات ارائه شده در صفحه رسمی FlyNetSim در گیت هاب، این ابزار در ابتدا بر روی یک سیستم تحت اوبونتو ۱۶٫۰۴ با نرم افزار شبیه ساز NS3.27 آزمایش شده است. البته نصب برخی از نسخه های قدیمی نرم افزار بر روی یک نوع جدید لینوکس ممکن است با مشکلات زیادی در سازگاری نسخه نرم افزار همراه باشد. علاوه بر این، نصب FlyNetSim تحت ماشین مجازی نیز ممکن است باعث عملکرد ضعیف سیستم شود. بنابراین در این مقاله آموزشی شبکه ما سعی می کنیم ابزار FlyNetSim را بر روی سیستم عامل دبیان مبتنی بر chroot نصب کنیم تا به عملکرد تقریباً بومی دست یابیم.

ابزار ArduPilot

ابزار ArduPilot یک سیستم خلبان خودکار قابل اعتماد، همه کاره و منبع باز است که از انواع وسایل نقلیه پشتیبانی می کند که شامل مالتی کوپتر (Multicopter) ، هلیکوپتر سنتی، هواپیمای بال ثابت، قایق، زیردریایی، مریخ نورد و غیره است[۳]. یک وسیله نقلیه با نصب سیستم ArduPilot می تواند با حالت خلبان خودکار هدایت شود تا از موانع حتی در حین مانور دستی وسیله نقلیه جلوگیری شود، و می توان حرکت وسیله نقلیه را با اتخاذ یک مسیر از پیش تعریف شده محدود کرد یا به آن اجازه داد فقط در یک جغرافیای مجازی حرکت کند. بنابراین فرض می شود که خودرویی که با ArduPilot کنترل می شود، مجهز به سنسورها و کنترل های استاندارد باشد.

شبیه ساز FlyNetSim

ابزار FlyNetSim یک شبیه ساز شبکه پهپادی است که با ترکیب نرم افزار شبیه ساز شبکه NS3 و نرم افزار شبیه ساز پهپاد مبتنی بر Ardupilot در حلقه با میان افزار سبک وزن مبتنی بر Pub/Sub ایجاد شده است [۱]. بنابراین FlyNetSim با تعامل با ArduPilot، تحرک واقعی شبکه های FANET را برای گره های پهپادی NS3 فراهم می کند. هدف کلی FlyNetSim این است که شبیه سازی و ارزیابی ازدحام های پهپاد در اکوسیستم های فناوری چند لایه ای مانند اینترنت اشیا شهری را فعال کند [۳].

شبیه سازی شبکه پهپادی FANET با ابزار FlyNetSim تحت NS3

نرم افزار های پیش نیاز

کد FlyNetSim در ابتدا بر روی یک سیستم اوبونتو نسخه ۱۶٫۰۴ با نرم افزار شبیه ساز NS3.27 آزمایش شده است. بنابراین تمام کتابخانه های پیش نیاز مربوطه باید قبل از نصب ns-3 و FlyNetSim نصب شوند. کتابخانه های اساسی مورد نیاز شامل Python2.7، pip، python-dev، gcc. هستند. همچنین FlyNetSim به برخی از نسخه های خاص czmq، libzmq، libczmq و libxml وابسته دارد.

نصب محیط Debian Chroot

این روش نصب بر اساس دبیان ۹ نسخه ۶۴ بیتی (استریت) است که پایه اصلی آن اوبونتو ۱۶٫۰۴ می باشد. در اینجا ما از Debian 9 استفاده کردیم که در محیط chroot نصب شده است.

مراحل نصب FlyNetSim

مرحله اول: نصب پیش نیاز ها و وابستگی ها

 

توجه: ممکن است لازم باشد که کتابخانه libzmq را به صورت دستی کلون و نصب کنید:

 

مرحله دوم: کلون FlyNetSim از مخزن GitHub

 

مرحله سوم: اجرای اسکریپت نصب کننده FlyNetSim

 

این اسکریپت ns-3.27 را دانلود کرده و FlyNetSim مورد نیاز را اعمال می کند. پچ ها و به روز رسانی ها اعمال شده و پیکربندی ns-3 و بیلد انجام می شود. در پایان یک کامپایل موفق ns-3.27 ماژول های جدید ساخته شده را نشان می دهد. اما ما هیچ ماژول جدیدی مربوط به FlyNetSim نمی بینیم. این بدان معناست که FlyNetSim به عنوان یک ماژول ns-3 ادغام نشده است.

شبیه سازی شبکه پهپادی FANET با ابزار FlyNetSim تحت NS3

اگر در مرحله wget اسکریپت نصب با خطای لایسنس (Certificate) مواجه شدید، با دانلود فایل مناسب در پوشه مربوطه و اجرای مجدد اسکریپت نصب می توان آن را حل کرد.

مرحله چهارم: دانلود و پیکربندی Ardupilot، dronekit و sitl

 

اسکریپت بالا برخی از ماژول های مرتبط با Autopilot که با ns-3 مرتبط نیستند را کلون می کند. تصویر زیر فرآیند کلون را نشان می دهد:

شبیه سازی شبکه پهپادی FANET با ابزار FlyNetSim تحت NS3

هنگام نصب این مورد در محیط chroot ممکن است با برخی از خطا های مربوط به chroot مواجه شویم:

شبیه سازی شبکه پهپادی FANET با ابزار FlyNetSim تحت NS3

ما ممکن است با پچ (وصله یا به روز رسانی) دستی شل اسکریپت نصب مناسب FlyNetSim/FlySim/fly_init.sh و FlyNetSim/FlySim/ardupilot/Tools/environment_install/install-prereqs-ubuntu.sh بر چنین خطا هایی غلبه کنیم تا در محیط chroot به درستی اجرا شوند. علاوه بر این، ممکن است قبل از اجرای install-prereqs-ubuntu.sh، نیاز به اجرای pip install –upgrade setuptools داشته باشد.

تصویر زیر یک خطای لایسنس را هنگام نصب ArduPilot و اجزای مرتبط با آن را نشان می دهد:

شبیه سازی شبکه پهپادی FANET با ابزار FlyNetSim تحت NS3

این خطای لایسنس را می توان با دانلود

 

در پوشه /opt و اجرای مجدد اسکریپت نصب برطرف کرد.

 

در این صورت ممکن است لازم باشد dronekit و dronekit-sitl و pyzmq را به صورت دستی نصب کنید:

 

تصویر زیر نصب موفقیت آمیز ArduPilot و اجزای مرتبط با آن را نشان می دهد:

شبیه سازی شبکه پهپادی FANET با ابزار FlyNetSim تحت NS3

مرحله پنجم: آزمایش نصب با اجرای شبیه سازی

 

اگر خطای مربوط به xml_path را دریافت کردید، می توانید مسیر صحیح را در فایل FlyNetSim.py به صورت زیر تنظیم کنید:

 

اگر همه چیز را به درستی نصب کرده باشید، دستور python FlyNetSim.py که در مرحله بالا تایپ کردید، موارد زیر را باز می کند:

شبیه سازی شبکه پهپادی FANET با ابزار FlyNetSim تحت NS3

اگر دکمه Arm فعال نیست، ممکن است لازم باشد از اسکریپت FlyNetSim_direct_no_ns3.py برای شروع شبیه سازی استفاده کنید.

نکته: بسیاری از شما باید پچ NS3 را در آن اسکریپت با توجه به مسیر نصب، ادیت کنید.

شبیه سازی شبکه پهپادی FANET با ابزار FlyNetSim تحت NS3

با کلیک بر روی دکمه Arm دکمه تیک آف فعال می شود و خروجی زیر را نشان می دهد:

شبیه سازی شبکه پهپادی FANET با ابزار FlyNetSim تحت NS3

منابع:

  • https://github.com/saburhb/FlyNetSim
  • Baidya, S., Shaikh, Z., Levorato, M. “FlyNetSim: An Open Source Synchronized UAV Network Simulator based on ns-3 and Ardupilot”. In Proceedings of the 21st ACM International Conference on Modeling, Analysis and Simulation of Wireless and Mobile Systems (ACM MSWiM).
  • https://ardupilot.org
  • https://www.projectguideline.com
مطالب مرتبط
ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است