Sistem Yapısı

Giriş

Robotik Yapay Zeka Görüşü (RAiV), yüksek düzeyde entegre bir stereo kameradır. RAiV, 3 boyutlu ölçümler alabilir, 3 boyutlu otomasyon yapabilir ve 3 boyutlu kalite kontrolü gerçekleştirebilir. RAiV, fabrika/atölye alanlarında kullanılmak üzere tasarlanmıştır. Bu kılavuz, RAiV'in nasıl kullanılacağı ve özelliklerine ilişkin bilgiler sunmaktadır.

Ana Özellikler

RAiV, esnek çok amaçlı bir kamera sistemi olarak tasarlanmıştır. Endüstriyel robotlar, otomasyon sistemleri, insansız kara araçları ve diğer 3 boyutlu görüntüleme gerektiren uygulamalarla kullanılabilir. RAiV, çeşitli uygulamalar için GigE, WiFi6, CanBus, RS-485 gibi veri arayüzlerine ve PWM ve genel amaçlı G/Ç gibi sinyal arayüzlerine sahiptir.

Aşağıdaki resimde elektrik ve mekanik bağlantı noktalarının konumları görülebilir:

RAiV Genel Bakış

Veri Hattı

RAiV'in ana yazılım özelliklerinden biri, kullanıcıların kendi Python kodlarını RAiV'e yükleyebilmeleridir. Özel Python kodları yükleyerek, kullanıcı istediği işlevselliği uygulayabilir. RAiV, yüklenen Python kodlarını kontrol eder ve bunları korumalı ortamda çalıştırır.

Kullanıcının Python kodu sürekli olarak yürütülür. Kod, veri hattından, elde edilen IMU örneklerini, stereo görüntüleri ve sinir ağı modeli çıktılarını her zaman alabilir. RAiV aşağıdaki veri hattına sahiptir:

RAiV Data Pipeline

Daha fazla bilgi için lütfen Robotic Ai Vision (RAiV) teknik detaylar sayfasına ve blogumuza bakın.

Bağlantı

Yapılandırmak için lütfen aşağıdaki öğeleri hazırlayın:

  • RAiV
  • Kablolu ağ bağlantısı ve web tarayıcısı olan bir bilgisayar.
  • Ethernet kablosu
  • 12 veya 24VDC 2A güç kaynağı
  1. Bilgisayarın kablolu ağ bağlantısını aşağıdaki parametrelere göre ayarlayın:
  2. IP 192.168.10.2
    Netmask 255.255.255.0
    Gateway 192.168.10.1
  3. Bilgisayarı doğrudan RAiV'e bağlayın.
  4. RAiV web arayüzünü açın:
  5. http://192.168.10.55

    Uyarı

    Buradaki talimatlar varsayılan ayarlara sahip bir cihaz içindir.

    RAiV'e varsayılan ayarları yüklemek için, cihazın arkasında bulunan "Sıfırla" düğmesine yaklaşık 3 saniye boyunca (mavi ve turuncu ışıklar yanıp sönene kadar) basın. Ardından sıfırlama düğmesini bırakın ve cihazın yeniden başlatılmasını bekleyin.

Web Arayüzü Düzenleri

Yönetici ve kullanıcı için iki farklı web arayüzü düzeni vardır.

Yönetici Web Düzeni

Yönetici web arayüzünde bir ana panel bulunur. Yönetici, bu paneldeki düğmeleri kullanarak ayarlar arasında gezinebilir.

  1. Panel görüntüleme seçimi için düğme seti

Kullanıcı Web Düzeni

