Skip to content

OptiTrack (2/3): NatNet server emulator + host integration tests#375

Draft
JohnYanxinLiu wants to merge 3 commits into
johnliu/optitrack-autonomyfrom
johnliu/optitrack-natnet-server
Draft

OptiTrack (2/3): NatNet server emulator + host integration tests#375
JohnYanxinLiu wants to merge 3 commits into
johnliu/optitrack-autonomyfrom
johnliu/optitrack-natnet-server

Conversation

@JohnYanxinLiu

Copy link
Copy Markdown
Collaborator

2 of 3 in the OptiTrack split. Stacked on 1/3 (optitrack-autonomy).

  • NatNet server emulator (optitrack.natnet.emulator, protocol core) — pure-Python OptiTrack Motive server emulation (unicast server, data/model/server types, serializers, default catalogs). USD/Isaac-free.
  • Registered via a sim: entry in colcon_unit_test_packages.yaml; root conftest puts each unit-test package's import root on sys.path (no per-package conftest.py, avoids a --import-mode=importlib collision).
  • Host integration tests (tests/integration/natnet/, integration mark, no GPU): drive the real natnet_ros2 client from the emulator and check pose Hz (single- + multi-body).

Tests: -m unit green incl. the 4 server test files (61 total); -m integration = 2 server-only cases. The Isaac-wrapper variants land in 3/3.

Version: 0.19.0-alpha.10. Base: johnliu/optitrack-autonomy (1/3).

🤖 Generated with Claude Code

JohnYanxinLiu and others added 3 commits July 23, 2026 14:19
… tests

The pure-Python NatNet server that emulates an OptiTrack Motive server so
natnet_ros2 can be driven without hardware. USD/Isaac-free — this is the protocol
+ server core (unicast server, data/model/server types, serializers, default
catalogs). The Isaac wrapper that maps a USD scene onto this server lands next.

Registers the emulator package's co-located unit tests via a `sim:` entry in
tests/colcon_unit_test_packages.yaml (base's simulation/**/<pkg>/test glob). The
root conftest now puts each unit-test package's import root on sys.path so
co-located tests import their package without a per-package conftest.py.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Drive the real natnet_ros2 client from the host NatNet server emulator and check
the drone pose reaches ROS at rate (single-body and multi-body profiles). No sim,
no GPU — uses the base's `robot_autonomy_stack` fixture + `integration` mark. The
Isaac-wrapper variant lands with the Isaac wrapper PR.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Version-increment gate for the NatNet server PR (base optitrack-autonomy alpha.9).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant