Otonom araçlar için 2B lazer tarayıcı kullanılarak yeni 3B LIDAR sistemi elde edilmesi ve engel tespiti
Obtaining a new type 3D LIDAR system using 2D laser scanner for autonomous vehicles and obstacle detection
Yazar: AHMET KAĞIZMAN
Danışman: DOÇ. DR. ERDİNÇ ALTUĞ
İstanbul Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Mekatronik Mühendisliği Ana Bilim Dalı / Mekatronik Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2018
Konu: Mekatronik Mühendisliği = Mechatronics Engineering

Özet:
Son yıllarda otonom araçlar üzerinde yapılan çalışmalar gittikçe artmaktadır ve özellikle engel tespiti, haritalama, konum tespiti, rota planlaması, çarpışmadan kaçınma gibi alanlarda yoğun çalışmalar yapılmaktadır. Otonom araçların bu görevleri yerine getirebilmesi için LIDAR, GPS, IMU, RADAR, kamera, mesafe sayacı (odometre), kızıl ötesi ve ultrasonik sensörler gibi algılama sistemleri kullanılır. Bu algılayıcılardan biri olan ve 3 boyutlu lazer tarama tekniği ile çalışan LIDAR, engelleri tespit etmek, görselleştirmek ve çevresel bilgileri elde etmek amacıyla kullanılır. 3 boyutlu lazer tarayıcılar olarak da adlandırılan bu algılayıcılar, yüksek çözünürlük, geniş ölçüm aralığı (250 metreye kadar), yansıtıcı ve zor yüzeylerle başa çıkabilme ve küçük objeleri tespit edebilme gibi özelliklere sahiptir. Fakat oldukça yüksek maliyetli ve büyük boyutlarda olmaları bu algılayıcıların kullanımının yaygınlaşmasına engel teşkil etmektedir. Bu çalışmada yüksek maliyetli ve büyük boyutlu 3B LIDAR'lar yerine, 2B lazer tarayıcı kullanılarak çok daha düşük maliyetli, portatif ve 〖360〗^0 görüş alanına sahip yeni bir 3B LIDAR sistemi geliştirilmesi amaçlanmıştır.
3B LIDAR'ın elde edilmesi temel olarak 2B lazer tarayıcının belli bir eksen etrafında dönmesine ve bu lazer tarayıcı tarafından yayınlanan LaserScan verilerinin bir yazılım platformunda nokta bulutu verilerine dönüştürülmesine dayanmaktadır. Nokta bulutu, tespit edilecek nesnenin yatay ve dikey yönde belirli bir açı altında nokta dizileri şeklinde taranmasının sonucunda elde edilen noktasal görüntüye verilen bir isimdir. Elde edilmeye çalışılan yeni LIDAR sistemi bir bütün olarak incelendiğinde, istenilen verimlilikte çalışabilmesi için üzerinde barındırdığı bileşenleri koordineli olarak haberleştirmesi gerekir. Bu nedenle, bu yazılımsal ve donanımsal haberleşmeyi yönetmek amacıyla açık kaynaklı, ücretsiz ve robot bileşenlerinin bilgisayar ile kontrol edilmesini sağlayan bir yazılım platformu olan ROS (Robot Operating System) kullanılmıştır. ROS platformunda oluşturulan algoritmaların LIDAR sistemiyle bütünleşmesi sağlanarak daha güvenli ve istikrarlı çalışan bir sistem elde edilmesi amaçlanmıştır.
3 boyutlu taramanın yapılabilmesi için standart bir 2B lazer tarayıcı ve bir dönme elemanı gereklidir. 2B lazer tarayıcı olarak HOKUYO-URG-04LX-UG01, dönme elemanı olarak da ROS platformunda hazır kütüphanesi bulunan servo motor yerine sistemin çalışma hızını arttırmak amacıyla enkoderli dc motor kullanılmıştır. Normalde ROS platformunda hazır kütüphanesi bulunan servo motorun ROS'dan yayınlanan açı verisine abone olmasıyla ROS- Servo haberleşmesi sağlanmaktadır. Fakat enkoderli dc motorun ROS platformunda kütüphanesinin bulunmaması, ROS'dan gelen açı ile enkoderden gelen açının eşleşmemesi ve veriler arasındaki frekans farklılıklarından dolayı ROS-Servo haberleşmesinde uygulanan yöntemin kullanılması imkânsız hale gelmiştir. Bu nedenle ROS-Enkoderli dc motor haberleşmesinde farklı bir metod denenmiştir. Bu metoda göre enkoderden elde edilen açı verileri seri haberleşme yolu ile ROS platformuna gönderilmiş ve gönderilen veri seri iletişimden (serial) okunduktan sonra ROS platformuna uygun hale getirilerek yayın yapılmıştır. Böylelikle ROS-Enkoder haberleşmesi sağlanmıştır.
2B lazer tarayıcı ve dönme elemanının kombinasyonu oldukça önemlidir. Çünkü farklı tarama düzlemleri ve dönme eksenleri farklı görüş alanlarının oluşmasına sebep olur. Bu çalışmada sapma üst taraması (yawing scan top) olarak adlandırılan dikey tarama düzlemi ve z dönme eksenine sahip tarama metodu kullanılmıştır. Ayrıca, 3 boyutlu görüntü elde etme çalışmalarının yürütülebilmesi için, lazer tarayıcı, dc motor, pileksiglas masası ve lazer tarayıcı ile dc motor arasındaki veri bağlantısını sağlayan Slip-ring kullanılarak bir test platformu oluşturulmuştur.
Bir sensör sisteminden elde edilen çevre bilgisi engel tespitinin en önemli aşamalarından biridir. Bundan dolayı öncelikle i5 işlemciye sahip dizüstü bilgisayar kulanılarak oluşturulan 3B LIDAR sistemiyle kapalı bir ortamın 3 boyutlu görüntüsü elde edilerek çevre hakkında bilgi edinilmiştir. Ardından bu sistem bir otonom golf aracına entegre edilerek hareketsiz olan bu araca en yakın engelin mesafesi ve açısı tespit edilmiştir. LIDAR'ın en yakın engel olarak zemini ve otonom aracı göstermemesi için belirlenen mesafe ve açı değerlerine çeşitli filtrelemeler uygulandı. Yapılan bu filtrelemelerden sonra hem lazer tarayıcının bir tam turu tarama süresi azaltıldı hem de araca en yakın engelin bulunduğu konum hatasız bir şekilde elde edildi.
Geliştirilen 3B LIDAR sistemi, hareketsiz golf aracında test edildikten sonra 3B tarama kabiliyetlerinin hareketli bir platformda denenmesi için bir mobil robota entegre edildi. Bu mobil robot vasıtasıyla sisteme hareket kazandırılarak en yakın engelin konumunun hareketli bir ortamda tespit edilmesi amaçlanmıştır. Tespit edilen engelin mesafe ve açısı ROS görselleştiricisi olarak adlandırılan RVIZ platformunda PointStamped noktası olarak gösterilmiştir. Belirlenen mesafe aralıklarında hiçbir engel tespit edilmediğinde PointStamped noktası sistemin merkezinde konumlanmıştır.
Bilgisayar kullanılarak elde edilen 3 boyutlu nokta bulutu verisi ve yapılan deneylerden sonra en az bilgisayar kadar yüksek performans sağlayan ve çok daha küçük boyutlu olmasından dolayı sistemin daha portatif hale gelmesine imkân sağlayan Jetson TX1 geliştirme kartı kullanıldı. Jetson TX1 geliştirme kartını ve 3 boyutlu görüntü için gereken bütün komponentleri içinde barındıran bir mekanik model tasarlanarak 3B LIDAR sisteminine portatif özellik kazandırıldı. Bilgisayarı taşımak için kullanılan mobil araçtan sonra yeni oluşturulan portatif LIDAR platformuna hareket kazandırmak ve haritalama, lokalizasyon ve navigasyon işlemlerinde kullanmak amacıyla 6 tekerlekli diferansiyel sürüş modeline sahip ve ortadaki iki tekerinde enkoderli dc motor bulunan yeni bir mobil araç tasarlandı. Tasarlanan mobil araç üzerine LIDAR platformu entegre edildi ve oluşturulan sistem navigasyon işlemine hazır hale getirildi. Navigasyon için Gezinme Yığını (Navigation Stack) olarak adlandırılan, aracın bir noktadan diğerine otonom olarak hareket etmesi ve hareket esnasında önüne çıkan bütün engellerden kaçınması için kullanılan bir dizi algoritma ve ros düğümü kullanıldı. Mobil araca navigasyon işleminin yaptırılabilmesi için öncelikle araç üzerinde bulunan sensörlerden elde edilen veriler kullanılarak aracın bulunduğu ortamın bir haritası oluşturuldu. Harita oluşturulduktan sonra aracın bu harita üzerinde yerinin belirlenmesi gerekir. Çünkü uygun bir navigasyon gerçekleştirmek için aracın haritaya göre hangi konumda olduğunun ve hangi yöne baktığının bilinmesi gerekir. Bu yüzden haritalama işleminden sonra ROS platformunda yerelleştirme olarak ifade edilen konum kestirimi işlemi gerçekleştirildi. Daha sonra aracın mevcut yerini ve gitmek istediği konumu girdi olarak alan ve belirlenen noktaya en iyi ve en hızlı bir şekilde gidilmesini sağlayan yolu çıktı olarak veren yol planlaması işlemi gerçekleştirildi. Son olarak kullanılan gezinme yığını algoritması sayesinde aracın odometri verilerini (IMU ve Enkoder) ve lazer tarayıcı verisini kullanarak engellere çarpmadan ve kaybolmadan belirlenen hedefe ulaşması sağlanmıştır.  
Son olarak, bu çalışmada ortamın 3 boyutlu haritasının temsil edilmesi için oktvektörlere dayanan, özellikle C++ için veri yapıları ve eşleme algoritmları sunan ve ros içerisinde bulunan açık kaynaklı bir çerçeve olan OctoMap kütüphanesi kullanıldı. Birçok robotik sisteme kolayca entegre edilebilen OctoMap sayesinde nokta bulutu verileri kullanılarak ortamın 3 boyutlu haritası elde edildi.

