diff --git a/social_mpc/goal.py b/social_mpc/goal.py
index 9540b64b38baf6803495d230b46b65b848e4f244..303e47d0cbded1d295c4ef8db34a8d22a8b180af 100644
--- a/social_mpc/goal.py
+++ b/social_mpc/goal.py
@@ -15,10 +15,7 @@ from social_mpc import utils
 import numpy as np
 import time
 import logging
-import multiprocessing
-import cv2
 
-# logger = multiprocessing.log_to_stderr()
 logger = logging.getLogger("controller.goal")
 
 
@@ -92,15 +89,11 @@ class GoalFinder():
                 humans_in_group = humans
 
             f_dsz = ssn.calc_dsz(humans, groups=groups)
-            radius = int(
-            np.max(np.abs(self.controller_config.wall_avoidance_points)) * self.state_config.global_map_scale) + 1
-            kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,
-                                       (radius, radius))
-            global_map = cv2.dilate(global_map, kernel)
             goal = ssn.calc_goal_pos(f_dsz, global_map, humans_in_group, group_center=group.center, robot=robot_pose)
-            logger.debug("goal : {}".format(goal))
+            logger.debug("goal : {}".format(goal))            
+
             with lock:
                 shared_target[1] = True
                 shared_target[2] = float(goal[0])
                 shared_target[3] = float(goal[1])
-                shared_target[4] = float(goal[2]) + np.pi/2
+                shared_target[4] = float(goal[2]) + np.pi/2
\ No newline at end of file
diff --git a/social_mpc/path.py b/social_mpc/path.py
index 29300cae823e01655f5dd324c1fe169a2152a0f6..8113dd6d4fafbe11e02b850c4b5b5d4c8431de78 100644
--- a/social_mpc/path.py
+++ b/social_mpc/path.py
@@ -9,15 +9,13 @@
 # timothee.wintz@inria.fr
 
 import skfmm
-import cv2
 import numpy.ma as ma
 import numpy as np
 import logging
 import time
 from social_mpc import utils
-import multiprocessing
+from social_mpc.ssn_model.social_spaces import SocialSpaces
 
-# logger = multiprocessing.log_to_stderr()
 logger = logging.getLogger("controller.path")
 
 
@@ -30,7 +28,11 @@ class PathPlanner():
         self.max_d_orientation = max_d_orientation
         self.distance = None
         self.path_loop_time = path_loop_time
-
+        world_size = state_config.global_map_size
+        self.ssn = SocialSpaces(
+            bbox=world_size,
+            map_shape=(self.state_config.global_map_height,
+                       self.state_config.global_map_width))
         logger.setLevel(level=logging_mode)
 
     def position_to_px_coord(self, pos):
@@ -62,14 +64,16 @@ class PathPlanner():
         self.distance = skfmm.distance(phi, dx=dx)
 
     def get_next_waypoint(self, pos):
-        x, y = self.px_coord_grid()
+        #x, y = self.px_coord_grid()
+        x, y = self.ssn.x_coordinates, self.ssn.y_coordinates
         dx = 1/self.state_config.global_map_scale
         xl, yl, vxl, vyl, dl = utils.optimal_path_2d(
             np.flip(self.distance, axis=0), pos[:2],
             dx=dx,
             coords=(x, y),
-            max_distance=self.max_d)
-            
+            #max_distance=self.max_d)
+            max_distance=self.max_d_orientation)        
+
         if len(xl) == 0 or len(yl) == 0 or len(vxl) == 0 or len(vyl) == 0:
             return []
         d_angle = np.arctan2(vxl[0], -vyl[0]) - pos[2]
@@ -81,7 +85,7 @@ class PathPlanner():
                        np.arctan2(vxl[0], -vyl[0])]
         elif np.abs(d_angle) > self.max_target_angle:
             wpt_pos = [xl[0], yl[0], np.arctan2(vxl[0], -vyl[0])]
-        else:  # else, point on shortest path with orientation towards target
+        else:  # else, point on shortest path with orientation towards target            
             wpt_pos = [xl[-1], yl[-1], np.arctan2(vxl[-1], -vyl[-1])]
         return wpt_pos
 
@@ -112,12 +116,6 @@ class PathPlanner():
             if sh_target[1]:
                 update_distance = True
                 global_map = np.squeeze(sh_global_map)
-                # scale = self.state_config.global_map_scale
-                # radius = int(
-                #     self.robot_config.base_footprint_radius * scale * 2)
-                # kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,
-                #                                    (radius, radius))
-                # global_map = cv2.dilate(sh_global_map, kernel)
                 self.target = [sh_target[2],
                           sh_target[3], sh_target[4]]
             else:
diff --git a/social_mpc/ssn_model/social_spaces.py b/social_mpc/ssn_model/social_spaces.py
index 88eb3eabb305fafa4a41fb5aeae28b081c8dac42..a88fa192346b8bd558133d823b07c2a5ab569edb 100644
--- a/social_mpc/ssn_model/social_spaces.py
+++ b/social_mpc/ssn_model/social_spaces.py
@@ -10,10 +10,8 @@
 # timothee.wintz@inria.fr
 
 import numpy as np
-from numpy.lib.shape_base import row_stack
 from social_mpc.ssn_model.group_detection import Group
 from scipy import interpolate
-from matplotlib import pyplot as plt
 
 class DynamicGroup(Group):
     def __init__(self, theta, v, group):
@@ -298,14 +296,7 @@ class SocialSpaces():
 
             if circle_pts.shape[0] > 0:
                 break
-            r *= r_step
-
-        extent = [self.bbox[0][0], self.bbox[0][1], self.bbox[1][0], self.bbox[1][1]]
-        x = np.stack((map, f_dsz, f_dsz), axis=2)
-        # plt.imshow(x, origin='lower', extent=extent)
-        # plt.plot(circle_pts[:,0], circle_pts[:,1])
-        # plt.show()
-
+            r *= r_step  
         if robot is not None:
             idx = np.argmin((circle_pts[:, 0] - robot[0])**2 + (circle_pts[:, 1] - robot[1])**2)
         else:
@@ -313,4 +304,4 @@ class SocialSpaces():
             idx = np.argmin(circle_dsz)
         x, y = circle_pts[idx, 0], circle_pts[idx, 1]
         theta_q = np.arctan2(y - group_center[1], x - group_center[0])
-        return x, y, theta_q
+        return x, y, theta_q
\ No newline at end of file