Robotik Kodlama ve Robot Simülatörü

Programlama, robotik kodlama biliminde çalışmak için geliştirilecek temel bir beceridir. Bu adımda programlamayı, önemli dilleri, Arduino ve Raspberry Pi gibi araçlarla nasıl başlayabileceğinizi öğrenmelisiniz.

Robotik Kodlamada bilgisayar programı nedir?

Robotlar, bir işlemci üzerinde yürütülen bilgisayar programlarını kullanarak sensör verilerini işler, biliş yapar ve eylemleri planlar. Bilgisayar programları aslında bir çıktı üretmek için girdi üzerinde çalışan talimatlar dizisidir.

Örnek: Bir robottaki yüz tanıma programı:

1. Giriş olarak bir kişinin görüntüsünü alır.
2. Görüntüyü belirli bir özellik kümesi için tarar.
3. Bu özellikleri bilinen yüzlerin bir kütüphanesiyle karşılaştırır.
4. Bul ve ardından eşleşme yapılır.
5. Kişinin adını çıktı olarak döndürün.

Program, her yürütme işleminde tam olarak aynı yönergeleri uygulayacaktır. Çoğu programlama dili normal metinde yazılmıştır, bu da insanların anlaması için kolaylık sağlar. Programlar daha sonra bir işlemcinin yürütmesi için (veya bir sanal makinenin yürütmesi için bayt kodu) makine koduna derlenir.

kodlama-dilleri
kodlama-dilleri

Robotik Kodlama da Programlama dilleri

Çok sayıda programlama dili vardır, örneğin C / C ++, Java, Fortran, Python vb. Robotikteki en popüler dil muhtemelen C / C ++’dır (C ++, C dilinin nesne yönelimli bir halefidir). Python, makine öğrenimindeki kullanımı ve ayrıca ROS paketleri geliştirmek için kullanılabilmesi nedeniyle çok popülerdir.

Robotikte kullanılan ek önemli yazılım araçları vardır.

  • Robot İşletim Sistemi (ROS), robot uygulamaları oluşturmanıza yardımcı olan bir dizi yazılım kitaplığı ve aracıdır. ROS için kendi programlarınızı da yazabilirsiniz. Örneğin C / C ++ veya Python.
  • Veri analizi ve ROS ile arayüzler için kullanılan Matlab (ayrıca Octave, burada bulunan Matlab’a ücretsiz, açık kaynaklı bir eşdeğerdir.)

C programlama ve Arduino mikrodenetleyici

C / C ++ dili, robotikte en yaygın kullanılan programlama dillerinden biridir. Arduino mikrodenetleyici C’ye dayalı bir programlama dili kullanır ve uygulamalı robotik yaparken bu önemli dilin temellerini öğrenmenin harika bir yoludur. Bir Arduino MEGA 2560 mikrodenetleyici. Mikrodenetleyici aslında sadece Arduino’nun merkezindeki büyük çiptir ve programladığınız bileşendir: yazdığınız yüksek düzey kod, bu çipin üzerine yerleştirilmiş makine koduna derlenir. Üst ve alt pimler sensörler gibi giriş cihazlarını ve motorlar gibi çıkış cihazlarını bağlamak içindir.

Temel bir Arduino (Uno) fiyat bilgisine buradan bakabilirsiniz. Program geliştirme ortamı birçok örnek proje ve öğretici bulacağınız Arduino web sitesinden ücretsiz olarak indirilebilir.

robot-simulasyonu-scaled
robot-simulasyonu-scaled

Python ve Ahududu Pi

Kodlama da Python, bilgisayar bilimi ve makine öğreniminde yaygın olarak kullanıldığı için öğrenmek için yararlı bir dildir. Python, Raspberry Pi ile kullanılan dildir. Bu robotu son derece alakalı kılar çünkü bir robotu kontrol etmek için Raspberry Pi kullanabilirsiniz.Pi Vakfı, bir Raspberry Pi robotikte nasıl kullanılacağını öğrenmek için bir dizi ücretsiz çevrim içi kurs geliştirmiştir.

Raspberry Pi 3, Model B. Raspberry Pi normal bir PC gibidir ancak çok daha küçüktür. Bu Raspberry Pi 3, 1.2 GHz dört çekirdekli ARM işlemciye, ethernet, kablosuz, bluetooth, HDMI ve 4 USB bağlantı noktasına sahiptir.

Arduino ve Raspberry Pi arasındaki farklar nelerdir?

Bu ikili Pi’nin ikisi de robotik projeler için yararlıdır, ancak bazı önemli farklılıkları vardır.

  • Arduino, basit bir bilgisayar gibi olan ancak PC’de yazdığınız tek bir programı çalıştıran ve döngüye sokan mikrodenetleyicidir. Bu program derlenir ve makine kodu olarak mikrodenetleyiciye indirilir. Arduino, düşük seviyeli robot kontrolü için çok uygundur ve analog sensörleri bağlamak için analogdan dijitale dönüştürme gibi özelliklere sahiptir.
  • Ahududu Pi. Raspberry Pi (RPi) normal bir PC gibidir ve bu nedenle Arduino’dan daha çok yönlüdür, ancak analogdan dijitale dönüştürme gibi özelliklere sahip değildir. RPi bir Linux işletim sistemi (genellikle Raspian) çalıştırır. Robotik için çok yararlı olan kamera gibi çevre birimlerinin yanı sıra bir RPi’ye bir klavye, fare ve monitör bağlayabilirsiniz. (RPi’nin Linux çalıştırması nedeniyle ROS’u da kurabilirsiniz, ancak kurulumu biraz zor olabilir.)
programlanabilir-robotun-zorlugu
programlanabilir-robotun-zorlugu

Programlanabilir Robotun Zorluğu: Algı Gerçekliği ve Kontrolün Kırılganlığı

Tüm robot biliminin temel zorluğu şudur: Çevrenin gerçek durumunu bilmek veya sezmek imkansızdır. Robot kontrol yazılımı, gerçek dünyanın durumunu sadece sensörleri tarafından döndürülen ölçümlere dayanarak tahmin edebilir. Gerçek dünyanın durumunu sadece kontrol sinyallerinin üretilmesiyle değiştirmeye çalışabilir. Robotik kodlama kontrol yazılımı, gerçek dünyanın durumunu sadece sensörleri tarafından döndürülen ölçümlere dayanarak tahmin edebilir. Bu nedenle, kontrol tasarımındaki ilk adımlardan biri sensör okumalarımızı yorumlayabileceğimiz ve kararlar alacağımız bir model olarak bilinen gerçek dünyanın bir soyutlamasını bulmaktır. Gerçek dünya modelin varsayımlarına göre hareket ettiği sürece, iyi tahminler yapabilir ve kontrol edebiliriz. Bununla birlikte, gerçek dünya bu varsayımlardan ayrılmaz, artık iyi tahminler yapamayacağız ve kontrol kaybedilecektir. Çoğu zaman, kontrol bir kez kaybolduğunda asla geri kazanılamaz.

Robotik Kodlama Programlama Nasıl Yapılmaktadır?

Robotik programlama bu kadar zor olmasının temel nedenlerinden biri budur. Laboratuvardaki en son araştırma robotunun videolarını sık sık görüyoruz. Harika beceriler, navigasyon veya ekip çalışması performansları sergiliyoruz ve “Bu neden gerçek dünyada kullanılmıyor?” Bir dahaki sefere böyle bir video gördüğünüzde, laboratuvar ortamının ne kadar kontrol altında olduğuna bir göz atın. Çoğu durumda, bu robotlar etkileyici görevleri ancak çevresel koşullar iç modelinin dar sınırları içinde kaldığı sürece gerçekleştirebilirler. Bu nedenle robotik kodlama biliminin ilerlemesinin bir anahtarı daha karmaşık, esnek ve sağlam modellerin geliştirilmesidir. Söz konusu ilerleme mevcut hesaplama kaynaklarının sınırlarına tabidir.

Hem filozoflar, hem de psikologlar canlıların aynı zamanda duyularının onlara söylediklerine dair kendi iç algılarına bağımlı olduklarını da not ederler. Robotikte ki birçok gelişme, canlıları gözlemlemekten ve beklenmedik uyaranlara nasıl tepki verdiklerini görmekten gelir. Dünyadaki iç modeliniz nedir? Karıncadan ve balıktan farklı mıdır? Bununla birlikte karınca ve balık gibi dünyanın bazı gerçeklerini de basitleştirmesi muhtemeldir. Dünya hakkındaki varsayımlarınız doğru olmadığında, sizi verilerin kontrolünü kaybetme riskine sokabilir. Bazen buna “tehlike” diyoruz. Küçük robotumuz da bilinmeyen evrene karşı hayatta kalmak için mücadele ediyor, hepimiz de öyle.

programlanabilir-robot-simulatoru
programlanabilir-robot-simulatoru

Programlanabilir Robot Simülatörü

