anchor.diff:            (values nil sg)))))
   
   (defun act-place-tf (sg frame start destination-name relative-tf object-name )
  -  (print 'place)
  +  ;(print 'place)
     (let* ((ssg (scene-graph-chain sg nil frame))
            (g-tf-dst (scene-graph-tf-absolute sg destination-name :configuration-map start))
            (g-tf-obj (g* g-tf-dst relative-tf))
  
positive.code:       ;(print mp)
        (if (robray::motion-plan-valid-p mp)
            (values mp
                    (let* ((end (motion-plan-endpoint-map mp))
                           (g-tf-ae (scene-graph-tf-absolute sg frame :configuration-map end))
                           (o-tf-ae (g* (tf-inverse g-tf-o) g-tf-ae)))
                      (print (tf-array g-tf-e))
                      (print (tf-array g-tf-ae))
                      ;(print (tf-inverse relative-tf))
                      (scene-graph-reparent sg frame object-name
                                            ;:tf (g* (tf-inverse act-g-tf-e) g-tf-e)
  
negative.code:   ;(break)
    (robray::win-set-scene-graph (sub-scene-graph-scene-graph sub-scene-graph))
    (robray::win-set-config start)
    ;(print (list 'ws-plan start tf))
    (motion-plan sub-scene-graph start :workspace-goal tf :timeout 5d0))
  
  (defun act-pick-tf (sg frame start object-name o-tf-e)
    ;(print (list 'pick frame object-name (tf-array o-tf-e)))
    (let* ((ssg (scene-graph-chain sg nil frame))
           (g-tf-o (scene-graph-tf-absolute sg object-name :configuration-map start))
           (g-tf-e (g* g-tf-o o-tf-e)))
  