Skip to content

Releases: lasaths/Motus.NET

Motus.NET 2.0.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 14:31
ac3a642

Added

  • Public product / Yak GA SemVer line: Motus.NET 2.0.0 coordinated with Motus.Grasshopper + yak motus 2.0.0.
  • Supported vs advanced surface documented (docs/supported-surface.md).

Changed

  • Package identity 1.9.0 → 2.0.0 after host-product 1.9.0.

Motus.NET 1.9.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 14:21
0f7cf83

Changed

  • Roadmap experimental mobility: document tip-shipped HolonomicSE3 / H2 / Go2 (not GH GA); NuGet publish may lag.
  • PickPlaceCycle.Expand / ExpandMany: empty TouchBodiesthrowsArgumentException` (fail-closed; Detach-at-place needs gripper contact names).
  • Roadmap Milestone 12: Motus.Grasshopper NuGet-default path marked done; remaining “all hosts” narrowed to non-GH consumers.
  • Package/Directory.Build.props / motus-net.version aligned to 1.9.0 (coordinated cut after shipped 1.8.0).

Motus.NET 1.8.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 14:02
2bea801

Added

  • FreeFlyerHullCollisionChecker (IBaseFrameCollisionChecker): sphere hull at per-sample base frame for HolonomicSE3 free-flyer collision (clear/blocked RRT smoke).
  • Aerial TrajectoryExport honesty: Family=aerial JSON/CSV emit bodyPose (m + RPY rad) and waypointsQ=not_ur_movej — never jointsRadians / MoveJ columns.
  • Experimental Unitree Go2 meshless fixture (tests/fixtures/unitree_go2/go2_minimal.urdf) + LoadTree/FK/stance smoke — mammal quad ≠ insectoid Family=legged Walk; cites unitree_ros go2_description.
  • MobilityModel.HolonomicSE3 + MobilityBoundsSE3: offline SE(3) free-flyer mobility (x/y/z + RPY) with singularity Status near pitch ±π/2; managed sampling appends +6 dims beside existing HolonomicSE2.
  • Units.AerialFamily / IsAerial — Family gate so aerial body poses are not treated as UR MoveJ radians.
  • Docs: docs/adr/0001-holonomic-se3-aerial.md, docs/aerial.md; meshless fixture tests/fixtures/aerial/free_flyer_box.urdf.
  • Catalog URDF fixtures + smoke tests (Panda, UR10e+Robotiq minimal); experimental Unitree H2 meshless fixture + smoke tests.
  • RegressionMatrixLogicTests — CI coverage for Motus.Grasshopper docs/regression-matrix.md rows that cannot run Rhino GUI on GitHub runners (serial LIN/joint/RRT, Stewart meters export, HolonomicSE2, Tool Cap schema, IK Status, PlanBodyPath, Example 10 Touch, export TotgLite default).
  • Roadmap Path to 2.0: public SemVer jumps 0.17.0 → 1.8.0 → 1.9.0 → 2.0.0 (no empty 1.0–1.7 NuGet line).

Changed

  • Development package/Directory.Build.props / motus-net.version aligned to 1.8.0 (next coordinated cut after shipped 0.17.0).

Motus.NET 0.17.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 09:51
7841c71

Added

  • TransferSegment and MotionProgramRequest.TransferPlannerFactory: inject RRT-Connect for joint-space travel between Cartesian hover poses while keeping precise LIN approaches/retracts.
  • PickPlaceOptions with opt-in sampling transfers and explicit gripper TouchBodies; segment-local AllowedCollisionPairs keep all other objects checked.
  • Trajectory.AttachSpans carries attachment geometry, source names, TCP-local poses and release poses through retiming and JSON/CSV export.
  • Multi-object pick/place and carried-object obstacle-routing regressions; all four retimers checked for dwell/event/export consistency.

Fixed

  • Pick/place opens and detaches at placement before retraction; released workpieces remain in the collision scene.
  • Motion programs honor the supplied robot-only checker and serial chain, validate attach/detach transitions, reject duplicate/missing attachments, and check tool-state warnings against each segment's scene.
  • Retiming preserves SET/WAIT durations and stops at program/attachment boundaries. Export retimes once with the selected algorithm; CSV uses invariant numbers and escaped JSON cells.
  • Mesh detach restores geometry at its release pose; attachment lookup is case-insensitive.

Changed

  • Development package/version files and Grasshopper pin aligned to 0.17.0.

Motus.NET 0.13.2

Choose a tag to compare

@github-actions github-actions released this 27 Jul 22:05

Added

  • TreeFkCollisionChecker — scene collision via TreeFK for tip path + side-branch drivers (e.g. UR + DKP). Plan q may be tip-only or tip+branches; unmatched drivers use treeDriverHome.
  • UrdfCollisionLoader.LoadTree — collision geometry for every tree link (public API).
  • CollisionCheckerFactory / session cache overloads for tree-aware checkers.

Motus.NET 0.13.1

Choose a tag to compare

@github-actions github-actions released this 27 Jul 20:16

Fixed

  • Stewart CreateClassic now crosses leg pairs within each 120° sector (b0→p1, b1→p0). Non-crossed pairing made the home pose Jacobian singular, so Plan start FK failed with Jacobian ill-conditioned on example 08.
  • Stewart numerical FK dropped the mixed-unit FD condition gate (false singular ~1e10); seed guess uses mid-stroke height.

Motus.NET 0.13.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 19:29

Added

  • N-leg Walk stack: LeggedMechanism / LegDefinition, GaitSchedule (Song–Waldron duty factor β + phase offsets), ILegIkSolver (LegIk3RSolver, NumericalLegIkSolver seed-only), IBodyPoseSolver (PathFollowBodyPose, TerrainSupportBodyPose with session factory)
  • LeggedGait.TryBuild(LeggedMechanism, IBodyPoseSolver?, …) — DriverOffsets packing, IK-fail legs excluded from support, degenerate SSM counted
  • LeggedMechanism.ValidateAndCalibrate — assemble + FK↔IK residual gate before Walk
  • GaitSchedule.Auto — G = max(2, ⌈N/(N−3)⌉); hex tripod [[0,2,4],[1,3,5]]; N=4 crawl; N≤3 rejected unless AllowDynamicGait
  • LeggedLayout.ToMechanism() adapter; HexMithi/QuadSmoke remain NET factories (QuadSmoke sets AllowDynamicGait)

Changed

  • HexMithi swing groups corrected from degenerate [[1,3,4],[0,2,5]] to alternating tripod [[0,2,4],[1,3,5]]
  • LeggedMethodRefs.DescribeStack / docs/METHODS.md document GaitSchedule and mechanism Walk

Motus.NET 0.12.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 08:13
9648749

Added

  • UrdfRobotLoader.LoadTreeXacro for supported xacro subset expansion into full KinematicTree, plus a tiny UR-description-style xacro fixture with tip/tool link coverage
  • RetimerAlgorithm.Totg managed TOPP-RA-style retimer with TotgMethodRefs DOI provenance and JSON export retime provenance
  • PathConstraints, PositionConstraint, OrientationConstraint, IConstraintChecker, and planner planning.constraint_violation diagnostics
  • Managed SamplingPlannerId.PrmStar and ChompLiteSmoother / SamplingPlannerId.ChompSmooth with DOI-backed PlanningMethodRefs
  • Stewart managed collision (StewartCollisionChecker), Stewart LIN collision validation, and Stewart stroke-space sampling planner support with StewartMethodRefs
  • Managed holonomic SE(2) sampling via PlanningOptions.Mobility, MobilityBounds, trajectory base-frame overrides, and MobilityMethodRefs (LaValle)
  • LeggedGait.ValidateForPlan adapter for full-driver gait SSM/collision validation with structured PlanningResult
  • docs/METHODS.md method catalog for xacro, LIN, PoE, TOTG, constraints, RRT-Connect, PRM*, CHOMP-lite, Stewart, and legged stacks
  • LeggedGait.TerrainHeight callback — plant/land on uneven ground; body Z = terrain(x,y) + BodyZ clearance (null = flat Z=0)
  • MobilityModel.HolonomicSE2 optional Z for terrain-following base frames
  • PlanningMessageCodes.InvalidInput for bad caller data distinct from unavailable planners

Fixed

  • LegIk3R default branch is elbow-up (knee high); elbow-down drove femur tips through the ground on stance plants (zigzag sticks)
  • Group-map sampling coverage for full-driver subsets beyond a serial tip path; locked joints are re-embedded from the request start state

Motus.NET 0.11.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 14:04

Added

  • Modern Robotics PoE stack (Lynch & Park): ScrewMath (SO(3)/SE(3) Exp/Log/Adjoint with π and near-identity guards), ProductOfExponentials (URDF SerialJointChain → space/body screws + home M, FKinSpace/FKinBody), PoEJacobian (JacobianSpace/JacobianBody)
  • NumericalIkOptions / NumericalIkResult / NumericalIkFailureReasons — injectable NR tolerances and named Status (NoConvergence, SingularJacobian, InvalidInput)
  • Serial-URDF numerical IK path uses analytic body Jacobian + MatrixLog6 body-twist error when PoE screws are available (DH-only stays finite-diff)

Changed

  • KinematicsResolver.CreateInverseKinematics wires non-UR serial chains through PoE-backed NumericalInverseKinematics
  • Legged gait/IK hardening: method DOI refs (LeggedMethodRefs), static-stability helpers, expanded round-trip / plant tests

Motus.NET 0.10.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 07:59

Added

  • Legged kinematics (Family=legged): LegIk3R analytic 3-DOF leg IK (coxa yaw + femur/tibia pitch), LeggedLayout N×3R insectoid layouts (HexMithi, QuadSmoke), LeggedGait duty-cycle foot-target gait preview (flat-ground, planted feet, tripod/biped swing groups)
  • Units.LeggedFamily / Units.IsLegged(RobotPreset) — legged family marker; joints are radians (not Stewart meters)
  • Rigorous legged kinematics tests: FK↔IK round-trips, Z=0 plant targets, hex/quad gait builds, elbow-branch regression (q1=γ+α), rejection of invalid layouts/paths/axis mismatches