[Backport release/3.0.0] Fix SpaceNavigator device detection - #7593
[Backport release/3.0.0] Fix SpaceNavigator device detection#7593kellyguo11 wants to merge 1 commit into
Conversation
# Description This PR adds support for detecting the legacy 3Dconnexion SpaceNavigator as an `Se3SpaceMouse` input device. The device reports `SpaceNavigator` as its HID product string. Because this value was absent from the supported-device check, Isaac Lab raised a `No device found by SpaceMouse` error even when the device was connected and accessible. This change adds `SpaceNavigator` to the existing SpaceMouse product-string allowlist. No additional dependencies are required. ## Type of change * Bug fix (non-breaking change which fixes an issue) ## Release backport * [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop` ## Screenshots Not applicable. This change affects HID device detection and does not alter the user interface. ## Testing Manually tested on Linux with a 3Dconnexion SpaceNavigator: * USB ID: `046d:c626` * HID product string: `SpaceNavigator` * Before this change, `Se3SpaceMouse` failed to find the connected device. * After this change, Isaac Lab successfully detected and opened the device. * All pre-commit checks pass with `./isaaclab.sh --format`. ## Checklist Docker and GPU tests run on demand. Push the commits you want tested, then comment `run-ci` on the pull request. * [x] I have read and understood the [[contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) * [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` * [x] Documentation changes are not required because this change does not affect the user-facing API * [x] My changes generate no new warnings * [ ] I have added tests that prove my fix is effective or that my feature works * [x] I have added a changelog fragment under `source/<pkg>/changelog.d/` for every touched package * [ ] I have added my name to the `CONTRIBUTORS.md` or my name already exists there Signed-off-by: Pranav Shirgur <pranav.shirgur@gmail.com> (cherry picked from commit 6fdadea)
There was a problem hiding this comment.
Isaac Lab Review Bot
This focused backport adds the legacy "SpaceNavigator" HID product string to the existing SpaceMouse detection allow-list, along with the corresponding Isaac Lab changelog fragment and contributor entry.
- Design and architecture: The change preserves the existing SpaceMouse architecture: detection remains in
_find_device, and the newly recognized device follows the established non-receiver processing path without changing device lifecycle behavior or introducing dependencies. - API: No public symbols, signatures, defaults, return types, or documented contracts are changed. The user-visible fix is recorded through the required per-package changelog fragment rather than a direct
CHANGELOG.rstedit. - Implementation: The added product-string match leads to the existing 7-byte non-receiver read branch in
_run_device; the special 13-byte path remains limited to the 3Dconnexion Universal Receiver. The patch is minimal and internally consistent, though hardware validation was not repeated for this exact cherry-pick.
No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.
Automated review; human maintainers own approval decisions.
Greptile SummaryThis backport expands SpaceMouse HID detection to recognize legacy devices reporting the
Confidence Score: 4/5The PR should not merge until legacy SpaceNavigator detection is applied consistently to the SE(2) SpaceMouse implementation. The new identifier fixes SE(3) construction, but selecting the repository’s analogous SE(2) SpaceMouse interface still rejects the same legacy hardware. Files Needing Attention: source/isaaclab/isaaclab/devices/spacemouse/se3_spacemouse.py and source/isaaclab/isaaclab/devices/spacemouse/se2_spacemouse.py Important Files Changed
Reviews (1): Last reviewed commit: "Fix SpaceNavigator device detection (#75..." | Re-trigger Greptile |
| or device["product_string"] == "SpaceMouse Wireless" | ||
| or device["product_string"] == "SpaceNavigator for Notebooks" | ||
| or device["product_string"] == "3Dconnexion Universal Receiver" | ||
| or device["product_string"] == "SpaceNavigator" |
There was a problem hiding this comment.
SE(2) Detection Remains Broken
Adding the legacy "SpaceNavigator" identifier only to Se3SpaceMouse leaves the same device undetectable through Se2SpaceMouse, whose supported-device list still omits this identifier. A user selecting the 2D SpaceMouse interface with this legacy hardware will still receive the “No device found by SpaceMouse” initialization error, so the advertised detection fix is incomplete.
Knowledge Base Used: Interaction and teleoperation
Description
Backports #7544 to
release/3.0.0after the automated backport workflow skipped the checked selection.This is an exact cherry-pick of merged commit
6fdadeac68be8f01813a4f260b66b9e85d1af9ae. It adds legacy 3Dconnexion SpaceNavigator detection, the original changelog fragment, and the original contributor entry. No additional dependencies are required.Type of change
Release backport
release/3.0.0; no further backport is requested.Screenshots
Not applicable. This change affects HID device detection and does not alter the user interface.
Testing
.github/scripts/backport.py validate-candidate --exact_patchagainst Fix SpaceNavigator device detection #7544.Checklist