Повний посібник користувача програми Flight Stand для стендів Flight Stand 15, 50, 150 і 500.
Завантажте посібник користувача програми Flight Stand (PDF).
Зміст
- Завантаження програми
- Налаштування імітованої плати (необов’язково)
- Налаштування програми
- Одиниці вимірювання
- Перевірка підключення обладнання
- Безпечні граничні значення
- Прив’язка силових установок
- Ручні випробування
- Автоматизовані випробування
- Таблиця значень
- Імпорт CSV / відтворення польоту
- Python API та готові сценарії випробувань
- Синусоїдальний сигнал
- Сигнал зі змінною частотою (chirp)
- Пилкоподібний сигнал
- Налаштування ПІД-регулятора
- Налаштування випробувань і робота з даними
- Обмеження швидкості зміни керування двигуном
- Налаштування графіків поточних даних
- Усунення шуму
- Передискретизація даних
- Підключення CAN ESC
- Дистанційне керування програмою
1. Завантаження програми
Завантажте й установіть програму Flight Stand на комп’ютер.
Кроки:
- Перейдіть на tytorobotics.com/download
- Знайдіть розділ Flight Stand Software і натисніть download («Завантажити»).

- Після завершення завантаження запустіть інсталятор на комп’ютері.
Якщо виникнуть проблеми, спробуйте виконати встановлення від імені адміністратора.
2. Налаштування імітованої плати
Програма містить імітовану плату, щоб користувачі могли випробувати й дослідити її можливості до придбання стенда. Підключення імітованої плати необов’язкове, але це зручний спосіб ознайомитися з програмою без покупки.
Дані імітації ґрунтуються на випробуваннях реального двигуна, за якими створено модель його характеристик.
Навчальне відео: https://www.youtube.com/watch?v=oszJTbkftbE
Кроки:
- Відкрийте Flight Stand і перейдіть на вкладку Hardware.
- Натисніть Connect Simulated Board. На панелі ліворуч почнуть надходити імітовані дані.

- Для імітації двомоторної системи поверніться на вкладку Hardware й повторно натисніть Connect Simulated Board, додавши ще одну імітовану силову установку.
Після підключення імітованої плати працюйте з нею як із реальним стендом: виконуйте налаштування, випробування та візуалізацію даних, описані далі.
3. Налаштування програми
Перед випробуваннями налаштуйте програму для оптимальної роботи й безпеки. Розглянемо перші чотири пункти розкривного меню.

Навчальне відео: https://youtu.be/JUSK1Mns0TA?si=jojtv8rcm57Np1vZ&t=27
Кроки:
- Відкрийте програму Flight Stand.
- Під’єднайте Flight Stand до USB-порту комп’ютера. На панелі ліворуч з’являться блок вимірювання сили та блок електричних вимірювань.
- Можна одночасно підключити до восьми силових установок для випробування розподіленої електричної тяги (DEP).
- Натисніть Setup: тут можна обрати потрібні одиниці вимірювання.
- Натисніть Hardware: тут відображаються відомості про під’єднані стенди, зокрема серійні номери, прошивки й активні системи, як-от сервоконтролери та датчики.
- Натисніть Safety limits: тут можна задати безпечні пороги відключення для тяги, крутного моменту, напруги, струму та обертів.
- Натисніть Powertrains: тут можна прив’язати силові установки, задавши назви двигуну, пропелеру, ESC і джерелу живлення. Також перевірте відповідність кожної установки її блокам вимірювання сили й електричних параметрів.
4. Ручні випробування
Виконуйте випробування в ручному режимі за допомогою повзунка газу ESC.
Навчальне відео: https://youtu.be/FzfvaZogpwQ?si=6XANU7NCvHQAaHju
Кроки:
- Переконайтеся, що стенд або імітована плата правильно під’єднані.
- У розкривному меню виберіть вкладку Manual Control.
- Задайте назву випробування.
- Оберіть спосіб записування даних: безперервний кнопкою Record або окремі відліки кнопкою Take sample.
- Активуйте ESC, установивши прапорець поруч із повзунком.
- Для початку випробування пересуньте повзунок газу або введіть значення в текстовому полі.

