diff --git a/src/model_car_control_alg_node.cpp b/src/model_car_control_alg_node.cpp
index 28c23e3138e79ec2cd07327b0265dc6c19ae36d7..8fd656bfe84ab9cda33382e3bc16c6b9b5bea3de 100644
--- a/src/model_car_control_alg_node.cpp
+++ b/src/model_car_control_alg_node.cpp
@@ -125,8 +125,11 @@ void ModelCarControlAlgNode::cmd_vel_callback(const geometry_msgs::Twist::ConstP
   if(msg->angular.z==0.0)
     radius=std::numeric_limits<double>::max();
   else
-    radius=msg->linear.x/msg->angular.z;
-  this->steer_angle_control=atan2(this->config_.axel_distance,radius);
+    radius=fabs(msg->linear.x/msg->angular.z);
+  if(msg->angular.z>0.0)
+    this->steer_angle_control=atan2(this->config_.axel_distance,radius);
+  else
+    this->steer_angle_control=atan2(this->config_.axel_distance,-radius);
   if(this->steer_angle_control>1.5707)
     this->steer_angle_control-=3.14159;
   if(this->steer_angle_control>this->config_.max_steer_angle)