def init_viewer(self): """ Create a Viewer instance """ self.v = Viewer(self.ps, viewerClient=self.path_planner.v.client, displayCoM=True)
rbprmBuilder.setAffordanceFilter('hyq_lhleg_rom', ['Support']) rbprmBuilder.setAffordanceFilter('hyq_lfleg_rom', [ 'Support', ]) # We also bound the rotations of the torso. (z, y, x) rbprmBuilder.boundSO3([-0.1, 0.1, -0.65, 0.65, -0.2, 0.2]) rbprmBuilder.client.basic.robot.setDimensionExtraConfigSpace(extraDof) rbprmBuilder.client.basic.robot.setExtraConfigSpaceBounds( [-vMax, vMax, -1, 1, -2, 2, 0, 0, 0, 0, 0, 0]) # Creating an instance of HPP problem solver and the viewer from hpp.corbaserver.rbprm.problem_solver import ProblemSolver ps = ProblemSolver(rbprmBuilder) ps.client.problem.setParameter("aMax", aMax) ps.client.problem.setParameter("vMax", vMax) r = Viewer(ps) from hpp.corbaserver.affordance.affordance import AffordanceTool afftool = AffordanceTool() afftool.setAffordanceConfig('Support', [0.5, 0.03, 0.00005]) afftool.loadObstacleModel(packageName, "downSlope", "planning", r) #r.loadObstacleModel (packageName, "ground", "planning") afftool.visualiseAffordances('Support', r, [0.25, 0.5, 0.5]) r.addLandmark(r.sceneName, 1) # Setting initial and goal configurations q_init = rbprmBuilder.getCurrentConfig() q_init[3:7] = [0.9659, 0, 0.2588, 0] q_init[0:3] = [-1.25, 1, 1.7] r(q_init) #q_init[3:7] = [0.7071,0,0,0.7071]
rbprmBuilder.setAffordanceFilter('hrp2_lleg_rom', [ 'Support', ]) rbprmBuilder.setAffordanceFilter('hrp2_rleg_rom', ['Support']) #~ rbprmBuilder.setNormalFilter('hrp2_rarm_rom', [0,0,1], 0.5) #~ rbprmBuilder.setNormalFilter('hrp2_lleg_rom', [0,0,1], 0.9) #~ rbprmBuilder.setNormalFilter('hrp2_rleg_rom', [0,0,1], 0.9) #~ rbprmBuilder.setNormalFilter('hyq_rhleg_rom', [0,0,1], 0.9) rbprmBuilder.boundSO3([-0., 0, -1, 1, -1, 1]) #~ from hpp.corbaserver.rbprm. import ProblemSolver from hpp.corbaserver.rbprm.problem_solver import ProblemSolver ps = ProblemSolver(rbprmBuilder) r = Viewer(ps) f = open("scale_1_save", "r+") from pickle import load q = load(f) f.close() q_init = rbprmBuilder.getCurrentConfig() q_init[3:7] = q[3:7] q_init[0:3] = q[0:3] rbprmBuilder.setCurrentConfig(q_init) r(q_init) #~ q_init [0:3] = [0.1, -0.82, 0.648702]; 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. ]
rbprmBuilder.client.basic.robot.setExtraConfigSpaceBounds( [-4.5, 4.5, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0]) indexECS = rbprmBuilder.getConfigSize( ) - rbprmBuilder.client.basic.robot.getDimensionExtraConfigSpace() # Creating an instance of HPP problem solver and the viewer ps = ProblemSolver(rbprmBuilder) ps.client.problem.setParameter("aMax", omniORB.any.to_any(aMax)) ps.client.problem.setParameter("aMaxZ", omniORB.any.to_any(10.)) ps.client.problem.setParameter("vMax", omniORB.any.to_any(vMax)) ps.client.problem.setParameter("tryJump", omniORB.any.to_any(1.)) ps.client.problem.setParameter("sizeFootX", omniORB.any.to_any(0.24)) ps.client.problem.setParameter("sizeFootY", omniORB.any.to_any(0.14)) ps.client.problem.setTimeOutPathPlanning(3600) r = Viewer(ps, displayArrows=True) from hpp.corbaserver.affordance.affordance import AffordanceTool afftool = AffordanceTool() afftool.setAffordanceConfig('Support', [0.5, 0.03, 0.00005]) afftool.loadObstacleModel(packageName, "downSlope", "planning", r) #r.loadObstacleModel (packageName, "ground", "planning") afftool.visualiseAffordances('Support', r, [0.25, 0.5, 0.5]) r.addLandmark(r.sceneName, 1) # Setting initial and goal configurations q_init = rbprmBuilder.getCurrentConfig() q_init[3:7] = [1, 0, 0, 0] q_init[8] = -0.2 q_init[0:3] = [-1.6, 1, 1.75] r(q_init)
from hpp.corbaserver import Client from hpp.corbaserver import ProblemSolver from viewer_display_library import normalizeDir, plotCone, plotFrame, plotThetaPlane, shootNormPlot, plotStraightLine, plotConeWaypoints, plotSampleSubPath, contactPosition, addLight, plotSphere, plotSpheresWaypoints, plotConesRoadmap import math import numpy as np robot = Robot ('robot') robot.setJointBounds('base_joint_xyz', [-6, 6.8, -2.5, 3.2, 0, 8]) ps = ProblemSolver (robot) cl = robot.client # Configs : [x, y, z, q1, q2, q3, q4, dir.x, dir.y, dir.z, theta] q11 = [6.2, 0.5, 0.5, 0, 0, 0, 1, 0, 0, 1, 0]; q22 = [-4.4, -1.5, 6.5, 0, 0, 0, 1, 0, 0, 1, 0] from hpp.gepetto import Viewer, PathPlayer r = Viewer (ps); gui = r.client.gui pp = PathPlayer (robot.client, r) r.loadObstacleModel ("animals_description","scene_jump_harder","scene_jump_harder") q1 = cl.robot.projectOnObstacle (q11, 0.001); q2 = cl.robot.projectOnObstacle (q22, 0.001) robot.isConfigValid(q1); robot.isConfigValid(q2) r(q1) ps.setInitialConfig (q1); ps.addGoalConfig (q2) offsetOrientedPath = 2 # If remove oriented path computation in ProblemSolver, set to 1 instead of 2 #plotFrame (r, 'frame_group', [0,0,0], 0.6) # First parabolas: vmax = 7m/s, mu = 1.2 cl.problem.setFrictionCoef(1.2); cl.problem.setMaxVelocityLim(7)
# display solution : from hpp.gepetto import PathPlayer pp = PathPlayer(v) pp.dt = 0.1 pp.displayVelocityPath(0) #v.client.gui.setVisibility("path_0_root","ALWAYS_ON_TOP") pp.dt = 0.01 #pp(0) except Exception: pass # move the robot out of the view before computing the contacts q_far = q_init[::] q_far[2] = -2 pId = ps.numberPaths() - 1 from hpp.corbaserver import Client #~ #DEMO code to play root path and final contact plan cl = Client() cl.problem.selectProblem("rbprm_path") rbprmBuilder2 = Robot("toto") ps2 = ProblemSolver(rbprmBuilder2) cl.problem.selectProblem("default") cl.problem.movePathToProblem(pId, "rbprm_path", rbprmBuilder.getAllJointNames()[1:]) r2 = Viewer(ps2, viewerClient=v.client) r2(q_far) #~ v(q_far)
rbprmBuilder.setAffordanceFilter('0rLeg', [ 'Support', ]) rbprmBuilder.setAffordanceFilter('1lLeg', ['Support']) #~ rbprmBuilder.setNormalFilter('hrp2_rarm_rom', [0,0,1], 0.5) #~ rbprmBuilder.setNormalFilter('hrp2_lleg_rom', [0,0,1], 0.9) #~ rbprmBuilder.setNormalFilter('hrp2_rleg_rom', [0,0,1], 0.9) #~ rbprmBuilder.setNormalFilter('hyq_rhleg_rom', [0,0,1], 0.9) rbprmBuilder.boundSO3([-0., 0, -1, 1, -1, 1]) #~ from hpp.corbaserver.rbprm. import ProblemSolver from hpp.corbaserver.rbprm.problem_solver import ProblemSolver ps = ProblemSolver(rbprmBuilder) r = Viewer(ps) q_init = rbprmBuilder.getCurrentConfig() q_init[0:3] = [1.49, -0.65, 1.25] rbprmBuilder.setCurrentConfig(q_init) r(q_init) #~ q_init [0:3] = [0, 0, 0.648702]; rbprmBuilder.setCurrentConfig (q_init); r (q_init) q_init[3:7] = [0, 0, 0, 1] #~ 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. ] q_goal = q_init[::] #~ q_goal [3:7] = [ 0.98877108, 0. , 0.14943813, 0. ] q_goal[0:3] = [0, 0, 0.648702] r(q_goal) #~ q_goal [0:3] = [1.2, -0.65, 1.1]; r (q_goal)
from hpp.corbaserver.pr2 import Robot robot = Robot('pr2', False) from hpp.corbaserver import ProblemSolver ps = ProblemSolver(robot) from gepetto.corbaserver import Client as GuiClient guiClient = GuiClient() from hpp.gepetto import Viewer Viewer.sceneName = '0_scene_hpp_' r = Viewer(ps, guiClient) from hpp.gepetto import PathPlayer pp = PathPlayer(robot.client, r)
psGuide.selectSteeringMethod("RBPRMKinodynamic") psGuide.selectDistance("Kinodynamic") psGuide.selectPathPlanner("DynamicPlanner") # Solve the planning problem : # move the robot out of the view before computing the contacts from hpp.corbaserver import Client #~ #DEMO code to play root path and final contact plan cl = Client() cl.problem.selectProblem("rbprm_path") rbprmBuilder2 = Robot ("toto") ps2 = ProblemSolver( rbprmBuilder2 ) cl.problem.selectProblem("default") #~ cl.problem.movePathToProblem(pId,"rbprm_path",rbprmBuilder.getAllJointNames()[1:]) r2 = Viewer (ps2, viewerClient=v.client) q_far = q_init[::] q_far[2] = -2 r2(q_far) from hpp.gepetto import PathPlayer pp = PathPlayer (v) ###### WHOLE BODY INIT #~ from hpp.corbaserver.rbprm.anymal import Robot from hpp.corbaserver.rbprm.anymal_prong import Robot #~ from hpp.gepetto import Viewer from tools.display_tools import * import time
indexECS = rbprmBuilder.getConfigSize() - rbprmBuilder.client.basic.robot.getDimensionExtraConfigSpace() # Creating an instance of HPP problem solver and the viewer from hpp.corbaserver.rbprm.problem_solver import ProblemSolver ps = ProblemSolver( rbprmBuilder ) ps.client.problem.setParameter("aMax",omniORB.any.to_any(aMax)) ps.client.problem.setParameter("aMaxZ",omniORB.any.to_any(10.)) ps.client.problem.setParameter("vMax",omniORB.any.to_any(vMax)) ps.client.problem.setParameter("orientedPath",omniORB.any.to_any(0.)) ps.client.problem.setParameter("friction",omniORB.any.to_any(MU)) ps.client.problem.setParameter("sizeFootX",omniORB.any.to_any(0.24)) ps.client.problem.setParameter("sizeFootY",omniORB.any.to_any(0.14)) r = Viewer (ps,displayArrows = False,displayCoM=True) from hpp.corbaserver.affordance.affordance import AffordanceTool afftool = AffordanceTool () afftool.setAffordanceConfig('Support', [0.5, 0.03, 0.005]) afftool.loadObstacleModel (packageName, ENV_NAME, ENV_PREFIX, r,reduceSizes=[0.14,0]) #r.loadObstacleModel (packageName, "ground", "planning") afftool.visualiseAffordances('Support', r, [0.25, 0.5, 0.5]) #r.addLandmark(r.sceneName,1) # Setting initial and goal configurations q_init = rbprmBuilder.getCurrentConfig (); q_init[3:7] = [1,0,0,0] #q_init [0:3] =[-0.37, 0, 0.74]; r (q_init) q_init [0:3] =[-0.71, -0.03, 0.76]; r (q_init)