Simülatör Python‘da yazılmış ve çok akıllıca görevlendirilmiş olabilir. Çok fazla detay ve uygulama kapsamı yok. Fazla iyi bir şey yapmak için tasarlanır: bir mobil robotun doğru simülasyonunu sağlayın ve hevesli bir robot yazılım programlamasını uygulamak için basit bir çerçeve sağlayın. Oynamak için gerçek bir robota sahip olmak her zaman daha iyi olsa da, iyi bir Python robot simülatörü çok daha erişilebilir ve başlamak için harika bir yerdir. Gerçek dünya robotlarında, kontrol sinyallerini üreten yazılımın (kontrolör) çok yüksek hızda çalışması ve karmaşık hesaplamalar yapması gerekir. Bu hangi robot programlama dillerinin en iyi kullanılacağını seçer. Genellikle bu tür senaryolar için C ++ kullanılır, ancak daha basit robotik uygulamalarında Python yürütme hızı ile geliştirme ve test kolaylığı arasında çok iyi bir uzlaşmadır.

Simülatör gerçek robotun yeteneklerine olabildiğince benzer şekilde programlanır. Kontrol mantığı minimum yeniden düzenleme ile gerçek bir Khepera robotuna yüklenebilir. Ardından simüle edilen robotla aynı işlevi görür. Uygulanan spesifik özellikler Khepera III’ü ifade eder, ancak yeni Khepera IV’e kolayca uyarlanabilirler. Başka bir deyişle, simüle edilmiş bir robotu programlamak, gerçek bir robotu programlamaya benzer. Bu simülatörün farklı kontrol yazılımı yaklaşımlarını geliştirmek ve değerlendirmek için herhangi bir kullanımda olması durumunda önemlidir. Robot kontrol yazılımı mimarisini açıklayan simülatör ve (netlik için küçük değişiklikler içeren) Python kaynağından parçacıkları sağlar. Ancak kaynakları araştırıp ve etraflıca karıştırmanızı tavsiye ederim. Simülatörü çatallı ve bir Roomba2 dahil olmak üzere farklı mobil robotlar, kontrol etmek için kullanılmıştır.

Robotun kontrol mantığı şu Python sınıfları / dosyalarıyla sınırlıdır:

  • models/supervisor.py Bu sınıf, robotun etrafındaki simüle edilmiş dünya ile robotun kendisi arasındaki etkileşimden sorumludur. Robot durum makinemizi geliştirir ve istenen davranışı hesaplamak için denetleyicileri tetikler.
  • models/supervisor_state_machine.py Bu sınıf, sensörleri yorumlamasına bağlı olarak robotun içinde olabileceği farklı durumları temsil eder.
  • models/controllers Dizindeki dosya sınıfları, ortamın bilinen bir durumu göz önüne alındığında robotun farklı davranışlarını uygular. Özellikle durum makinesine bağlı olarak belirli bir kontrolör seçilir.

Amaç

Robotlar, insanlar gibi hayatta bir amaca ihtiyaç duyarlar. Bu robotu kontrol eden yazılımın amacı çok basittir. Önceden belirlenmiş bir hedef noktasına ulaşmaya çalışacaktır. Bu genellikle otonom arabalardan, robot elektrik süpürgelerine kadar herhangi bir mobil robotun sahip olması gereken temel özelliktir. Hedefin koordinatları robot etkinleştirilmeden önce kontrol yazılımına programlanır. Ancak robotik kodlama hareketlerini denetleyen ek bir Python uygulamasından oluşturulabilir. Örneğin, birden fazla ara noktadan geçmeyi planlamak gerekir. Bununla birlikte sorunları karmaşıklaştırmak için robotun çevresi engellerle dolu olabilir. Robot hedefe giden yolda bir engelle çalışmaz. Bu nedenle, robot bir engelle karşılaşırsa, hedefe doğru devam edebilmesi için yolunu bulması gerekir.

programlanabilir-robot
programlanabilir-robot

Programlanabilir Robot

Her robotik kodlama farklı yeteneklere ve kontrol amaçlarına sahiptir bundan dolayı simüle programlanabilir robotumuzu tanıyalım. Dikkat edilmesi gereken ilk şey, bu kılavuzda otonom mobil robot olacaktır. Bu uzayda özgürce hareket edeceği ve bunu kendi kontrolü altında gerçekleştireceği anlamına gelir. Bir uzaktan kumandalı robot (otonom olmayan) veya bir fabrika robot kolunun (hareketli olmayan) aksine. Robotu hedeflerine nasıl ulaşacağını ve ortamında nasıl hayatta kalabileceğini kendi başına bulmalıdır. Acemi robot programcıları için şaşırtıcı derecede zorluk derecesinin yüksek olduğunu kanıtlıyor.

Diğer Konular

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bunlarda ilginizi çekebilir

Başa dön tuşu