36 Leg(Eigen::Vector<double, njoints + 1> &l,
37 Eigen::Matrix<double, 6, njoints> &Slist, Eigen::Isometry3d &M,
38 std::array<Eigen::Isometry3d, njoints + 1> &Mlist,
39 std::array<Eigen::Matrix6d, njoints> &Glist,
40 Eigen::Matrix<double, njoints, 2> &thetaRange,
41 Eigen::Vector<double, njoints> &thetadMax,
42 Eigen::Vector<double, njoints> &thetaddMax,
43 Eigen::Vector<double, njoints> &tauMax)
44 : l{l}, Slist{Slist}, M{M}, Mlist{Mlist}, Glist{Glist},
45 thetaRange{thetaRange}, thetadMax{thetadMax}, thetaddMax{thetaddMax},
56 bool fk(
const Eigen::Vector3d &thetalist, Eigen::Vector3d &
pf);
67 bool ik(
const Eigen::Vector3d &
pf, Eigen::Vector3d &thetalist,
68 Eigen::Matrix3d *Jinv =
nullptr);
79 bool ivk(
const Eigen::Vector3d &
vf,
const Eigen::Matrix3d &Jinv,
80 Eigen::Vector3d &thetadlist);
89 bool id(Eigen::Vector<double, njoints> &taulist);
92 void liftTo(
const Eigen::Isometry3d &T);
106 const Eigen::Isometry3d &Tgoal,
const double t0,
107 const double t, Eigen::Isometry3d &Tcurrent);
136 Eigen::Vector<double, njoints> thetalist;
137 Eigen::Vector<double, njoints> thetadlist;
138 Eigen::Vector<double, njoints> thetaddlist;
139 Eigen::Vector<double, njoints> taulist;
143 const Eigen::Vector<double, njoints + 1> l;
144 const Eigen::Matrix<double, 6, njoints> Slist;
145 const Eigen::Isometry3d M;
146 const std::array<Eigen::Isometry3d, njoints + 1> Mlist;
147 const std::array<Eigen::Matrix6d, njoints> Glist;
150 const Eigen::Matrix<double, njoints, 2> thetaRange;
151 const Eigen::Vector<double, njoints> thetadMax;
152 const Eigen::Vector<double, njoints> thetaddMax;
153 const Eigen::Vector<double, njoints> tauMax;
156 const Eigen::Vector<double, njoints> thetadir{Slist(0, 0) * Slist(1, 1),
157 Slist(1, 1), Slist(1, 1)};
160 Eigen::Matrix<double, njoints, 3> Jinv;
163 Eigen::Isometry3d Mi;
164 Eigen::Matrix<double, 6, njoints> Ai;
165 Eigen::Matrix<double, 6, njoints + 1> Vi;
166 Eigen::Matrix<double, 6, njoints + 1> dVi;
167 std::array<Eigen::Matrix6d, njoints + 1> AdTi;
bool ivk(const Eigen::Vector3d &vf, const Eigen::Matrix3d &Jinv, Eigen::Vector3d &thetadlist)
Inverse Velocity Kinematics.
Definition Leg.cpp:72
bool jointTrajectory(const Eigen::Isometry3d &Tstart, const Eigen::Isometry3d &Tgoal, const double t0, const double t, Eigen::Isometry3d &Tcurrent)
Joint Trajectory.
Definition Leg.cpp:138
Leg(Eigen::Vector< double, njoints+1 > &l, Eigen::Matrix< double, 6, njoints > &Slist, Eigen::Isometry3d &M, std::array< Eigen::Isometry3d, njoints+1 > &Mlist, std::array< Eigen::Matrix6d, njoints > &Glist, Eigen::Matrix< double, njoints, 2 > &thetaRange, Eigen::Vector< double, njoints > &thetadMax, Eigen::Vector< double, njoints > &thetaddMax, Eigen::Vector< double, njoints > &tauMax)
Leg Constructor.
Definition Leg.hpp:36