Comma.ai bir sürüş asistanı openpilot geliştirdi, nasıl çalışıyor?

Lei Feng.com: Geçtiğimiz günlerde, George Hotz tarafından kurulan otonom sürüş girişimi Comma.ai, "Wonder Kid" Medium ile ilgili bir makale ve açık kaynaklı sürüş asistanı openpilot geliştirmesini paylaştı.

Leifeng.com'a göre Comma.ai tarafından piyasaya sürülen ilk ürün olan Comma One, güvenliğini kanıtlayamadığı için ABD Karayolu Trafik Güvenliği İdaresi tarafından bir ay sonra askıya alındı. Daha sonra Hotz, açık kaynaklı Comma.ai'nin otonom sürüş yazılımı fikrini değiştirdi ve hatta meraklı kullanıcılara kendi başlarına bir tak ve çalıştır destekli sürüş kiti oluşturmaları için rehberlik edecek bir donanım montaj kılavuzu sağladı.

openpilot bu fikrin ürünüdür. Özellikle, openpilot, hızlandırıcının, frenin ve yönün otonom kontrolünü gerçekleştirebilir ve kontrol süresi 6 dakikaya kadar çıkabilir (sürücüler, kullanırken yol koşullarına dikkat etmelidir). Openpilot'un nasıl çalıştığına bir göz atalım ve sektördeki uzmanların bu yöntemin güvenilir olup olmadığına karar vereceğini umalım.

Openpilot kullanımda

Araba ile nasıl iletişim kurulur?

Piyasada bulunan mevcut araçların çoğu, aracın birden çok modülünü birden çok denetleyici alan ağı (CAN) veri yolu üzerinden bağlar. CAN otobüslerinden biri aracın kendi kendine teşhis sistemine (OBD-II) bağlanacak ve diğerlerinin çoğu araç iç panelinin altına gizlenecek.

Şekil 1: panda

openpilot, CAN arayüzü olarak NEO veya panda kullanabilir. Openpilot, açık kaynaklı bir tasarım kullandığından, OpenXC, Kvaser veya CANBus Triple'u da destekleyebilir.

İlk olarak openpilot tarafından desteklenen Honda Civic ve ILX'te, tüm iletişimin tamamlanması için yalnızca iki CAN veri yolu gerekir, biri araç CAN veri yolu ve diğeri radar CAN veri yolu. Ancak diğer araçlar farklı olabilir.

Araba hangi dili konuşabilir?

Aslında CAN çok basit bir protokoldür.Sadece bir veri yolu ile herhangi bir cihaz LAN üzerindeki diğer cihazlara bilgi gönderebilir. Mesaj bir tanımlayıcı içerecektir Standart CAN protokol tanımlayıcı 11 bit uzunluğunda ve genişletilmiş versiyon 29 bit uzunluğundadır. Bir mesaj 8 bayta kadar uzunlukta olabilir.

Standart CAN bilgisi

Tanımlayıcı, bilgilerin nasıl ayrıştırılacağını belirleyecektir ve DBC dosyası, analiz yöntemini belirlemenin standart yoludur. Aşağıdaki kod, direksiyon kontrol paketinin nasıl ayrıştırıldığını görebileceğimiz Honda Civic testine katılan DBC dosyasından alınmıştır:

BO_ 228 STEERING_CONTROL: 5 ADAS

SG_ STEER_TORQUE: 7 | 16 @ 0- (1,0) "" EPS

SG_ STEER_TORQUE_REQUEST: 23 | 1 @ 0 + (1,0) "" EPS

SG_ CHECKSUM: 39 | 4 @ 0 + (1,0) "" EPS

SG_ SAYAÇ: 33 | 2 @ 0 + (1,0) "" EPS

Bu kodun ilk satırındaki bilgi tanımlayıcı 228 veya 0xE4'tür ve diğer dört satır, dört alanın nasıl paketleneceğini ve 5 baytlık bilgiyle doldurulacağını gösterir.

CAN bilgilerini ayrıştırmak için daha fazla kod görmek istiyorsanız, GitHub'da can_parser.py ve dbc.py'de arama yapabilirsiniz.

Hassas direksiyon nasıl tamamlanır?

Korkarım ki direksiyon kontrol paketinin direksiyonun hassas yönünü belirtmediğini, tekerleklere iletilen torku kontrol ettiğini fark etmişsinizdir. Bu aslında birçok araç tarafından direksiyon sırasında kullanılan kontrol yöntemidir, ancak kapalı döngü kontrol sistemi oluşturmak için bazı ek kontrollerin eklenmesi gerekir. Ek olarak, aracın direksiyon açısı da CAN veriyoluna entegre edilmiştir.

BO_ 330 DİREKSİYON_SENSÖRLERİ: 8 EPS

SG_ STEER_ANGLE: 7 | 16 @ 0- (-0.1,0) "derece" NEO

Bu şekilde, önceden ayarlanmış açı, akım açısı ve tork kontrolü tamamlanır ve bu, bir PID döngüsü oluşturmak için çok uygundur. Ancak tork küçük olduğu için sadece PI döngüsü kullanılır.

Daha fazla PI döngü yürütme yöntemi görmek istiyorsanız GitHub'da latcontrol.py'yi arayabilirsiniz.

