motor float->double, angle int->double

This commit is contained in:
Tim Zeuner 2023-01-31 21:05:04 +01:00
parent 0aa939db39
commit 722898da6d
3 changed files with 17 additions and 17 deletions

View File

@ -4,7 +4,7 @@ ControlModule::ControlModule(): ControlModule(0.0, 1.0, 1.0)
{ {
} }
ControlModule::ControlModule(float maxSpeed, float rotateSpeed, float moveSideSpeed) ControlModule::ControlModule(double maxSpeed, double rotateSpeed, double moveSideSpeed)
{ {
motors[0] = 0.0; motors[0] = 0.0;
motors[1] = 0.0; motors[1] = 0.0;
@ -41,15 +41,15 @@ void ControlModule::adjustSpeed(){
}; };
void ControlModule::moveSide(int imageColumsMiddle, int contourColumsMiddle){ void ControlModule::moveSide(int imageColumsMiddle, int contourColumsMiddle){
float speed = moveSideSpeed * static_cast<float>(contourColumsMiddle - imageColumsMiddle)/static_cast<float>(imageColumsMiddle); double speed = moveSideSpeed * static_cast<double>(contourColumsMiddle - imageColumsMiddle)/static_cast<double>(imageColumsMiddle);
motors[0] += speed; motors[0] += speed;
motors[1] -= speed; motors[1] -= speed;
motors[2] -= speed; motors[2] -= speed;
motors[3] += speed; motors[3] += speed;
} }
void ControlModule::rotate(int angle){ void ControlModule::rotate(double angle){
float speed = rotateSpeed * (static_cast<float>(angle) + 90.0f)/90.0f; double speed = rotateSpeed * (angle + 90.0)/90.0;
motors[0] += speed; motors[0] += speed;
motors[1] -= speed; motors[1] -= speed;
motors[2] += speed; motors[2] += speed;
@ -57,7 +57,7 @@ void ControlModule::rotate(int angle){
} }
void ControlModule::unit(){ void ControlModule::unit(){
float max = 1.0E-6; double max = 1.0E-6;
for(int i = 0; i <= sizeof(motors)/sizeof(int); i++){ for(int i = 0; i <= sizeof(motors)/sizeof(int); i++){
if(motors[i] > max) if(motors[i] > max)
max = motors[i]; max = motors[i];
@ -73,7 +73,7 @@ void ControlModule::unit(){
} }
void ControlModule::calcSpeeds(int imageColumsMiddle, int contourColumsMiddle, int angle){ void ControlModule::calcSpeeds(int imageColumsMiddle, int contourColumsMiddle, double angle){
std::unique_lock<std::mutex> lock(mtx); std::unique_lock<std::mutex> lock(mtx);
//moveSide(imageColumsMiddle, contourColumsMiddle); //moveSide(imageColumsMiddle, contourColumsMiddle);
rotate(angle); rotate(angle);
@ -81,8 +81,8 @@ void ControlModule::calcSpeeds(int imageColumsMiddle, int contourColumsMiddle, i
adjustSpeed(); adjustSpeed();
} }
std::vector<float> ControlModule::readMotors() std::vector<double> ControlModule::readMotors()
{ {
std::unique_lock<std::mutex> lock(mtx); std::unique_lock<std::mutex> lock(mtx);
return std::vector<float> {motors[0], motors[1], motors[2], motors[3]}; return std::vector<double> {motors[0], motors[1], motors[2], motors[3]};
} }

View File

@ -7,19 +7,19 @@ class ControlModule
{ {
private: private:
mutable std::mutex mtx; mutable std::mutex mtx;
float motors[4]; //LeftFront; RightFront; LeftBack; RightBack double motors[4]; //LeftFront; RightFront; LeftBack; RightBack
float maxSpeed; double maxSpeed;
float rotateSpeed; double rotateSpeed;
float moveSideSpeed; double moveSideSpeed;
public: public:
ControlModule(/* args */); ControlModule(/* args */);
ControlModule(float maxSpeed, float rotateSpeed, float moveSideSpeed); ControlModule(double maxSpeed, double rotateSpeed, double moveSideSpeed);
~ControlModule(); ~ControlModule();
void adjustSpeed(); void adjustSpeed();
void moveSide(int imageColumsMiddle, int contourColumsMiddle); void moveSide(int imageColumsMiddle, int contourColumsMiddle);
void rotate(int angle); void rotate(double angle);
void unit(); //Brings the max Value to 1.0 void unit(); //Brings the max Value to 1.0
void calcSpeeds(int imageColumsMiddle, int contourColumsMiddle, int angle); //Funktion to be called void calcSpeeds(int imageColumsMiddle, int contourColumsMiddle, double angle); //Funktion to be called
std::vector<float> readMotors(); std::vector<double> readMotors();
}; };

View File

@ -22,7 +22,7 @@ struct LFR_Result
cv::Mat rawImage; cv::Mat rawImage;
cv::Mat processedImage; cv::Mat processedImage;
FrameData data; FrameData data;
std::vector<float> motorSignals; std::vector<double> motorSignals;
}; };
class LFR class LFR