From 6e02372e47958ed1117bbc37e05446dd5802b5d7 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel <guilhem.saurel@laas.fr> Date: Mon, 23 Sep 2019 11:32:39 +0200 Subject: [PATCH] some models don't have robot parameters, fix #13 --- example_robot_data/robots_loader.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/example_robot_data/robots_loader.py b/example_robot_data/robots_loader.py index 138fa56..ec5e4e7 100644 --- a/example_robot_data/robots_loader.py +++ b/example_robot_data/robots_loader.py @@ -2,6 +2,7 @@ import sys from os.path import dirname, exists, join import numpy as np + import pinocchio from pinocchio.robot_wrapper import RobotWrapper @@ -22,10 +23,11 @@ def getModelPath(subpath, printmsg=False): raise IOError('%s not found' % (subpath)) -def readParamsFromSrdf(robot, SRDF_PATH, verbose): +def readParamsFromSrdf(robot, SRDF_PATH, verbose, has_rotor_parameters=True): rmodel = robot.model - pinocchio.loadRotorParameters(rmodel, SRDF_PATH, verbose) + if has_rotor_parameters: + pinocchio.loadRotorParameters(rmodel, SRDF_PATH, verbose) rmodel.armature = np.multiply(rmodel.rotorInertia.flat, np.square(rmodel.rotorGearRatio.flat)) pinocchio.loadReferenceConfigurations(rmodel, SRDF_PATH, verbose) robot.q0.flat[:] = rmodel.referenceConfigurations["half_sitting"].copy() @@ -138,7 +140,7 @@ def loadHyQ(): # Load URDF file robot = RobotWrapper.BuildFromURDF(modelPath + URDF_SUBPATH, [modelPath], pinocchio.JointModelFreeFlyer()) # Load SRDF file - readParamsFromSrdf(robot, modelPath + SRDF_SUBPATH, False) + readParamsFromSrdf(robot, modelPath + SRDF_SUBPATH, False, False) # Add the free-flyer joint limits addFreeFlyerJointLimits(robot) return robot @@ -156,7 +158,7 @@ def loadSolo(solo=True): # Load URDF file robot = RobotWrapper.BuildFromURDF(modelPath + URDF_SUBPATH, [modelPath], pinocchio.JointModelFreeFlyer()) # Load SRDF file - readParamsFromSrdf(robot, modelPath + SRDF_SUBPATH, False) + readParamsFromSrdf(robot, modelPath + SRDF_SUBPATH, False, False) # Add the free-flyer joint limits addFreeFlyerJointLimits(robot) return robot @@ -200,7 +202,7 @@ def loadICub(reduced=True): # Load URDF file robot = RobotWrapper.BuildFromURDF(modelPath + URDF_SUBPATH, [modelPath], pinocchio.JointModelFreeFlyer()) # Load SRDF file - readParamsFromSrdf(robot, modelPath + SRDF_SUBPATH, False) + readParamsFromSrdf(robot, modelPath + SRDF_SUBPATH, False, False) # Add the free-flyer joint limits addFreeFlyerJointLimits(robot) return robot -- GitLab