понеділок, липня 06, 2009

UAV #3

Технічно-нудотний пост. Подивимось як реалізований наш UAV. Комплекс має бортову і наземну частини. Почнемо з бортової.

Коротко про складові:
  • Планер, двигун, шасі
  • Антена - для звязку з наземною частиною. Приймає та передає команди і дані.
  • Сервоприводи - електромотори, які приводять в рух стабілізатори і елерони (визначають напрямок польоту).
  • Інерційна Система - містить гіроскопи (визначають кут нахилу по кожній осі, та "кручення"), акселерометри (визначають швидкість зміни положення) і компас. Можливі додаткові датчики, як манометр чи GPS.
  • Бортовий Комп'ютер - аналізує дані інерційної системи, планує маршрут, керує сервоприводами та корисним навантаженням, передає дані, обробляє команди.
Програмна реалізація: бортова система реалізована як набір демонів. В нашій редакцій таких є 4:
  • communication demon
    Слухає антену та Multicast порт. Відтворює датаграму з потоку байтів, що надходять з антени. Розпізнає пошкоджені пакети (checksum); ініціює пере-надсилання пакета.
    Якщо датаграма отримана без втрат - демон публікує її в Multicast порт, після чого вона надходить до усіх зареєстрованих слухачів.
    При отриманні датаграми з Multicast порта ініцією її передачу на землю.
  • hardware demon
    Опитує периферійні пристрої. Збирає дані з інерційної системи і проганяє їх через фільтри Калмана (знижуючи рівень "шуму" в даних).
    Керує сервоприводами та корисним навантаженням (наприклад фотокамерою).
  • command demon
    Автопілот. Аналізує дані з інерційної системи, визначає маршрут. Генерує команди для керування сервоприводами.
  • supervisor demon
    Демон, що відмикає бортове управління і переводить апарат на дистанційне ручне керування з землі.
З технічних нюансів варто згадати мову реалізації - С і енергоощадливість. Робота з периферійними пристроями ведеться згідно внутрішнього таймера. Чим частіше він спрацьовує - тим менше проживуть батареї. Тому для кожного пристрою можна виставити свій таймер - скажімо 10 Герц для інерційної системи і 1 Герц для GPS.

Декілька слів про обмін інформації. Одиницею обміну є датаграма. Це структура, яка містить заголовок (12 байт) і тіло повідомлення (200 байт).
Датаграма використовується як для внутрішньо-системних викликів (між демонами), так і для між-системних (бортова-наземна):




Приклад внутрішньо-системної датаграми: несе команду make a photo від command demon (автопілота) до hardware demon



Приклад міжсистемної датаграми: несе дані про стан UAV (положення, швидкість, вистоту, ті) на землю - до groundstation

Наземна частина. Комунікаційний блок - той самий, що й на бортовій. Дані приходять з через антену і публікуються на Multicast порт. На даний момент нам цікаві наступні аплікації:
  • Groundstation
    Веде логування бортових даних; має панель передачі команд на борт









  • Open Glass Cockpit
    Віртуальна панель інструменів (штучний горизонт, альтиметр, акселерометр, спідометр, компас, ті), що дає візуальне представлення бортових даних



  • GIS
    Геоінформаційна система, де зводяться картографічні дані, маршрут польоту, біжучий стан UAV.
    Тут також фотографії чи відеопотік з UAV накладаються на існуючі шари.
    На даний момент ведеться робота по інтеграції GIS системи, тому скріншоту наразі немає.


І на закінчення - цитата і червневе фото нашого планера:
The best way to imagine where we're going is to look at what Bill Gates says about robotics.
He says, "Robotics are about where computers were in 1980".



Сподіваюсь вас не знудило.
Щастя Вам!

[1] http://en.wikipedia.org/wiki/Multicast