ROS 2.0

Bunu söyledikten sonra openpilot mimarisinden de bahsetmeliyiz.

İlk bakışta, ROS'a (Robot İşletim Sistemi) çok benzer, ancak ikincisi biraz şişirilmiş ve özel mesajlaşma sistemi ve giriş sistemi çekici değil.

Openpilot'ta geliştirici, bilgi aktarımını idare etmek için ZMQ yayınlama / abone olma modelini kullandı ve girdi için capn protokolünü kullandı. İlginç bir şekilde, ROS 2.0 çağına dönüştükten sonra, aynı çözüm kullanılacaktır.

Araç soyutlama katmanı

Tasarımda, geliştiriciler openpilot'un farklı araçlarla "iletişim kurabileceğini" umuyor. Araç soyutlama katmanının ilgili kodunu öğrenmek istiyorsanız GitHub'da car.capnp'de arama yapabilirsiniz.

Uyarlanabilir seyir (boyuna)

Openpilot'ta, geliştirici gaz / fren ve direksiyonu ayırdı. Boylamsal kontrol geleneksel araçlardan farklı değildir ve burada sinir ağları kullanılmaz.

Geliştirici ayrıca, araç radarındaki bilgileri ayrıştırmak için kullanılabilecek ilgili radard.py kodunu GitHub'da yayınladı. Aynı zamanda görüş sistemi ile de temel bir entegrasyona sahiptir ve öndeki iki aracın konum bilgilerine dönebilir.

Bu bilgilerle adaptif cruise sistemi, sürüş sırasında aracın hızını belirleyebilir.

Görüş sistemi (yatay)

visiond, sinir ağını kontrol etmekten sorumludur, ancak iş modeli nedeniyle bu kısım kapalı kaynak tasarımını benimser, ancak API açık kaynaklıdır.

struct ModelData {

frameId @ 0: UInt32;

yol @ 1: Yol Verisi;

leftLane @ 2: PathData;

rightLane @ 3: PathData;

lead @ 4: LeadData;

...

Openpilot, bir görüş sistemi yardımıyla rota planlamasını sorunsuz bir şekilde tamamlayabilir ve aynı zamanda sol ve sağ şeritlerin yönünü ve öndeki aracın yönünü de bilebilir.

Pathplanner.py kodunun yardımıyla çeşitli rota seçenekleri entegre edilir ve ardından en iyi planın seçimini tamamlar. Aynı zamanda latcontrol.py kodu da yoldaki araç için hedef noktaları belirleyecek ve daha sonra araç bu hedef noktaları takip edecektir. Tabii ki, bu sistemde hala iyileştirme için çok yer var ve gelecekte daha karmaşık kontrol stratejileri eklenecek.

Entegrasyon

manager.py, aracın çalıştırılmasının ve durdurulmasının kontrolünden sorumludur. Boardd, sensord ve visiond üç kod dış dünya ile iletişim kurabilir, loggerd makine öğrenimi için veri kaydetmekten, planlamacı ise araca varış yerinin nerede olduğunu söylemekten sorumludur. kontroller, araç ile iletişimin ana sürecidir ve araç çalıştırıldıktan sonra birlikte çalışacaktır.

Lei Feng tarafından önerilen okuma:

Comma.ai, otonom sürüş için yeni iş fırsatlarını koklayan, açık kaynaktan sonra ilk yerli benimseyen kişi mi?

Buck-boost basamaklı kuadratik Buck topolojisine dayalı bir LED sürüş güç kaynağı
önceki
Anaokulu öğretmeni çocuk istismarına maruz kaldı
Sonraki
Sabit frekans ve faz kaydırma kontrollü yüksek verimli LLC rezonans dönüştürücü üzerine araştırma
Gözyaşları! "Kahramanların Gerçek Renkleri" İki dilli Çince ve Kantonca eşzamanlı resim, kardeşimin orijinal sesi yeniden ortaya çıkıyor
Ford'un Çin'deki ilk yardımlı sürüş teknolojisi gösterimi: İşe gidip gelme süresini 20 dakika kısaltabilir
Dayanamıyorum, "Meteor Garden" ın yeni sürümü gerçekten çirkin
Hızlı model tahmini kontrolüne dayalı "Academic Paper" Süper kapasitör kentsel demiryolu şarjı
Kolejlerde ve üniversitelerde tek kayıt sınavının gözetmeni adaylara notları mı dağıttı? Okul: Çevrimiçi olarak iletilen tüm bilgiler yanlıştır
On yıl sonra, hala en iyi süper kahraman filmi
Göz korumasını okumak yanlış değil, Hisense çift ekranlı telefon A6, okumaya aşık olmanızı sağlıyor
Sitenin üyelerine ödeme yapmak, kesilecek bir VIP mi yoksa bir kuzu mu?
Jiang Wen hakkında konuşmak
Lavabo bulaşık makinesinin kullanımı kolay mı? Satın alırken bu noktalara dikkat edin!
Bilim kurgu resim israfı hazineye dönüştürür, roketler gökyüzüne uçar, birlikte randevu alın! Chuanyi İlköğretim Okulu Bilim ve Teknoloji Festivali
To Top