]> git.leonardobizzoni.com Git - pioneer-stm32/commitdiff
ticks to linear velocity
authorFederica Di Lauro <federicadilauro1998@gmail.com>
Tue, 8 Oct 2019 09:11:58 +0000 (11:11 +0200)
committerFederica Di Lauro <federicadilauro1998@gmail.com>
Tue, 8 Oct 2019 09:11:58 +0000 (11:11 +0200)
otto_controller_source/Inc/encoder.h
otto_controller_source/Src/encoder.cpp

index 45e614f9664578ee856c0c27dbba05bdbb027e22..f3cd05bf46eb72fa5d7ee3a125fff9b67d394243 100644 (file)
@@ -9,6 +9,7 @@ class Encoder {
   uint32_t elapsed_millis;
   uint32_t kTicksPerRevolution = 148000;
   float kPi = 3.14159;
+  float kWheelCircumference = 0.7539; //in meters
 
   Encoder(TIM_HandleTypeDef* timer);
 
index b658a14b226cea8e30bd9f720bba9a072d9eb55d..47b8a8493afb76c948869444d68016f3d9556634 100644 (file)
@@ -6,13 +6,13 @@ Encoder::Encoder(TIM_HandleTypeDef* timer) {
   elapsed_millis = HAL_GetTick();
 }
 
-float Encoder::GetAngularVelocity(){
+float Encoder::GetLinearVelocity(){
   uint32_t ticks = this->GetCount();
   uint32_t previous_millis = this->elapsed_millis;
   this->elapsed_millis = HAL_GetTick();
-  float radiants = (ticks * 2 * kPi) / kTicksPerRevolution;
-  float angular_velocity = radiants /
+  float meters =  (ticks * kWheelCircumference) / kTicksPerRevolution;
+  float linear_velocity = meters /
       ((this->elapsed_millis - previous_millis) / 1000);
-  return angular_velocity;
+  return linear_velocity;
 }