64 struct ManipulationInterval
67 std::list<UserWaypointPtr> userWaypointsList;
68 std::list<TransitionPtr> transitionsList;
70 std::set<int> breakpointIndicesSet;
83 unsigned int upperIntervalLimit;
84 unsigned int lowerIntervalLimit;
86 std::vector<UserWaypointPtr> userWaypoints;
87 std::vector<TransitionPtr> transitions;
94 std::vector<unsigned int> breakpointIndices;
97 std::vector<std::vector<PoseBasePtr>> interpolatedTransitions;
100 std::vector<unsigned int> newIndexOfUserWaypoint;
105 void addBreakpointIndex(
int index);
112 TransitionPtr getTransitionByRealIndex(
unsigned int i)
const;
113 TransitionPtr getTransitionByZeroBasedIndex(
unsigned int i)
const;
115 std::vector<std::vector<double>>
116 getUserWaypointsIKSolutions(std::vector<std::vector<double>>& ikSolutions,
117 unsigned int intervalStart,
118 unsigned int intervalEnd);
119 void applyJointAnglesOfUserWaypoints(std::vector<std::vector<double>> ikSolution);
122 struct InsertTransition
125 unsigned int transitionIndex;
129 unsigned int insertionIndex;
134 std::list<DesignerTrajectoryPtr> mementoList;
135 unsigned int currentMemento = 0;
141 VirtualRobot::RobotNodeSetPtr rns;
144 bool isInitialized =
false;
146 static const unsigned int MEMENTO_MAX = 20;
147 static const unsigned int DEFAULT_FRAME_COUNT = 100;
148 static constexpr double MAX_DEVIATION = 0.0001;
196 ManipulationInterval calculateManipulationInterval(
unsigned int manipulationIndex);
206 std::vector<AbstractInterpolationPtr> getInterpolationObjects(ManipulationInterval& mi);
215 void calculateInterpolatedPoints(std::vector<AbstractInterpolationPtr> interpolationObjects,
217 ManipulationInterval& mi);
226 bool checkTransitionReachability(ManipulationInterval& mi,
unsigned int transitionIndex);
251 std::vector<std::vector<double>> calculateIKSolutions(
252 ManipulationInterval& mi
261 std::vector<TimedTrajectory>
262 calculateTimeOptimalTrajectories(std::vector<std::vector<double>> ikSolutions,
263 ManipulationInterval& mi);
265 void theUniversalMethod(
unsigned int index);
267 std::vector<double> getNewIkSolutionOfFirstPoint(PoseBasePtr oldStart,
268 PoseBasePtr newStart,
269 std::vector<double> jointAnglesOldStart);
322 VirtualRobot::IKSolver::CartesianSelection ikSelection);