АО «НИИАС» (дочернее общество ОАО «РЖД») — единственный в стране институт, занимающийся созданием, развитием и внедрением беспилотных технологий и созданием устройств безопасности на железнодорожном транспорте.
Быть частью АО «НИИАС» — значит быть частью инновационной компании и иметь возможность внести свой вклад в создание передовых технологий автоматизации управления движением на железнодорожном транспорте в России и мире.
Мы разрабатываем системы технического зрения для беспилотного железнодорожного транспорта. На полигонах работают несколько направлений:
- БОП МЛ — блок обнаружения препятствий для маневровых локомотивов на сортировочных станциях.
- БОП МЦК — блок обнаружения препятствий для подвижного состава на МЦК (Московское центральное кольцо).
- Стационарные комплексы в Челябинске и на Лужской — ригельные установки с камерами и лидарами, детекция и трекинг объектов в зоне ответственности станции.
- ССК — стационарная система калибровки лидарных и камерных модулей.
Лидар — ключевой сенсор во всех контурах. Мы ищем Инженера-алгоритмиста / 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 минутах пешей доступности от ст.м. Московские ворота.
-
Возможность обсуждения гибкого подхода к режиму труда. Главная задача — выполнять поставленные цели и быть частью команды.
-
Внутренние корпоративные мероприятия.
-
Дружелюбную атмосферу в коллективе — мы всегда открыты и готовы помочь.
Будем рады видеть вас в нашей команде!