Skip to content

Bring needle constraint work from simulator_tests (keep main's CI and core) - #9

Merged
mmmarinho merged 1 commit into
mainfrom
feature/simulator-constraints
Aug 24, 2026
Merged

Bring needle constraint work from simulator_tests (keep main's CI and core)#9
mmmarinho merged 1 commit into
mainfrom
feature/simulator-constraints

Conversation

@mmmarinho

Copy link
Copy Markdown
Contributor

Summary

Brings the Python source from simulator_tests (f79177a) on top of current main (d738316), while keeping main's CI pipeline, C++ core, and packaging. This was created by an AI agent (OpenHands) on behalf of the maintainer.

Taken from simulator_tests (verbatim)

  • marinholab/working/needlemanipulation/: __init__.py, _impl.py (rewritten VFI — new angular insertion constraint, insertion constraints + needle_offset in needle_w, 11 new constraint helpers), example.py, example_create_needle_controller.py, example_load_from_file.py, icra2019_controller.py, needle_controller.py
  • saul/insertion_1.py (the only saul/ script that differs between the branches)

Removed (per maintainers)

  • tests/ — the old test suite is no longer relevant
  • CoppeliaSim — example_kinematics_from_coppeliasim.py and its pyproject.toml console-script entry (the example is not used)
  • CI test job from .github/workflows/python-publish.yml — it ran pytest tests/ -v, which no longer exists; publish now needs: [build]. All other build/publish steps (including auditwheel manylinux repair) are unchanged.

Kept from main

  • CI build/publish pipeline, C++ core (src/, CMakeLists.txt, .gitmodules, submodules)
  • Packaging: pyproject.toml, setup.py, MANIFEST.in
  • PEP 561 _core.pyi stub + py.typed marker (the marinholab-stubs/ approach from simulator_tests is intentionally not adopted)
  • Devcontainer

Notes / known risks

  • The new Python uses from dqrobotics.solvers import DQ_QuadprogSolver, which is what main's CI already installs (dqrobotics + quadprog) — verified.
  • The C++ changes on simulator_tests (commented-out qpOASES bindings + a submodule layout change) were deliberately not taken; the Python works unchanged against main's _core.
  • No test coverage remains (test suite removed by request); the build job (wheel builds on Linux x86_64/ARM + Windows) is the only CI gate.
  • Local verification: full wheel built (pip install . --no-build-isolation), package + all new symbols import, NeedleController constructs with insertion_constraints on/off, and the new constraint machinery produces finite values end-to-end.

This [PR] was created by an AI agent (OpenHands) on behalf of the maintainer.

Take the Python source as-is from `simulator_tests` (f79177a) on top of
current `main`: the rewritten `_impl.py` VFI (angular insertion
constraint, insertion constraints and needle offset in `needle_w`),
the updated `icra2019_controller.py`, `needle_controller.py`, package
`__init__.py`, examples, and `saul/insertion_1.py`.

Also drop what that work no longer needs, per repo maintainers:
- `tests/`: the old test suite is no longer relevant.
- CoppeliaSim: `example_kinematics_from_coppeliasim.py` and its
  console-script entry are removed (the example is not used).
- CI: the obsolete `test` job is removed from the workflow (it ran
  `pytest tests/ -v`, which no longer exists); `publish` now only
  needs `build`. All other build/publish steps are unchanged.

Kept from `main`: the CI build/publish pipeline (including auditwheel
manylinux repair), the C++ core and submodules, packaging
(`pyproject.toml`, `setup.py`, `MANIFEST.in`), the PEP 561 `_core.pyi`
stub and `py.typed` marker, and the devcontainer. The `marinholab-stubs`
approach from `simulator_tests` is intentionally not adopted.

Co-Authored-By: openhands <openhands@all-hands.dev>

@mmmarinho mmmarinho left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

👍

@mmmarinho
mmmarinho marked this pull request as ready for review August 24, 2026 08:05
@mmmarinho
mmmarinho merged commit e5655aa into main Aug 24, 2026
14 checks passed
@mmmarinho
mmmarinho deleted the feature/simulator-constraints branch August 24, 2026 08:07
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.

2 participants