3 #include <VirtualRobot/MathTools.h>
7 #include <dmp/representation/dmp/umitsmp.h>
15 std::map<double, DMP::DVec> traj_map;
18 for (
auto element : dto.taskSpace.steps)
21 pose.push_back(element.pose(0, 3));
22 pose.push_back(element.pose(1, 3));
23 pose.push_back(element.pose(2, 3));
25 VirtualRobot::MathTools::eigen4f2quat(element.pose);
26 pose.push_back(quat.w);
27 pose.push_back(quat.x);
28 pose.push_back(quat.y);
29 pose.push_back(quat.z);
30 traj_map.insert(std::make_pair(element.timestep, pose));
35 for (
auto element : dto.jointSpace.steps)
38 for (
auto angle : element.jointValues)
40 jointvalues.push_back(
double(
angle));
42 traj_map.insert(std::make_pair(element.timestep, jointvalues));
49 const DMP::SampledTrajectoryV2& bo_taskspace,
50 const DMP::SampledTrajectoryV2& bo_jointspace,
51 const std::string name)
54 std::map<std::string, std::vector<float>> mapJointSpace;
57 std::map<double, DMP::DVec> ts_map = bo_taskspace.getPositionData();
58 for (std::pair<double, DMP::DVec> element : ts_map)
60 Eigen::Vector3f vec(element.second.at(0), element.second.at(1), element.second.at(2));
62 VirtualRobot::MathTools::quat2eigen4f(element.second.at(4),
65 element.second.at(3));
66 poseMatrix.block<3, 1>(0, 3) = vec;
67 arondto::TSElement tselement;
68 tselement.timestep = element.first;
69 tselement.pose = poseMatrix;
70 dto.taskSpace.steps.push_back(tselement);
74 std::map<double, DMP::DVec> js_map = bo_jointspace.getPositionData();
75 for (std::pair<double, DMP::DVec> element : js_map)
77 std::vector<float> configvec;
78 for (
double el : element.second)
80 configvec.push_back(
float(el));
82 arondto::JSElement jselement;
83 jselement.timestep = element.first;
84 jselement.jointValues = configvec;
85 dto.jointSpace.steps.push_back(jselement);