diff --git a/scripts/hpp_wholebody_motion/__init__.py b/scripts/mlp/__init__.py similarity index 100% rename from scripts/hpp_wholebody_motion/__init__.py rename to scripts/mlp/__init__.py diff --git a/scripts/hpp_wholebody_motion/centroidal/__init__.py b/scripts/mlp/centroidal/__init__.py similarity index 100% rename from scripts/hpp_wholebody_motion/centroidal/__init__.py rename to scripts/mlp/centroidal/__init__.py diff --git a/scripts/hpp_wholebody_motion/centroidal/croc.py b/scripts/mlp/centroidal/croc.py similarity index 98% rename from scripts/hpp_wholebody_motion/centroidal/croc.py rename to scripts/mlp/centroidal/croc.py index de104aa67b34a89cd80ac15b1790d0d53a420d94..d3a28241815f33f9550b5383b9ea5c5cb90fec1a 100644 --- a/scripts/hpp_wholebody_motion/centroidal/croc.py +++ b/scripts/mlp/centroidal/croc.py @@ -1,5 +1,5 @@ import numpy as np -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg import locomote from locomote import WrenchCone,SOC6,ContactPatch, ContactPhaseHumanoid, ContactSequenceHumanoid from hpp_spline import bezier diff --git a/scripts/hpp_wholebody_motion/centroidal/geometric.py b/scripts/mlp/centroidal/geometric.py similarity index 98% rename from scripts/hpp_wholebody_motion/centroidal/geometric.py rename to scripts/mlp/centroidal/geometric.py index 1702d9578d033d3cc024835a11b0ab07ec60175c..041dedf34334fb5ff51317d30f8ccb313e6f9a1e 100644 --- a/scripts/hpp_wholebody_motion/centroidal/geometric.py +++ b/scripts/mlp/centroidal/geometric.py @@ -1,5 +1,5 @@ import numpy as np -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg import locomote from locomote import WrenchCone,SOC6,ContactPatch, ContactPhaseHumanoid, ContactSequenceHumanoid diff --git a/scripts/hpp_wholebody_motion/centroidal/topt.py b/scripts/mlp/centroidal/topt.py similarity index 98% rename from scripts/hpp_wholebody_motion/centroidal/topt.py rename to scripts/mlp/centroidal/topt.py index e6b1de5414df68a6de888615f09a3425f4df6abd..c9cd64180b82465ab6d624cc5c7be0390ab17c68 100644 --- a/scripts/hpp_wholebody_motion/centroidal/topt.py +++ b/scripts/mlp/centroidal/topt.py @@ -5,9 +5,9 @@ import timeopt import locomote from locomote import WrenchCone,SOC6,ContactPatch, ContactPhaseHumanoid, ContactSequenceHumanoid import time -import hpp_wholebody_motion.config as cfg -import hpp_wholebody_motion.viewer.display_tools as display -from hpp_wholebody_motion.utils.util import * +import mlp.config as cfg +import mlp.viewer.display_tools as display +from mlp.utils.util import * CONTACT_ANKLE_LEVEL = True # probably only required for hrp2, as the center of the feet is not the center of the flexibility ... diff --git a/scripts/hpp_wholebody_motion/config.py b/scripts/mlp/config.py similarity index 87% rename from scripts/hpp_wholebody_motion/config.py rename to scripts/mlp/config.py index d5b0644a187cb61b1e807bcde57a542c962b1b41..293735978bb5bb344733c7c9ffa9a880af176dff 100644 --- a/scripts/hpp_wholebody_motion/config.py +++ b/scripts/mlp/config.py @@ -1,7 +1,7 @@ ## PATHS settings : import numpy as np import os -PKG_PATH = os.environ['DEVEL_HPP_DIR']+"/src/hpp-wholebody-motion" +PKG_PATH = os.environ['DEVEL_HPP_DIR']+"/src/multicontact-locomotion-planning" OUTPUT_DIR = PKG_PATH+"/res" CONTACT_SEQUENCE_PATH = OUTPUT_DIR + "/contact_sequences" TIME_OPT_CONFIG_PATH = PKG_PATH +'/timeOpt_configs' @@ -11,7 +11,7 @@ SAVE_CS = not LOAD_CS and True SAVE_CS_COM = not LOAD_CS_COM and True EXPORT_GAZEBO = False EXPORT_OPENHRP = True -openHRP_useZMPref = False +openHRP_useZMPref = True EXPORT_PATH = OUTPUT_DIR+"/export" ##DISPLAY settings : @@ -68,14 +68,14 @@ IK_store_contact_forces = True import importlib import sys if len(sys.argv)<2 : - print "You must call this script with the name of the config file (one of the file contained in hpp_wholebody_motion.demo_config)" + print "You must call this script with the name of the config file (one of the file contained in mlp.demo_config)" print "Available demo files : " - configs_path = PKG_PATH+"/scripts/hpp_wholebody_motion/demo_configs" + configs_path = PKG_PATH+"/scripts/mlp/demo_configs" demos_list = os.listdir(configs_path) for f in demos_list: if f.endswith(".py") and not f.startswith("__") : print f.rstrip(".py") - raise IOError("You must call this script with the name of the config file (one of the file contained in hpp_wholebody_motion.demo_config)") + raise IOError("You must call this script with the name of the config file (one of the file contained in mlp.demo_config)") import argparse parser = argparse.ArgumentParser(description = "todo") @@ -85,9 +85,9 @@ DEMO_NAME = args.demo_name print "# Load demo config : ",DEMO_NAME # Import the module try : - demo_cfg = importlib.import_module('hpp_wholebody_motion.demo_configs.'+DEMO_NAME) + demo_cfg = importlib.import_module('mlp.demo_configs.'+DEMO_NAME) except ImportError: - raise NameError("No demo config file with the given name in hpp_wholebody_motion.demo_config") + raise NameError("No demo config file with the given name in mlp.demo_config") # Determine a list of names to copy to the current name space names = getattr(demo_cfg, '__all__', [n for n in dir(demo_cfg) if not n.startswith('_')]) # Copy those names into the current name space diff --git a/scripts/hpp_wholebody_motion/contact_sequence/__init__.py b/scripts/mlp/contact_sequence/__init__.py similarity index 100% rename from scripts/hpp_wholebody_motion/contact_sequence/__init__.py rename to scripts/mlp/contact_sequence/__init__.py diff --git a/scripts/hpp_wholebody_motion/contact_sequence/rbprm.py b/scripts/mlp/contact_sequence/rbprm.py similarity index 99% rename from scripts/hpp_wholebody_motion/contact_sequence/rbprm.py rename to scripts/mlp/contact_sequence/rbprm.py index 9e6beec218730370f9e63a279aad0293df511b42..d2b5562dc70649ca6b8774588ae7e1d93182a7b7 100644 --- a/scripts/hpp_wholebody_motion/contact_sequence/rbprm.py +++ b/scripts/mlp/contact_sequence/rbprm.py @@ -2,11 +2,11 @@ import pinocchio as se3 from pinocchio import SE3, Quaternion from pinocchio.utils import * import inspect -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg import locomote from locomote import WrenchCone,SOC6,ContactPatch, ContactPhaseHumanoid, ContactSequenceHumanoid global i_sphere -from hpp_wholebody_motion.utils.util import quatFromConfig +from mlp.utils.util import quatFromConfig def generateContactSequence(fb,configs,beginId,endId): diff --git a/scripts/hpp_wholebody_motion/demo_configs/__init__.py b/scripts/mlp/demo_configs/__init__.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/__init__.py rename to scripts/mlp/demo_configs/__init__.py diff --git a/scripts/hpp_wholebody_motion/demo_configs/anymal_flatGround.py b/scripts/mlp/demo_configs/anymal_flatGround.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/anymal_flatGround.py rename to scripts/mlp/demo_configs/anymal_flatGround.py diff --git a/scripts/hpp_wholebody_motion/demo_configs/anymal_slalom_debris.py b/scripts/mlp/demo_configs/anymal_slalom_debris.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/anymal_slalom_debris.py rename to scripts/mlp/demo_configs/anymal_slalom_debris.py diff --git a/scripts/hpp_wholebody_motion/demo_configs/common_anymal.py b/scripts/mlp/demo_configs/common_anymal.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/common_anymal.py rename to scripts/mlp/demo_configs/common_anymal.py diff --git a/scripts/hpp_wholebody_motion/demo_configs/common_hrp2.py b/scripts/mlp/demo_configs/common_hrp2.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/common_hrp2.py rename to scripts/mlp/demo_configs/common_hrp2.py diff --git a/scripts/hpp_wholebody_motion/demo_configs/common_hyq.py b/scripts/mlp/demo_configs/common_hyq.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/common_hyq.py rename to scripts/mlp/demo_configs/common_hyq.py diff --git a/scripts/hpp_wholebody_motion/demo_configs/common_talos.py b/scripts/mlp/demo_configs/common_talos.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/common_talos.py rename to scripts/mlp/demo_configs/common_talos.py diff --git a/scripts/hpp_wholebody_motion/demo_configs/darpa_hyq.py b/scripts/mlp/demo_configs/darpa_hyq.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/darpa_hyq.py rename to scripts/mlp/demo_configs/darpa_hyq.py diff --git a/scripts/hpp_wholebody_motion/demo_configs/hrp2_flatGround.py b/scripts/mlp/demo_configs/hrp2_flatGround.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/hrp2_flatGround.py rename to scripts/mlp/demo_configs/hrp2_flatGround.py diff --git a/scripts/mlp/demo_configs/hrp2_pushRecovery.py b/scripts/mlp/demo_configs/hrp2_pushRecovery.py new file mode 100644 index 0000000000000000000000000000000000000000..d96ae6d3063357960c51fb7902942334369135b2 --- /dev/null +++ b/scripts/mlp/demo_configs/hrp2_pushRecovery.py @@ -0,0 +1,19 @@ +TIMEOPT_CONFIG_FILE = "cfg_softConstraints_hrp2.yaml" +TIMEOPT_CONFIG_FILE = "cfg_softConstraints_hrp2_eff85.yaml" + +from common_hrp2 import * +SCRIPT_PATH = "sandbox" + +DURATION_INIT = 1. # Time to init the motion +DURATION_FINAL = 1.5 # Time to stop the robot +DURATION_FINAL_SS = 1. +DURATION_SS =1.4 +DURATION_DS = 0.3 +DURATION_TS = 0.4 + +COM_SHIFT_Z = 0. +TIME_SHIFT_COM = 0. + +## Settings for end effectors : +EFF_T_PREDEF = 0.3 +p_max = 0.1 \ No newline at end of file diff --git a/scripts/hpp_wholebody_motion/demo_configs/hyq_slalom_debris.py b/scripts/mlp/demo_configs/hyq_slalom_debris.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/hyq_slalom_debris.py rename to scripts/mlp/demo_configs/hyq_slalom_debris.py diff --git a/scripts/hpp_wholebody_motion/demo_configs/talos_flatGround.py b/scripts/mlp/demo_configs/talos_flatGround.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/talos_flatGround.py rename to scripts/mlp/demo_configs/talos_flatGround.py diff --git a/scripts/hpp_wholebody_motion/demo_configs/talos_obstaclesFeet.py b/scripts/mlp/demo_configs/talos_obstaclesFeet.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/talos_obstaclesFeet.py rename to scripts/mlp/demo_configs/talos_obstaclesFeet.py diff --git a/scripts/mlp/demo_configs/talos_pushRecovery.py b/scripts/mlp/demo_configs/talos_pushRecovery.py new file mode 100644 index 0000000000000000000000000000000000000000..a7b5682538542c2e72442bd078c52be2e38320af --- /dev/null +++ b/scripts/mlp/demo_configs/talos_pushRecovery.py @@ -0,0 +1,23 @@ +TIMEOPT_CONFIG_FILE = "cfg_softConstraints_talos_dt001.yaml" +from common_talos import * +SCRIPT_PATH = "sandbox" + +DURATION_INIT = 0.5 # Time to init the motion +DURATION_FINAL = 2.0 # Time to stop the robot +DURATION_FINAL_SS = 0.8 +DURATION_SS =0.8 +DURATION_DS = 0.2 +DURATION_TS = 0.4 +SOLVER_DT = 0.02 # hardcoded in timeOpt_configs files, must match this one ! + + +## Settings for end effectors : +EFF_T_PREDEF = 0.2 +p_max = 0.1 + +## setting for the IK : +kp_com = 10000.0 # proportional gain of center of mass task +w_com = 1.0 # weight of center of mass task +kp_Eff = 10000.0 # proportional gain ofthe effectors motion task +w_eff = 2.0 # weight of the effector motion task +IK_PRINT_N = 50 \ No newline at end of file diff --git a/scripts/hpp_wholebody_motion/demo_configs/talos_table.py b/scripts/mlp/demo_configs/talos_table.py similarity index 100% rename from scripts/hpp_wholebody_motion/demo_configs/talos_table.py rename to scripts/mlp/demo_configs/talos_table.py diff --git a/scripts/hpp_wholebody_motion/end_effector/__init__.py b/scripts/mlp/end_effector/__init__.py similarity index 100% rename from scripts/hpp_wholebody_motion/end_effector/__init__.py rename to scripts/mlp/end_effector/__init__.py diff --git a/scripts/hpp_wholebody_motion/end_effector/bezier_constrained.py b/scripts/mlp/end_effector/bezier_constrained.py similarity index 99% rename from scripts/hpp_wholebody_motion/end_effector/bezier_constrained.py rename to scripts/mlp/end_effector/bezier_constrained.py index 7af032de5d0d4effd7218608e05594f29511647d..46c4e758e81b4b7f22259a5722165a98ad49ee3a 100644 --- a/scripts/hpp_wholebody_motion/end_effector/bezier_constrained.py +++ b/scripts/mlp/end_effector/bezier_constrained.py @@ -1,7 +1,7 @@ -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg import time import os -from hpp_wholebody_motion.utils.polyBezier import * +from mlp.utils.polyBezier import * import pinocchio as se3 from pinocchio import SE3, Quaternion from pinocchio.utils import * @@ -14,14 +14,14 @@ from scipy.spatial import ConvexHull from tools.disp_bezier import * import hpp_spline import hpp_bezier_com_traj as bezier_com -from hpp_wholebody_motion.utils import trajectories +from mlp.utils import trajectories import math from tools.disp_bezier import * import eigenpy import quadprog import bezier_predef import limb_rrt -from hpp_wholebody_motion.utils.util import SE3FromConfig,distPointLine +from mlp.utils.util import SE3FromConfig,distPointLine eigenpy.switchToNumpyArray() diff --git a/scripts/hpp_wholebody_motion/end_effector/bezier_predef.py b/scripts/mlp/end_effector/bezier_predef.py similarity index 97% rename from scripts/hpp_wholebody_motion/end_effector/bezier_predef.py rename to scripts/mlp/end_effector/bezier_predef.py index 0cd817e14f213f5123740452b0176efba54bd64e..129c3924f47955aa801b898214c7d546dbcd3e9e 100644 --- a/scripts/hpp_wholebody_motion/end_effector/bezier_predef.py +++ b/scripts/mlp/end_effector/bezier_predef.py @@ -1,7 +1,7 @@ -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg import time import os -from hpp_wholebody_motion.utils.polyBezier import * +from mlp.utils.polyBezier import * import pinocchio as se3 from pinocchio import SE3 from pinocchio.utils import * @@ -12,7 +12,7 @@ from tools.disp_bezier import * import hpp_spline from hpp_spline import bezier import hpp_bezier_com_traj as bezier_com -from hpp_wholebody_motion.utils import trajectories +from mlp.utils import trajectories diff --git a/scripts/hpp_wholebody_motion/end_effector/limb_rrt.py b/scripts/mlp/end_effector/limb_rrt.py similarity index 99% rename from scripts/hpp_wholebody_motion/end_effector/limb_rrt.py rename to scripts/mlp/end_effector/limb_rrt.py index c0f2b376f573d6d3cd81dff2a8a0e30aa6ba25ea..46d2b4a565dd91ebe52d675b35d31af9a6d414ee 100644 --- a/scripts/hpp_wholebody_motion/end_effector/limb_rrt.py +++ b/scripts/mlp/end_effector/limb_rrt.py @@ -1,4 +1,4 @@ -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg import time import os import pinocchio as se3 diff --git a/scripts/hpp_wholebody_motion/export/__init__.py b/scripts/mlp/export/__init__.py similarity index 100% rename from scripts/hpp_wholebody_motion/export/__init__.py rename to scripts/mlp/export/__init__.py diff --git a/scripts/hpp_wholebody_motion/export/blender.py b/scripts/mlp/export/blender.py similarity index 81% rename from scripts/hpp_wholebody_motion/export/blender.py rename to scripts/mlp/export/blender.py index ce0d9d1a5cebdd6a05555a1afd2b669dd333cc57..0d11462bb388b0e7da68f0fc4f0d1068adf6d120 100644 --- a/scripts/hpp_wholebody_motion/export/blender.py +++ b/scripts/mlp/export/blender.py @@ -1,6 +1,6 @@ import os -import hpp_wholebody_motion.config as cfg -import hpp_wholebody_motion.viewer.display_tools as display_tools +import mlp.config as cfg +import mlp.viewer.display_tools as display_tools def export(q_t,v): path = cfg.EXPORT_PATH+"/blender" diff --git a/scripts/hpp_wholebody_motion/export/gazebo.py b/scripts/mlp/export/gazebo.py similarity index 91% rename from scripts/hpp_wholebody_motion/export/gazebo.py rename to scripts/mlp/export/gazebo.py index 416a6033fd17ee66a249e6bb5fd61dc06362dee3..13f196952f329161479f79b81ec8d7490e5c2e6f 100644 --- a/scripts/hpp_wholebody_motion/export/gazebo.py +++ b/scripts/mlp/export/gazebo.py @@ -1,5 +1,5 @@ import os -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg def export(q_t): path = cfg.EXPORT_PATH+"/gazebo" diff --git a/scripts/hpp_wholebody_motion/export/openHRP.py b/scripts/mlp/export/openHRP.py similarity index 98% rename from scripts/hpp_wholebody_motion/export/openHRP.py rename to scripts/mlp/export/openHRP.py index c3620434e9c7febe57f355acd10ca8b3666331ad..9e349513af951e76b671e6305f4c81492bf04dad 100644 --- a/scripts/hpp_wholebody_motion/export/openHRP.py +++ b/scripts/mlp/export/openHRP.py @@ -2,14 +2,14 @@ ## ONLY WORK FOR HRP-2 !! import os -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg import pinocchio as se3 from pinocchio import SE3, rnea from pinocchio.utils import * import numpy as np from rospkg import RosPack from pinocchio.robot_wrapper import RobotWrapper -from hpp_wholebody_motion.utils.computation_tools import * +from mlp.utils.computation_tools import * class Struct(): None diff --git a/scripts/hpp_wholebody_motion/utils/__init__.py b/scripts/mlp/utils/__init__.py similarity index 100% rename from scripts/hpp_wholebody_motion/utils/__init__.py rename to scripts/mlp/utils/__init__.py diff --git a/scripts/hpp_wholebody_motion/utils/check_path.py b/scripts/mlp/utils/check_path.py similarity index 99% rename from scripts/hpp_wholebody_motion/utils/check_path.py rename to scripts/mlp/utils/check_path.py index 96add52f11b4ae7daa379efe1144fa52b3a6f54c..ad87d582322ceb8b272b1847165eb3ec9982afe2 100644 --- a/scripts/hpp_wholebody_motion/utils/check_path.py +++ b/scripts/mlp/utils/check_path.py @@ -1,7 +1,7 @@ # Copyright 2018, LAAS-CNRS # Author: Pierre Fernbach -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg import numpy as np class PathChecker(): diff --git a/scripts/hpp_wholebody_motion/utils/computation_tools.py b/scripts/mlp/utils/computation_tools.py similarity index 97% rename from scripts/hpp_wholebody_motion/utils/computation_tools.py rename to scripts/mlp/utils/computation_tools.py index f75e1bd620b103aa973caccdc0148aaf9641378a..82a5c9adc08de2e74f70b9f735364707ef06c8b5 100644 --- a/scripts/hpp_wholebody_motion/utils/computation_tools.py +++ b/scripts/mlp/utils/computation_tools.py @@ -2,9 +2,9 @@ import numpy as np import pinocchio as se3 from pinocchio import SE3, Motion,Force -from hpp_wholebody_motion.utils.util import * -import hpp_wholebody_motion.config as cfg -import hpp_wholebody_motion.utils.trajectories as Trajectories +from mlp.utils.util import * +import mlp.config as cfg +import mlp.utils.trajectories as Trajectories from rospkg import RosPack from pinocchio.robot_wrapper import RobotWrapper diff --git a/scripts/hpp_wholebody_motion/utils/derivative_filters.py b/scripts/mlp/utils/derivative_filters.py similarity index 100% rename from scripts/hpp_wholebody_motion/utils/derivative_filters.py rename to scripts/mlp/utils/derivative_filters.py diff --git a/scripts/hpp_wholebody_motion/utils/plot.py b/scripts/mlp/utils/plot.py similarity index 98% rename from scripts/hpp_wholebody_motion/utils/plot.py rename to scripts/mlp/utils/plot.py index cf5a77ee88d25c4a388f48beb917b4bf942eff6f..1402c8ff6c977f46d93063f20bdbc98c73f16604 100644 --- a/scripts/hpp_wholebody_motion/utils/plot.py +++ b/scripts/mlp/utils/plot.py @@ -3,13 +3,13 @@ import numpy as np import os import pinocchio as se3 from pinocchio import SE3 -from hpp_wholebody_motion.utils.util import * -import hpp_wholebody_motion.config as cfg +from mlp.utils.util import * +import mlp.config as cfg import matplotlib matplotlib.use("Qt4agg") import matplotlib.pyplot as plt from multiprocessing import Process -from hpp_wholebody_motion.utils.computation_tools import computeZMP,computeZMPRef +from mlp.utils.computation_tools import computeZMP,computeZMPRef plt.ioff() diff --git a/scripts/hpp_wholebody_motion/utils/polyBezier.py b/scripts/mlp/utils/polyBezier.py similarity index 100% rename from scripts/hpp_wholebody_motion/utils/polyBezier.py rename to scripts/mlp/utils/polyBezier.py diff --git a/scripts/hpp_wholebody_motion/utils/trajectories.py b/scripts/mlp/utils/trajectories.py similarity index 100% rename from scripts/hpp_wholebody_motion/utils/trajectories.py rename to scripts/mlp/utils/trajectories.py diff --git a/scripts/hpp_wholebody_motion/utils/util.py b/scripts/mlp/utils/util.py similarity index 98% rename from scripts/hpp_wholebody_motion/utils/util.py rename to scripts/mlp/utils/util.py index fb8b1444af40956cdd5f11a57305564722fb100a..bd861a6397e4cb893a0ec2bf1aba4e31fe8d642f 100644 --- a/scripts/hpp_wholebody_motion/utils/util.py +++ b/scripts/mlp/utils/util.py @@ -3,7 +3,7 @@ import numpy as np from numpy import cross from numpy.linalg import norm from pinocchio import SE3, Quaternion -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg def quatFromConfig(q): return Quaternion(q[6],q[3],q[4],q[5]) @@ -43,6 +43,8 @@ def SE3toVec(M): v[j + 9] = M.rotation[j, 2] return v +# TODO : def SE3FromVec(s): + def MotiontoVec(M): v = np.matrix(np.zeros((6, 1))) for j in range(3): @@ -50,6 +52,7 @@ def MotiontoVec(M): v[j + 3] = M.angular[j] return v + # assume that q.size >= 7 with root pos and quaternion(x,y,z,w) def SE3FromConfig(q): placement = SE3.Identity() diff --git a/scripts/hpp_wholebody_motion/utils/wholebody_result.py b/scripts/mlp/utils/wholebody_result.py similarity index 99% rename from scripts/hpp_wholebody_motion/utils/wholebody_result.py rename to scripts/mlp/utils/wholebody_result.py index f25e2e5a4357fcfba09da209e880ad350237121b..88c04e10566c2dcae39b6cda21e87c6420bc6fe7 100644 --- a/scripts/hpp_wholebody_motion/utils/wholebody_result.py +++ b/scripts/mlp/utils/wholebody_result.py @@ -1,5 +1,5 @@ import numpy as np -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg class Result: nq = cfg.nq diff --git a/scripts/hpp_wholebody_motion/viewer/__init__.py b/scripts/mlp/viewer/__init__.py similarity index 100% rename from scripts/hpp_wholebody_motion/viewer/__init__.py rename to scripts/mlp/viewer/__init__.py diff --git a/scripts/hpp_wholebody_motion/viewer/display_tools.py b/scripts/mlp/viewer/display_tools.py similarity index 99% rename from scripts/hpp_wholebody_motion/viewer/display_tools.py rename to scripts/mlp/viewer/display_tools.py index 37bdbee50ab843fa9b11f96c233c1d72854f14a1..14b1836f4602482626bc40c6a8626ed097a3f83f 100644 --- a/scripts/hpp_wholebody_motion/viewer/display_tools.py +++ b/scripts/mlp/viewer/display_tools.py @@ -1,4 +1,4 @@ -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg import pinocchio as se3 from pinocchio import SE3, Quaternion import locomote diff --git a/scripts/hpp_wholebody_motion/wholebody/__init__.py b/scripts/mlp/wholebody/__init__.py similarity index 100% rename from scripts/hpp_wholebody_motion/wholebody/__init__.py rename to scripts/mlp/wholebody/__init__.py diff --git a/scripts/hpp_wholebody_motion/wholebody/tsid_invdyn.py b/scripts/mlp/wholebody/tsid_invdyn.py similarity index 97% rename from scripts/hpp_wholebody_motion/wholebody/tsid_invdyn.py rename to scripts/mlp/wholebody/tsid_invdyn.py index f892d47fee79e9c81faef54fc12a879b80b6917c..631b6aff1918980ebe7944caf374ad59cae1a118 100644 --- a/scripts/hpp_wholebody_motion/wholebody/tsid_invdyn.py +++ b/scripts/mlp/wholebody/tsid_invdyn.py @@ -8,19 +8,19 @@ from rospkg import RosPack import time import commands import gepetto.corbaserver -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg import locomote from locomote import WrenchCone,SOC6,ContactPatch, ContactPhaseHumanoid, ContactSequenceHumanoid -from hpp_wholebody_motion.utils import trajectories -import hpp_wholebody_motion.end_effector.bezier_predef as EETraj -import hpp_wholebody_motion.viewer.display_tools as display_tools +from mlp.utils import trajectories +import mlp.end_effector.bezier_predef as EETraj +import mlp.viewer.display_tools as display_tools import math -from hpp_wholebody_motion.utils.wholebody_result import Result -from hpp_wholebody_motion.utils.util import * +from mlp.utils.wholebody_result import Result +from mlp.utils.util import * if cfg.USE_LIMB_RRT: - import hpp_wholebody_motion.end_effector.limb_rrt as limb_rrt + import mlp.end_effector.limb_rrt as limb_rrt if cfg.USE_CONSTRAINED_BEZIER: - import hpp_wholebody_motion.end_effector.bezier_constrained as bezier_constrained + import mlp.end_effector.bezier_constrained as bezier_constrained def createContactForEffector(invdyn,robot,phase,eeName): @@ -143,7 +143,7 @@ def generateWholeBodyMotion(cs,viewer=None,fullBody=None): data = invdyn.data() if cfg.EFF_CHECK_COLLISION : # initialise object needed to check the motion - from hpp_wholebody_motion.utils import check_path + from mlp.utils import check_path validator = check_path.PathChecker(viewer,fullBody,cs,len(q),cfg.WB_VERBOSE) if cfg.WB_VERBOSE: @@ -478,7 +478,7 @@ def generateWholeBodyMotion(cs,viewer=None,fullBody=None): if cfg.PLOT: - from hpp_wholebody_motion.utils import plot + from mlp.utils import plot plot.plotEffectorRef(stored_effectors_ref) assert (k_t == res.N-1) and "res struct not fully filled." diff --git a/scripts/run_from_cscom.py b/scripts/run_from_cscom.py index 16eaae0243f6a55b8021cf3b3fc3acc28931957f..b90ba4e1af8b0e4c418cb4fee18bde279fbaffd6 100644 --- a/scripts/run_from_cscom.py +++ b/scripts/run_from_cscom.py @@ -1,14 +1,14 @@ -import hpp_wholebody_motion.viewer.display_tools as display_tools from locomote import ContactSequenceHumanoid cs_com = ContactSequenceHumanoid(0) -filename = "/local/dev_hpp/src/hpp-wholebody-motion/res/contact_sequences/talos_table_COM.xml" # A CHANGER +filename = "/local/dev_hpp/src/hpp-wholebody-motion/res/contact_sequences/talos_table_COM.xml" # FIXME : load it from somewhere cs_com.loadFromXML(filename, "ContactSequence") -import hpp_wholebody_motion.wholebody.tsid_invdyn as wb -q_t = wb.generateWholeBodyMotion(cs_com) +import mlp.wholebody.tsid_invdyn as wb +res,robot = wb.generateWholeBodyMotion(cs_com) -# initialiser un viewer et y charger les models ici ... +# Init viewer and load models here ... # TODO -# display_tools.displayWBmotion(v,q_t,cfg.IK_dt,cfg.DT_DISPLAY) \ No newline at end of file +# import mlp.viewer.display_tools as display_tools +# display_tools.displayWBmotion(v,res.q_t,cfg.IK_dt,cfg.DT_DISPLAY) \ No newline at end of file diff --git a/scripts/run_locomote.py b/scripts/run_mlp.py similarity index 85% rename from scripts/run_locomote.py rename to scripts/run_mlp.py index ccadb75e88156ef56cdae5d7f7d7e13457ae0db7..ed0a7c7252d77bb47c043ea6a06a224422314456 100644 --- a/scripts/run_locomote.py +++ b/scripts/run_mlp.py @@ -1,11 +1,11 @@ -import hpp_wholebody_motion.config as cfg +import mlp.config as cfg import importlib #the following script must produce a sequence of configurations in contact (configs) # with exactly one contact change between each configurations # It must also initialise a FullBody object name fullBody and optionnaly a Viewer object named V cp = importlib.import_module('scenarios.'+cfg.SCRIPT_PATH+'.'+cfg.DEMO_NAME) -import hpp_wholebody_motion.contact_sequence.rbprm as generate_cs -import hpp_wholebody_motion.viewer.display_tools as display_tools +import mlp.contact_sequence.rbprm as generate_cs +import mlp.viewer.display_tools as display_tools from locomote import ContactSequenceHumanoid v = cp.v @@ -34,11 +34,11 @@ if cfg.DISPLAY_CS_STONES : if cfg.USE_GEOM_INIT_GUESS: print "Generate geometric init guess." - import hpp_wholebody_motion.centroidal.geometric as initGuess_geom + import mlp.centroidal.geometric as initGuess_geom cs_initGuess = initGuess_geom.generateCentroidalTrajectory(cs) if cfg.USE_CROC_INIT_GUESS: print "Generate init guess with CROC." - import hpp_wholebody_motion.centroidal.croc as initGuess_croc + import mlp.centroidal.croc as initGuess_croc cs_initGuess = initGuess_croc.generateCentroidalTrajectory(cs,cp.fullBody,beginState,endState) if cfg.DISPLAY_INIT_GUESS_TRAJ and (cfg.USE_GEOM_INIT_GUESS or cfg.USE_CROC_INIT_GUESS): colors = [v.color.red, v.color.yellow] @@ -49,7 +49,7 @@ if cfg.LOAD_CS_COM : filename = cfg.CONTACT_SEQUENCE_PATH + "/"+cfg.DEMO_NAME+"_COM.xml" cs_com.loadFromXML(filename, "ContactSequence") else: - import hpp_wholebody_motion.centroidal.topt as centroidal + import mlp.centroidal.topt as centroidal cs_com,tp = centroidal.generateCentroidalTrajectory(cs,cs_initGuess,v) print "Duration of the motion : "+str(cs_com.contact_phases[-1].time_trajectory[-1])+" s." @@ -62,7 +62,7 @@ if cfg.DISPLAY_COM_TRAJ: colors = [v.color.blue, v.color.green] display_tools.displayCOMTrajectory(cs_com,v,colors) -import hpp_wholebody_motion.wholebody.tsid_invdyn as wb +import mlp.wholebody.tsid_invdyn as wb if cfg.USE_CROC_COM: assert cfg.USE_CROC_INIT_GUESS, "You must generate CROC initial guess if you want to use it as reference for the COM" res,robot = wb.generateWholeBodyMotion(cs_initGuess,v,cp.fullBody) @@ -75,7 +75,7 @@ if cfg.DISPLAY_WB_MOTION: display_tools.displayWBmotion(v,res.q_t,cfg.IK_dt,cfg.DT_DISPLAY) if cfg.CHECK_FINAL_MOTION : - from hpp_wholebody_motion.utils import check_path + from mlp.utils import check_path print "## Begin validation of the final motion (collision and joint-limits)" validator = check_path.PathChecker(v,cp.fullBody,cs_com,cfg.nq,True) motion_valid,t_invalid = validator.check_motion(res.q_t) @@ -86,14 +86,14 @@ else : motion_valid = True if cfg.PLOT: - from hpp_wholebody_motion.utils import plot + from mlp.utils import plot plot.plotALLFromWB(cs_com,res) if cfg.EXPORT_OPENHRP and motion_valid: - from hpp_wholebody_motion.export import openHRP + from mlp.export import openHRP openHRP.export(cs_com,res) if cfg.EXPORT_GAZEBO and motion_valid: - from hpp_wholebody_motion.export import gazebo + from mlp.export import gazebo gazebo.export(res.q_t)