MohamedNagyMostafa/RobMOT-ROS2

★ 0Forks 0C++GitHub ↗Compare

README

TUM RobMOT Tracking

This repository contains implementation of lastest version of RobMOT (RobMOT: T-ITS 2025, MD-KF: RA-L 2026). You can find the original repository of RobMOT via Github. Regarding MD-KF paper, kindly wait for the final version that will be shown in RA-L as the paper representation is more concise with interesting :) . For any question related to the repository, feel free to reach me out (Contact is at the end). A video of the node is available here.

Dependancy

Before running the node, make sure you have updated src/robmot/CMakeLists.txt with pathes matches the running machine. The node expects the following libraries:

C/G++: 13
CUDA: 12.8
Eigen3
Torch: (Please remove the related pytorch lines from this file as the robmot version in this repository does not require pytorch)
ros2 (rclcpp, sensor_msgs, cv_bridge, autoware_perception_msgs,tf2, visualization_msgs)

Configuration

The tracker is already finetuned on autoware detector using (KITTI dataset)[https://www.cvlibs.net/datasets/kitti/eval_tracking.php]. For more details, please check the following slides: Slide 1 Slide 2. The important configuration parameters are listed below:

# File src/robmot/config/config.h
//
// RobMOT has its own visualization node on Rviz. To activate this node, make sure `activateVisualizationNode` is true. However, disable it in case of deployment to avoid unnecessary computation.
        constexpr static const bool  activateVisualizationNode              = true; 
        // Detection input topic in autoware format
        constexpr static const char* detectionTopic                         =  "/perception/object_recognition/detection/objects";
        // tracking topic to publish
        constexpr static const char* trackingTopic                          =  "/tracked_objects";
    };
    # File src/robmot/config/config.cpp
    // The maximum distance (in meters) to associate an estimation to a recent detection.
    float parameters::Autoware::getEclTh() const  { return 4.0f; } 
     // validation score threshold. If a track validation score exceeds this threshold, its status convert to 'validated'. (For ghost tracks identification) Please read T-ITS paper for more details about this one.
    float parameters::Autoware::getGhostRemTh() const  { return 40.0f; }
    # File src/robmot/src/object_detection_module/ObjectDetection.cpp

    //  This line responsible of displaying driving intention arrow. (Please check the second slide). Make sure the `Eigen::Vector2d dir` accepts forward and left/right axis.
    Eigen::Vector2d dir(object->_3dBoxLiDAR->stateEstimation(3), -object->_3dBoxLiDAR->stateEstimation(2));
    ...
    if (object->_3dBoxLiDAR->found) {
                if(speed < 0.5){ // threshold to detect stationary objects. (Check the second slide) 
                    marker.color.g = 0.0; marker.color.r = 0.0;marker.color.b = 1.0;
                }else{
                    marker.color.g = 1.0; marker.color.r = 0.0;
                }
            } else {
                marker.color.g = 1.0; marker.color.r = 1.0;
            }
    

Licence

This work is based on two papers mentioned in the introduction. Please use the following citation if you used this work in a research purpose.

@ARTICLE{11071990,
  author={Nagy, Mohamed and Werghi, Naoufel and Hassan, Bilal and Dias, Jorge and Khonji, Majid},
  journal={IEEE Transactions on Intelligent Transportation Systems}, 
  title={RobMOT: 3D Multi-Object Tracking Enhancement Through Observational Noise and State Estimation Drift Mitigation in LiDAR Point Clouds}, 
  year={2025},
  volume={26},
  number={10},
  pages={16047-16059},
  keywords={Trajectory;State estimation;Noise;Detectors;Three-dimensional displays;Location awareness;Tracking;Logic gates;Accuracy;Kalman filters;3D multi-object tracking;state estimation;Kalman filter;LiDAR point cloud},
  doi={10.1109/TITS.2025.3581980}}

# For the paper below, please check first if its R-AL version is available. If so, replace it with the publish version in R-AL.
@misc{nagy2025accuratestateestimationkalman,
      title={Towards Accurate State Estimation: Kalman Filter Incorporating Motion Dynamics for 3D Multi-Object Tracking}, 
      author={Mohamed Nagy and Naoufel Werghi and Bilal Hassan and Jorge Dias and Majid Khonji},
      year={2025},
      eprint={2505.07254},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2505.07254}, 
}

Contanct

Mohamed Nagy
Email: [email protected] Website: Personal Website

Contributors

MohamedNagyMostafa

Issues