diff --git a/include/safe_cmd_alg_node.h b/include/safe_cmd_alg_node.h
index 69bbce453812a1ec46cefb1fa875ece957852d2b..0460d93a8d073dbcee626961f819222ed6a33047 100644
--- a/include/safe_cmd_alg_node.h
+++ b/include/safe_cmd_alg_node.h
@@ -68,7 +68,7 @@ class SafeCmdAlgNode : public algorithm_base::IriBaseAlgorithm<SafeCmdAlgorithm>
     // [action client attributes]
     bool front_obstacle_;
     bool rear_obstacle_;
-    float radius_;
+    float scale_;
     bool is_point_in_safe_area_(const sensor_msgs::LaserScan::ConstPtr& scan);
 
   public:
diff --git a/src/safe_cmd_alg_node.cpp b/src/safe_cmd_alg_node.cpp
index c88d9d0123f1937eadce92304e4ba122ee6035d4..e1d1342f3304e051f26cc50895d2d21169372de9 100644
--- a/src/safe_cmd_alg_node.cpp
+++ b/src/safe_cmd_alg_node.cpp
@@ -4,7 +4,7 @@ SafeCmdAlgNode::SafeCmdAlgNode(void) :
   algorithm_base::IriBaseAlgorithm<SafeCmdAlgorithm>(),
   front_obstacle_(false),
   rear_obstacle_(false),
-  radius_(0.5)
+  scale_(1)
 {
   //init class attributes if necessary
   //this->loop_rate_ = 2;//in [Hz]
@@ -134,7 +134,7 @@ bool SafeCmdAlgNode::is_point_in_safe_area_(const sensor_msgs::LaserScan::ConstP
   uint i=0;
   while (i < scan->ranges.size())
   {
-    if(scan->ranges[i] < radius_ && scan->ranges[i] > scan->range_min)
+    if(scan->ranges[i] < fabs(last_twist_.linear.x)*scale_ && scan->ranges[i] > scan->range_min)
       return true;
     i++;
   }