Ortak mimarili yapılar ile insansız araçlarda veri iletişimi
Data communication in unmanned systems using joint architecture
Yazar: OKAN BOSTAN
Danışman: PROF. DR. HAKAN TEMELTAŞ
İstanbul Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Mekatronik Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2015
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Mekatronik Mühendisliği = Mechatronics Engineering ; İletişim Bilimleri = Communication Sciences
Dizin: Bilgisayar destekli iletişim = Computer aided communication ; Bilgisayar yazılımları = Computer softwares ; Veri iletişimi = Data communication

Özet:
Verinin bir ağ üzerinde herhangi bir kaynaktan bir hedefe yol alabilmesi için gerekli olan en önemli ölçüt ağı oluşturan tüm elemanların aynı dili konuşması ya da aynı kurallar ailesine uyarak haberleşmeleridir. Ortak protokol kullanılmasındaki amaç diğer istemcilerin tek bir yazılım kullanarak birbirinden farklı siteler açabilmesi, tek yazılımla birden çok dosya paylaşımına bağlanabilmeleridir. Bilgisayar sistemlerinde en yaygın olarak kullanılan kurallar bütünü ve protokol TCP/IP (Transmit Control Protocol / Internet Protocol)'dir. Robotik sistemlerde de kullanılan bilgisayar ve hesaplama sistemleri TCP/IP protokolünü kullanarak robot ile Kontrol Ünitesi ve ya operatör arasında veri iletişimini sağlayabilirler. Bu çözümde, haberleşme veri yapısının her robot geliştirici için farklı ve birbiriyle uyumsuz olması ile farklı kaynaklardan çıkan insansız sistemler için geliştirme ve değiştirmenin sadece tasarlayan kişi tarafından yapılabilmesi başlıca sorunları temsil etmektedir. JAUS (Joint Architecture for Unmanned Systems)  referans modeli, bu eksiklikleri gidermekte ve robot sistemlerinde esneklik, erişilebilirlik ve güvenilirlik sağlamaktadır. JAUS dünya üzerinde birçok farklı üreticinin ve firmanın ürettiği değişik tipteki insansız araçların birlikte çalışabilir (interoperability) olmasını garantileyen bir dizi standartları belirleyerek üreticilere ve geliştiricilere bu desteği vermiştir. Birden fazla üretici ve araştırmacı birbirinden farklı platformlarda ve farklı fiziksel donanımlarda kendi insansız sistemlerini geliştirmektedir. JAUS farklı üreticilerin geliştireceği insansız sistem parçalarını ve bileşenlerini standartlaştırır, değişik tipte donanım ve yazılımların birbiri ile iletişim kurmasına olanak sağlar. JAUS sayesinde bu gibi heterojen bilgisayar sistemleri birlikte çalışabilmektedir. Ek olarak insansız sistemleri kendi bünyemize dâhil etme ve çalıştırma operasyonları daha basitçe ve hızlıca yapılabilmektedir. Ayrıca Jaus TCP/IP kullandığı için farklı bir veri transfer kanalı ya da donanımına ihtiyaç duymamaktadır. JAUS özellikle askeri anlamda yapılan görevlerde aynı anda birden fazla insansız sistemi yönetmeyi de sağlamaktadır. Sistemimizi mantıksal olarak JAUS yazılımına tanımlayarak sistemin JAUS topolojisi oluşturulur. JAUS topolojisini ve yazılımını sistemimize uygularken kullanılan bazı kavramlar ve seviyeler vardır. Bu kavram ve açıklamalar detaylı olarak JAUS Referans Modelinde anlatılmıştır. JAUS topolojisinde bulunan sistem, alt sistem, nod ve bileşenlerin JAUS haberleşme uyumluluklarına göre üç seviyede sınıflandırılırlar. JAUS'un günümüzde takip ettiği referanslara göre çeşitli sürümleri bulunmaktadır. Bu sürümler iki ana gruba ayrılmıştır. JAUS Referance Architecture (RA) ya da diğer bir deyişle referans modeli, JAUS'un ilk çıkan orijinal halidir. JAUS'un bu projesinin geliştirilmesi sürüm 3.3'den sonra durduruldu. Temeli bileşenler arası haberleşme mimarisine dayanmaktadır. SEA-JAUS JAUS'un standartlarının günümüzde kullanılan son güncel halidir. Servis tabanlı bir mimariye sahiptir. JAUS++, JAUS protokolünün nesneye dayalı C++ uyarlaması olan bir açık kaynak kod kütüphanesi projesidir. JAUS++ projesi, mühendisler ve geliştiricilerin kendi robotik projelerine JAUS protokolünü kolayca dâhil edebilmelerini amaçlamıştır. İlk sürümleri JAUS RA (Referans Modelini) temel almaktadır. İkinci sürümden sonra günümüzde de geçerli JAUS sürümü olan SAE JAUS standartlarına göre geliştirilmiştir. Bu tezde JAUS mimarisinin bileşenlerinin incelenmesi ve insansız sistemimizi JAUS uyumlu hale getirme adımları konu alınmıştır. JAUS uyumlu hale getirmek için literatürde bulunan kod kütüphaneleri incelenip test edilmiştir. Bu kod kütüphaneleri içinde güncel ve başarılı olanı seçilmiştir. JAUS++ kütüphanesi kullanılarak operatör kontrol ünitesi ve Radxa Rock ARM tabanlı bilgisayar kullanılarak JAUS mesaj alışverişi gerçekleştirilmiştir. JAUS sayesinde insansız sistemler arasında sağlanan iletişim kullanarak birçok görev daha verimli hale getirilebilir. JAUS'un yazılımsal tasarımından ötürü oluşturulan JAUS kodları yeniden kullanılabilirdir. Bu sayede yazılım maliyetleri ve insansız sistem üzerinde çalışan program en uygun düzeyde koşturulabilir. Üretilen robotların uluslararası ölçekte daha iyi yer edinebilmesi için JAUS uyumlu olması her zaman bir artı olacaktır. Bu alışverişin diğer veri alışverişlerine göre avantajları gözlemlenmiştir.

