diff --git a/script/scenarios/demos/siggraph_asia/bezier_traj.py b/script/scenarios/demos/siggraph_asia/bezier_traj.py
index 0de3e36f2d9d1cd46745f3e642525b7d5ab49ac4..16611ae3089e1f9aa01f7da43b350fcbbae9edaf 100644
--- a/script/scenarios/demos/siggraph_asia/bezier_traj.py
+++ b/script/scenarios/demos/siggraph_asia/bezier_traj.py
@@ -52,11 +52,11 @@ def test(stateid = 1, path = False, use_rand = False, just_one_curve = False, nu
     com_2 = __get_com(fullBody, configs[stateid+1])
     createPtBox(viewer.client.gui, 0, com_1, 0.01, [0,1,1,1.])
     createPtBox(viewer.client.gui, 0, com_2, 0.01, [0,1,1,1.])
-    data = gen_sequence_data_from_state(fullBody,stateid,configs, mu = 0.3)
+    data = gen_sequence_data_from_state(fullBody,stateid,configs, mu = 0.5)
     c_bounds_1 = get_com_constraint(fullBody, stateid, configs[stateid], limbsCOMConstraints, interm = False)
     c_bounds_mid = get_com_constraint(fullBody, stateid, configs[stateid], limbsCOMConstraints, interm = True)
     c_bounds_2 = get_com_constraint(fullBody, stateid, configs[stateid+1], limbsCOMConstraints, interm = False)
-    success, c_mid_1, c_mid_2 = solve_quasi_static(data, c_bounds = [c_bounds_1, c_bounds_2, c_bounds_mid], use_rand = use_rand, mu = 0.3)
+    success, c_mid_1, c_mid_2 = solve_quasi_static(data, c_bounds = [c_bounds_1, c_bounds_2, c_bounds_mid], use_rand = use_rand, mu = 0.5)
     #~ success, c_mid_1, c_mid_2 = solve_dyn(data, c_bounds = [c_bounds_1, c_bounds_2, c_bounds_mid], use_rand = use_rand)
     #~ success, c_mid_1, c_mid_2 = solve_dyn(data, c_bounds = [c_bounds_1, c_bounds_2])
     
diff --git a/script/scenarios/demos/siggraph_asia/down_hrp2_interp.py b/script/scenarios/demos/siggraph_asia/down_hrp2_interp.py
index b5e1d944a6f87ec66dd48754f9cbba05e892257f..d2a58a718df22af5b7dacc2a4f4c29b80fa1e831 100644
--- a/script/scenarios/demos/siggraph_asia/down_hrp2_interp.py
+++ b/script/scenarios/demos/siggraph_asia/down_hrp2_interp.py
@@ -1,96 +1,31 @@
 from hpp.corbaserver.rbprm.rbprmbuilder import Builder
 from hpp.corbaserver.rbprm.rbprmfullbody import FullBody
 from hpp.gepetto import Viewer
+from hpp.gepetto import PathPlayer
 
-import down_hrp2_path as tp
+import down_hrp2_path as path_planner
+import hrp2_model_grasp as model
+from hrp2_model import *
 import time
 
 
+ps = path_planner.ProblemSolver( model.fullBody )
+r = path_planner.Viewer (ps, viewerClient=path_planner.r.client)
+fullBody = model.fullBody
+fullBody.setJointBounds ("base_joint_xyz", [-3,3, -2, 2, 0, 1])
+pp = PathPlayer (fullBody.client.basic, r)
 
-packageName = "hrp2_14_description"
-meshPackageName = "hrp2_14_description"
-rootJointType = "freeflyer"
-##
-#  Information to retrieve urdf and srdf files.
-urdfName = "hrp2_14"
-urdfSuffix = "_reduced"
-srdfSuffix = ""
-
-fullBody = FullBody ()
-
-fullBody.loadFullBodyModel(urdfName, rootJointType, meshPackageName, packageName, urdfSuffix, srdfSuffix)
-fullBody.setJointBounds ("base_joint_xyz", [0,3, -0.5, 0.5, -0.4, 0.6])
-
-
-ps = tp.ProblemSolver( fullBody )
-r = tp.Viewer (ps, viewerClient=tp.r.client)
-
-#~ AFTER loading obstacles
-rLegId = '0rLeg'
-rLeg = 'RLEG_JOINT0'
-rLegOffset = [0,-0.105,0,]
-rLegNormal = [0,1,0]
-rLegx = 0.09; rLegy = 0.05
-fullBody.addLimb(rLegId,rLeg,'',rLegOffset,rLegNormal, rLegx, rLegy, 10000, "manipulability", 0.1)
-                                                                                                
-lLegId = '1lLeg'                                                                                
-lLeg = 'LLEG_JOINT0'                                                                            
-lLegOffset = [0,-0.105,0]                                                                       
-lLegNormal = [0,1,0]                                                                            
-lLegx = 0.09; lLegy = 0.05                                                                      
-fullBody.addLimb(lLegId,lLeg,'',lLegOffset,rLegNormal, lLegx, lLegy, 10000, "manipulability", 0.1)
-
-rarmId = '3Rarm'
-rarm = 'RARM_JOINT0'
-rHand = 'RARM_JOINT5'
-rArmOffset = [0,0,-0.1]
-rArmNormal = [0,0,1]
-rArmx = 0.024; rArmy = 0.024
-#disabling collision for hook
-fullBody.addLimb(rarmId,rarm,rHand,rArmOffset,rArmNormal, rArmx, rArmy, 10000, "manipulability", 0.05, "_6_DOF", True)
-
-
-#~ AFTER loading obstacles
-larmId = '4Larm'
-larm = 'LARM_JOINT0'
-lHand = 'LARM_JOINT5'
-lArmOffset = [-0.05,-0.050,-0.050]
-lArmNormal = [1,0,0]
-lArmx = 0.024; lArmy = 0.024
-#~ fullBody.addLimb(larmId,larm,lHand,lArmOffset,lArmNormal, lArmx, lArmy, 10000, 0.05)
-
-rKneeId = '0RKnee'
-rLeg = 'RLEG_JOINT0'
-rKnee = 'RLEG_JOINT3'
-rLegOffset = [0.105,0.055,0.017]
-rLegNormal = [-1,0,0]
-rLegx = 0.05; rLegy = 0.05
-#~ fullBody.addLimb(rKneeId, rLeg,rKnee,rLegOffset,rLegNormal, rLegx, rLegy, 10000, 0.01)
-#~ 
-lKneeId = '1LKnee'
-lLeg = 'LLEG_JOINT0'
-lKnee = 'LLEG_JOINT3'
-lLegOffset = [0.105,0.055,0.017]
-lLegNormal = [-1,0,0]
-lLegx = 0.05; lLegy = 0.05
-#~ fullBody.addLimb(lKneeId,lLeg,lKnee,lLegOffset,lLegNormal, lLegx, lLegy, 10000, 0.01)
- #~ 
-
-#~ fullBody.runLimbSampleAnalysis(rLegId, "jointLimitsDistance", True)
-#~ fullBody.runLimbSampleAnalysis(lLegId, "jointLimitsDistance", True)
-
-#~ fullBody.client.basic.robot.setJointConfig('LARM_JOINT0',[1])
-#~ fullBody.client.basic.robot.setJointConfig('RARM_JOINT0',[-1])
+from plan_execute import a, b, c, d, e, init_plan_execute
+init_plan_execute(model.fullBody, r, path_planner, pp)
 
 q_0 = fullBody.getCurrentConfig(); 
-#~ fullBody.createOctreeBoxes(r.client.gui, 1, rarmId, q_0,)
-q_init = fullBody.getCurrentConfig(); q_init[0:7] = tp.q_init[0:7]
-q_goal = fullBody.getCurrentConfig(); q_goal[0:7] = tp.q_goal[0:7]
+q_init = fullBody.getCurrentConfig(); q_init[0:7] = path_planner.q_init[0:7]
+q_goal = fullBody.getCurrentConfig(); q_goal[0:7] = path_planner.q_goal[0:7]
 
 
 fullBody.setCurrentConfig (q_init)
 q_init =  [
-        0.2,0, 0.48, 1.0, 0.0 , 0.0, 0.0,                         	 # Free flyer 0-6
+        0.2,0, 0.6, 1.0, 0.0 , 0.0, 0.0,                         	 # Free flyer 0-6
         0.0, 0.0, 0.0, 0.0,                                                  # CHEST HEAD 7-10
         0.261799388,  0.174532925, 0.0, -0.523598776, 0.0, 0.0, 0.17, 		 # LARM       11-17
         0.261799388, -0.174532925, 0.0, -0.523598776, 0.0, 0.0, 0.17, 		 # RARM       18-24
@@ -98,273 +33,23 @@ q_init =  [
         0.0, 0.0, -0.453785606, 0.872664626, -0.41887902, 0.0,               # RLEG       31-36
         ]; r (q_init)
 
+
 fullBody.setCurrentConfig (q_goal)
-#~ r(q_goal)
 q_goal = fullBody.generateContacts(q_goal, [0,0,1])
 q_init = fullBody.generateContacts(q_init, [0,0,1])
-#~ r(q_goal)
 
 #~ fullBody.setStartState(q_init,[rLegId,lLegId,rarmId]) #,rarmId,larmId])
+#~ fullBody.setStartState(q_init,[rLegId,lLegId,larmId, rarmId]) #,rarmId,larmId])
 fullBody.setStartState(q_init,[rLegId,lLegId]) #,rarmId,larmId])
 fullBody.setEndState(q_goal,[rLegId,lLegId])#,rarmId,larmId])
-#~ 
-#~ configs = fullBody.interpolate(0.1)
-#~ configs = fullBody.interpolate(0.15)
-i = 0;
-configs = []
-
-
-limbsCOMConstraints = { rLegId : {'file': "hrp2/RL_com.ineq", 'effector' : 'RLEG_JOINT5'},  
-						lLegId : {'file': "hrp2/LL_com.ineq", 'effector' : 'LLEG_JOINT5'},
-						rarmId : {'file': "hrp2/RA_com.ineq", 'effector' : rHand} }
-						#~ larmId : {'file': "hrp2/LA_com.ineq", 'effector' : lHand} }
-
-#~ fullBody.limbRRTFromRootPath(0,len(configs)-1,0,2)
-from hpp.corbaserver.rbprm.tools.cwc_trajectory_helper import step, clean,stats, saveAllData, play_traj
-from hpp.gepetto import PathPlayer
-pp = PathPlayer (fullBody.client.basic, r)
 
-def act(i, numOptim = 0, use_window = 0, friction = 0.5, optim_effectors = True, verbose = False, draw = False):
-	return step(fullBody, configs, i, numOptim, pp, limbsCOMConstraints, 0.4, optim_effectors = optim_effectors, time_scale = 20., useCOMConstraints = True, use_window = use_window,
-	verbose = verbose, draw = draw)
+configs = d(0.005); e()
 
-def play(frame_rate = 1./24.):
-	play_traj(fullBody,pp,frame_rate)
-	
-def saveAll(name):
-	saveAllData(fullBody, r, name)
-	
-
-def initConfig():
-	r.client.gui.setVisibility("hrp2_14", "ON")
-	tp.cl.problem.selectProblem("default")
-	tp.r.client.gui.setVisibility("toto", "OFF")
-	tp.r.client.gui.setVisibility("hrp2_trunk_flexible", "OFF")
-	r(q_init)
-	
-def endConfig():
-	r.client.gui.setVisibility("hrp2_14", "ON")
-	tp.cl.problem.selectProblem("default")
-	tp.r.client.gui.setVisibility("toto", "OFF")
-	tp.r.client.gui.setVisibility("hrp2_trunk_flexible", "OFF")
-	r(q_goal)
-	
-
-def rootPath():
-	tp.cl.problem.selectProblem("rbprm_path")
-	r.client.gui.setVisibility("hrp2_14", "OFF")
-	tp.r.client.gui.setVisibility("toto", "OFF")
-	r.client.gui.setVisibility("hyq", "OFF")
-	r.client.gui.setVisibility("hrp2_trunk_flexible", "ON")
-	tp.pp(0)
-	r.client.gui.setVisibility("hrp2_trunk_flexible", "OFF")
-	r.client.gui.setVisibility("hyq", "ON")
-	tp.cl.problem.selectProblem("default")
-	
-def genPlan(stepsize=0.1):
-	r.client.gui.setVisibility("hrp2_14", "ON")
-	tp.cl.problem.selectProblem("default")
-	tp.r.client.gui.setVisibility("toto", "OFF")
-	tp.r.client.gui.setVisibility("hrp2_trunk_flexible", "OFF")
-	global configs
-	start = time.clock() 
-	print "BEFORE"
-	configs = fullBody.interpolate(stepsize, 0, 2, True)
-	print "AFTER"
-	end = time.clock() 
-	print "Contact plan generated in " + str(end-start) + "seconds"
-	
-def contactPlan(step = 0.5):
-	r.client.gui.setVisibility("hrp2_14", "ON")
-	tp.cl.problem.selectProblem("default")
-	tp.r.client.gui.setVisibility("toto", "OFF")
-	tp.r.client.gui.setVisibility("hrp2_trunk_flexible", "OFF")
-	for i in range(0,len(configs)):
-		r(configs[i]);
-		time.sleep(step)	
-		
-		
-def a():
-	print "initial configuration"
-	initConfig()
-		
-def b():
-	print "end configuration"
-	endConfig()
-		
-def c():
-	print "displaying root path"
-	rootPath()
-	
-def d(step=0.1):
-	print "computing contact plan"
-	genPlan(step)
-	
-def e(step = 0.5):
-	print "displaying contact plan"
-	contactPlan(step)
-	
-print "Root path WXXSD in " + str(tp.t) + " ms."
-	
-d(0.005); e()
-
-print "Root path SDDSD in " + str(tp.t) + " ms."
-	
-#~ from gen_data_from_rbprm import *
-#~ 
-#~ for config in configs:
-	#~ r(config)
-	#~ print(fullBody.client.basic.robot.getComPosition())
-#~ 
-
-#~ gen_and_save(fullBody,configs, "stair_bauzil_contacts_data")
-#~ main()
-
-from gen_data_from_rbprm import *
-
-from hpp.corbaserver.rbprm.tools.com_constraints import get_com_constraint
-
-#computing com bounds 0 and 1
-def __get_com(robot, config):
-	save = robot.getCurrentConfig()
-	robot.setCurrentConfig(config)
-	com = robot.getCenterOfMass()
-	robot.setCurrentConfig(save)
-	return com
-
-from numpy import matrix, asarray
-from numpy.linalg import norm
-from spline import bezier
-
-
-def __curveToWps(curve):
-    return asarray(curve.waypoints().transpose()).tolist()
-
-
-def __Bezier(wps, init_acc = [0.,0.,0.], end_acc = [0.,0.,0.], init_vel = [0.,0.,0.], end_vel = [0.,0.,0.]):
-    c = curve_constraints();
-    c.init_vel = matrix(init_vel);
-    c.end_vel  = matrix(end_vel);
-    c.init_acc = matrix(init_acc);
-    c.end_acc  = matrix(end_acc);
-    matrix_bezier = matrix(wps).transpose()
-    return __curveToWps(bezier(matrix_bezier, c))
-    #~ return __curveToWps(bezier(matrix_bezier))
-
-allpaths = []
-
-def play_all_paths():
-    for _, pid in enumerate(allpaths):
-        pp(pid)
-
-def play_all_paths_smooth():
-    for i, pid in enumerate(allpaths):
-        if i % 2 == 1 :
-            pp(pid)
-            
-def play_all_paths_qs():
-    for i, pid in enumerate(allpaths):
-        if i % 2 == 0 :
-            pp(pid)
-
-def test(stateid = 1, path = False, use_rand = False, just_one_curve = False) :
-    com_1 = __get_com(fullBody, configs[stateid])
-    com_2 = __get_com(fullBody, configs[stateid+1])
-    data = gen_sequence_data_from_state(fullBody,stateid,configs)
-    c_bounds_1 = get_com_constraint(fullBody, stateid, configs[stateid], limbsCOMConstraints, interm = False)
-    c_bounds_mid = get_com_constraint(fullBody, stateid, configs[stateid], limbsCOMConstraints, interm = True)
-    c_bounds_2 = get_com_constraint(fullBody, stateid, configs[stateid+1], limbsCOMConstraints, interm = False)
-    success, c_mid_1, c_mid_2 = solve_quasi_static(data, c_bounds = [c_bounds_1, c_bounds_2, c_bounds_mid], use_rand = use_rand)
-    #~ success, c_mid_1, c_mid_2 = solve_dyn(data, c_bounds = [c_bounds_1, c_bounds_2, c_bounds_mid], use_rand = use_rand)
-    #~ success, c_mid_1, c_mid_2 = solve_dyn(data, c_bounds = [c_bounds_1, c_bounds_2])
-    
-    paths_ids = []
-    if path and success:
-        #~ fullBody.straightPath([c_mid_1[0].tolist(),c_mid_2[0].tolist()])
-        #~ fullBody.straightPath([c_mid_2[0].tolist(),com_2])
-        if just_one_curve:
-            bezier_0 = __Bezier([com_1,c_mid_1[0].tolist(),c_mid_2[0].tolist(),com_2])
-        
-            p0 = fullBody.generateCurveTrajParts(bezier_0,[0.,0.1,0.9,1.])
-            print "p0", p0
-            #~ pp.displayPath(p0+1)
-            #~ pp.displayPath(p0+2)
-            pp.displayPath(p0)
-            paths_ids = [int(el) for el in fullBody.comRRTFromPos(stateid,p0+1,p0+2,p0+3)]
-        else:
-            bezier_0 = __Bezier([com_1,c_mid_1[0].tolist()]              , end_acc = c_mid_1[1].tolist() , end_vel = [0.,0.,0.])
-            bezier_1 = __Bezier([c_mid_1[0].tolist(),c_mid_2[0].tolist()], end_acc = c_mid_2[1].tolist(), init_acc = c_mid_1[1].tolist(), init_vel = [0.,0.,0.], end_vel = [0.,0.,0.])
-            bezier_2 = __Bezier([c_mid_2[0].tolist(),com_2]              , init_acc = c_mid_2[1].tolist(), init_vel = [0.,0.,0.])
-        
-            p0 = fullBody.generateCurveTraj(bezier_0)
-            print "p0", p0
-            fullBody.generateCurveTraj(bezier_1)
-            fullBody.generateCurveTraj(bezier_2)
-            pp.displayPath(p0)
-            pp.displayPath(p0+1)
-            pp.displayPath(p0+2)
-            paths_ids = [int(el) for el in fullBody.comRRTFromPos(stateid,p0,p0+1,p0+2)]
-        #~ paths_ids = []
-        global allpaths
-        allpaths += paths_ids[:-1]
-        pp(paths_ids[-1])
-    
-        #~ return success, paths_ids, c_mid_1, c_mid_2
-    return success, c_mid_1, c_mid_2, paths_ids
-#~ data = gen_sequence_data_from_state(fullBody,3,configs)
-
-
-
-def prepare_whole_interp(stateid, stateid_end):
-	all_points = []
-	allSuc = True
-	for i in range(stateid, stateid_end):
-		com_1 = __get_com(fullBody, configs[stateid])
-		success, c_mid_1, c_mid_2, paths_ids = test(i, False, True, False)
-		allSuc = success and allSuc
-		if not success:
-			break
-		all_points = all_points + [com_1, c_mid_1[0].tolist(), c_mid_2[0].tolist()]
-	all_points = all_points + [__get_com(fullBody, configs[stateid_end])]
-	if allSuc:
-		bezier_0 = __Bezier(all_points)
-		p0 = fullBody.generateCurveTraj(bezier_0)
-		pp.displayPath(p0)
-		num_paths = stateid_end - stateid
-		num_sub_paths = num_paths * 3
-		increment = 1. / float(num_paths)
-		partitions = [0.]
-		for i in range(0, num_paths):
-			dec = increment * float(i)
-			partitions += [dec + 0.01 * increment, dec + 0.99 * increment,dec + 1. * increment]
-		print "partitions", partitions, len(partitions)
-		p0 = fullBody.generateCurveTrajParts(bezier_0,partitions) +1
-		paths_ids = []
-		for i in range(0, num_paths):
-			print "***************************3i", p0+3*i
-			paths_ids += [int(el) for el in fullBody.comRRTFromPos(stateid + i,p0+3*i,p0+3*i+1,p0+3*i+2)]
-        #~ paths_ids = []
-			global allpaths
-			allpaths += paths_ids[:-1]
-			#~ pp(paths_ids[-1])
-#~ success, paths_ids, c_mid_1, c_mid_2 = test(0, True, True, False)
-#~ prepare_whole_interp(1, 2)
-
-#~ pp(29),pp(9),pp(17)
-from hpp.corbaserver.rbprm.tools.path_to_trajectory import *
+from bezier_traj import *
+init_bezier_traj(model.fullBody, r, pp, configs, model.limbsCOMConstraints)
+#~ AFTER loading obstacles
 
-def gen(ine_curve =False):
-	#~ test(0, True, True, ine_curve)
-	#~ test(0, True, True, True)
-	#~ test(1, True, True, ine_curve)
-	#~ test(1, True, True, True)
-	test(2, True, True, ine_curve)
-	#~ test(2, True, True, True)
-	test(3, True, True, ine_curve)
-	#~ test(3, True, True, True)
-	test(4, True, True, ine_curve)
-	test(5, True, True, ine_curve)
-	a = gen_trajectory_to_play(fullBody, pp, allpaths, flatten([[0.1, 0.9, 0.1] for _ in range(len(allpaths) / 3)]))
 
-#~ pp(29),pp(9),pp(17)
-#~ gen(True)
+#~ test_ineq(0,{ rLegId : {'file': "hrp2/RL_com.ineq", 'effector' : 'RLEG_JOINT5'}}, 1000, [1,0,0,1])
+#~ test_ineq(0,{ lLegId : {'file': "hrp2/LL_com.ineq", 'effector' : 'LLEG_JOINT5'}}, 1000, [0,0,1,1])
+#~ gen(0,1)
diff --git a/script/scenarios/demos/siggraph_asia/down_hrp2_path.py b/script/scenarios/demos/siggraph_asia/down_hrp2_path.py
index f35846995d4a0de276093b94f746d7073e9fd5f9..cb9e37ef36c6c873edd57221eb2ce892e4ecd074 100644
--- a/script/scenarios/demos/siggraph_asia/down_hrp2_path.py
+++ b/script/scenarios/demos/siggraph_asia/down_hrp2_path.py
@@ -50,7 +50,7 @@ r = Viewer (ps)
 
 q_init = rbprmBuilder.getCurrentConfig ();
 q_init [0:3] = [0, 0, 0.58]; rbprmBuilder.setCurrentConfig (q_init); r (q_init)
-q_init [0:3] = [0.2, 0, 0.48]; rbprmBuilder.setCurrentConfig (q_init); r (q_init)
+#~ q_init [0:3] = [0.2, 0, 0.48]; rbprmBuilder.setCurrentConfig (q_init); r (q_init)
 #~ q_init [0:3] = [0, -0.63, 0.6]; rbprmBuilder.setCurrentConfig (q_init); r (q_init)
 #~ q_init [3:7] = [ 0.98877108,  0.        ,  0.14943813,  0.        ]
 
diff --git a/script/scenarios/demos/siggraph_asia/grasp_hrp2_interp.py b/script/scenarios/demos/siggraph_asia/grasp_hrp2_interp.py
index 4b813c6603b3b7d87fa3d8b241d5e9fb0bd76a0b..6d09c879d2096ffa84097b29b1fdb88a11c557ba 100644
--- a/script/scenarios/demos/siggraph_asia/grasp_hrp2_interp.py
+++ b/script/scenarios/demos/siggraph_asia/grasp_hrp2_interp.py
@@ -19,7 +19,6 @@ srdfSuffix = ""
 fullBody = FullBody ()
 
 fullBody.loadFullBodyModel(urdfName, rootJointType, meshPackageName, packageName, urdfSuffix, srdfSuffix)
-fullBody.setJointBounds ("base_joint_xyz", [-3,3, -2, 2, 0, 1])
 
 
 ps = tp.ProblemSolver( fullBody )
@@ -50,7 +49,7 @@ lHand = 'LARM_JOINT5'
 lArmOffset = [0,0,-0.1075]
 lArmNormal = [0,0,1]
 lArmx = 0.024; lArmy = 0.024
-fullBody.addLimb(larmId,larm,lHand,lArmOffset,lArmNormal, lArmx, lArmy, 10000, "manipulability", 0.1, "_6_DOF", False,grasp = True)
+fullBody.addLimb(larmId,larm,lHand,lArmOffset,lArmNormal, lArmx, lArmy, 10000, "manipulability", 0.1, "_6_DOF", True,grasp = True)
 #~ fullBody.addLimb(larmId,larm,lHand,lArmOffset,lArmNormal, lArmx, lArmy, 10000, "manipulability", 0.1, "_6_DOF", True)
 #~ fullBody.addLimb(larmId,larm,lHand,lArmOffset,lArmNormal, lArmx, lArmy, 10000, "manipulability", 0.1, "_6_DOF")
 #~ fullBody.addLimb(larmId,larm,lHand,lArmOffset,lArmNormal, lArmx, lArmy, 10000, 0.05)
@@ -63,7 +62,7 @@ rArmOffset = [0,0,-0.1075]
 rArmNormal = [0,0,1]
 rArmx = 0.024; rArmy = 0.024
 #disabling collision for hook
-fullBody.addLimb(rarmId,rarm,rHand,rArmOffset,rArmNormal, rArmx, rArmy, 10000, "manipulability", 0.1, "_6_DOF", False,grasp = True)
+fullBody.addLimb(rarmId,rarm,rHand,rArmOffset,rArmNormal, rArmx, rArmy, 10000, "manipulability", 0.1, "_6_DOF", True,grasp = True)
 #~ fullBody.addLimb(rarmId,rarm,rHand,rArmOffset,rArmNormal, rArmx, rArmy, 10000, "manipulability", 0.1, "_6_DOF", True)
 #~ fullBody.addLimb(rarmId,rarm,rHand,rArmOffset,rArmNormal, rArmx, rArmy, 10000, "manipulability", 0.1, "_6_DOF")
 #~