Skip to content

[Backport release/3.0.0] Fix SpaceNavigator device detection - #7593

Open
kellyguo11 wants to merge 1 commit into
release/3.0.0from
codex/backport-7544-release-3.0.0
Open

[Backport release/3.0.0] Fix SpaceNavigator device detection#7593
kellyguo11 wants to merge 1 commit into
release/3.0.0from
codex/backport-7544-release-3.0.0

Conversation

@kellyguo11

Copy link
Copy Markdown
Contributor

Description

Backports #7544 to release/3.0.0 after 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

  • Bug fix (non-breaking change which fixes an issue)

Release backport

  • This PR directly targets 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

  • Validated the candidate with .github/scripts/backport.py validate-candidate --exact_patch against Fix SpaceNavigator device detection #7544.
  • Ran the full pre-commit suite; all hooks passed.
  • Hardware validation was not repeated for this exact cherry-pick. The original PR was manually tested on Linux with a SpaceNavigator.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks
  • Documentation changes are not required because this change does not affect the public API
  • My changes generate no new warnings
  • The original fix and validation are preserved exactly
  • The original changelog fragment is included
  • The original contributor entry is included

# 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)
@kellyguo11
kellyguo11 requested a review from a team September 5, 2026 02:03
@github-actions github-actions Bot added isaac-mimic Related to Isaac Mimic team isaac-lab Related to Isaac Lab team labels Sep 5, 2026

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.rst edit.
  • 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.

@kellyguo11 kellyguo11 added the ci:run-docker Trigger the on-demand Docker and GPU CI workflow label Sep 5, 2026
@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This backport expands SpaceMouse HID detection to recognize legacy devices reporting the "SpaceNavigator" product string, adds the corresponding changelog fragment, and credits the contributor.

  • Updates legacy HID detection in the SE(3) SpaceMouse implementation.
  • Documents the detection fix for the release.
  • Adds the original contributor entry.
  • The equivalent SE(2) implementation remains unable to detect the newly supported legacy identifier.

Confidence Score: 4/5

The 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

Filename Overview
source/isaaclab/isaaclab/devices/spacemouse/se3_spacemouse.py Adds legacy SpaceNavigator detection to the SE(3) implementation, but the corresponding SE(2) detector remains unchanged.
source/isaaclab/changelog.d/fix-spacenavigator-support.rst Adds a release-note fragment describing legacy SpaceNavigator detection support.
CONTRIBUTORS.md Adds the contributor associated with the original fix.

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"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:run-docker Trigger the on-demand Docker and GPU CI workflow isaac-lab Related to Isaac Lab team isaac-mimic Related to Isaac Mimic team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants