diff --git a/nav2_motion_primitives/src/back_up.cpp b/nav2_motion_primitives/src/back_up.cpp
index 80482860b0c0b851bc65425f180409befacaad57..18dde9809923b71e510d10a61f4dbf0428245bc0 100644
--- a/nav2_motion_primitives/src/back_up.cpp
+++ b/nav2_motion_primitives/src/back_up.cpp
@@ -56,14 +56,13 @@ Status BackUp::onRun(const std::shared_ptr<const BackUpAction::Goal> command)
 Status BackUp::onCycleUpdate()
 {
   geometry_msgs::msg::Pose current_pose;
-
   if (!collision_checker_->getRobotPose(current_pose)) {
-    RCLCPP_ERROR(node_->get_logger(), "Robot pose is not available.");
+    RCLCPP_ERROR(node_->get_logger(), "Current robot pose is not available.");
     return Status::FAILED;
   }
 
-  double diff_x = initial_pose_->pose.pose.position.x - current_odom_pose->pose.pose.position.x;
-  double diff_y = initial_pose_->pose.pose.position.y - current_odom_pose->pose.pose.position.y;
+  double diff_x = initial_pose_.position.x - current_pose.position.x;
+  double diff_y = initial_pose_.position.y - current_pose.position.y;
   double distance = sqrt(diff_x * diff_x + diff_y * diff_y);
 
   if (distance >= abs(command_x_)) {
@@ -82,9 +81,8 @@ Status BackUp::onCycleUpdate()
   pose2d.theta = tf2::getYaw(current_pose.orientation);
 
   if (!collision_checker_->isCollisionFree(pose2d)) {
-    cmd_vel.linear.x = 0;
-    robot_->sendVelocity(cmd_vel);
-    RCLCPP_ERROR(node_->get_logger(), "Cannot safely execute back up without collision.");
+    stopRobot();
+    RCLCPP_INFO(node_->get_logger(), "Collision Ahead - Exiting BackUp");
     return Status::SUCCEEDED;
   }
 
diff --git a/nav2_motion_primitives/src/spin.cpp b/nav2_motion_primitives/src/spin.cpp
index 52445e046dd4f876a2919de16c0f0e3686c504ce..31fd4fb1358183f69ff3204ebd6a72b9677f0935 100644
--- a/nav2_motion_primitives/src/spin.cpp
+++ b/nav2_motion_primitives/src/spin.cpp
@@ -101,9 +101,8 @@ Status Spin::timedSpin()
     cmd_vel.angular.z * (1 / cycle_frequency_);
 
   if (!collision_checker_->isCollisionFree(pose2d)) {
-    cmd_vel.angular.z = 0.0;
-    robot_->sendVelocity(cmd_vel);
-    RCLCPP_ERROR(node_->get_logger(), "Cannot safely execute spin without collision.");
+    stopRobot();
+    RCLCPP_INFO(node_->get_logger(), "Collision Ahead -Exiting Spin ");
     return Status::SUCCEEDED;
   }