- Спостерігайте за даними на графіках реального часу, які можна розгорнути знизу вікна.
- Деактивуйте ESC, знявши прапорець поруч із повзунком.
- Для завершення безперервного записування знову натисніть Record.
- Натисніть Save and new, щоб зберегти випробування.
- Перегляньте результати на вкладці Test, де також можна експортувати дані.
5. Автоматизовані випробування
Налаштуйте й запрограмуйте автоматизовані випробування одним із доступних способів.
а. Таблиця значень
Навчальне відео: https://youtu.be/0RqCtd3qnwc?si=l44I6jeJQab18dnr
Кроки:
- На вкладці Manual Control активуйте ESC.
- На вкладці Automatic Control виберіть тип випробування: Step або Ramp.

- У розділі Controlled outputs установіть прапорці для силових установок, які потрібно випробувати.
- У Sequence form використовуйте Add Row, щоб додати моменти часу, у які потрібно змінити газ.
- У стовпці Powertrain throttle введіть значення газу для відповідних моментів зі стовпця Time.

- Оберіть спосіб збирання даних.
- Для окремого відліку в кожній часовій точці встановіть прапорець Take sample у таблиці.
- Для безперервного записування прокрутіть до Sequence runner та ввімкніть Continuous recording.
- Прокрутіть до Sequence Preview для попереднього перегляду випробування.
- Щоб повторити послідовність кілька разів без зупинки, введіть кількість повторень у Loop sequence.
- Введіть назву в полі Title.
- Натисніть Execute sequence для запуску.
- Після завершення на панелі ліворуч з’явиться жовтий блок, де можна зберегти дані (Save) або відкинути їх (Discard).
б. Імпорт CSV / відтворення польоту
Навчальне відео: https://youtu.be/FroCYgVlPgQ?si=3QrXeoAZ26-I1jBM
Кроки:
- Обравши тип автоматизованого випробування, у Sequence editor відкрийте меню Tools і виберіть Load demo example.
- Знову відкрийте Tools і виберіть Export sequence from CSV.
- Використайте експортований CSV як шаблон і додайте потрібні значення часу та газу.
- Коли файл готовий, у Tools виберіть Import sequence from CSV і завантажте відредагований CSV із комп’ютера.

- Прокрутіть до попереднього перегляду й запустіть послідовність. Після завершення в жовтому блоці на панелі ліворуч збережіть дані (Save) або відкиньте їх (Discard).
в. Python API
Навчальне відео: https://youtu.be/Gkf0dAnA1w4?si=nV3WNBGPCv49miR8
Кроки:
- Перед початком установіть найновішу версію Flight Stand, а також текстовий редактор і середовище виконання Python.
- На вкладці Hardware програми Flight Stand під’єднайте стенд або імітовану плату.
- Перейдіть на Automatic Control і виберіть Python API серед варіантів випробування.
- Відкрийте репозиторій: https://gitlab.com/TytoRobotics/flightstand-api та прочитайте файл README.

- Відкрийте зручний вам редактор, наприклад PyCharm.
- У PyCharm потрібно налаштувати віртуальне середовище.
- Якщо використовуєте інший редактор, наприклад VS Code, установіть Python або розширення Python.
- У PyCharm відкрийте папку Python із репозиторію.
- Відкрийте термінал у цій папці й виконайте команду: py -m pip install grpcio grpcio-tools

- Для перевірки з’єднання відкрийте Flight Stand і покажіть графіки реального часу. Потім запустіть example.py у Python.
- У терміналі PyCharm мають відобразитися всі доступні плати, автоматично підключитися імітована плата, а потім з’явитися список її входів і виходів.
- Якщо з’єднання успішне, останні рядки термінала відповідатимуть значенням газу ESC у програмі Flight Stand.

