From ac981b51b35d32708cdf0b268cda04b531f3be41 Mon Sep 17 00:00:00 2001 From: "lxbpxylps@126.com" Date: Wed, 10 Mar 2021 23:36:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BD=93=E5=89=8D=E8=BD=AC?= =?UTF-8?q?=E5=90=91=E6=97=B6=E4=B8=80=E4=BE=A7=E5=87=8F=E9=80=9F=E7=9A=84?= =?UTF-8?q?=E6=AF=94=E7=8E=87=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TaiChi/moveTaiChi.cpp | 29 ++++++++++++++++++++--------- TaiChi/moveTaiChi.h | 4 +++- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/TaiChi/moveTaiChi.cpp b/TaiChi/moveTaiChi.cpp index ae65b91..631c4c9 100644 --- a/TaiChi/moveTaiChi.cpp +++ b/TaiChi/moveTaiChi.cpp @@ -6,7 +6,7 @@ Move::Move() { global_speed_rate = DEFAULT_GLOBAL_SPEED_RATE; - current_move = STOP; + current_direction = STOP; current_speed_rate = 0.0; } @@ -29,7 +29,7 @@ void Move::SetGlobalSpeedRate(float global_speed_rate) //获取当前运动方向 uint8_t Move::GetCurrentMove(void) { - return current_move; + return current_direction; } @@ -40,6 +40,13 @@ float Move::GetCurrentSpeedRate(void) } +//获取当前转向时一侧减速的比率 +float Move::GetCurrentTurnSpeedRate(void) +{ + return current_turn_speed_rate; +} + + //控制某个轮子转动 void Move::Wheel(uint8_t wheel, uint8_t rotation, float speed_rate) { @@ -106,7 +113,7 @@ void Move::Forward(float speed_rate) Wheel(RIGHT_A_WHEEL, FORWARD_ROTATION, speed_rate); Wheel(RIGHT_B_WHEEL, FORWARD_ROTATION, speed_rate); - current_move = FORWARD; + current_direction = FORWARD; current_speed_rate = speed_rate; #ifdef MOVE_DEBUG @@ -125,7 +132,7 @@ void Move::Backward(float speed_rate) Wheel(RIGHT_A_WHEEL, BACKWARD_ROTATION, speed_rate); Wheel(RIGHT_B_WHEEL, BACKWARD_ROTATION, speed_rate); - current_move = BACKWARD; + current_direction = BACKWARD; current_speed_rate = speed_rate; #ifdef MOVE_DEBUG @@ -144,8 +151,9 @@ void Move::ForLeftward(float speed_rate, float turn_speed_rate) Wheel(RIGHT_A_WHEEL, FORWARD_ROTATION, speed_rate); Wheel(RIGHT_B_WHEEL, FORWARD_ROTATION, speed_rate); - current_move = FORLEFTWARD; + current_direction = FORLEFTWARD; current_speed_rate = speed_rate; + current_turn_speed_rate = turn_speed_rate; #ifdef MOVE_DEBUG //调试输出向前左转状态 @@ -163,8 +171,9 @@ void Move::ForRightward(float speed_rate, float turn_speed_rate) Wheel(RIGHT_A_WHEEL, FORWARD_ROTATION, turn_speed_rate * speed_rate); Wheel(RIGHT_B_WHEEL, FORWARD_ROTATION, turn_speed_rate * speed_rate); - current_move = FORRIGHTWARD; + current_direction = FORRIGHTWARD; current_speed_rate = speed_rate; + current_turn_speed_rate = turn_speed_rate; #ifdef MOVE_DEBUG //调试输出向前右转状态 @@ -182,8 +191,9 @@ void Move::BackLeftward(float speed_rate, float turn_speed_rate) Wheel(RIGHT_A_WHEEL, BACKWARD_ROTATION, speed_rate); Wheel(RIGHT_B_WHEEL, BACKWARD_ROTATION, speed_rate); - current_move = BACKLEFTWARD; + current_direction = BACKLEFTWARD; current_speed_rate = speed_rate; + current_turn_speed_rate = turn_speed_rate; #ifdef MOVE_DEBUG //调试输出向后左转状态 @@ -201,8 +211,9 @@ void Move::BackRightward(float speed_rate, float turn_speed_rate) Wheel(RIGHT_A_WHEEL, BACKWARD_ROTATION, turn_speed_rate * speed_rate); Wheel(RIGHT_B_WHEEL, BACKWARD_ROTATION, turn_speed_rate * speed_rate); - current_move = BACKRIGHTWARD; + current_direction = BACKRIGHTWARD; current_speed_rate = speed_rate; + current_turn_speed_rate = turn_speed_rate; #ifdef MOVE_DEBUG //调试输出向后右转状态 @@ -220,7 +231,7 @@ void Move::Stop(void) Wheel(RIGHT_A_WHEEL, STOP_ROTATION); Wheel(RIGHT_B_WHEEL, STOP_ROTATION); - current_move = STOP; + current_direction = STOP; current_speed_rate = 0; #ifdef MOVE_DEBUG diff --git a/TaiChi/moveTaiChi.h b/TaiChi/moveTaiChi.h index dd96e69..af1b3d0 100644 --- a/TaiChi/moveTaiChi.h +++ b/TaiChi/moveTaiChi.h @@ -59,6 +59,7 @@ public: uint8_t GetCurrentMove(void); //获取当前运动方向 float GetCurrentSpeedRate(void); //获取当前运动速度比率 + float GetCurrentTurnSpeedRate(void); //获取当前转向时一侧减速的比率 void Wheel(uint8_t wheel, uint8_t rotation, float speed_rate = 1.0); //控制某个轮子转动 @@ -74,8 +75,9 @@ public: private: float global_speed_rate; //全局速度比率 - uint8_t current_move; //当前运动状态 + uint8_t current_direction; //当前运动状态 float current_speed_rate; //当前运动速度比率 + float current_turn_speed_rate; //当前转向时一侧减速的比率 };