 
 (def *shared-arm-params*
      {:class KinematicSpaceParameters
+      :contacts nil
       :distance_metric "L2Square" :planner_id      "" :contacts nil
       :volumeMin       {:header *map-header* :point {:x 0 :y 0 :z 0}}
       :volumeMax       {:header *map-header* :point {:x 0 :y 0 :z 0}}})

	(recur)))
    (.shutdown pub)))

(defn spin-base-to
  "Spins base to a desired angle, with no collision checking."
  [#^NodeHandle nh angle]

(defn move-base-unsafe 
  "Custom interface for moving base directly, without move_base."
  [#^NodeHandle nh command-fn goal-fn]
  (let [pub (.advertise nh "/cmd_vel" (PoseDot.) 1)]
    (let [init-pose (:pose (get-current-base-odom nh))
	  init-pos (:position init-pose)
	  zero     {:vx 0 :vy 0 :vz 0}]
      (loop []
	(let [current-pose (:pose (get-current-base-odom nh))]
  	 (when (not (goal-fn init-pose current-pose))
	  (.publish pub (map-msg PoseDot (update-in 
					  (update-in 
					   (command-fn init-pose current-pose)
					   [:vel] #(merge zero %))
					   [:ang_vel] #(merge zero %))))
	  (Thread/sleep 100)
	  (recur))))
      (.publish pub (map-msg PoseDot {:vel zero :ang_vel zero}))
      (println "Stopping: traveled" (point-distance init-pos (:position (:pose (get-current-base-odom nh)))))
;      (Thread/sleep 4000)
;      (println "Stopping: traveled" (point-distance init-pos (:position (:pose (get-current-base-odom nh))))))
      )
    (.shutdown pub)))


