From 5eb7c8d56ab23275354a271f33d70b4b83e2e379 Mon Sep 17 00:00:00 2001 From: m-guberina <gubi.guberina@gmail.com> Date: Sun, 2 Mar 2025 21:34:16 +0100 Subject: [PATCH] solved a few bugs --- python/smc/control/cartesian_space/ik_solvers.py | 13 ++++++++++--- python/smc/robots/implementations/mobile_yumi.py | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/python/smc/control/cartesian_space/ik_solvers.py b/python/smc/control/cartesian_space/ik_solvers.py index 60d054c..aa3e26c 100644 --- a/python/smc/control/cartesian_space/ik_solvers.py +++ b/python/smc/control/cartesian_space/ik_solvers.py @@ -44,13 +44,20 @@ def getIKSolver( H = np.eye(robot.nv) g = np.zeros(robot.nv) G = np.eye(robot.nv) - A = np.eye(6, robot.nv) - b = np.ones(6) * 0.1 + # TODO: you have to check if which control mode it is + # probably easiest if all robots have a control mode + if issubclass(robot.__class__, DualArmInterface): + A = np.eye(12, robot.nv) + b = np.ones(12) * 0.1 + qp = proxqp.dense.QP(robot.model.nv, 12, robot.model.nv) + else: + A = np.eye(6, robot.nv) + b = np.ones(6) * 0.1 + qp = proxqp.dense.QP(robot.model.nv, 6, robot.model.nv) # proxqp does lb <= Cx <= ub C = np.eye(robot.nv) lb = -1 * robot._max_v.copy() ub = robot._max_v.copy() - qp = proxqp.dense.QP(robot.model.nv, 6, robot.model.nv) qp.init(H, g, A, b, G, lb, ub) qp.solve() return partial(QPproxsuite, qp) diff --git a/python/smc/robots/implementations/mobile_yumi.py b/python/smc/robots/implementations/mobile_yumi.py index b9fd5dc..52361ea 100644 --- a/python/smc/robots/implementations/mobile_yumi.py +++ b/python/smc/robots/implementations/mobile_yumi.py @@ -75,7 +75,7 @@ def get_mobile_yumi_model() -> ( tuple[pin.Model, pin.GeometryModel, pin.GeometryModel, pin.Data] ): - model_arms, visual_model_arms, collision_model_arms, _ = get_yumi_model() + model_arms, collision_model_arms, visual_model_arms, _ = get_yumi_model() model_mobile_base, geom_model_mobile_base = get_mobile_base_model(False) # frame-index should be 1 -- GitLab