Repository navigation
Releases: lasaths/Motus.NET
Releases · lasaths/Motus.NET
Release list
Motus.NET 2.0.0
Added
- Public product / Yak GA SemVer line: Motus.NET 2.0.0 coordinated with Motus.Grasshopper + yak
motus2.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
Changed
- Roadmap experimental mobility: document tip-shipped HolonomicSE3 / H2 / Go2 (not GH GA); NuGet publish may lag.
PickPlaceCycle.Expand /ExpandMany: emptyTouchBodiesthrowsArgumentException` (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.versionaligned to 1.9.0 (coordinated cut after shipped 1.8.0).
Motus.NET 1.8.0
Added
FreeFlyerHullCollisionChecker(IBaseFrameCollisionChecker): sphere hull at per-sample base frame for HolonomicSE3 free-flyer collision (clear/blocked RRT smoke).- Aerial
TrajectoryExporthonesty:Family=aerialJSON/CSV emitbodyPose(m + RPY rad) andwaypointsQ=not_ur_movej— neverjointsRadians/ MoveJ columns. - Experimental Unitree Go2 meshless fixture (
tests/fixtures/unitree_go2/go2_minimal.urdf) + LoadTree/FK/stance smoke — mammal quad ≠ insectoidFamily=leggedWalk; citesunitree_rosgo2_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 fixturetests/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.Grasshopperdocs/regression-matrix.mdrows 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.versionaligned to 1.8.0 (next coordinated cut after shipped 0.17.0).
Motus.NET 0.17.0
Added
TransferSegmentandMotionProgramRequest.TransferPlannerFactory: inject RRT-Connect for joint-space travel between Cartesian hover poses while keeping precise LIN approaches/retracts.PickPlaceOptionswith opt-in sampling transfers and explicit gripperTouchBodies; segment-localAllowedCollisionPairskeep all other objects checked.Trajectory.AttachSpanscarries 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
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 usetreeDriverHome.UrdfCollisionLoader.LoadTree— collision geometry for every tree link (public API).CollisionCheckerFactory/ session cache overloads for tree-aware checkers.
Motus.NET 0.13.1
Fixed
- Stewart
CreateClassicnow 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 withJacobian ill-conditionedon 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
Added
- N-leg Walk stack:
LeggedMechanism/LegDefinition,GaitSchedule(Song–Waldron duty factor β + phase offsets),ILegIkSolver(LegIk3RSolver,NumericalLegIkSolverseed-only),IBodyPoseSolver(PathFollowBodyPose,TerrainSupportBodyPosewith session factory) LeggedGait.TryBuild(LeggedMechanism, IBodyPoseSolver?, …)—DriverOffsetspacking, IK-fail legs excluded from support, degenerate SSM countedLeggedMechanism.ValidateAndCalibrate— assemble + FK↔IK residual gate before WalkGaitSchedule.Auto—G = max(2, ⌈N/(N−3)⌉); hex tripod[[0,2,4],[1,3,5]]; N=4 crawl; N≤3 rejected unlessAllowDynamicGaitLeggedLayout.ToMechanism()adapter; HexMithi/QuadSmoke remain NET factories (QuadSmokesetsAllowDynamicGait)
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.mddocumentGaitScheduleand mechanism Walk
Motus.NET 0.12.0
Added
UrdfRobotLoader.LoadTreeXacrofor supported xacro subset expansion into fullKinematicTree, plus a tiny UR-description-style xacro fixture with tip/tool link coverageRetimerAlgorithm.Totgmanaged TOPP-RA-style retimer withTotgMethodRefsDOI provenance and JSON export retime provenancePathConstraints,PositionConstraint,OrientationConstraint,IConstraintChecker, and plannerplanning.constraint_violationdiagnostics- Managed
SamplingPlannerId.PrmStarandChompLiteSmoother/SamplingPlannerId.ChompSmoothwith DOI-backedPlanningMethodRefs - Stewart managed collision (
StewartCollisionChecker), Stewart LIN collision validation, and Stewart stroke-space sampling planner support withStewartMethodRefs - Managed holonomic SE(2) sampling via
PlanningOptions.Mobility,MobilityBounds, trajectory base-frame overrides, andMobilityMethodRefs(LaValle) LeggedGait.ValidateForPlanadapter for full-driver gait SSM/collision validation with structuredPlanningResultdocs/METHODS.mdmethod catalog for xacro, LIN, PoE, TOTG, constraints, RRT-Connect, PRM*, CHOMP-lite, Stewart, and legged stacksLeggedGait.TerrainHeightcallback — plant/land on uneven ground; body Z = terrain(x,y) + BodyZ clearance (null = flat Z=0)MobilityModel.HolonomicSE2optional Z for terrain-following base framesPlanningMessageCodes.InvalidInputfor bad caller data distinct from unavailable planners
Fixed
LegIk3Rdefault 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
Added
- Modern Robotics PoE stack (Lynch & Park):
ScrewMath(SO(3)/SE(3) Exp/Log/Adjoint with π and near-identity guards),ProductOfExponentials(URDFSerialJointChain→ space/body screws + homeM,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 +
MatrixLog6body-twist error when PoE screws are available (DH-only stays finite-diff)
Changed
KinematicsResolver.CreateInverseKinematicswires non-UR serial chains through PoE-backedNumericalInverseKinematics- Legged gait/IK hardening: method DOI refs (
LeggedMethodRefs), static-stability helpers, expanded round-trip / plant tests
Motus.NET 0.10.0
Added
- Legged kinematics (
Family=legged):LegIk3Ranalytic 3-DOF leg IK (coxa yaw + femur/tibia pitch),LeggedLayoutN×3R insectoid layouts (HexMithi,QuadSmoke),LeggedGaitduty-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