Haberler

Flow Deck – Çılgınlar için Uygun Fiyatlı Otonom Uçuş!

Eğer Crazyflie ile geliştirme yapmayı seviyorsanız, en yeni deck’i olan Flow Deck‘i almak isteyeceğinizden hiç şüphem yok! Bunu Seeed Bazaar’dan sadece 35 dolara alabilirsiniz! Flow sensörü (bir işlemciye bağlı kamera sensörü) ve bir lazer mesafe sensörü içermektedir; bu ikisi birlikte uçuş kontrolcüsünün drone’un hızını ve ivmesini bilmesini sağlar. Bu, konum farkındalığı sağlar ve drone’un kendi başına pozisyonunu korumasına olanak tanır. Bu deck, drone’u manuel olarak uçurmak için kullanılabilir, ancak gerçek kullanımı ve gücü, drone’a pahalı bir dış konumlandırma sistemi olmadan otonom uçuş yeteneği kazandırmasında yatmaktadır.

Bunu çalıştırmak için Flow Deck’i, diğer deck’lerde olduğu gibi, Crazyflie’in altına normal şekilde takıyorsunuz – bu basit ve etiketli olduğu için karışıklık olmayacak. bitcraze.io ekibi, Flow Deck’i kullanmak için gereken kodu içeren yeni bir yazılım güncellemesi yayınladı, bu nedenle bir güncelleme gereklidir ve ayrıca Crazyradio PA‘ya da ihtiyacınız olacak. Yazılımınızı güncelledikten sonra, deck’i takabilir ve drone’unuzu açtığınızda hemen tanınacaktır. Yine, manuel uçuş yapabilirsiniz, ancak bu yalnızca bir kontrol cihazınız olduğunda desteklenmektedir – telefon uygulaması üzerinden değil.

Diğer daha heyecan verici seçenek, drone’un otonom olarak uçmasını sağlamaktır. Bunu yapmak için gereken tüm araçlar GitHub‘da mevcuttur, ayrıca kurulum talimatları da bulunmaktadır. Not: macOS Sierra 10.12 üzerinde çalışıyorum. Eğer biraz Python deneyiminiz varsa, bunu çalıştırmak oldukça basit. Ben biraz paslandım ve her şeyi çalıştırmak yaklaşık bir saat sürdü, ancak çoğu zamanın benim yavaş internet bağlantımdan kaynaklandığını düşünüyorum. İstemciyi çalıştırmak hızlı ve zahmetsizdi. Windows için bir yükleyici de var, bu da kurulumun daha hızlı ve çok basit olmasını sağlıyor. İstemci ve kütüphane yüklendikten sonra, yukarıdaki videoda görebileceğiniz demo programını çalıştırabilirsiniz.

Not: Crazyflie istemcisi ile radyo kullanamaz ve aynı anda python betiğini çalıştıramazsınız. Lütfen 30 dakikalık karışıklığımdan ders alın!

Otonom uçuş için kullandığım python betiği (sekiz figürü) varsayılandan biraz düzenlenmiştir – videoda yükseklik değişimini göstermek için ikinci yarıda biraz daha yükseğe uçmasını istedim. Eğlence için birkaç özel uçuş yolu yaptım, ama onları kaydetmeyi unuttum. En sevdiğim, drone’u daha küçük başlayıp yarıçapı büyüterek bir spiral yapmaya yönlendirmekti. İşte kodum!

[sourcecode language=”python”]</pre>
<pre># -*- coding: utf-8 -*-
#
# || ____ _ __
# +——+ / __ )(_) /_______________ _____ ___
# | 0xBC | / __ / / __/ ___/ ___/ __ `/_ / / _ \
# +——+ / /_/ / / /_/ /__/ / / /_/ / / /_/ __/
# || || /_____/_/\__/\___/_/ \__,_/ /___/\___/
#
# Copyright (C) 2016 Bitcraze AB
#
# Crazyflie Nano Quadcopter Client
#
# Bu program serbest yazılımdır; yeniden dağıtabilir ve/veya
# GNU Genel Kamu Lisansı’nın şartlarına göre değiştirebilirsiniz
# Free Software Foundation tarafından yayınlanan; ya 2. sürüm
# veya (seçiminize bağlı olarak) daha sonraki bir sürüm.
#
# Bu program, yararlı olacağı umuduyla dağıtılmaktadır,
# ancak HERHANGİ BİR GARANTİ YOKTUR; hatta zımni bir garanti bile yoktur
# TİCARİ DEĞERLİLİK veya BELİRLİ BİR AMACA UYGUNLUK. Daha fazla bilgi için
# GNU Genel Kamu Lisansı’na bakın.
# Bu programla birlikte GNU Genel Kamu Lisansı’nın bir kopyasını almış olmalısınız;
# eğer almadıysanız, Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, ABD’ye yazın.
"""
Crazyflie’e `URI` üzerinden bağlanan ve bir 8 dizisi çalıştıran basit bir örnek.
Bu betik, bir tür konum sistemine ihtiyaç duyar, flow deck ile test edilmiştir
(ve bunun için tasarlanmıştır).

URI değişkenini Crazyflie yapılandırmanıza göre değiştirin.
"""
import logging
import time

import cflib.crtp
from cflib.crazyflie.syncCrazyflie import SyncCrazyflie

URI = ‘radio://0/80/250K’

# Sadece logging çerçevesinden hata çıktısı ver
logging.basicConfig(level=logging.ERROR)

if __name__ == ‘__main__’:
# Düşük seviyeli sürücüleri başlat (debug sürücülerini listeleme)
cflib.crtp.init_drivers(enable_debug_driver=False)

with SyncCrazyflie(URI) as scf:
cf = scf.cf

cf.param.set_value(‘kalman.resetEstimation’, ‘1’)
time.sleep(0.1)
cf.param.set_value(‘kalman.resetEstimation’, ‘0’)
time.sleep(2)

# Hava yükselmek için.
for _ in range(10):
cf.commander.send_hover_setpoint(0, 0, 0, 0.2)
time.sleep(0.1)

# Uçuş için irtifa.
for _ in range(15):
cf.commander.send_hover_setpoint(0, 0, 0, 0.4)
time.sleep(0.1)

# Spiral Başlat, 17 saniye spiral (Her döngü 0.1s)
# Spiral küçük başlar, daha büyük hale gelir
# Benim tarafımda ondalık kullanmak istemedim, bu yüzden 800/10 kullandım
# başlangıçta 80 derece/s’lik bir yawrate elde etmek için
# Not: send_hover_setpoint(self, vx, vy, yawrate, zdistance)
# Hız (vx,vy) m/s cinsindendir, yawrate derece/s, zdistance m cinsindendir
yr = 800
for _ in range (170):
cf.commander.send_hover_setpoint(0.7, 0, (yr/10), 0.4)
# Her 1/10 saniyede yawrate’i 0.4 rad/s azaltıyorum.
yr -= 4
time.sleep(0.1)

# Dur ve iniş için alçalsın
for _ in range(30):
cf.commander.send_hover_setpoint(0, 0, 0, 0.2)
time.sleep(0.1)

# Motorları kapat ve iniş yap
cf.commander.send_stop_setpoint()
[/sourcecode]

Python konusunda çok bilgili olmadığım için daha fazla ilerlemedim, ama yine de deneyimi keyifli ve kolay buldum. Flow Deck ile Crazyflie topluluğunun neler yaratacağını görmek için sabırsızlanıyorum.

Lütfen yorumlarınızı ve önerilerinizi bırakın! Geri bildiriminiz değerlidir.

Leave a Reply

Your email address will not be published. Required fields are marked *