34 std::vector<bool> limitless;
35 for (
auto ls :
traj->getLimitless())
37 limitless.push_back(ls.enabled);
40 pid->maxIntegral = maxIntegral;
60 size_t dim =
traj->dim();
69 for (
size_t i = 0; i < dim; ++i)
80 for (
size_t i = 0; i < dim; ++i)
86 for (
size_t i = 0; i < dim; ++i)
88 if (
pid->limitless.size() > i &&
pid->limitless.at(i))
127 if (
traj->size() == 0)
131 auto dim =
traj->dim();
132 Ice::DoubleSeq prevPos =
traj->begin()->getPositions();
133 std::vector<math::LinearizeAngularTrajectory> linTraj;
134 for (
size_t i = 0; i < dim; ++i)
138 auto limitlessStates =
traj->getLimitless();
139 for (
auto& state : *
traj)
141 for (
size_t i = 0; i < dim; ++i)
152 if (limitlessStates.at(i).enabled)
154 state.getData().at(i)->at(0) = linTraj.at(i).update(state.getData().at(i)->at(0));
163 if (
traj->size() == 0)
167 auto dim =
traj->dim();
168 auto limitlessStates =
traj->getLimitless();
170 for (
auto& state : *
traj)
172 for (
size_t i = 0; i < dim; ++i)
174 if (!limitlessStates.at(i).enabled)
178 double pos = state.getPosition(i);
179 double center = (limitlessStates.at(i).limitHi + limitlessStates.at(i).limitLo) * 0.5;
181 state.getData().at(i)->at(0) = newPos;