Kullanıcı web arayüzünde beş panel bulunur.

  1. Komutlar Paneli
  2. Kullanıcı, bu paneldeki düğmeleri kullanarak istediği seçeneği seçebilir ve ayarlarını parametreler panelinde gösterebilir.

  3. Parametreler Paneli
  4. Seçilen seçeneğin parametreleri, ilgili düğmeleriyle birlikte burada gösterilir.

  5. Görüntü Listesi Paneli
  6. Bu panel, cihazın hafızasında saklanan görüntüleri gösterir. Kullanıcı, görüntüleri hafızaya almak için "Capture Frame" düğmesini veya "Collect Samples" düğmesini kullanabilir

    Buradaki görüntüler, üzerlerine tıklanarak tek tek silinebilir, indirilebilir veya "Ekran Paneli"nde gösterilebilir

    Buradaki tüm görüntüler silinebilir veya indirilebilir.

  7. Ekran Paneli
  8. Bu alan şunları görüntülemek için kullanılır:

    • "Görüntü Listesi" panelinde seçilen görüntü
    • Anlık Görüntü düğmesini kullanarak çekilen görüntü veya
    • Canlı yayının çıktısı
  9. Akış ve Sağlık Paneli
  10. Bu panel, canlı h264 akışını başlatmak/durdurmak, sağlık raporunu görüntülemek ve sistem durumu göstergelerini görüntülemek için kullanılır.

Erişim/Şifre

Kullanıcı ve yönetici giriş adını ve şifresini değiştirmek için "ACCESS/PASSWORD" düğmesine tıklayın.

Kullanıcı ve/veya yönetici adı şifresini değiştirdikten sonra "Kaydet" düğmesine basın.

Ağ parametrelerini değiştirmek ve WiFi arayüzünü etkinleştirmek/devre dışı bırakmak için "NETWORK" düğmesine tıklayın.

Ağ ayarlarını değiştirdikten sonra "Kaydet" düğmesine basın.

Tarih/Saat

"Tarih/Saat" düğmesine tıklayın Tarih ve saat ayarlarını değiştirin.

Geçerli tarih ve saat metin alanlarında gösterilir. Şunlardan birini yapabilirsiniz:

  • Tarih/saati manuel olarak ayarlayın veya
  • Bilgisayarın tarih ve saatini alanlara ayarlamak için "GET DATE/TIME" düğmesini kullanın.

Tarih ve saati değiştirdikten sonra "Kaydet" düğmesine basın.

Kamera Ayarları

Komut panelindeki "Camera Settings" düğmesine tıklayarak "Kamera Ayarları" parametre panelini açın.

Kaydırıcıları kullanarak veya kaydırıcıların altındaki metin değerlerini düzenleyerek "pozlama" ve "kazanç" değerlerini güncelleyebilirsiniz.

Kamera ayarlarını değiştirdikten sonra, değişiklikleri kaydetmek için "disket" düğmesine basın.

Python Seçeneği

Pozlama ve kazanç değerlerini ayarlamak veya otomatik kazanç pozlama ayarlama özelliğini uygulamak için Python kodu kullanabilirsiniz.

Görüntü Listesi

"Görüntü Listesi" paneli, kareleri yakalamak, indirmek ve silmek için kullanılır.

Panelde iki sekme bulunur. RAiV'de yalnızca "Train Images" paneli kullanılabilir. Görüntü listesi panelinde aşağıdaki düğmeler bulunur:

  • Capture Frame: Bu düğme, stereo görüntü çifti yakalamak için kullanılır. Yakalanan görüntüler görüntü listesine eklenir. Kullanıcı, listedeki küçük resmine tıklayarak istediği yakalanan görüntüyü "ekran" panelinde görüntüleyebilir.
  • Delete Image: Bu düğme, bir görüntüyü silmek için kullanılır. Görüntü listesinde silinecek görüntünün küçük resmine tıklayın ve bu düğmeye basın.
  • Download Image: Bu düğme, bir resmi indirmek için kullanılır. Görüntü listesinden indirmek istediğiniz resmin küçük resmine tıklayın ve bu düğmeye basın. Resim tarayıcı tarafından indirilecektir.
  • Download All Images: Bu düğme, görüntü listesindeki tüm resimleri bir "zip" dosyası olarak indirmek için kullanılır. Sadece bu düğmeye tıklayın ve zip dosyasının indirilmesini bekleyin.
  • RAM Kullanımı

    Görüntüler, sıkıştırılmamış BMP dosya formatında bellekte saklanır. Her bir görüntünün boyutu yaklaşık 6,2 MB'tır. 75 stereo görüntü çiftinden (150 görüntü) oluşan bir koleksiyon için, sıkıştırılmış dosyanın boyutu yaklaşık 900 MB olacaktır. Zip dosyası indirme işlemi sırasında bilgisayarın RAM'inde saklandığı için, indirme işlemini gerçekleştiren bilgisayarın yeterli miktarda kullanılabilir RAM ve takas (swap) alanına sahip olması gerekir.

  • Delete All Images: Bu düğme, resim listesindeki tüm resimleri silmek için kullanılır. Bu düğmeye tıkladıktan sonra bir uyarı iletişim kutusu görüntülenir ve tüm resimler silinmeden önce kullanıcının onayı istenir.

