خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

چگونه با LiDAR یک نقشه دو بعدی از اتاق خود ایجاد کنیم

با LiDAR یک نقشه دو بعدی از محل خود ایجاد کنید و دنیا را مانند یک جاروبرقی روباتی ببینید.

با توجه به دقت مورد نیاز در زمینه های مختلف مانند کشاورزی، باستان شناسی و حمل و نقل، لیزرها اغلب برای اهدافی مانند اجتناب از موانع، ساخت نقشه یا حتی ناوبری مستقل استفاده می شوند.

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

چیزهایی که برای اسکن اتاق خود نیاز دارید

پیش نیازهای زیر برای ایجاد یک نقشه دو بعدی از اتاق شما آمده است:

  • لپ تاپ یا رایانه شخصی که سرور اوبونتو را اجرا می کند
  • نصب ROS
  • یک LiDAR

LiDAR چیست؟

LiDAR یا تشخیص نور و محدوده، آن را می توان با نام دیگری نیز یافت، LADAR (تشخیص و محدوده لیزری) یک فناوری سنجش از راه دور فعال که فاصله را با استفاده از نور به شکل لیزر پالسی اندازه گیری می کند. این فناوری با تابش یک پالس نوری به هدف و اندازه‌گیری ویژگی‌های سیگنال بازگشتی بازتاب‌شده کار می‌کند.

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

اسکنر لیدار روی میز نشسته است

اتصال سیستم و اکتساب داده های لیزری

RPLIDAR A1، یک سنسور ارزان قیمت LiDAR مناسب برای کاربردهای روباتیک داخلی، در این مورد استفاده خواهد شد. دارای میدان اسکن 360 درجه، فرکانس چرخشی 5.5 هرتز/10 هرتز و فاصله رنجر 8 متر است. LiDAR دارای یک سیستم اسکنر برد، یک سیستم موتور و همچنین یک رابط ارتباطی (پورت سریال/USB) است.

این سیستم داده های فاصله را بیش از 2000 بار در ثانیه و با خروجی فاصله با وضوح بالا اندازه گیری می کند. در نتیجه، نیاز به استفاده از چندین ابزار برای پردازش و تجسم داده ها دارد. به عنوان مثال، می توانید از ابزار SlamTech RoboStudio یا بسته ارائه شده ROS استفاده کنید.

مطلب مرتبط:   12 برنامه نادیده گرفته شده ویندوز 10 و چرا باید آنها را امتحان کنید

یک Lidar در کنار یک کانکتور سریال به پورت USB

چرا ROS؟

ROS (سیستم عامل ربات) نرم افزاری است که توسط یک جامعه منبع باز جهانی از علاقه مندان به رباتیک استفاده می شود که به بهبود و در دسترس قرار دادن ربات ها برای همه اختصاص داده شده است. در ابتدا توسط اریک برگر و کینان وایروبک در دانشگاه استنفورد توسعه داده شد. ROS همچنین به شما امکان می دهد داده های حسگر را تجسم کنید، رابط ایجاد کنید و از ابزارهایی مانند Rviz و موتور شبیه سازی Gazebo استفاده کنید.

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

در این پروژه، شما از rplidar_ros، یک بسته ROS که به طور خاص برای جمع آوری داده های LiDAR طراحی شده است، استفاده خواهید کرد. بسته hector_slam بعداً برای ایجاد نقشه استفاده خواهد شد.

معماری و مفهوم سیستم عامل ربات

مرحله 1: نصب ROS

پس از نصب سرور اوبونتو، ترمینال خود را باز کرده و دستور زیر را اجرا کنید تا مطمئن شوید که فهرست بسته دبیان شما به روز است. تفاوت بین به روز رسانی و ارتقا قبلاً پوشش داده شده است.

sudo apt update

مرحله زیر نصب ROS است.

sudo apt install ros-noetic-desktop-full

شما می توانید ROS را با اجرای roscore آزمایش کنید، که به عنوان اثبات نصب صحیح عمل می کند.

roscore

مرحله 2: دریافت اولین اسکن

ابتدا دستور زیر را برای نصب بسته rplidar_ros اجرا کنید:

sudo apt-get install ros-noetic-rplidar-ros

بسته rplidar_ros شامل اسکریپت ها و فایل های راه اندازی مورد نیاز برای به دست آوردن و تجسم داده های اسکن LiDAR است.

هنگامی که نرم افزار خود را کامل کردید، LiDAR خود را از طریق درگاه USB به رایانه شخصی خود متصل کنید. LiDAR شروع به چرخش می کند، اما هیچ لیزری منتشر نمی کند مگر اینکه دستور زیر را اجرا کنید که یک فایل راه اندازی ROS را فراخوانی می کند.

مطلب مرتبط:   A500 Mini خود را بسازید: آمیگا را در Raspberry Pi تقلید کنید

