АО «НИИАС» (дочернее общество ОАО «РЖД») — единственный в стране институт, занимающийся созданием, развитием и внедрением беспилотных технологий и созданием устройств безопасности на железнодорожном транспорте.

Быть частью АО «НИИАС» — значит быть частью инновационной компании и иметь возможность внести свой вклад в создание передовых технологий автоматизации управления движением на железнодорожном транспорте в России и мире.

Мы разрабатываем системы технического зрения для беспилотного железнодорожного транспорта. На полигонах работают несколько направлений:

  • БОП МЛ — блок обнаружения препятствий для маневровых локомотивов на сортировочных станциях.
  • БОП МЦК — блок обнаружения препятствий для подвижного состава на МЦК (Московское центральное кольцо).
  • Стационарные комплексы в Челябинске и на Лужской — ригельные установки с камерами и лидарами, детекция и трекинг объектов в зоне ответственности станции.
  • ССК — стационарная система калибровки лидарных и камерных модулей.

Лидар — ключевой сенсор во всех контурах. Мы ищем Инженера-алгоритмиста / Robotics Software Engineer для работы над развитием лидарного стека: от низкоуровневой обработки облаков точек до одометрии, SLAM и детекции препятствий в реальном времени.

Стек технологий проекта:

  • C++17/20
  • Python
  • Eigen
  • PCL
  • Open3D
  • GTSAM
  • ICP
  • ESKF
  • ROS/ROS2
  • Linux
  • CMake

Что уже есть и куда движемся:

Базовый контур построен на евклидовой кластеризации с эвристической фильтрацией и отдельном perception-сервисе с нейросетевой BEV-детекцией. Этот контур остаётся на поддержке, но имеет известные ограничения по точности, шумам и ложным срабатываниям, и постепенно замещается новой парадигмой.

Новая парадигма — геометрическая, на базе ICP и фактор графов:

  • На стационарных комплексах — динамический ICP-матчинг с эталонным облаком (компенсация колебаний ригеля), после чего идёт вычитание точек земли и детекция объектов.
  • В стационарной калибровке — ICP против эталонного облака.
  • На БОП МЛ — лидарно-инерциальная одометрия с ESKF (error-state Kalman filter, IMU propagation + point-to-plane ICP update), далее статическая фильтрация аккумулированной fused-карты и DBSCAN по кандидатам.
  • На БОП МЦК — полноценный лидарный SLAM: ESKF-одометрия + factor graph поверх неё, loop closure через place recognition, детекция через ROI и вычитание инфраструктуры из текущего облака.

Задачи, которые необходимо будет выполнять:

Развитие геометрического стека:

  • Улучшение и обобщение ICP-пайплайнов (point-to-plane, point-to-edge), повышение устойчивости к частичным перекрытиям и динамическим сценам.

  • Доработка ESKF-одометрии: инициализация, детекция аутлаеров, фьюзинг IMU/LiDAR, компенсация дисторсии.

  • Работа с factor graph backend (GTSAM): корректная инициализация графа, place recognition для loop closure, маргинализация.

Детекция и восприятие:

  • Детекция подвижного состава, инфраструктуры, препятствий на путях; специфичные объекты — автосцепки, тормозные башмаки, габариты вагонов.

  • Борьба с шумом и интерференцией лидаров.

  • Ground segmentation, статическая фильтрация, кластеризация (DBSCAN, Euclidean Clustering).

Производительность и интеграция:

  • Оптимизация кода под бортовые вычислители.

  • Портирование прототипов с Python на C++, профилирование, многопоточность.

  • Тестирование на данных реальных полигонных испытаний, unit- и integration-тесты.

Калибровка:

  • Развитие ICP-based лидарной калибровки, построение корректных эталонных облаков в целевой системе координат.

  • Кросс-модальная калибровка LiDAR ↔ камера ↔ IMU.

Требования к кандидату:

  • Владение C++17/20 на уверенном уровне: smart pointers, move semantics, concurrency, STL, RAII. Опыт написания производительного кода под Linux.

  • Eigen — свободное владение, трансформации, разложения, numerical stability.

  • Геометрическая обработка 3D: облака точек, k-d деревья, voxel grids, downsampling, motion compensation. PCL и Open3D.

  • Оценка состояния: фильтр Калмана (включая ESKF / iterated EKF), понимание Lie-групп (SO(3), SE(3)) для работы с вращениями и многообразиями.

  • Регистрация облаков: ICP (point-to-point, point-to-plane, point-to-edge), понимание сходимости, стратегий инициализации и outlier rejection.

  • Численная оптимизация: Gauss-Newton, Levenberg-Marquardt, понимание того, что происходит внутри GTSAM.

  • Классические алгоритмы: кластеризация (DBSCAN, Euclidean), сегментация (RANSAC для плоскостей/цилиндров).

  • Python 3 для прототипирования и анализа данных.

  • Linux, CMake, уверенная работа с системой сборки и зависимостями.

  • Высшее техническое образование.

Будет плюсом:

  • Практический опыт с GTSAM, g2o или Ceres, понимание factor graph'ов, маргинализации, sparse linear algebra.

  • Опыт работы со SLAM (LIO-SAM, FAST-LIO, KISS-ICP, LOAM-семейство).

  • ROS/ROS2 (pointcloud2, tf2) или ZCM.

  • Понимание устройства и калибровки механических и solid-state лидаров (Velodyne, Hesai, Ouster, Livox, RoboSense).

  • Опыт применения ML для 3D-данных (PointNet/++, VoxelNet, Cylinder3D, PointPillars), PyTorch/TensorRT — как дополнение к геометрическому стеку.

  • Опыт работы в транспортной, робототехнической или автономной отрасли (беспилотный транспорт, промышленная робототехника, AGV).

  • Опыт place recognition (Scan Context и т.п.).

Мы предлагаем:

  • Работу в инновационной и технологической компании, возможности для профессионального развития и карьерного роста.
  • Конкурентную оплату труда, официальное трудоустройство по ТК РФ в аккредитованную IT-компанию.

  • ДМС в течение двух первых месяцев работы.

  • Офис, где есть все необходимое для комфортной работы, в 5 минутах пешей доступности от ст.м. Московские ворота.

  • Возможность обсуждения гибкого подхода к режиму труда. Главная задача — выполнять поставленные цели и быть частью команды.

  • Внутренние корпоративные мероприятия.

  • Дружелюбную атмосферу в коллективе — мы всегда открыты и готовы помочь.

Будем рады видеть вас в нашей команде!