Anlık Görüntü

Komut panelindeki anlık görüntü (snapshot) düğmesine tıklandığında, diske kaydedilmeden bir stereo görüntü çifti yakalanır.

Kullanım

Anlık görüntü düğmesi çoğunlukla aşağıdaki amaçlar için kullanılır:

  • Kameranın yönünü kontrol etme
  • Kullanıcının Python kodunu doğrulama. Çünkü anlık görüntü ile tüm görüntü veri hattı etkinleştirilir ve kullanıcının kodu beslenir.

Canlı Yayın

RAiV'in entegre bir donanım H264 kodlayıcısı vardır. Donanım H264 kodlayıcısı kullanılarak, mono veya stereo görüntüler tarayıcıya aktarılabilir.

Akış ve sağlık panelindeki "canlı" düğmesine tıklandığında, canlı bir h264 akışı oluşturulur ve tarayıcı, yakalanan mono veya stereo görüntüleri diske kaydetmeden görüntüler.

Kullanım

Canlı düğmesi çoğunlukla aşağıdaki amaçlar için kullanılır:

  • Kameranın yönünü kontrol etme
  • Kullanıcının Python kodunu doğrulama. Çünkü, anlık görüntüde olduğu gibi, tüm görüntü veri hattı etkinleştirilir ve kullanıcının kodu sürekli olarak beslenir.

Python Seçeneği

Canlı h264 akışı, kullanıcının Python koduyla da etkinleştirilebilir veya devre dışı bırakılabilir. Canlı akış, akış için websocket protokolünü kullanır; sonuç olarak, kodlanmış akış, websocket desteğine sahip herhangi bir cihaz/program tarafından alınabilir.

Yapay Zeka Ayarları

Komut panelindeki "AI Settings" düğmesine tıklayarak "AI Ayarları" parametre panelini açın.

The "Yapay Zeka Ayarları" parametre paneli şunları gösterir:

  • Yapay Zeka Modelinin Dosya Adı
  • Yapay Zeka Modelinin Yükleme Tarihi
  • Yapay Zeka Modelinin Dosya Boyutu
  • Yapay Zeka Modelinin Durumu
  • Modelin Yapay Zeka İşlem Süresi (ms) (varsa)

"Yapay Zeka Ayarları" parametre panelinde üç düğme bulunur. Bu düğmeler, yapay zeka modelini silmek, yüklemek ve indirmek için kullanılır.

Model Türü

RAiV, "TensorFlow Lite" tabanlıdır. Bunun sonucu olarak, RAiV Yalnızca tflite modellerini kabul eder.

Ayrıca, tflite modeli şu özelliklere sahipse Google'ın Edge TPU cihazı da kullanılabilir:

  • edgetpu_compiler <modelin_ismi>.tflite ile derlenmişse
  • veya <YOLO>.export(format="edgetpu") ile dışa aktarılmışsa

Yapay zeka modelini kullanmak için, kullanıcının düğmesine basarak serbest bırakması gerekir.

Kullanıcı, düğmesine basarak yüklenen yapay zeka modelini yayından kaldırabilir.

Giriş/Çıkış Ayarları

Komut panelindeki "IO Settings" düğmesine tıklayarak "IO Ayarları" parametre panelini açın.

RAiV, giriş ve çıkış pinlerinde Python kontrollü veya zaman kontrollü ve otomatik yanıt sağlar.

Bir IO pininin tetikleyicisi "Python" olarak tanımlanmışsa, kullanıcının Python kodu pine erişebilir ve girişini kullanabilir veya çıkışını değiştirebilir.

Giriş #1 "capture" olarak tanımlanmışsa, görüntü yakalama işlemi giriş #1 tarafından tetiklenir. Bu yapılandırma, sürekli görüntü yakalama yerine, harici bir sensörün yakalamayı başlatmak için bir sinyal gönderebildiği yüksek hızlı ortamlarda kullanışlıdır.

