Advertisement

ROS 2 : Generasi Selanjutnya dari Robot Operating System

0 95

Robot Operating System (ROS) sebagai sebagai set lengkap library software dan perangkat untuk membangun aplikasi robot. Mulai dari driver hingga kumpulan algoritma yang tersedia secara open source, telah dikembangkan semenjak tahun 2007, dan mengalami perubahan dari waktu ke waktu.

Berawal dari pengembangan environment untuk development robot Willow Garage PR2. ROS ditujukan untuk menyediakan perangkat perangkat lunak yang programmer butuhkan ketikan melakukan project penelitian dan pengembangan terhadap robot PR2.  Berikutnya, project ROS dikembangkan secara lebih lanjut pada tingkatan abstraksi yang diperlukan agar dapat dipergunakan untuk segala kepentingan pembuatan Robot secara lebih luas.

Secara umum ROS dikembangkan untuk robot yang memiliki karakteristik sebagai berikut

  • Sebuah robot tunggal
  • Menggunakan resource board komputasi sebagaimana yang tersedia laboratorium
  • Tidak terlalu mementingkan masalah realtime.
  • Menggunakan koneksi jaringan (Intranet/Internet) yang bagus dengan bandwith tinggi
  • Ditujukan untuk keperluan riset, yang sebagian besarnya di tingkatan akademik.
  • Aplikasi yang memerlukan fleksiblitas maksimum dari mesin tanpa ada yang ditentukan atau dilarang

Singkat kata ROS sudah cukup menjawab keperluan yang ada pada robot PR2, namun  ternyata ROS digunakan tidak hanya oleh robot PR2 namun berbagai jenis robot mulai bentuk dan ukuran, dari robot beroda,  robot humanoid, robot manipulator untuk industri, hingga kendaraan darat luar ruangan (termasuk mobil swakemudi), kendaraan udara maupun laut.

Beragamnya variasi robot  yang digunakan tak ayal menyebabkan munculnya banyak masalah yang harus diseleseikan oleh komunitas pengembang ROS, masalah – masalah tersebut antara lain adalah

  • Masalah sistem  multi robot, dimana belum ada pendekatan standar untuk membangun sistem multi-robot menggunakan ROS.
  • Platform embedded. Banyak yang menginginkan mikrokontroler bare-metal juga dapat menjadi warga negara kelas satu di dalam environment ROS alih – alih hanya dijembatani oleh sebuah software driver perangkat
  • Sistem real-time: komunitas ROS menginginkan dukungan terhadap komunikasi kendali real-time termasuk komunikasi inter-process dan inter-machine
  • Kasus dimana koneksi jaringan tidak stabil, penggunaan ROS yang tidak terbatas hanya di lingkungan laboratorium membuat kondisi – kondisi ideal banyak tidak terpenuhi, seperti kondisi dimana koneksi jaringan tidak stabil, dimana ROS belum mampu mengatasi ini.
  • Lingkungan produksi : Penggunaan ROS di lingkungan produksi yang bersifat komersial
  • Arsitektur pemrograman yang baku di dalam sistem ROS yang diperlukan seperti manajemen siklus hidup dan konfigurasi statik untuk deployment

Karena banyaknya tantangan tersebut, Komunitas ROS kemudian membuat ROS 2 yang bisa disebut sebagai rewrite dari versi sebelumnya. Hal ini ditujukan agar pengembangan ROS 2 tidak mengganggu dari pengembangan ROS1 yang sudah terlanjur diadopsi secara luas oleh banyak developer.

  • Perbedaan ROS 1 dan ROS 2

Beberapa perbedaan penting dari ROS 1 dan ROS 2 adalah sebagai berikut

  • Platform

sebelumnya ROS 1 hanya mendukung platform Linux (Ubuntu) dan juga Mac OS namun pada ROS 2 dukungan sistem operasi diperluas tidak hanya pada Linux dan Mac OS saja, namun juga Windows 10 kebagian mendapatkan support

  • Bahasa Pemrograman

ROS 1 secara resmi hanya mendukung C++ 03 dan Python 2, sementara ROS 2 menggunakan C++ 11 dan beberapa bagian menggunakan C++ 14. Sedangkan untuk Python ROS, mendukung setidaknya untuk versi 3.5.

  • Transport Protocol

Protokol komunikasi yang digunakan ROS 1 adalah TCPROS dan UDPROS yang merupkan protokol komunikasi hasil kustomisasi untuk keperluan ROS. sedangkan untuk ROS 2 menggunakan DDS (Data Distribution  Service). Embeddednesia akan membahas lebih rinci tentang apa itu DDS dan perbedaanya dengan roscore pada ROS1  di tulisan terpisah

  •  Build System

ROS1 menggunakan Catkin sebagai build system sedangkan ROS2 menggunakan Colcon yang disebut sebagai universal build tool sehingga dapat mengatasi beragam perbedaan penggunaan build tool yang selama ini dipakai saat mengembangkan komponen – komponen di dalam ROS

Pada tulisan berikutnya, embeddednesia akan mengulas bagaimana programmer dapat memulai menginstal ROS2 pada sistem operasi Ubuntu 20.04

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogger menyukai ini: