Documentation

Noperthedron.Pose

structure Pose (R : Type) :
  • θ₁ : R
  • θ₂ : R
  • φ₁ : R
  • φ₂ : R
  • α : R
Instances For
    @[implicit_reducible]
    instance instDecidableEqPose {R✝ : Type} [DecidableEq R✝] :
    Equations
    def instDecidableEqPose.decEq {R✝ : Type} [DecidableEq R✝] (x✝ x✝¹ : Pose R✝) :
    Decidable (x✝ = x✝¹)
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[implicit_reducible]
      instance instReprPose {R✝ : Type} [Repr R✝] :
      Repr (Pose R✝)
      Equations
      def instReprPose.repr {R✝ : Type} [Repr R✝] :
      Pose R✝Std.Format
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[implicit_reducible]
        noncomputable instance instPoseLikePoseReal :
        Equations
        def Pose.equivPi {R : Type} :
        Pose R (Fin 5R)

        Bijection between Pose and Fin 5 → ℝ, used to transfer the (sup-norm) MetricSpace instance from the Pi type.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[implicit_reducible]

          Sup-norm transferred from Fin 5 → R.

          Equations
          theorem Pose.le_iff {R : Type} [PartialOrder R] (p q : Pose R) :
          @[implicit_reducible]
          Equations
          noncomputable def Pose.rotM₁ (p : Pose ) :
          Equations
          Instances For
            noncomputable def Pose.rotM₂ (p : Pose ) :
            Equations
            Instances For
              noncomputable def Pose.rotR (p : Pose ) :
              Equations
              Instances For
                noncomputable def Pose.vecX₁ (p : Pose ) :
                Equations
                Instances For
                  noncomputable def Pose.vecX₂ (p : Pose ) :
                  Equations
                  Instances For
                    noncomputable def Pose.rotM₁θ (p : Pose ) :
                    Equations
                    Instances For
                      noncomputable def Pose.rotM₂θ (p : Pose ) :
                      Equations
                      Instances For
                        noncomputable def Pose.rotM₁φ (p : Pose ) :
                        Equations
                        Instances For
                          noncomputable def Pose.rotM₂φ (p : Pose ) :
                          Equations
                          Instances For
                            noncomputable def Pose.rotR' (p : Pose ) :
                            Equations
                            Instances For
                              noncomputable def Pose.inner (p : Pose ) :
                              Equations
                              Instances For
                                noncomputable def Pose.outer (p : Pose ) :
                                Equations
                                Instances For
                                  inductive Pose.equiv {α : Type} [PoseLike α] (p1 p2 : α) :
                                  Instances For
                                    Equations
                                    Instances For
                                      Equations
                                      Instances For
                                        theorem Pose.proj_rm_eq_m (θ φ : ) (v : Euc(3)) :
                                        proj_xyL ((rotRM θ φ 0) v) = (rotM θ φ) v
                                        theorem Pose.is_rupert_imp_inner_in_outer (p : Pose ) (poly : Finset Euc(3)) (h_rupert : RupertPose p ((convexHull ) poly)) (v : Euc(3)) (hv : v poly) :
                                        p.inner v (convexHull ) (p.outer '' poly)

                                        If we have a convex polyhedron with p being a pose witness of the rupert property, then in particular every vertex in the "inner" transformation lies in the convex hull of the vertices under the "outer" transformation.

                                        theorem Pose.pose_on_the_nose {p1 p2 : Pose } :
                                        p1.inner = p2.inner p1.outer = p2.outerequiv p1 p2
                                        theorem Pose.pose_off_by_neg {p1 p2 : Pose } :
                                        p1.inner = -p2.inner p1.outer = -p2.outerequiv p1 p2
                                        theorem Pose.inner_eq_RM (p : Pose ) :
                                        p.inner = p.rotR p.rotM₁
                                        theorem Pose.outer_eq_M (p : Pose ) :
                                        p.outer = p.rotM₂
                                        theorem Pose.equiv_rupert_imp_rupert {P : Type} [PoseLike P] {p1 p2 : P} {S : Set Euc(3)} (e : equiv p1 p2) (r : RupertPose p1 S) :
                                        theorem Pose.matrix_rm_eq_imp_pose_equiv {p q : Pose } (rme : p.rotR p.rotM₁ = q.rotR q.rotM₁) (rm2 : p.rotM₂ = q.rotM₂) :
                                        equiv p q
                                        theorem Pose.matrix_rm_eq_neg_imp_pose_equiv {p q : Pose } (rme : p.rotR p.rotM₁ = -q.rotR q.rotM₁) (rm2 : p.rotM₂ = -q.rotM₂) :
                                        equiv p q
                                        theorem Pose.matrix_eq_imp_pose_equiv {p q : Pose } (re : p.rotR = q.rotR) (rm1 : p.rotM₁ = q.rotM₁) (rm2 : p.rotM₂ = q.rotM₂) :
                                        equiv p q
                                        theorem Pose.matrix_neg_imp_pose_equiv {p q : Pose } (re : p.rotR = -q.rotR) (rm1 : p.rotM₁ = q.rotM₁) (rm2 : p.rotM₂ = -q.rotM₂) :
                                        equiv p q