Eğer Çıkış #1 veya Çıkış #2 "Input #1" olarak tanımlanırsa, çıkış pinleri herhangi bir kullanıcı müdahalesi olmadan giriş #1'in sinyaliyle tetiklenir. Ayrıca, çıkış sinyallerinin gecikmesi ve süresi sırasıyla "Gecikme (ms)" veya "Süre (ms)" değerleri ayarlanarak belirlenebilir.

Kamera ayarlarını değiştirdikten sonra, değişiklikleri kaydetmek için "disket" düğmesine basın.

Dijital G/Ç pinlerine ek olarak, RAiV'de iki PWM pini de bulunur. Bu pinlere yalnızca kullanıcının Python kodu aracılığıyla erişilebilir ve kullanılabilir.

Python Ayarları

Komut panelindeki "Python Settings" düğmesine tıklayarak "Python Ayarları" parametre panelini açın.

RAiV, kullanıcının Python kodlarını korumalı bir ortamda çalıştırabilir. "Python Ayarları" parametre paneli şunlar için kullanılır:

  • Kullanıcının Python kodunun durumunu kontrol etme
  • Kullanıcının Python kodu verisi Besleme Aralığı (ms) değerini ayarlama
  • Kullanıcının Python kodunun, simgesi kullanarak, yürütülmesini etkinleştirme veya devre dışı bırakma
  • Kullanıcının Python kodunun Konsol Çıktısını alma.

Konsol Çıktısı

Konsol çıktısı, kullanıcının print() çağrılarını, Python yorumlayıcısının çıktılarını ve RAiV'in korumalı alan kontrollerini içerir.

Python Dosya Yönetimi

Kullanıcının Python dosyaları Python Deployment parametreler panelinde yönetilir.

Örnek Topla

Komutlar panelindeki "Python Settings" düğmesine tıklayın ve "Python Ayarları" parametreler panelini açın.

Collect Samples, görüntüleri cihazın dahili belleğine kaydederek indirme ve yapay zeka modeli eğitimi veya Python kod geliştirme gibi harici çevrimdışı işleme için kullanılır.

Örnek toplamaya başlamak için, örnek toplama onay kutusunun etkinleştirilmesi gerekir. Onay kutusunu etkinleştirdikten sonra, kullanıcı ve düğmelerini kullanarak örnek toplamayı başlatabilir ve durdurabilir.

Kayıt İşlemi

Örnek toplama işlemi, Konsol Çıktısı alınarak görüntülenebilir.

Bir yapay zeka modeli yüklenip serbest bırakılırsa, Yapay Zeka Modeli Çıktısı da görüntülerle birlikte kaydedilir.

Örnek Görüntüleri Görüntüleme

Örnek toplama işlemi durdurulduktan sonra, Görüntü Listesi paneli toplanan görüntü örneklerini gösterir.

Toplanan görüntü ve yapay zeka modeli çıktı örnekleri düğmesine basılarak indirilebilir.

Toplanan görüntü ve yapay zeka modeli çıktı örnekleri düğmesine basılarak silinebilir. Bu düğme yalnızca toplanan örnekleri siler, Capture Frame ile yakalanan görüntüler üzerinde hiçbir etkisi yoktur.

Python Konuşlandırma

Komut panelindeki "Python Deployment" düğmesine tıklayarak "Python Konuşlandırma" parametreler panelini açın.

Python Konuşlandırma paneli, yüklenen Python dosyalarının dosya adını, dosya boyutunu ve yükleme tarihini görüntüler.

Python Konuşlandırma panelinde aşağıdaki düğmeler bulunur:

  • Python Dosyası Yükle: Bu düğme, tek bir Python dosyasını yüklemek için kullanılır.
  • Python Dosyası İndir: Bu düğme, bir Python dosyasını indirmek için kullanılır. Yüklenen Python dosyaları listesinden indirilecek dosyayı tıklayın ve bu düğmeye basın. Python dosyası tarayıcı tarafından indirilir.
  • Tüm Python Dosyalarını İndir: Bu düğme, yüklenen tüm Python dosyalarını "zip" dosyası olarak indirmek için kullanılır. Bu düğmeye tıklayın ve zip dosyasının indirilmesini bekleyin.
  • Python Dosyasını Sil: Bu düğme, bir Python dosyasını silmek için kullanılır. Yüklenen Python dosyaları listesinden silinecek dosyaya tıklayın ve bu düğmeye basın.
  • Tüm Python Dosyalarını Sil: Bu düğme, yüklenen tüm Python dosyalarını silmek için kullanılır. Bu düğmeye tıkladıktan sonra bir uyarı iletişim kutusu gösterilir ve tüm Python dosyaları silinmeden önce kullanıcının onayı gereklidir.

