IMRCLab / IMRCLab/motion_capture_tracking

OptiTrack on ROS2 Humble: prevent NatNet ABI link failures, fix model-def segfault

Open
#29 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.