Skip to content

Add optional robot and parts model packages#16

Merged
gapaul merged 9 commits into
masterfrom
gapaul-patch-3
Jun 1, 2026
Merged

Add optional robot and parts model packages#16
gapaul merged 9 commits into
masterfrom
gapaul-patch-3

Conversation

@gapaul
Copy link
Copy Markdown
Owner

@gapaul gapaul commented Jun 1, 2026

Summary

This PR adds the first large model migration from the old UTS MATLAB Robotics Toolbox and recent student Assignment 2 model audits into ir-support.

It keeps the core ir_support package focused on models and assets used by the current labs, quizzes, assignments, and Python Wiki examples, while adding separate optional package folders for larger non-core assets:

  • ir_support_extra_robots
  • ir_support_extra_parts

Changes

  • Add ported UTS MATLAB toolbox robot models and scene assets for use in Swift.
  • Add the first audited student-derived extra robot models.
  • Move optional/non-core robots and parts into separate extra package folders.
  • Add provenance notes for extra robots and parts.
  • Add tests and Swift viewer scripts for core robots, extra robots, extra parts, and the Parrot quadrotor.
  • Add conversion/downsampling/recolouring helper scripts used during model migration.

Testing

Local test suite passes:

61 passed

gapaul added 8 commits May 29, 2026 19:15
Refine internal array handling, naming, comments and metadata in the core geometry, prism, ellipsoid and PLY helper code while preserving the public interfaces used by the labs.
Add reusable tests for geometry helpers, PLY processing, public imports and robot model setup, along with pytest configuration, development test requirements and a GitHub Actions workflow.
Port a large set of legacy UTS MATLAB Robotics Toolbox models into
ir_support so they can be used directly from Python and displayed in Swift.

Added new UTS robot model classes and DAE mesh assets for:
- DensoVM6083
- DobotMagician
- Fetch
- HansCute
- IRB120
- KinovaGen2
- KinovaGen3
- LinearUR10
- MotomanHC10DTP
- MyCobot280
- Sawyer
- Turtlebot3Waffle
- UR10
- UR3e
- UR5e
- UR10e

Added UTSMeshRobot as a shared base class for MATLAB-style DH robots with
link-local mesh assets. The new classes preserve the MATLAB DH parameters,
home poses, offsets, joint limits, and Swift-compatible mesh loading.

Converted legacy MATLAB PLY/MAT geometry into colour-preserving DAE assets.
Only DAE assets are packaged for the new models; copied PLY link files are
not retained in ir_support. DensoVM6083 is generated from its MATLAB
shapeModel MAT data via a temporary PLY conversion workflow.

Added ir_support.parts with packaged UTS scene assets and helper APIs:
- part_names()
- part_path()
- part_mesh()

Converted the UTS Parts collection to DAE and included the original license
text. The parts include people, furniture, barriers, emergency stops,
fire extinguishers, tables, fences, tools, and other lab scene objects.

Added developer conversion tools:
- convert_ply_to_dae_blender.py
- export_shape_model_mat_to_ply.py

Added tests and visual Swift viewers:
- test_uts_robot_models.py
- test_uts_parts.py
- view_uts_robots_swift.py
- view_uts_parts_swift.py

Updated package exports so the new robots and parts are available from
ir_support, and updated pyproject.toml so mesh/text assets are included in
future package builds.

Also narrowed the .gitignore parts rule so ir_support/parts is tracked while
a root-level parts directory remains ignored.

Verification:
- 46 pytest tests pass
- all UTS robot models load and animate in headless Swift
- all UTS parts load and animate in headless Swift
- no local absolute paths or temporary conversion folders remain
Adds a SwiftParrotQuadrotor helper for loading and moving a Parrot drone mesh in Swift, including the converted ParrotQuadrotor.dae asset and exported public import. Also adds cow.dae for Swift-based scene examples.

Adds headless tests for the Parrot asset, pose handling, and scale handling, plus a simple visual Swift viewer for manually inspecting the quadrotor model.
Add new extra robot and parts package folders for optional IR Support models, separate from the core lab-required package. Move non-core UTS MATLAB toolbox models, extra parts assets, and the first audited student-derived robot models into these optional packages, with provenance notes for future tracking.

Update imports, package metadata, and visual/test playgrounds so core models, extra robots, and extra parts can be tested independently.
@gapaul gapaul merged commit 5355d32 into master Jun 1, 2026
2 checks passed
@gapaul gapaul deleted the gapaul-patch-3 branch June 1, 2026 09:16
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