Sağlık Raporu

Tanılama amacıyla, RAiV Sağlık Raporu oluşturabilir. Sağlık raporu, akış ve sağlık panelinin sağ tarafındaki simgesine tıklanarak oluşturulabilir.

Sağlık raporu şunları içerir:

  • Kamera Ayarları
  • Yapay Zeka Parametreleri
  • Giriş/Çıkış Ayarları
  • Python Ayarları
  • Yüklenen Python dosyalarının listesi
  • Yakalanan görüntülerin listesi
  • Sistem durumu

Sistem İzleyici

Tanılama amacıyla, RAiV canlı Sistem Durumunu görüntüleyebilir. Sistem durumu, akış ve sağlık panelinin sağındaki simgesine tıklanarak görüntülenebilir.

Sistem durumu şunları içerir:

  • CPU Kullanım Yüzdesi
  • RAM Kullanım Yüzdesi
  • Disk Kullanım Yüzdesi
  • CPU Sıcaklığı
  • IMU Sıcaklığı

qCU_Print: stdout için Kanca

"USB Debug" seri portunu yapılandırmak ve standart çıktıyı (stdout) USB Debug portuna yönlendirmek için bir Python yardımcı modülü.

qcu_print_enable Yaşam Döngüsü

Hem standart çıktıya hem de USB Debug seri portuna çift yazdırmayı etkinleştirir. Bu, RAiV'in arkasındaki USB Debug portu kullanılarak standart yazdırma ifadelerinin alınmasına olanak tanır.

def qcu_print_enable(port='<optional>')

Parametreler

Ad Tür Açıklama
port str İsteğe bağlı - USB Debug seri portunun cihaz yolu.

Örnek

import qCU_Serial
# Enable output to serial
qCU_Serial.qcu_print_enable()
print("Hello Serial") # Appears on screen and serial

qcu_print_disable Yaşam Döngüsü

Hem standart çıktıya hem de USB Debug seri portuna çift yazdırmayı devre dışı bırakır ve normal yazdırma işlevini geri yükler (yalnızca standart çıktıya yazdırma).

def qcu_print_disable()

Örnek

import qCU_Serial
qCU_Serial.qcu_print_disable()
print("Back to normal")

qCU_Net: TCP İstemcisi & Sunucusu

TCP/IP soketleri üzerinden JSON kodlu veri iletmek için kullanılan bir Python ağ modülü. Uzunluk öneki başlığı ve yük protokolü ile istemci ve sunucu işlevlerini içerir.

send_data_to_server İstemci

Ethernet/TCP üzerinden bir sunucuya JSON kodlu yük gönderir.

def send_data_to_server(host, port, json_payload)

Parametreler

Ad Tür Açıklama
host str Sunucunun IP adresi veya ana bilgisayar adı.
port int Sunucunun port numarası.
json_payload dict Gönderilecek JSON formatındaki sözlük.

Örnek

import qCU_Net
data = {"cmd": "start", "val": 100}
qCU_Net.send_data_to_server("127.0.0.1", 5000, data)

start_tcp_server Sunucu

Uzunluk önekli başlık ve yük ile JSON mesajları alan bir TCP sunucusu başlatır. Sonsuz bir döngüde çalışır ve bağlantıları sırayla kabul eder.

def start_tcp_server(host='localhost', port=12345, json_handler=None)

Parametreler

Ad Tür Açıklama
host str Bağlanılacak adres (varsayılan: 'localhost').
port int Dinlenecek port (varsayılan: 12345).
json_handler callable Geri çağrı fonksiyonu: handler(client_socket, json_payload, client_address). None ise konsola yazdırır.

Örnek

import qCU_Net

# Sample implementation of a json payload handler 
def sample_json_handler(client_socket, json_payload, client_address):
    print(f"Custom handler called for client {client_address}")
    print(f"Received payload: {json_payload}")


# Start the TCP server with sample json handler
qCU_Net.start_tcp_server(host='192.168.10.55', port=12345, json_handler=sample_json_handler)

send_response_to_client Sunucu

Mevcut bir soket üzerinden bağlı bir istemciye JSON kodlu bir yanıt gönderir. Yanıt vermek için bunu json_handler içinde kullanın.

def send_response_to_client(client_socket, json_payload)

Parametreler

Ad Tür Açıklama
client_socket socket.socket Bağlı istemcinin soket nesnesi.
json_payload dict Gönderilecek JSON kodlu sözlük.

Dönüş Değeri

Tür Açıklama
bool Başarılıysa True, aksi takdirde False.

Örnek

# Sample implementation of a json payload handler 
def sample_json_handler(client_socket, json_payload, client_address):
    print(f"Custom handler called for client {client_address}")
    print(f"Received payload: {json_payload}")
    
    # Define payload in json format
    payload = {
        "status": 1
    }
    
    # Send payload to client
    qCU_Net.send_response_to_client(client_socket, payload);

qCU_Data: Veri Toplama

Stereo kamera karelerini, yapay zeka modeli çıktılarını ve IMU verilerini içeren paylaşımlı bellek tamponlarına erişmek için bir Python arayüz modülü. Bu sınıf, bellek arayüzünü başlatmak, kare, yapay zeka çıktısı ve IMU verilerini almak ve stereo kamera kalibrasyon parametrelerini elde etmek için yöntemler sağlar.

getMemoryConfiguration Yapılandırma

Bellek yapılandırmasını sözlük olarak döndürür.

def getMemoryConfiguration(self)

Dönüş Değeri

Tür Açıklama
dict Kare boyutlarını, BPP'yi ve tampon boyutlarını içeren yapılandırma.

load_calibration Yapılandırma

YAML dosyasından stereo kalibrasyon verilerini yükler.

def load_calibration(self, calib_file='<optional>')

Parametreler

Ad Tür Açıklama
calib_file str İsteğe bağlı - Stereo kalibrasyon YAML dosyasının yolu.

Dönüş Değeri

Tür Açıklama
list Yüklenen kalibrasyon veri yapıları.

load_rectification Yapılandırma

NPZ dosyasından düzeltme haritalarını yükler.

def load_rectification(self, recti_file='<optional>')

Parametreler

Ad Tür Açıklama
recti_file str İsteğe bağlı - Düzeltme haritaları NPZ dosyasının yolu.

Dönüş Değeri

Tür Açıklama
list Yüklenen düzeltme haritası dizileri.

init Yaşam Döngüsü

Paylaşımlı bellek arayüzünü başlat.

def init(self)

Dönüş Değeri

Tür Açıklama
bool Başarılıysa True, aksi halde False.

isInitialized Durum

Paylaşımlı bellek arayüzünün başlatılıp başlatılmadığını kontrol et.

def isInitialized(self)

Dönüş Değeri

Tür Açıklama
bool Başlatıldıysa True, aksi halde False.

getDataFrame Veri

Dizinleri kontrol eder ve varsa en son kareyi döndürür.

def getDataFrame(self)

Dönüş Değeri

Tür Açıklama
tuple frame_data, numpy dizisidir (2, yükseklik, genişlik, bpp) veya None.

Raises

RuntimeError: Paylaşımlı bellek başlatılmadıysa.

getDataFrameImu Veri

Dizinleri kontrol eder ve yeni veriler mevcutsa kare ve karenin IMU verilerini döndürür.

def getDataFrameImu(self)

Dönüş Değeri

Tür Açıklama
tuple

(frame_data, frame_imu_data):

  • frame_data (int): numpy dizisi (2, yükseklik, genişlik, bpp) veya None
  • frame_imu_data (dict): Aşağıdaki anahtarlara sahip IMU ölçümlerini içeren sözlük:
    • 'accel_x', 'accel_y', 'accel_z' (float): Son doğrusal ivme bileşenleri g (yerçekimi birimleri)
    • 'gyro_x', 'gyro_y', 'gyro_z' (float): Birikmiş açısal hız bileşenleri °/s (saniyede derece)
    • 'temp' (float): Sensör sıcaklığı °C
    • 'timestamp' (float): Örnek alma zaman damgası saniye (kayan noktalı gösterim)
    • 'isValid' (bool): IMU verilerinin geçerliliği

