diff --git a/TCPServer.cpp b/TCPServer.cpp index c4fa909..f6fb082 100644 --- a/TCPServer.cpp +++ b/TCPServer.cpp @@ -335,6 +335,8 @@ void TCPServer::startGame() { } void TCPServer::goToAruco(const ArucoTagPos &arucoTagPos, const int pince) { + float robotPosX = this->robotPose.pos.x; + float robotPosY = this->robotPose.pos.y; float decalage; if (pince < 0 || pince > 2) { return; @@ -365,8 +367,8 @@ void TCPServer::goToAruco(const ArucoTagPos &arucoTagPos, const int pince) { std::cout << "Aruco position1 " << xPrime << " " << yPrime << std::endl; - double posV200X = ((xPrime - 100) * std::cos(robotPose.theta) + (yPrime - (decalage / 2)) * std::sin(robotPose.theta)) + this->robotPose.pos.x; - double posV200Y = (-(xPrime - 100) * std::sin(robotPose.theta) + (yPrime - (decalage / 2)) * std::cos(robotPose.theta)) + this->robotPose.pos.y; + double posV200X = ((xPrime - 100) * std::cos(robotPose.theta) + (yPrime - (decalage / 2)) * std::sin(robotPose.theta)) + robotPosX; + double posV200Y = (-(xPrime - 100) * std::sin(robotPose.theta) + (yPrime - (decalage / 2)) * std::cos(robotPose.theta)) + robotPosY; toSend = "strat;arduino;go;" + std::to_string(static_cast(posV200X)) + "," + std::to_string(static_cast(posV200Y)) + "\n"; this->broadcastMessage(toSend); @@ -374,8 +376,8 @@ void TCPServer::goToAruco(const ArucoTagPos &arucoTagPos, const int pince) { this->broadcastMessage("strat;arduino;speed;150\n"); usleep(500'000); - double robotPosForPotX = (xPrime * std::cos(robotPose.theta) + (yPrime - decalage) * std::sin(robotPose.theta)) + this->robotPose.pos.x; - double robotPosForPotY = (-xPrime * std::sin(robotPose.theta) + (yPrime - decalage) * std::cos(robotPose.theta)) + this->robotPose.pos.y; + double robotPosForPotX = (xPrime * std::cos(robotPose.theta) + (yPrime - decalage) * std::sin(robotPose.theta)) + robotPosX; + double robotPosForPotY = (-xPrime * std::sin(robotPose.theta) + (yPrime - decalage) * std::cos(robotPose.theta)) + robotPosY; std::cout << "Aruco position " << robotPosForPotX << " " << robotPosForPotY << std::endl;