Abstract:
In recent years, studies on autonomous vehicle technology have increased. Autonomous vehicles, also called UGV (Unmanned Ground Vehicles), are vehicles that have the ability to move on their own without the need for human intervention. These vehicles are able to detect objects in their surroundings thanks to the various sensors they carry. Obstacle distance detection, crash monitoring and reporting, accident avoidance, path planning, situation awareness, localization, mapping, and navigation are basic research topics for autonomous vehicles. To carry out the aforementioned tasks sensing systems –RADAR, IMU, GPS, LIDAR, camera, distance meter (odometer) - are used. Distance, velocity, and the angle of the objects are detected by the usage of Radio Detection and Ranging systems (RADAR), which can adapt to almost all weather conditions. However, RADAR systems cannot be used to detect the objects. IMU (Inertial Measurement Unit), one of the sensors used in autonomous vehicles, is a sensor that provides angular velocity and acceleration data to monitor the dynamically changing motion of the vehicle. It is commonly used with devices that provide location detection called GPS (Global Positioning System). While IMU provides relative position and motion information, the GPS provides absolute position and motion information. That is, when GPS determines the absolute position of the vehicle, the IMU gives information about how far the vehicle is from a position. The odometer is also used to measure the distance traveled by the vehicle. This sensor has a crucial role in the localization process. The cameras known as the eye of autonomous vehicles are used to detect obstacles, signs and traffic signals by collecting color information about surfaces within its field of view. Finally, LIDAR, one of the sensors used in autonomous vehicles and working with 3D laser scanning technique, is used to detect obstacles, visualize and obtain environmental information. These sensors, also called 3D laser scanners, have features such as high resolution, wide measurement range (up to 250 meters), detect small objects and ability to cope with reflective/difficult surfaces. At the same time, it can provide a 〖360〗^0 3D view of all obstacles around a vehicle. For this reason, LIDAR is the most suitable sensor for estimating the shape of objects according to RADAR and cameras. However, disadvantages such as high cost, being affected by weather conditions and having large dimensions prevent to their become widespread. In this study, it was aimed to develop a new type 3D LIDAR system with much lower cost, portable and 〖360〗^0 fields of view by using 2D laser scanner instead of high costing and large dimension 3D LIDARs and determine the closest obstacle with this new LIDAR system.
The acquisition of 3D LIDAR is mainly based on the rotation of the 2D laser scanner around a certain axis and the fact that data of LaserScan, which is published by this laser scanner, is converted into point cloud data on a software platform. When the new LIDAR system to be obtained is examined as a whole, it needs to communicate in coordinately the components it contains in order to operate at the desired efficiency. In order to manage this software and hardware communication, ROS (Robot Operating System), which is a software platform that enables open source, free, multi-lingual, tools-based and robot components that can be controlled by the computer, is used. A ROS system consists of nodes, which performs computation, communicating with other nodes using Publisher/Subscriber messaging model. A system is comprised of many nodes and every node is responsible for one task. These nodes communicate with each other through messages published by topics. Topics carry messages that send information to other nodes. They are also called buses that used for moving messages from the node to the node. When a node sends a message via a topic, it means that the node is publishing a topic. In a similar vein, when a node receives a message via a topic, it means that the node is subscribing to a topic. Therefore, a node can publish many topics and subscribe to many topics. This study aims to obtain a more secure and stable system by integrating the algorithms created in this platform with the LIDAR system. 
A standard 2D laser scanner and mechanical rotational element are required for 3D scanning. In this study, HOKUYO-URG-04LX-UG01 was used as a 2D laser scanner and dc motor with encoder was used instead of a servo motor as the rotational element with a ready-made library on ROS platform. This 2D laser scanner has compact dimensions and its weight is only 160gr. It has a field of view 〖240〗^0 and an angular resolution of 〖0,352〗^0. Also, it has a maximum scanning range of 5.6m and minimum scanning range of 0.02m. This sensor is designed for indoor environment use only. Normally, the servo motor with the ready-made library on the ROS platform is subscribed to the angle data published by the ROS and ROS-Servo communication is provided. However, it is impossible to use the method applied in the ROS-Servo communication due to the angle of the ROS and the angle of the encoder do not match, which is also because of the frequency difference between the data provided by ROS and encoder. Also, the absence of an encoder library in the robot operating system is another reason why this method cannot be used. Because of the mentioned reasons, a different method has been tried in the ROS-Encoder communication. According to this method, the angle data obtained from the encoder has been sent to the ROS platform via serial communication and after the transmitted data read out from the serial, it was published in accordance with the ROS platform. So that, ROS-Encoder communication has been provided.
The combination of the 2D laser scanner and the mechanical actuator has a crucial role in the system, because of the fact that different scan planes and rotation axes cause different view fields to be formed. There are four types of laser scanning methods. These scanning methods are called as pitching scan, rolling scan, yawing scan and yawing scan top. Pitching scan has a horizontal scan plane and pitch up and down. Rolling scan is rotating around the center of the laser scanner. The yawing scan and yawing scan top have a vertical scan plane and these are rotating around the upright z-axis. In this study, the yawing scan top scanning method was used. According to this method, the vertical scanning plane was taken as the scanning plane, and z-axis was selected as the rotation axis. 
In the mechanical design of the system was used a slip-ring component, which transfers the data on the rotating laser scanner and the dc motor with an encoder to the computer environment was used. This component prevents cables from being twisted and damaged between the rotating system and the fixed system. In addition, a test platform has been created using a laser scanner, dc motor with encoder, plexiglass table, slip-ring. Simultaneously, the L-shaped aluminum rotary support, called the Gimbal, was used in the mechanical design of the system to provide the ability to rotate around a single axis. And also coupling was used to connect the dc motor and LIDAR.
Environmental information obtained from a sensor system is one of the most important steps in detecting obstacles. In order to be able to detect an obstacle, it is necessary to have information about the environment in which the obstacle is located. Thus, in this study, the 3D image of a closed environment was obtained by using the created 3D LIDAR system, so that the information about the environment was also obtained. After following these steps, the system was integrated into an autonomous golf vehicle and distance and angle of the nearest obstacle to this non-moving vehicle have been determined. Various filters have been applied to the distance and angle values determined so that LIDAR does not show the ground and autonomous vehicle as the closest vehicle. After applying these filters, the full-round scanning time of the 3D laser scanner was reduced and the position where the nearest obstacle was found was detected without error.
After testing on a non-moving golf vehicle, the developed 3D LIDAR system has been integrated into a mobile robot to test 3D scanning capabilities on a moving platform. Through this robot, the system has been moved and it has been aimed to determine the position of the nearest obstacle in a moving environment. The distance and angle of the detected obstacle have been shown as the PointStamped point in the RVIZ platform, which is referred to as the ROS visualizer. The PointStamped point has been located at the center of the system when no obstacle is detected at the specified distance ranges.
After the 3D point cloud image and experiments obtained by using the computer, the Jetson TX1 development card was used which provided at least as high as a computer performance. Since the Jetson TX1 is much smaller in size than the computer, it made it possible to make the 3D LIDAR system more portable. Then, a mechanical model was designed that includes the Jetson TX1 development board and all the components required for 3D point cloud viewing. Thus, the 3D LIDAR system became more portable. After the mobile vehicle used to carry the computer, a new mobile vehicle was designed to give motion to the newly created portable 3B LIDAR system and to be used in mapping, localization, and navigation. This mobile vehicle consists of 6 wheels and an aluminum frame, each driven by a separate motor. This vehicle, which works according to the differential driving method, has the dc motor with encoders attached to the medium wheels. Thanks to these encoders, it is provided to the movement control of the vehicle's wheels which based on the amount of rotation. The LIDAR platform was integrated on the designed mobile vehicle and the system was made ready for navigation. A number of algorithms and ros nodes, called Navigation Stack for navigation, are used to autonomously move the vehicle from one point to another and avoid all obstacles that may occur during movement. In order to be able to navigation with the mobile vehicle, a map of the vehicle environment was created by using the data obtained from the sensors on the vehicle. Once the map is created, the location of the vehicle on this map must be determined. Because in order to carry out an appropriate navigation, it is necessary to know which position the vehicle is in relation to the map and which direction it is looking at. So, after the mapping process, on the ROS platform performed location estimation, which is expressed as localization. Then, the path planning process was performed, taking as input the current position of the vehicle and the position it's wanted to go. Thanks to this path planning, the mobile vehicle goes to the designated spot in the fastest and best way. Finally, thanks to the navigation stack algorithm used, it was provided the vehicle is able to reach the specified target without collision to the obstacles by using odometry data (IMU and Encoder) and laser scanner data.
Finally, in this study, it was used the OctoMap library, an open source framework within ROS, that provides a 3D map of the environment, specifically for C++ data structures and mapping algorithms. Thanks to the OctoMap, which can be easily integrated into many robotic systems, the 3D map of the environment was achieved using point cloud data.