motor float->double, angle int->double
This commit is contained in:
parent
0aa939db39
commit
722898da6d
@ -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]};
|
||||||
}
|
}
|
@ -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();
|
||||||
};
|
};
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user