ruby ile drone uçurmak onur küçük – Özgür yazılım a.Ş ......gnu / linux Özgür yazılım...

26
Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş. [email protected]

Upload: others

Post on 21-Sep-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

Ruby ile Drone UçurmakOnur Küçük – Özgür Yazılım A.Ş.

[email protected]

Page 2: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

2

Envanter Robotu

● Stok takibi● İnsanları teknoloji ile donatmak hatayı azaltmıyor● Orta ölçekli bir depo 100 000 yuva● Zaman, risk, masraf● Hassasiyet yeterli değil, en az %10 hata payı

Page 3: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

3

Ne Lazım ?

● Mevcut işleyişi geliştirmek● Otonom● Bütün depoyu yeni aygıtlarla donatmamak● Ortam değişikliklerini takip etmek● Robot insan etkileşimi● Kısa sürede bol veri üretmek● Bol veriyi verimli sunmak

Page 4: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

4

Temel Araçlar

● GNU / Linux● Özgür yazılım araçlar ve kitaplıklar● Okumak, tasarlamak, kodlamak

Page 5: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

5

Robot Operating System - ROS

● Robot uygulamaları geliştirmek için– Kitaplıklar– Geliştirici araçları– Sürücüler– Algoritmalar

● Farklı bileşenler farklı lisanslı, çekirdek BSD-3C● Çeşitli programlama dilleri

Page 6: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

6

ROS - İletişim

● Mesajlaşma altyapısı (Pub / Sub - Async)● RPC (Request / Response - Sync)● Mesaj kaydetme tekrarlama● Global ayar depolama (anahtar – değer)

Page 7: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

7

ROS – Robot Araçları

● Standart mesaj tanımları● Geometri koordinat sistemi● Unified Robot Description Format (URDF)● Etkisizleştirilebilir RPC● İzleme tanı koyma● ...

Page 8: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

8

RVIZ

Page 9: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

9

Gazebo

Page 10: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

10

Diğer Araçlar

● PX4● Mavros● OpenCV● RTABMAP (SPLAM)● SLAM (Graph, Fast ...)● ...

Page 11: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

11

Geliştirme

● Yapılacak iş için uygun araç ve dil seçilmeli● En hızlı != en iyi yönetilebilir● Ruby, Python, C, C++, ASM vs.

Page 12: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

12

Ruby

● 1995 - Yukihiro "Matz" Matsumoto● Geliştirici mutluluğu odaklı● POLA (en az hayret ettirme prensibi)● OOP hemen her şey obje● Metaprogramlama● DSL● Sadece Web için !

Page 13: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

13

Ruby

Page 14: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

14

Ruby – Hız

● https://benchmarksgame-team.pages.debian.net/ benchmarksgame/faster/ruby.html

● 2018-05-10● Ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-

linux]● Python 3.6.3

Page 15: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

15

Ruby - Hız

Page 16: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

16

Ruby - Hız

Page 17: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

17

Ruby C API

Page 18: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

18

Ruby - Inline

Page 19: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

19

Ruby on Rails

Page 20: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

20

ROS Ruby Pub / Sub

Page 21: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

21

ROS Ruby Service / Client

Page 22: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

22

OpenCV

Page 23: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

23

D-Bus

● IPC / RPC– Session– System

● Araçlar– systemd– NetworkManager– Packagekit– Polkit– ...

Page 24: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

24

D-Bus

Page 25: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

25

Graphviz

Page 26: Ruby ile Drone Uçurmak Onur Küçük – Özgür Yazılım A.Ş ......GNU / Linux Özgür yazılım araçlar ve kitaplıklar Okumak, tasarlamak, kodlamak 5 Robot Operating System

26

Sorular ?