Engineered a lifecycle-managed C++ ROS2 vision microservice with an rclcpp action server interface, fusing synchronized RGB-D streams via message filters to project 2D AprilTag detections into 3D space using PCL and broadcast 6-DoF TF transforms for downstream Nav2 consumption.
Developed a custom Nav2 Behavior Tree plugin in C++ to trigger the vision pipeline on-demand post-navigation, and resolved ABI name-mangling preventing dlsym dynamic loading, DDS QoS mismatches causing silent frame drops, and lifecycle race conditions between the vision microservice and Nav2 bringup.
Built with