roslaunch rplidar_ros rplidar.launch

با اجرای این دستور می توانید فواصل منعکس شده را که در موضوعی به نام /scan منتشر می شود، مشاهده کنید.

rostopic echo /scan

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

داده‌های خام Lidar با استفاده از دستور echo در یک ترمینال تجسم می‌شوند

برای تجسم آن داده ها، ترمینال دیگری را باز کنید، مطمئن شوید که ترمینال در حال اجرا دیگری را که داده ها را از اسکنر لیزری بازیابی می کند، نبندید و Rviz، ابزار تجسم را راه اندازی کنید.

rosrun rviz rviz

Fixed Frame را به Laser تغییر دهید، سپس روی دکمه add در گوشه سمت چپ پایین پنجره کلیک کنید و LaserScan را انتخاب کنید. در نهایت، موضوع LaserScan را بر روی /scan قرار دهید، و می‌توانید اسکن LiDAR خود را در زمان واقعی مشاهده کنید.

نتیجه اسکن لیزری زمان واقعی در Rviz مشاهده شد

اگر در اولین اسکن خود با مشکل مواجه هستید، ممکن است به این دلیل باشد که دستگاه شما مجاز به برقراری ارتباط داده ها از طریق سریال نیست. برای رفع این مشکل دستور زیر را اجرا کنید و سپس به مراحل قبلی ادامه دهید.

sudo chmod 777 /dev/ttyUSB0

مرحله 3: نقشه برداری را راه اندازی کنید

بعد از اینکه LiDAR خود را آزمایش کردید و تأیید کردید که به درستی کار می کند، گام بعدی این است که شروع به اسکن منطقه مورد نظر خود کنید. برای این کار، به یک بسته اضافی به نام Hector Slam (که در آن Slam مخفف “Simultaneous localization and mapping” است) نیاز دارید.

مانند قبل، دستور زیر را برای نصب آن بسته اجرا کنید:

sudo apt-get install ros-noetic-hector-slam

قبل از اجرای اسکن، چند پارامتر را مطابق شکل زیر تغییر دهید. با استفاده از دستور roscd عبارت tutorial.launch را در بسته hector_slam جستجو کنید.

مطلب مرتبط:   6 پروژه مفید حسگر Raspberry Pi که می توانید انجام دهید

roscd hector_slam_launch

دستور nano به شما امکان می دهد فایل خود را باز کرده و آن را ویرایش کنید.

nano tutorial.launch

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

sudo chmod 777 tutorial.launch

در اینجا نمونه ای از اجرا آمده است:

دستورات مورد استفاده برای ویرایش فایل راه اندازی tutorial.launch

گام بعدی این است که خطوط را مطابق شکل زیر تغییر دهید:

تغییر در فایل راه اندازی

مرحله آخر اجرای این خط است.

roslaunch hector_slam tutorial.launch

برای بهترین نتایج، LiDAR خود را به آرامی در اتاق خود حرکت دهید زیرا ایجاد نقشه در هنگام حرکت آهسته مؤثرتر است. می توانید مسیر خود را روشن کنید و تنظیمات اسکن لیزری را آزمایش کنید.

نتیجه اسکن اتاق در Rviz مشاهده شد

همانطور که در ویدیوی زیر نشان داده شده است، می توانید از SLAM داخلی برای اسکن کل خانه با استفاده از لپ تاپ و LiDAR استفاده کنید. نتایج را می توان با ادغام حسگرهای اضافی و سپس ترکیب داده ها از هر دو منبع بهبود بخشید.

مرحله 4: ذخیره و ویرایش نقشه شما

پس از پایان اسکن، دستور زیر را برای ذخیره نقشه اجرا کنید:

rostopic pub syscommand std_msgs/String "savegeotiff"

در این سناریو، imagemagick می تواند برای تبدیل نقشه به یک فایل تصویری PNG استفاده شود، هر دوی این دستورات را اجرا کنید تا نصب و تبدیل کامل شود.

sudo apt-get install imagemagick

convert scannedMap.pgm MyPngMap.png

از LiDAR بیشتر استفاده کنید

با استفاده از LiDAR و رایانه شخصی، می‌توانید اسکن دو بعدی را انجام دهید. شما می توانید اسکن خود را با اضافه کردن یک دوربین عمقی مانند Kinect و ادغام دو نوع داده جمع آوری شده بهبود ببخشید.

همین فناوری ممکن است در برخی از مدل‌های پیشرفته آیفون و آی‌پد وجود داشته باشد، جایی که LiDAR در ماژول دوربین در پشت دستگاه ادغام شده است و امکان توسعه نقشه‌های سه بعدی، اندازه‌گیری فاصله و برنامه‌های واقعیت افزوده را فراهم می‌کند.