г. Готові сценарії випробувань
Ця таблиця Google (https://docs.google.com/spreadsheets/d/1XvXoo7h2_0t1s1L2px2kDtGj2X2kDnwxDqttWxkEFus/edit?usp=sharing) містить шаблони синусоїдального сигналу, сигналу зі змінною частотою та пилкоподібного сигналу. Щоб використати шаблони, виберіть File → Make a copy і збережіть копію на Google Диску.
i. Синусоїдальний сигнал
Навчальне відео: https://youtu.be/0pu8JYqnV80
Кроки:
- Відкрийте свою копію таблиці Google й перейдіть на вкладку Sine/Chirp Generation.
- У рядку 2 налаштуйте кількість рядків, прискорення, частоту, амплітуду та зміщення синусоїди. Попередній перегляд зміниться на графіку Throttle vs. Time.
- Скопіюйте дані стовпців Time і Throttle - Sine на вкладку Sine Wave Data for Export.
- Додавши дані у відповідні стовпці, завантажте файл CSV: File → Download → .csv.
- У Flight Stand відкрийте Automated Control і натисніть Step test.

- У Tools виберіть Import sequence from CSV.
- Виберіть та імпортуйте CSV, завантажений із таблиці Google.
- Точки синусоїди з’являться в таблиці, а форма сигналу — у вікні Sequence preview.
- Натисніть Execute sequence для запуску.
- Після завершення в жовтому блоці ліворуч збережіть дані (Save) або відкиньте їх (Discard).
ii. Сигнал зі змінною частотою (chirp)
Навчальне відео: https://youtu.be/0pu8JYqnV80?si=GQYjKerpszKwcb5q&t=129
Кроки:
- Відкрийте свою копію таблиці Google й перейдіть на Sine/Chirp Generation.
- У рядку 2 налаштуйте кількість рядків, прискорення, частоту, амплітуду та зміщення. Перегляд оновиться на графіку Throttle vs. Time.
- Налаштуйте значення Speedup of chirp.
- Скопіюйте дані стовпців Time і Throttle - Chirp на вкладку Chirp Data for Export.
- Додавши дані у відповідні стовпці, завантажте CSV: File → Download → .csv.
- У Flight Stand відкрийте Automated Control і натисніть Step test.
- У Tools виберіть Import sequence from CSV.
- Виберіть та імпортуйте CSV, завантажений із таблиці Google.
- Точки випробування chirp з’являться в таблиці, а сигнал зі зростаючою частотою — у вікні Sequence preview.
- Натисніть Execute sequence для запуску.

- Після завершення в жовтому блоці ліворуч збережіть дані (Save) або відкиньте їх (Discard).
iii. Пилкоподібний сигнал
Навчальне відео: https://youtu.be/0pu8JYqnV80?si=c1WeU3UYjajHE6Bu&t=204
Кроки:
- Відкрийте Flight Stand і перейдіть на Automated Control.
- Натисніть Ramp test.
- У таблиці Sequence editor введіть два рядки даних: час, газ і швидкість зміни.
- У вікні Sequence preview нижче з’явиться простий пилкоподібний сигнал із наростанням і спаданням.

- Введіть кількість повторень у Loop sequence і натисніть Execute sequence.
- Після завершення в жовтому блоці ліворуч збережіть дані (Save) або відкиньте їх (Discard).
iv. Налаштування ПІД-регулятора
Примітка: наполегливо рекомендуємо переглянути навчальне відео до цього розділу.
ПІД-регулятор — спеціальний алгоритм для підтримання заданого значення певного датчика. Він безперервно обчислює потрібний вихід газу, щоб рушійна система наближалася до бажаного показу.
Перед виконанням цих інструкцій потрібно успішно запустити перший файл example.py із репозиторію. Якщо ще не зробили цього, перегляньте розділ 5в: для прикладу ПІД-регулювання потрібно встановити певні пакети.
Навчальне відео: https://youtu.be/8HSNoONR3yg
Кроки:
- Якщо example.py уже успішно запускається (розділ 5в), відкрийте Flight Stand.
- Відкрийте середовище Python, наприклад PyCharm, і в консолі встановіть simple-pid командою: py -m pip install simple-pid
- Відкрийте файл .proto й знайдіть номер сигналу цільової величини — у прикладі це тяга. Прокрутіть до списку вхідних сигналів: тязі FZ відповідає номер 11. Запишіть його.

- Відкрийте приклад 4 і змініть вхідні й вихідні сигнали відповідно до силових установок у Flight Stand. Потрібні відомості доступні на вкладці Hardware: натисніть установку й виділіть перший рядок тексту на вкладці Identification.

- Скопіюйте ці відомості до інформації про вхідну й вихідну плати у файлі Python.
- Запустіть файл Python. Термінал покаже список доступних входів.
- Знайдіть вхід із номером цільового сигналу (11 для тяги) і введіть його в example_PID_constant_thrust.py після цільової вхідної плати.
- Прокрутіть до Target value і введіть бажану тягу в ньютонах, оскільки файл використовує одиниці SI.

- Перевірте тривалість періоду й задайте початкові значення коефіцієнтів Kp, Ki та Kd.
- Ki — коефіцієнт інтегральної складової: його множать на інтеграл похибки й додають для її компенсації.
- Kd — коефіцієнт диференціальної складової, який множать на похідну похибки.
- Kp — коефіцієнт пропорційної складової; його множать безпосередньо на похибку.
- Запустіть сценарій і спостерігайте за реакцією Flight Stand.
- За потреби змінюйте Kp, Ki та Kd до отримання прийнятного відгуку ПІД-регулятора.
6. Налаштування випробувань і робота з даними
а. Обмеження швидкості зміни керування двигуном
Обмежуйте швидкість зміни газу, щоб захистити двигун від перевантаження струмом або крутним моментом.
Кроки для ручного випробування:
- Перед активацією ESC натисніть значок шестерні ліворуч від повзунка газу.
- У полі Rate limiter введіть максимальну швидкість зміни в мкс/с.
- Після цього програма покаже приклад часу наростання або зменшення газу до максимального значення чи від нього.
- Наприклад, за обмеження 500 мкс/с перехід від 1 000 до максимальних 2 000 мкс займе 2 с.
- Активуйте ESC і збільште газ. Помаранчева смуга покаже поточний рівень з урахуванням обмежувача.

Кроки для автоматизованого випробування:
- Якщо обмежувач увімкнений на вкладці ручного керування, він діятиме й в автоматизованих випробуваннях. Це найкращий варіант для однакового обмеження впродовж усього випробування.
- Також можна задати різні обмеження для окремих етапів на вкладці Automated Control. Перейдіть на неї.
- Виберіть тип випробування й введіть кроки послідовності в таблицю.
- Четвертий стовпець таблиці — обмежувач швидкості зміни. Введіть потрібні межі для кожного кроку.
- Прокрутіть до Sequence preview, щоб побачити майбутній перебіг випробування.
- Натисніть Execute sequence для запуску з обмежувачем.
б. Налаштування графіків поточних даних
Налаштуйте відображення даних у реальному часі під час випробування.
Кроки:
- Розгорніть вікно Real-time plots, потягнувши його знизу вгору або скориставшись стрілками праворуч.
- Якщо силових установок кілька, установіть прапорці біля потрібних у верхньому лівому куті, щоб вибрати їх для графіків.

- Повзунком Timespan посередині задайте часовий діапазон осі X. Типове значення — 30 с, але його можна збільшити або зменшити.
- Кнопка Layout праворуч відкриває налаштування вигляду. Можна змінити порядок, увімкнути чи вимкнути графіки та задати кількість стовпців для більших або менших діаграм.

- Перемикач Pause праворуч призупиняє відображення, щоб розглянути конкретний фрагмент. Після вимкнення перегляд повертається до поточних даних.
- Show unfiltered показує нефільтровані дані. Типово застосовується фільтр низьких частот 1 Гц для згладжування показів; цей перемикач його прибирає.
в. Усунення шуму
Налаштуйте фільтр шуму для даних. Для графіків реального часу дивіться пункт 6 попереднього розділу.
Примітка: усі дані записуються без фільтра шуму. Ця функція застосовує програмний фільтр низьких частот із вибраною частотою зрізу.
Для зміни рівня шуму в збережених даних виконайте такі кроки.
Кроки:
- На вкладці Tests відкрийте потрібне випробування.
- Перейдіть на Plots і повзунком Noise filter налаштуйте рівень усунення шуму.
- Автоматично застосовується фільтр 1 Гц. Його можна повністю вимкнути або обрати вищу чи нижчу частоту.

г. Передискретизація даних
Після випробування експортуйте дані з потрібною частотою дискретизації.
Кроки:
- Після завершення відкрийте потрібне випробування на вкладці Tests.
- Перейдіть на вкладку експорту, де показано таблицю всіх точок даних.
- У Time resolution виберіть Resample і введіть потрібний інтервал у полі, що з’явиться. Значення задає інтервал між відліками в секундах.
- Типовий інтервал — 0,1 с, тобто 10 відліків за секунду.
- Частота не може перевищувати можливості стенда: 100 відліків/с для Standard Flight Stand і 1 000 відліків/с для Pro.

- Натисніть Export to CSV, щоб зберегти дані на комп’ютері з потрібною частотою.
7. Підключення CAN ESC
Flight Stand підтримує більшість протоколів ESC, але для CAN потрібне додаткове налаштування.
У прикладі використано програму Yukon для пристроїв Zubax. Для інших продуктів CAN може знадобитися інше стороннє програмне забезпечення.
Навчальне відео: https://youtu.be/BiZuCrVQNnU?si=V2gVWdD7fGlJeMeZ
Кроки:
- Завантажте й відкрийте програму Flight Stand.
- Завантажте репозиторій за адресою https://gitlab.com/TytoRobotics/flightstand-api і розпакуйте його на комп’ютері.
- Завантажте найновішу версію Python і PyCharm Community Edition.
- Відкрийте PyCharm і завантажений репозиторій.
- У завантаженій папці перейдіть до languages → python → examples → canbus-cyphal.
- Тут розташовані приклади, які ми запускатимемо.

- Налаштуйте інтерпретатор: File → Settings → Project → Python interpreter, а у вікні виберіть Add interpreter → Add local interpreter.
- Натисніть Apply — PyCharm автоматично налаштує віртуальне середовище.
- Для перевірки знайдіть його за шляхом віртуального середовища або відкрийте термінал: його назва має відображатися перед командним рядком.
- Відкрийте README у папці examples.
- Виконайте три команди з README, щоб установити пакети, потрібні для Python API.
- Для перевірки відкрийте Flight Stand і переконайтеся, що на вкладці Hardware підключена імітована плата з входом газу ESC.

- У examples відкрийте папку canvas.cyphal і файл example_1_main.
- Скопіюйте команду з рядка 15 у консоль і натисніть Enter для встановлення додаткового пакета.

- Виділіть змінні середовища в рядках 20–24, натисніть правою кнопкою та виберіть Modify Run Configuration.
- У рядку змінних середовища натисніть Ctrl+A, потім Ctrl+V, щоб замінити змінні.

- Натисніть OK, потім правою кнопкою виберіть Run example 1 Main.
- Може виникнути помилка через відсутність ліцензійного ключа. Напишіть на support@tytorobotics.com , щоб отримати ключ для вашого Flight Stand.
- Отримавши ключ, у Flight Stand відкрийте Setup → License, введіть його й натисніть Enter.

- Програма перезапуститься, а вкладка ліцензії покаже її активацію.
- Поверніться до PyCharm і натисніть Run example 1 Main.
- Поверніться до Flight Stand: програма має показати підключений імітований нагрівач.
- Відкрийте example_1_plant.py.
- Скопіюйте змінні середовища в конфігурацію запуску й запустіть приклад.
- На вкладці Manual control програми Flight Stand з’явиться керування нагрівачем.

- Налаштуйте Yukon для роботи з пристроями CAN bus Cyphal. Перейдіть на www.github.com/opencyphal/yukon , прокрутіть до GitHub releases, відкрийте посилання та завантажте Yukon.exe.
- Відкрийте Yukon. Тепер налаштуємо простір імен DSDL.
- Файли Zubax DSDL призначені саме для пристроїв Zubax Cyphal CAN. Для інших виробників може знадобитися імпортувати інші файли DSDL.
- На вкладці Settings натисніть Add path → Browse і відкрийте завантажену папку Flight Stand API. Перейдіть до languages → python → examples → canbus_cyphal і виберіть public_regulated_data_types.

- Знову натисніть Add path → Browse, відкрийте ту саму підпапку й виберіть zubax_dsdl. Унизу сторінки натисніть Save configuration.
- Закрийте й перезапустіть програму Cyphal.
- У полі UDP interface у верхній частині правої панелі задайте 127.0.0.1.

- Натисніть Start this transport.
- Якщо з’явиться помилка Cannot find wcap.dll library, завантажте безкоштовну програму Npcap із www.npcap.com. На головній сторінці знайдіть Downloading and Installing Npcap Free Edition, завантажте інсталятор і завершіть встановлення.
- Поверніться до Yukon і знову натисніть Start this transport.
- У PyCharm залиште запущеним лише example_1_plant. У Yukon натисніть правою кнопкою рядок біля 2346, виберіть Subscribe to 2346 і повторно Subscribe у вікні. Це дасть змогу бачити імітовану температуру в реальному часі у Flight Stand.

- Для рядка 2347 виберіть Publish to 2347 і Add number field. Оберіть volt, а в останньому полі введіть 5, щоб задати напругу 5 В.
- Натисніть Enable: показ температури в кельвінах у верхньому вікні почне повільно зростати.

- Завершіть обидва попередні приклади в PyCharm і відкрийте example_3.
- Під’єднайте ESC до комп’ютера. Для Zubax один USB-кабель живить ESC, інший підключає пристрій Babel.
- У Yukon перевірте налаштування обладнання. На вкладці Settings мають бути всі потрібні файли DSDL, зокрема Zubax DSDL.
- На правій панелі перейдіть до CAN → SL/CAN, перевірте порт COM3 й натисніть Start this transport.
- Прокрутіть до таблиці Unassigned ports і призначте полям відповідні порти:
- Поруч із zubax.physics.dynamics введіть 100.
- Поруч із zubax.physics.electronics введіть 101.
- Поруч із setpoint_rat_torque введіть 111.

- Натисніть Restart на панелі ліворуч для перезапуску з’єднання.
- На вкладці Monitor натисніть правою кнопкою стрілку power і виберіть Subscribe to 101. Для dynamics виберіть Subscribe to 100. В обох вікнах повторно натисніть Subscribe.
- Для setpoint_rat_torque виберіть Publish to 111. У Publisher натисніть Add number field, виберіть value (0) і в крайньому правому полі введіть 0.05 як крутний момент у Н·м.
- Натисніть Enable — ESC запустить двигун. За наявності навантаження швидкість обмежувалася б обертами, що відповідають моменту 0,05 Н·м.

- Відкрийте example_3_telega_ESC.py й у рядку 44 змініть порт на COM3, до якого підключено ESC.

- Налаштуйте середовище запуску: скопіюйте змінні в конфігурацію через праву кнопку → Modify Run Configuration. У рядку змінних натисніть Ctrl+A, Ctrl+V, потім Apply.
- Переконайтеся, що Flight Stand відкрито, потім правою кнопкою виберіть Run example_3_telega_ESC.py.
- Якщо на вкладці Hardware програми Flight Stand з’явився Zubax ESC, підключення успішне.

- На вкладці Powertrain Mappings перевірте правильність прив’язки CAN / Zubax ESC.
- Перевірте з’єднання, активувавши ESC на вкладці Manual Control.
8. Дистанційне керування програмою
Дистанційне керування корисне, наприклад, для роботи з іншої операційної системи через Python API або для підвищення безпеки. У цьому розділі пояснено налаштування двох комп’ютерів в одній мережі: перший під’єднаний через USB до концентратора синхронізації Flight Stand, другий використовується дистанційно.
Пам’ятайте про безпеку: будь-хто в мережі може запустити пропелер. Забезпечте чітку комунікацію з командою, повний контроль умов випробувань і використовуйте лише приватну мережу.
Навчальне відео: https://youtu.be/kfvCMsBG8mg
Кроки:
- Закрийте Flight Stand і натисніть правою кнопкою його ярлик.
- Відкрийте Properties і в кінці поля Target додайте аргумент командного рядка « --remote».
- Якщо з’явиться повідомлення про неправильну назву, перевірте пробіл перед --remote.

- Після відкриття програми з’явиться попередження про приймання дистанційних підключень і пов’язані з цим наслідки для безпеки.

- На цьому самому комп’ютері визначте IP-адресу командою ipconfig у командному рядку.

- На другому комп’ютері знайдіть ярлик Flight Stand і натисніть його правою кнопкою.
- У Properties знайдіть Target і в кінці додайте --target=192.168.86.57:50051, замінивши адресу перед двокрапкою на IP першого комп’ютера.
- Після запуску програми з’явиться таке саме попередження.
- Для перевірки на вкладці Manual Control активуйте ESC і спробуйте збільшити газ. Перший комп’ютер і стенд мають виконувати ваші команди.