47 std::vector<double> m_polynomPointsXVector;
48 std::vector<double> m_polynomPointsYVector;
50 std::shared_ptr<DriveInformation_t> m_lastDriveInformationSPtr = std::make_shared<DriveInformation_t>();
52 m_lastDriveInformationSPtr->polynom = std::make_shared<std::vector<double>>();
53 m_lastDriveInformationSPtr->polynom->push_back(0);
54 m_lastDriveInformationSPtr->polynom->push_back(0);
55 m_lastDriveInformationSPtr->polynom->push_back(0);
56 m_lastDriveInformationSPtr->polynom->push_back(0.1);
57 m_lastDriveInformationSPtr->positionTimepoint.timestamp = time.now();
58 m_lastDriveInformationSPtr->positionTimepoint.speed = 1e9;
59 m_lastDriveInformationSPtr->positionTimepoint.orientation = 0;
62 std::shared_ptr<PositionTimepoint> positionTimepoint = std::make_shared<PositionTimepoint>();
63 positionTimepoint->timestamp = time.now();
64 positionTimepoint->speed = 1e9;
65 positionTimepoint->orientation = 0;
69 auto timestamp = positionTimepoint->timestamp - m_lastDriveInformationSPtr->positionTimepoint.timestamp;
70 float drivenDistanceM = (m_lastDriveInformationSPtr->velocityReference * 1e9) / timestamp.nanoseconds();
76 float rotationClockwise = std::atan(gradient);
77 Eigen::Rotation2Df rotationMat(-rotationClockwise);
81 for(
float x = 0.01; x < 150 / 100.f; x += 0.01) {
85 newPoint = rotationMat * newPoint;
87 m_polynomPointsXVector.push_back(newPoint[0]);
88 m_polynomPointsYVector.push_back(newPoint[1]);
92 std::cout << m_lastDriveInformationSPtr->polynom->at(0) <<
" + " << m_lastDriveInformationSPtr->polynom->at(1) <<
"x + " << m_lastDriveInformationSPtr->polynom->at(2) <<
"x^2 + " << m_lastDriveInformationSPtr->polynom->at(3) <<
"x^3" <<std::endl;
94 m_lastDriveInformationSPtr->polynom = galaxis_polyfit(m_polynomPointsXVector, m_polynomPointsYVector, m_polynomPointsXVector.size() * 0.9, 20, 3);
95 std::cout << m_lastDriveInformationSPtr->polynom->at(0) <<
" + " << m_lastDriveInformationSPtr->polynom->at(1) <<
"x + " << m_lastDriveInformationSPtr->polynom->at(2) <<
"x^2 + " << m_lastDriveInformationSPtr->polynom->at(3) <<
"x^3" <<std::endl;