با LiDAR یک نقشه دو بعدی از محل خود ایجاد کنید و دنیا را مانند یک جاروبرقی روباتی ببینید.
با توجه به دقت مورد نیاز در زمینه های مختلف مانند کشاورزی، باستان شناسی و حمل و نقل، لیزرها اغلب برای اهدافی مانند اجتناب از موانع، ساخت نقشه یا حتی ناوبری مستقل استفاده می شوند.
بیایید به LiDAR ها، نحوه عملکرد آنها و نحوه استفاده از آنها برای ایجاد یک نقشه دو بعدی از فضای خود نگاه کنیم.
چیزهایی که برای اسکن اتاق خود نیاز دارید
پیش نیازهای زیر برای ایجاد یک نقشه دو بعدی از اتاق شما آمده است:
- لپ تاپ یا رایانه شخصی که سرور اوبونتو را اجرا می کند
- نصب ROS
- یک LiDAR
LiDAR چیست؟
LiDAR یا تشخیص نور و محدوده، آن را می توان با نام دیگری نیز یافت، LADAR (تشخیص و محدوده لیزری) یک فناوری سنجش از راه دور فعال که فاصله را با استفاده از نور به شکل لیزر پالسی اندازه گیری می کند. این فناوری با تابش یک پالس نوری به هدف و اندازهگیری ویژگیهای سیگنال بازگشتی بازتابشده کار میکند.
این سیستم مدت زمان بازگشت پرتو را اندازه گیری می کند. به طور کلی فاصله سنج است. عرض پالس نوری می تواند از چند نانوثانیه تا چند میکروثانیه متغیر باشد و می تواند مواد مختلفی را هدف قرار دهد.
اتصال سیستم و اکتساب داده های لیزری
RPLIDAR A1، یک سنسور ارزان قیمت LiDAR مناسب برای کاربردهای روباتیک داخلی، در این مورد استفاده خواهد شد. دارای میدان اسکن 360 درجه، فرکانس چرخشی 5.5 هرتز/10 هرتز و فاصله رنجر 8 متر است. LiDAR دارای یک سیستم اسکنر برد، یک سیستم موتور و همچنین یک رابط ارتباطی (پورت سریال/USB) است.
این سیستم داده های فاصله را بیش از 2000 بار در ثانیه و با خروجی فاصله با وضوح بالا اندازه گیری می کند. در نتیجه، نیاز به استفاده از چندین ابزار برای پردازش و تجسم داده ها دارد. به عنوان مثال، می توانید از ابزار SlamTech RoboStudio یا بسته ارائه شده ROS استفاده کنید.
چرا 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 را فراخوانی می کند.
roslaunch rplidar_ros rplidar.launch
با اجرای این دستور می توانید فواصل منعکس شده را که در موضوعی به نام /scan منتشر می شود، مشاهده کنید.
rostopic echo /scan
شما باید نمایشی از داده های اسکن لیزری پردازش نشده را در ترمینال خود مشاهده کنید:
برای تجسم آن داده ها، ترمینال دیگری را باز کنید، مطمئن شوید که ترمینال در حال اجرا دیگری را که داده ها را از اسکنر لیزری بازیابی می کند، نبندید و Rviz، ابزار تجسم را راه اندازی کنید.
rosrun rviz rviz
Fixed Frame را به Laser تغییر دهید، سپس روی دکمه add در گوشه سمت چپ پایین پنجره کلیک کنید و LaserScan را انتخاب کنید. در نهایت، موضوع LaserScan را بر روی /scan قرار دهید، و میتوانید اسکن LiDAR خود را در زمان واقعی مشاهده کنید.
اگر در اولین اسکن خود با مشکل مواجه هستید، ممکن است به این دلیل باشد که دستگاه شما مجاز به برقراری ارتباط داده ها از طریق سریال نیست. برای رفع این مشکل دستور زیر را اجرا کنید و سپس به مراحل قبلی ادامه دهید.
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 جستجو کنید.
roscd hector_slam_launch
دستور nano به شما امکان می دهد فایل خود را باز کرده و آن را ویرایش کنید.
nano tutorial.launch
ممکن است با یک خطای مجوز فایل لینوکس مواجه شوید که با این دستور قابل حل است:
sudo chmod 777 tutorial.launch
در اینجا نمونه ای از اجرا آمده است:
گام بعدی این است که خطوط را مطابق شکل زیر تغییر دهید:
مرحله آخر اجرای این خط است.
roslaunch hector_slam tutorial.launch
برای بهترین نتایج، LiDAR خود را به آرامی در اتاق خود حرکت دهید زیرا ایجاد نقشه در هنگام حرکت آهسته مؤثرتر است. می توانید مسیر خود را روشن کنید و تنظیمات اسکن لیزری را آزمایش کنید.
همانطور که در ویدیوی زیر نشان داده شده است، می توانید از 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 در ماژول دوربین در پشت دستگاه ادغام شده است و امکان توسعه نقشههای سه بعدی، اندازهگیری فاصله و برنامههای واقعیت افزوده را فراهم میکند.