Raises

RuntimeError: Paylaşımlı bellek başlatılmamışsa.

getDataRawImu Veri

Halka tamponundan en son ham IMU verilerini alın.

def getDataRawImu(self)

Dönüş Değeri

Tür Açıklama
tuple

(imu_data, current_imu_index):

  • imu_data (dict): Aşağıdaki anahtarlara sahip IMU ölçümlerini içeren sözlük:
    • 'accel_x', 'accel_y', 'accel_z' (float): G (yerçekimi birimleri) cinsinden doğrusal ivme bileşenleri
    • 'gyro_x', 'gyro_y', 'gyro_z' (float): °/s (saniyede derece) cinsinden açısal hız bileşenleri
    • 'temp' (float): °C cinsinden sensör sıcaklığı
    • 'fsyncAgo' (int): Son FSYNC darbesinden bu yana geçen süre (mikrosaniye)
    • 'timestamp' (float): Örnek alma zaman damgası (saniye) (kayan noktalı gösterim)
  • current_imu_index (int): Veri toplama dizisinde mevcut IMU örneğini tanımlayan, monotonik olarak artan indeks.

Raises

RuntimeError: Paylaşımlı bellek başlatılmamışsa.

getDataAi Veri

Yapay zeka tarafından işlenmiş verileri alır.

def getDataAi(self, timeout=5)

Parametreler

Ad Tür Açıklama
timeout int Veri beklemek için saniye cinsinden zaman aşımı.

Dönüş Değeri

Tür Açıklama
dict Aşağıdaki anahtarlara sahip yapay zeka işleme sonuçlarını içeren sözlük:
  • 'data' (numpy.ndarray or similar): İşlenmiş yapay zeka çıktı verileri (örneğin, çıkarım sonuçları, özellik vektörleri veya model tahminleri)
  • 'header' (dict or structured object): Zamanlama, sıra numaraları veya işleme parametreleri dahil olmak üzere yapay zeka çıktısıyla ilişkili meta veri/başlık bilgileri
  • 'input_frame_right' (numpy.ndarray or buffer): Yapay zeka modeli tarafından işlenen sağ kamera karesi
  • 'input_frame_left' (numpy.ndarray or buffer): Yapay zeka modeli tarafından işlenen sol kamera karesi
  • 'success' (bool): Yapay zeka işleminin başarıyla tamamlanıp tamamlanmadığını gösteren Boolean bayrağı (True başarı için, False başarısızlık için)

forceFunctionStop Dahili

Engelleme yapan yapay zeka veri toplama çağrılarını iptal etmek için bunu başka bir iş parçacığından çağırın.

def forceFunctionStop(self)

cleanup Yaşam Döngüsü

Paylaşımlı bellek kaynaklarını temizleyin. (Not: Paylaşılan belleğin kendisi Python tarafından temizlenmez).

def cleanup(self)

qCU_Stream: H.264 Akışı

H.264 donanım kodlayıcısını etkinleştirmek ve devre dışı bırakmak ve modunu (mono veya stereo) ayarlamak için bir Python yardımcı modülü.

setEncoderStatus Kontrol

Donanım H.264 kodlayıcısının durumunu ve modunu ayarlayın.

def setEncoderStatus(isStart, isStereo)

Parametreler

Ad Tür Açıklama
isStart bool Kodlayıcının başlatılıp başlatılmayacağını veya durdurulacağını gösteren bayrak.
isStereo bool Modun stereo (Doğru) veya mono (Yanlış) olduğunu gösteren bayrak.

Dönüş Değeri

Tür Açıklama
int Başarı durumunda 0, hata durumunda -1.

qCU_CCtrl: Kamera Kontrolü

Kazanç ve pozlama süresi gibi kamera donanım parametrelerini kontrol etmek için Python arayüz modülü. Ayarları dinamik olarak ayarlamak için altta yatan kamera sürücüsüyle iletişim kurar.

