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

Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

8

RVIZ

Page 9: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

9

Gazebo

Page 10: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

13

Ruby

Page 14: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

15

Ruby - Hız

Page 16: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

16

Ruby - Hız

Page 17: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

17

Ruby C API

Page 18: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

18

Ruby - Inline

Page 19: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

19

Ruby on Rails

Page 20: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

20

ROS Ruby Pub / Sub

Page 21: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

21

ROS Ruby Service / Client

Page 22: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

22

OpenCV

Page 23: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

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 ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

24

D-Bus

Page 25: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

25

Graphviz

Page 26: Ruby ile Drone Uçurmak Onur Küçük – Özgür ... · 2 Envanter Robotu Stok takibi İnsanları teknoloji ile donatmak hatayı azaltmıyor Orta ölçekli bir depo 100 000 yuva

26

Sorular ?