TF-Luna — однолучевой лазерный дальномер для дронов
TF-Luna — это однолучевой лазерный дальномер от Benewake, работающий по принципу времени пролёта (ToF, Time-of-Flight): он измеряет расстояние до одной точки впереди и отдаёт значение по UART или I²C. Стоит ~30 USD, весит 5 граммов, питается от 5 В. Для дронов это «дальномер на одно направление» — ровно то, что нужно, когда GPS не работает, а полноценный 360° лидар вешать некуда.

Как работает
Принцип времени пролёта прост: «отправил импульс, замерил время до отражённого». TF-Luna светит модулированным инфракрасным лазером 905 нм и считает фазовый сдвиг возвращённого сигнала. На выходе — одно число расстояния и «strength» (амплитуда отражения, косвенный признак уверенности замера).
Класс лазера первый — безопасный для глаз, но смотреть в упор всё равно не надо.
Характеристики
| Параметр | Значение |
|---|---|
| Диапазон | 0.2–8 м |
| Точность | ±6 см (типичная) |
| Частота кадров | 100 Гц по умолчанию, до 250 Гц |
| Интерфейс | UART 115200 бод / I²C |
| Угол обзора | ~2° (один луч) |
| Длина волны | 905 нм |
| Питание | 5 В, пик ~70 мА |
| Масса | 5 граммов |
| Класс лазера | первый (безопасный для глаз) |
Зачем в дронах
Три типичных сценария:
- Высотомер для полётов в помещении. GPS не работает, барометр дрейфует, нужен абсолютный референс высоты. TF-Luna смотрит вниз и даёт расстояние до пола. Точнее барометра на малых высотах (1–3 метра), не зависит от ветра как ультразвук.
- Дальномер вперёд. Один луч в направлении полёта — дешёвый способ узнать «там стена через 1.2 метра». Не заменяет 2D-лидар, но достаточно для тормозного манёвра.
- Скан-зависание (stop-and-scan). Дрон зависает, серво крутит TF-Luna по горизонтали, на каждом шаге снимается одно расстояние. На выходе — веер 180°, дешёвая альтернатива RPLidar для разведки в помещениях без GPS. См. скан-зависание — мы используем именно эту схему в проекте (TASK-001 и TASK-002).
Ограничения
- Один луч. Угол обзора ~2°. Без механического сканирования (серво) ловит только то, что ровно впереди — может пройти мимо тонкого препятствия (тросы, провода).
- Прямое солнце. На улице в полдень дальность падает в 2–3 раза, появляются помехи. Для уличных задач лучше 2D-лидар с фильтром или другая длина волны.
- Стекло и зеркала. Луч проходит сквозь или отражается под углом — TF-Luna либо «не видит», либо показывает дальность за стеклом.
- Чёрные и поглощающие поверхности. Углепластик, чёрный матовый пластик — дальность падает до 1–2 метров.
- Минимум 0.2 метра. Ближе слепая зона. Для подсадочной поддержки это нормально, для точного объезда препятствий — нет.
Альтернативы
| Сенсор | Диапазон | Цена | Когда лучше TF-Luna |
|---|---|---|---|
| VL53L0X | 0–2 м | ~3 USD | очень близкие препятствия, минимум габаритов и веса |
| VL53L1X | 0–4 м | ~10 USD | средняя дальность, многозонный угол обзора |
| HC-SR04 (ультразвук) | 0.02–4 м | ~2 USD | матово-чёрные и зеркальные поверхности (свет не помеха) |
| RPLidar A1 | 0–12 м, 360° | ~100 USD | нужен настоящий 2D-скан, а не серво-веер |
| TFmini Plus | 0.1–12 м | ~50 USD | те же задачи, что у TF-Luna, но дальше и точнее |
Для разведки в помещении без GPS на маленьком квадрокоптере связка TF-Luna + сервопривод SG90 даёт 80% возможностей RPLidar за ~10% цены. Минус — частота скана падает с 5–10 Гц (RPLidar) до ~0.05 Гц (один полный веер 180° ≈ 22 секунды). Для зависающего дрона достаточно.
Как используется в проекте claudeDrone
В нашей симуляции TF-Luna стоит на руке серво SG90 поверх модели iris_claudedrone. Координатная цепочка iris_claudedrone → sg90_arm → tf_luna_sweep гарантирует, что данные сенсора уже привязаны к углу серво через TF — отдельная синхронизация в коде не нужна. Полный скан 180° выдаёт 181 замер на топик /scan/sweep (sensor_msgs/LaserScan), шаг 1°, время прохода ~22 секунды (выдержка 120 мс на угол + ход серво). Подробнее — статья про скан-зависание.
Параметры выше относятся к TF-Luna в сценарии полёта в помещении (GPS_TYPE=0, AHRS_EKF_TYPE=10, без естественного освещения). На улице цифры будут другими — нужен отдельный замер.