init Yaşam Döngüsü

Kamera kontrol arayüzünü başlat.

def init(self)

terminate Yaşam Döngüsü

Kamera kontrol arayüzünü sonlandır.

def terminate(self)

get_cam_ctrl_ranges Yapılandırma

Pozlama ve kazanç gibi kamera kontrolleri için geçerli minimum ve maksimum aralıkları al.

def get_cam_ctrl_ranges(self)

Dönüş Değeri

Tür Açıklama
tuple

(expo_min, expo_max, gain_min, gain_max)

  • expo_min (int): İzin verilen minimum pozlama süresi değeri
  • expo_max (int): İzin verilen maksimum pozlama süresi değeri
  • gain_min (int): İzin verilen minimum kazanç değeri
  • gain_max (int): İzin verilen maksimum kazanç değeri

Bu değerler, sensör sürücüsü aracılığıyla yapılandırılabilen kamera pozlama ve kazanç ayarları için geçerli çalışma aralığını tanımlar.

set_gain Kontrol

Kamera kazancını ayarla.

def set_gain(self, gain)

Parametreler

Ad Tür Açıklama
gain int Ayarlanacak kazanç değeri.

Dönüş Değeri

Tür Açıklama
int 0 başarı anlamına gelir.

set_exposure Kontrol

Kamera pozlamasını ayarla.

def set_exposure(self, exposure)

Parametreler

Ad Tür Açıklama
exposure int Ayarlanacak pozlama değeri.

Dönüş Değeri

Tür Açıklama
int 0 başarı anlamına gelir.

set_expo_gain Kontrol

Hem kamera pozlamasını hem de kazancını aynı anda ayarla.

def set_expo_gain(self, exposure, gain)

Parametreler

Ad Tür Açıklama
exposure int Ayarlanacak pozlama değeri.
gain int Ayarlanacak kazanç değeri.

Dönüş Değeri

Tür Açıklama
int 0 başarı anlamına gelir.

get_expo_gain Veri

Kameranın mevcut pozlama ve kazanç değerlerini alın.

def get_expo_gain(self)

Dönüş Değeri

Tür Açıklama
tuple

(exposure, gain, return_code)

  • exposure (int): Mevcut kamera pozlama değeri
  • gain (int): Mevcut kamera kazanç değeri
  • return_code (int): 0 başarı anlamına gelir.

qCU_PinBus: GPIO & PWM

GPIO (Genel Amaçlı Giriş/Çıkış) pinleri ve PWM (Darbe Genişliği Modülasyonu) sinyalleri üzerinde kontrol sağlamaya yarayan donanım için Python arayüz modülü.

gpin_read Donanım

Genel Amaçlı Giriş (GPIN) pininden dijital değeri okuyun.

def gpin_read(pin)

Parametreler

Ad Tür Açıklama
pin int Okunacak GPIN pin numarası.

Dönüş Değeri

Tür Açıklama
int Pinden okunan dijital değer (0 veya 1).

gpout_write Donanım

GPOUT pinine dijital bir değer yazın.

def gpout_write(pin, value)

Parametreler

Ad Tür Açıklama
pin int Yazılacak GPOUT pin numarası.
value bool Yazılacak boolean değeri (Yüksek için Doğru, Düşük için Yanlış).

Dönüş Değeri

Tür Açıklama
int 0 başarı anlamına gelir.

pwm_write Donanım

Belirli bir pinde PWM sinyali yapılandırın.

def pwm_write(pin, periodMs, dutyMs)

Parametreler

Ad Tür Açıklama
pin int PWM sinyalini çıkış yapacak pin numarası.
periodMs int Sinyalin milisaniye cinsinden periyodu.
dutyMs int Sinyalin milisaniye cinsinden aktif süresi (görev döngüsü).

Dönüş Değeri

Tür Açıklama
int 0 başarı anlamına gelir.

qCU_Uart: UART Wrapper

Eklenecek Dokümantasyon.

qCU_RS485: RS-485 Wrapper

Eklenecek Dokümantasyon.

qCU_ModbusRTU: RTU Helper

Eklenecek Dokümantasyon.

qCU_CAN: CanBus Wrapper

Eklenecek Dokümantasyon.