Abstract:
Unmanned systems offers cost effective and high quality work to perform in dangerous or heavy tasks. Also they can perform repetitive tasks with high ratio of success. These benefits of robots can be summarized as mostly in productivity, safety, and in saving time and money. As a result robotic industry produces more unmanned systems to market. Many on these robotic systems are unable to operate and interact with each other. Communication rules are the most needed component for data to travel one source to destination. Also it's recommended that all the computer systems communicate through the same data structure. So that clients could start communication with each other by using the same software. In computer world the most common communication protocol is TCP/IP (Transmit Control Protocol / Internet Protocol). In addition today unmanned systems can use that TCP/IP protocol to communicate between operator and the control unit. Using this TCP/IP communication method developers and researchers create different types of data structures. Between these different unmanned systems the common and simple communication cannot be established. JAUS (Joint Architecture for Unmanned Systems) can solve these limitations and provide all unmanned systems in a domain to communicate with each other and become interoperability. The maintain interoperability to components of a system, predefined rules and standard addressing must be used. JAUS provides a communication framework to reduce life-cycle costs. Reusable components are defined as object orientated method. This method reduces the maintenance costs and allow to develop and improve the unmanned robotic system. Also this makes possible to insert the newer technologic hardware into JAUS system. JAUS system designed to be modular and scalable. To integrate our system to support JAUS there are number of terms to understand. These terms are system, subsystem, node, component and instance. A system is a logical grouping of unmanned systems in a domain. In a system all unmanned systems and operator control units that share common applications. A subsystem could able to perform one unmanned task. A subsystem can also provide communication and control abilities. Unmanned ground vehicles, unmanned aerial vehicles that support communication, control abilities could be given as example. A node could support processing capability. In an unmanned system, main processor or the image processing processor, sensor data processor could be given example and as separate nodes of an unmanned system. A component is placed under a node, it provides commands and control. An instance is a piece of different information that is served under a component, a heat value or speed value can named as an instance. Depending on the how JAUS is integrated to our unmanned system there are three levels of integration. In level I integration JAUS compatibility is at subsystem level. Only the communication between two subsystems in a domain environment is done with JAUS protocol. In addition in level II integration the communication between node manager and subsystem itself is accomplish with JAUS message structure. Lastly in level II JAUS messages are applied at component level.  In this Thesis JAUS structure and components are examined. To make JAUS compatible unmanned systems there are some open source projects. These projects are examined and the most optimal and updated version is selected for test section. Using JAUS++ code library is used as experimental purposes to create an Operator Control Unit and an Unmanned System which is Radxa Rock hardware. Radxa Rock is a single board computer by Radxa. It has a quad core processor, it can run android or some Linux distributions. It also got 80 pin headers to connect other sensors or use the GPIO. JAUS++ is created by The ACTIVE Laboratory based on a C++ implementation of JAUS for use in unmanned vehicles. This paper provides an introduction to the library for new developers, and give software architecture overview. After reading this document developers should know how to start using the JAUS++ library within an unmanned systems application. JAUS++ has three main libraries. Core library contains base classes for messages and services. Mobility library contains data structures for Global pose sensor and global waypoint driver. JAUS++ can be run at Linux and windows operating system platforms. The Message class is used to create a JAUS message structure. Current version of JAUS changed its architecture to use a service based framework.  In JAUS++ library, Service class is used for message creation and manipulation. JAUS++ divides systems and subsystems into software components. JAUS++ components are designed for especially software reuse. In this research, the same software is used as in the Operator Control Unit software and the unmanned system itself with a little modification. However when we use specific components as Global Pose sensor, hardware implementation could be need to be done. In general because of the Object Oriented design, JAUS++ Component service highly reusable. To maintaining interoperability between the robotic systems and the operator control units is one of the key goals of JAUS++. Because of that the subsystems in JAUS uses same massage set. For instance an operator control unit can control all types of subsystems without any modification. JAUS has compatible with serial, and TCP networks. In general JAUS does not specify the communication method, any of the methods above can be used. After using JAUS++ advantages are observed as code reusability, modularity, and interoperability. Even if the technology improves, for instance the connection speed or the CPU speed grows, the JAUS software could still be effective as it is, because we define our system into JAUS as software parts. In addition, the JAUS code parts could be reused without any modification as the benefits of object oriented principle of inheritance.