40 std::vector<bool> limitless;
41 for (
auto ls :
traj->getLimitless())
43 limitless.push_back(ls.enabled);
52 pid->maxIntegral = maxIntegral;
66 const Eigen::VectorXf&
73 size_t dim =
traj->dim();
82 for (
size_t i = 0; i < dim; ++i)
94 for (
size_t i = 0; i < dim; ++i)
100 for (
size_t i = 0; i < dim; ++i)
102 if (
pid->limitless.size() > i &&
pid->limitless.at(i))
143 if (
traj->size() == 0)
147 auto dim =
traj->dim();
148 Ice::DoubleSeq prevPos =
traj->begin()->getPositions();
149 std::vector<math::LinearizeAngularTrajectory> linTraj;
150 for (
size_t i = 0; i < dim; ++i)
154 auto limitlessStates =
traj->getLimitless();
155 for (
auto& state : *
traj)
157 for (
size_t i = 0; i < dim; ++i)
168 if (limitlessStates.at(i).enabled)
170 state.getData().at(i)->at(0) =
171 linTraj.at(i).update(state.getData().at(i)->at(0));
180 if (
traj->size() == 0)
184 auto dim =
traj->dim();
185 auto limitlessStates =
traj->getLimitless();
187 for (
auto& state : *
traj)
189 for (
size_t i = 0; i < dim; ++i)
191 if (!limitlessStates.at(i).enabled)
195 double pos = state.getPosition(i);
197 (limitlessStates.at(i).limitHi + limitlessStates.at(i).limitLo) * 0.5;
199 state.getData().at(i)->at(0) = newPos;
204 const Eigen::VectorXf&
210 const Eigen::VectorXf&