Drone Gyro mantığı
-
- Mesajlar: 105
- Kayıt: 08 Eki 2019, 20:46
- Ad Soyad: İsmail Karaman
Drone Gyro mantığı
Arkadaşlar internette aradım ancak bulamadım, drone fiziği vesaire diye araştırdım ama istediğim veriye ulaşamadım, yardımınıza ihtiyacım var Şimdi ben drone'umu arduino ile yapmaya çalıştığım için, kodları da ince bi şekilde yazmam gerekiyor.önceden sadece corby drone kullanmıştım ve drone fiziği hakkında pek bilgim olmadığı için yardımınıza ihtiyacım var.
Şimdi, drone'umun havada sabit kalması için, en başta 4 motora da eşit seviyede güç gönderiyorum, gyro sensörüm pitch ve roll değerlerini alıyor, hesaplıyor ve örneğin drone'un sağa doğru 5 derecelik açıda durduğunu raporluyor.Buna göre motorların hızlarını nasıl değiştirmeli?
Ben en başta (1.motor sol ön,2.motor sağ ön,3.motor sol arka,4.motor sağ arka) 1 ve 3. motorların hızının kademeli bir şekilde arttırılması gerektiğini düşündüm, ancak bunu drone'u uçurmadan (escmin birinin yanmış olmasından kaynaklı) tek motor üstünde denediğmde, eğer açı fazla ise, drone'un durumunu düzeltmek yerine, sağa doğru drone'u çektiğini fark ettim ve açıkçası pek mantıklı gelmedi.
Şimdi ise 1 ve 3 ün hızını arttırmak yerine 2 ve 4ün hızını azaltmayı denedim, ve bu daha mantıklı geldi.
Aslında hem 1 ve 3 ün hızını arttırıp hem 2 ve 4ün hızını azaltabilirim ama nedense bu mantıklı gelmiyor.Ve elimde şu an bir drone olmadığı için onun hareketlerini de inceleyemiyorum.
Sizden isteğim şu, acaba sizin drone'larınız, nasıl bir tepki gösteriyor? Havada sabit durmak için mesela sağ tarafında hafif bir yük eşitsizliği var, bu durumu nasıl dengeliyor?
Şimdi, drone'umun havada sabit kalması için, en başta 4 motora da eşit seviyede güç gönderiyorum, gyro sensörüm pitch ve roll değerlerini alıyor, hesaplıyor ve örneğin drone'un sağa doğru 5 derecelik açıda durduğunu raporluyor.Buna göre motorların hızlarını nasıl değiştirmeli?
Ben en başta (1.motor sol ön,2.motor sağ ön,3.motor sol arka,4.motor sağ arka) 1 ve 3. motorların hızının kademeli bir şekilde arttırılması gerektiğini düşündüm, ancak bunu drone'u uçurmadan (escmin birinin yanmış olmasından kaynaklı) tek motor üstünde denediğmde, eğer açı fazla ise, drone'un durumunu düzeltmek yerine, sağa doğru drone'u çektiğini fark ettim ve açıkçası pek mantıklı gelmedi.
Şimdi ise 1 ve 3 ün hızını arttırmak yerine 2 ve 4ün hızını azaltmayı denedim, ve bu daha mantıklı geldi.
Aslında hem 1 ve 3 ün hızını arttırıp hem 2 ve 4ün hızını azaltabilirim ama nedense bu mantıklı gelmiyor.Ve elimde şu an bir drone olmadığı için onun hareketlerini de inceleyemiyorum.
Sizden isteğim şu, acaba sizin drone'larınız, nasıl bir tepki gösteriyor? Havada sabit durmak için mesela sağ tarafında hafif bir yük eşitsizliği var, bu durumu nasıl dengeliyor?
-
- Mesajlar: 105
- Kayıt: 08 Eki 2019, 20:46
- Ad Soyad: İsmail Karaman
Re: Drone Gyro mantığı
@BURAKH hocam bu arada merak ettim sizin drone nasıl gidiyor, en son benim esc yandıktan sonra 2 tane de pervaneyi kırdım var mı sizde sorun
Re: Drone Gyro mantığı
Hala dışarda test edemedim hocam. Dün akşam evde 2, bugün de iş yerindeki odamda bir tane pervane parçaladım._ismail_karaman_ yazdı: ↑07 Ara 2019, 14:47 @BURAKH hocam bu arada merak ettim sizin drone nasıl gidiyor, en son benim esc yandıktan sonra 2 tane de pervaneyi kırdım var mı sizde sorun
-
- Mesajlar: 105
- Kayıt: 08 Eki 2019, 20:46
- Ad Soyad: İsmail Karaman
Re: Drone Gyro mantığı
BURAKH yazdı: ↑07 Ara 2019, 14:51Hala dışarda test edemedim hocam. Dün akşam evde 2, bugün de iş yerindeki odamda bir tane pervane parçaladım._ismail_karaman_ yazdı: ↑07 Ara 2019, 14:47 @BURAKH hocam bu arada merak ettim sizin drone nasıl gidiyor, en son benim esc yandıktan sonra 2 tane de pervaneyi kırdım var mı sizde sorun
-
- Mesajlar: 105
- Kayıt: 08 Eki 2019, 20:46
- Ad Soyad: İsmail Karaman
Re: Drone Gyro mantığı
Şu videoyu izledim ancak yine de anlamadım nasıl tepki verdiğini ;
Re: Drone Gyro mantığı
"Buna göre motorların hızlarını nasıl değiştirmeli?" Bu sorunuzun cevabı PID algoritması ancak pid algoritmasından hiç bahsetmemişsiniz. Öncelikle bunun üzerine araştırma yapmanızı öneririm.
Kodunu anladığım kadarıyla sıfırdan siz yazıyorsunuz. Bu sebeple basit videolar yerine biraz daha akademik yayınları okumanızı tavsiye ederim.
Ayrıca arduino ile yapılan örnek projeler de var. Bunlar üzerinden daha rahat kavrayabilirsiniz konuyu.
Kodunu anladığım kadarıyla sıfırdan siz yazıyorsunuz. Bu sebeple basit videolar yerine biraz daha akademik yayınları okumanızı tavsiye ederim.
Ayrıca arduino ile yapılan örnek projeler de var. Bunlar üzerinden daha rahat kavrayabilirsiniz konuyu.
-
- Mesajlar: 105
- Kayıt: 08 Eki 2019, 20:46
- Ad Soyad: İsmail Karaman
Re: Drone Gyro mantığı
Teşekkürler PID algoritmasını araştıracağımantiban yazdı: ↑07 Ara 2019, 16:21 "Buna göre motorların hızlarını nasıl değiştirmeli?" Bu sorunuzun cevabı PID algoritması ancak pid algoritmasından hiç bahsetmemişsiniz. Öncelikle bunun üzerine araştırma yapmanızı öneririm.
Kodunu anladığım kadarıyla sıfırdan siz yazıyorsunuz. Bu sebeple basit videolar yerine biraz daha akademik yayınları okumanızı tavsiye ederim.
Ayrıca arduino ile yapılan örnek projeler de var. Bunlar üzerinden daha rahat kavrayabilirsiniz konuyu.
- gökhan YANKI
- Mesajlar: 2397
- Kayıt: 02 Şub 2019, 12:14
- Ad Soyad: gökhan yankı
-
- Mesajlar: 105
- Kayıt: 08 Eki 2019, 20:46
- Ad Soyad: İsmail Karaman
Re: Drone Gyro mantığı
@gökhan YANKI Gökhan hocam teşekkürler ben o kadar aradım niye bunu bulamadım ya şimdi bakıcam buna bakalım...
Düzenleme : Hocam verdiğiniz linkteki arkadaş multiwii kartı kullanmış.Ama kodlarına henüz bakmadım inşallah bakıp fikir alabilirim.
Düzenleme : Ne yazık ki kodları çok karışık geldi hiç bir şey anlamadım :/
Düzenleme : En başından beri örnek alıp izlediğim YMFC-AL projesinin kodlarına bakıyorum şimdi galiba doğru yolu bulacağım @antiban hocamın pid algoritmasını yazmasından sonra biraz pid alg. araştırdım ve ymfc nin kodlarında da pid bölümü olduğunu gördüm.Eğer kodları anlarsam iş tamamdır teşekkürler..
Düzenleme : Hocam verdiğiniz linkteki arkadaş multiwii kartı kullanmış.Ama kodlarına henüz bakmadım inşallah bakıp fikir alabilirim.
Düzenleme : Ne yazık ki kodları çok karışık geldi hiç bir şey anlamadım :/
Düzenleme : En başından beri örnek alıp izlediğim YMFC-AL projesinin kodlarına bakıyorum şimdi galiba doğru yolu bulacağım @antiban hocamın pid algoritmasını yazmasından sonra biraz pid alg. araştırdım ve ymfc nin kodlarında da pid bölümü olduğunu gördüm.Eğer kodları anlarsam iş tamamdır teşekkürler..
- gökhan YANKI
- Mesajlar: 2397
- Kayıt: 02 Şub 2019, 12:14
- Ad Soyad: gökhan yankı
Re: Drone Gyro mantığı
bir de şunlara bak hocam._ismail_karaman_ yazdı: ↑07 Ara 2019, 21:13 @gökhan YANKI Gökhan hocam teşekkürler ben o kadar aradım niye bunu bulamadım ya şimdi bakıcam buna bakalım...
Düzenleme : Hocam verdiğiniz linkteki arkadaş multiwii kartı kullanmış.Ama kodlarına henüz bakmadım inşallah bakıp fikir alabilirim.
Düzenleme : Ne yazık ki kodları çok karışık geldi hiç bir şey anlamadım :/
Düzenleme : En başından beri örnek alıp izlediğim YMFC-AL projesinin kodlarına bakıyorum şimdi galiba doğru yolu bulacağım @antiban hocamın pid algoritmasını yazmasından sonra biraz pid alg. araştırdım ve ymfc nin kodlarında da pid bölümü olduğunu gördüm.Eğer kodları anlarsam iş tamamdır teşekkürler..
https://www.mydronelab.com/blog/arduino-quadcopter.html
https://www.hackster.io/robocircuits/ar ... ter-e618c6
Re: Drone Gyro mantığı
Hocam PID algoritması bu işin temeli. Kabaca bahsetmek gerekirse verilen bir inputa karşılık çıkışın vereceği tepkinin nasıl olacağını ayarlamaya yarayan kontrol mühendisliğinin temeli olan teknik. Pterm Iterm ve Dterm hesaplanıp toplanarak bir kontrol sinyali oluşturulur. Bizim örneğimiz için giriş sinyali kumandanın ürettiği olması gereken açı değeri, kontrol sinyali ESC'lere giden sinyal. çıkış da gyronun açı değeri.
Çok basitçe algoritma şöyle olmalıdır.
belli zaman aralıkları ile,
kumanda açı değerlerini al,
gyro açı değerini al,
çıkıştan girişi çıkar error sinyali e(t)'yi hesapla(yani gyrodan kumandayı)
e(t) ile Kp'yi çarp Pterm hesapla,
e(t)'nin integralini al, Ki ile çarp Iterm hesapla
e(t)'nin türevini al, Kd ile çarp Dterm hesapla
Pterm Iterm Dterm topla esc sinyalini hesapla. motorlara ver.
İdeal durumda e(t) sinyali hep 0 olmalıdır. yani kumanda sinyali ile çıkış aynı olmalı fakat fizik kuralları gereği bu çok kolay değil. PID aslında bu e(t) sinyalini ne kadar hızlı 0'a yaklaştıracağını ayarlar. Bu işlemler belli zaman aralıkları ile sürekli arka planda yapılması gerekir. hatta betaflighttaki PID loop time parametresi bu işlemlerin ne hızda yapılacağını belirler.
Çok basitçe algoritma şöyle olmalıdır.
belli zaman aralıkları ile,
kumanda açı değerlerini al,
gyro açı değerini al,
çıkıştan girişi çıkar error sinyali e(t)'yi hesapla(yani gyrodan kumandayı)
e(t) ile Kp'yi çarp Pterm hesapla,
e(t)'nin integralini al, Ki ile çarp Iterm hesapla
e(t)'nin türevini al, Kd ile çarp Dterm hesapla
Pterm Iterm Dterm topla esc sinyalini hesapla. motorlara ver.
İdeal durumda e(t) sinyali hep 0 olmalıdır. yani kumanda sinyali ile çıkış aynı olmalı fakat fizik kuralları gereği bu çok kolay değil. PID aslında bu e(t) sinyalini ne kadar hızlı 0'a yaklaştıracağını ayarlar. Bu işlemler belli zaman aralıkları ile sürekli arka planda yapılması gerekir. hatta betaflighttaki PID loop time parametresi bu işlemlerin ne hızda yapılacağını belirler.
Elektronik Müh.