IMRCLab / IMRCLab/motion_capture_tracking
OptiTrack on ROS2 Humble: prevent NatNet ABI link failures, fix model-def segfault
- Dominant language
- C++
- Stars
- 83
- Forks
- 44
- PR merge metrics
- No merged PRs in 30d
Description
- Problem:
- Ubuntu 22.04 / ROS2 Humble users can hit linker failures when closed-source NatNet binaries require newer GLIBC/GLIBCXX.
- Runtime segfault occurred in OptiTrack model definition parsing with malformed/newer packet layouts.
- Fix summary:
- Force closed-source OptiTrack backend OFF in parent CMake cache; install libNatNet only when that backend is enabled.
- Harden parseModelDef with bounds checks and safe string consumption.
- Make interface binding configurable with interface_ip fallback to 0.0.0.0.
- Keep dependency scope minimal: include NatNetSDKCrossplatform bump only (no vrpn/vicon bump).
- Validation:
- colcon build --symlink-install --packages-select motion_capture_tracking passed.
- Runtime no longer segfaults at startup with type:=optitrack.
- PR:
- Will be opened from Lorite/motion_capture_tracking:ros2 to IMRCLab/motion_capture_tracking:ros2.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the parent CMake configuration and the parseModelDef entry point, then run colcon build --symlink-install --packages-select motion_capture_tracking. Check the NatNetSDKCrossplatform dependency scope and interface_ip handling. Done means the package builds on ROS2 Humble and type:=optitrack no longer segfaults at startup or fails from the closed-source backend linkage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- robotics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100