Канали керування, виходи Pixhawk і SITL¶
Ця сторінка описує наскрізний тракт керування CFMOTO CFORCE 520L:
пульт / QGroundControl / dashboard
-> RC-канал у ArduRover
-> перевірки безпеки CFMotoDBW
-> SERVO або RELAY вихід Pixhawk
-> привід чи електричне коло машини
Значення нижче взяті з canonical-гілки cforce520-dbw у
/srv/maul/ardupilot. Параметри MAUL_* можуть змінити номер вхідного
каналу, тому під час діагностики потрібно перевіряти їх свіжим readback, а
не покладатися лише на таблицю.
Не переносити параметри SITL на реальний Pixhawk
Профіль maul-cfmoto.parm містить синтетичні PWM, GPIO та RPM для
симулятора. Вони не є результатом калібрування реальних приводів.
Вхідні RC-канали¶
| RC | Параметр | Призначення | Тип команди та важливі умови |
|---|---|---|---|
RC1 |
MAUL_START_CH=1 |
Стартер | Моментна команда: вище 1700 мкс — запит запуску. Після відпускання стартер негайно вимикається. |
RC2 |
MAUL_GAS_CH=2 |
Газ | Пропорційна команда від trim до max. Гальмо завжди має пріоритет над газом. |
RC3 |
MAUL_IGN_CH=3 |
Запалювання | Вище 1700 мкс — увімкнути; нижче 1300 мкс — вимкнути. |
RC4 |
RCMAP_ROLL=4 |
Кермо | Пропорційна команда вліво/вправо. Центр — 1500 мкс. |
RC5 |
MAUL_BRK_CH=5 |
Робоче гальмо | Пропорційна команда від trim до max. Будь-яке гальмування пригнічує газ. |
RC6 |
MAUL_GEAR_CH=6 |
Селектор коробки | П'ять каліброваних PWM-кнопок P/R/N/H/L; значення наведені нижче. |
RC7 |
MAUL_4WD_CH=7 |
Повний привід | Вище 1700 мкс — запит 4WD. Перемикання дозволене лише за безпечної швидкості, RPM і нейтральних газу/гальма. |
RC8 |
MAUL_THR_LIM_CH=8 |
Обмежувач газу | Вище 1700 мкс обмежує команду газу до MAUL_THR_LIM, типово 50%. Це не регулятор швидкості. |
RC10 |
MAUL_DIFF_CH=10 |
Блокування диференціала | Вище 1700 мкс — запит блокування. Воно вмикається лише разом із 4WD і за безпечних умов. |
RC15 |
MAUL_GCL_CH=15 |
PWM газу під час калібрування | Службовий browser-local override. Не є звичайним водійським каналом. |
RC16 |
MAUL_CAL_CH=16 |
Dead-man калібрування коробки | Має безперервно залишатися вище 1700 мкс протягом sweep. Втрата heartbeat/USB відпускає канал і перериває калібрування. |
Канали RC9, RC11–RC14, RC17 і RC18 не мають штатної ролі в
поточній конфігурації CFMotoDBW.
Положення селектора коробки¶
RC6 декодується за каліброваними параметрами MAUL_GIN_*:
| Положення | Параметр | Поточний PWM |
|---|---|---|
| Park | MAUL_GIN_P |
1755 мкс |
| Reverse | MAUL_GIN_R |
1535 мкс |
| Neutral | MAUL_GIN_N |
1412 мкс |
| High | MAUL_GIN_H |
1295 мкс |
| Low | MAUL_GIN_L |
1075 мкс |
Типовий допуск MAUL_GIN_TOL=50 мкс. Діапазони не повинні
перекриватися. Значення поза всіма діапазонами означає невідому передачу та
блокує тягу.
Під час штатного перемикання оператор тримає газ і робоче гальмо в
нейтральному положенні. Прошивка сама переводить газ у IDLE, прикладає
BRK_HOLD, перевіряє швидкість/RPM, за потреби проходить через Neutral і
лише тоді рухає привід коробки. Після перемикання газ потрібно один раз
відпустити в нейтраль — це захист від автоматичного відновлення тяги.
Виходи Pixhawk¶
| Вихід | Функція / параметр | Навантаження | Safe-стан |
|---|---|---|---|
MAIN1 / SERVO1 |
Script1 (94) |
Привід газу | MAUL_GAS_IDLE; SERVO1_TRIM має збігатися з IDLE. |
MAIN2 / SERVO2 |
Script2 (95) |
Привід робочого гальма | MAUL_BRK_HOLD; SERVO2_TRIM має збігатися з HOLD. |
MAIN3 / SERVO3 |
Steering (26) |
Arduino-контролер керма | MAUL_STR_FS, типово 1500 мкс. |
MAIN4 / SERVO4 |
Script3 (96) |
Привід коробки | Neutral / безпечне утримання за логікою стану. |
MAIN5 |
RELAY2_PIN=105 |
Стартер | Завжди OFF після відпускання, timeout, появи робочих RPM або failsafe. |
MAIN6 |
RELAY1_PIN=106 |
Запалювання | OFF при відсутності запиту; у штатному режимі запуску контролюється state machine двигуна. |
AUX3 |
RELAY3_PIN=52 |
4WD | Стан не змінюється, якщо швидкість/RPM/органи керування небезпечні. |
AUX4 |
RELAY4_PIN=53 |
Блокування диференціала | Може бути ON лише разом із 4WD. |
AUX5 |
RPM1_PIN=54 |
Частотний вхід RPM1 | Ідентичність фізичного датчика ще потрібно підтвердити на машині. |
AUX6 |
RPM2_PIN=55 |
Частотний вхід RPM2 | MAUL_ENG_RPM_I=2 типово використовує RPM2 як RPM двигуна; перевірити на живому обладнанні. |
SERVO_RATE=50. Для керма використовуються SERVO3_MIN=1000,
SERVO3_TRIM=1500, SERVO3_MAX=2000. Деталі локального контуру Nano/AS5600
див. у документації контролера керма.
Умови запуску двигуна¶
Звичайний запуск стартера дозволяється лише коли одночасно виконано:
- Rover
ARMED. - Запалювання запитане через
RC3. - Стартер утримується через
RC1. - Вибрано P або N.
- Машина стоїть.
- Газ і робоче гальмо в нейтральному положенні.
- Немає failsafe.
- Налаштований
MAUL_ENG_RPM_I, а relay 1/2 присутні.
Після MAUL_ENG_DLY прошивка вмикає стартер максимум на
MAUL_ENG_CRANK. Щойно RPM перевищує MAUL_ENG_RUN_RPM, стартер
відпускається. Окремий guarded-режим калібрування газу може запускати двигун
у DISARMED, але вимагає свіжої телеметрії коробки, підтвердженої P/N та
dead-man; це не обхід штатних interlock'ів.
Поведінка при failsafe і DISARMED¶
- газ повертається в
MAUL_GAS_IDLE; - гальмо переходить у
MAUL_BRK_HOLD; - тяга не відновлюється, доки органи керування не повернулися в neutral;
- стартер вимикається негайно;
- 4WD і diff-lock не перемикаються за небезпечної швидкості або RPM;
- невідома, прострочена чи суперечлива телеметрія коробки блокує тягу, якщо
MAUL_TLM_EN=1.
Повна симуляція на server_maul_hard¶
Для SITL використовується окремий профіль:
/srv/maul/ardupilot/Tools/autotest/default_params/maul-cfmoto.parm
і модель:
--model rover-cfmoto
Модель читає ті самі виходи, що й машина:
SERVO1— газ;SERVO2— гальмо;SERVO3— кермо;SERVO4— напрямок/положення коробки;- SITL GPIO
0/1— запалювання/стартер; - SITL GPIO
2/3— 4WD/diff-lock; RPM1_TYPE=10— модельовані RPM двигуна.
У SITL задані синтетичні actuator PWM 1100…1900, а Nano коробки відсутня,
тому MAUL_TLM_EN=0 і фізична модель використовує командовану передачу.
Це дозволяє перевірити pre-arm, ARM, запуск двигуна, RPM cutoff стартера,
перемикання P/R/N/H/L, газ, гальмо, руль, 4WD і diff-lock без підключеного
Pixhawk. Реальна телеметрія Nano та фізичні межі приводів перевіряються
окремо на стенді.
QGroundControl підключається прямим TCP link до 136.243.89.142:5760.
Користувацькі канали потрібно передавати як RC/joystick channels згідно з
таблицею вище; звичайний virtual joystick із двома осями сам по собі не
формує команди коробки, стартера, 4WD і diff-lock.