From 9379492bead3f1dd7eef8295ee087d2af599bd79 Mon Sep 17 00:00:00 2001
From: m-guberina <gubi.guberina@gmail.com>
Date: Tue, 10 Dec 2024 15:55:57 +0100
Subject: [PATCH] cm

---
 .../optimal_control/.crocoddyl_mpc.py.swp     | Bin 32768 -> 32768 bytes
 .../.crocoddyl_optimal_control.py.swp         | Bin 53248 -> 53248 bytes
 .../optimal_control/crocoddyl_mpc.py          |   6 +++++-
 .../crocoddyl_optimal_control.py              |  14 +++++++++-----
 4 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/python/ur_simple_control/optimal_control/.crocoddyl_mpc.py.swp b/python/ur_simple_control/optimal_control/.crocoddyl_mpc.py.swp
index 7afae0d2bef6f7304be8900bbdbf553c2ca61646..6cd696f6d4eab96ea05e9f6248c28ce6b8b91ccf 100644
GIT binary patch
delta 202
zcmZo@U}|V!5=$}&^Ym4)&@*CSU|<knU?>fXNM9<nQLIXUQFil0fnt5$bWR3_@0<`>
z*~x+q>OsZ43=A)L7#QyHFfau2Ffbh9W?(qX&A`yb&A^b$&A<@A&A_0=&A_0^&A`CN
z&A`CP&A@P-i-BPV7Xw2k7Xw2E7XyPH7XyPD7Xt$$7s&L@j4ZjFo1MHbGEV0AwVqty
w$2B>~*8{|6%88%s<r~12np2!=#h{>|pfH)=w|nxO5ar3sf>&>L_1kR-0Glr><p2Nx

delta 145
zcmZo@U}|V!5=$}&^Ym4)&@*CSU|<knU^pBSk$!@Aqga&yqvYm^0>%2ghqxFRoVX#f
zl9L4;)SdWw85sC@85pkeFfi=kVPKfe!@y9=!@y9&!@v;9!@v;2!@!`#!@%&En}J~q
sHv_|FZU%-*ZU%-zZUzP)Zjfo48CgznZT{|gk#Vzpuo2^CSHInc04mHKXaE2J

diff --git a/python/ur_simple_control/optimal_control/.crocoddyl_optimal_control.py.swp b/python/ur_simple_control/optimal_control/.crocoddyl_optimal_control.py.swp
index 0ee405b879f06e30223bd6cc93ebbd3579b14418..66611dacb8ead0c62400d66d3a0c15fbbddc7fd1 100644
GIT binary patch
delta 371
zcmZozz}&EaSv1KY%+puFLeGeSfq_AQfgv_5B7OcwQE5R&x6Ouvm-|@tI2jlYP3Bw>
zuKSmpfnhE;14B4B1A`4W0|Ns$1H)D>28JnI3=Cyl3=Aq<3=Bs&85j<ObZqWjV97c8
z%UqSo>sAV|Yh-HbC=|s{HkhN$rl6nzVg{}&+q`C#0V7imLO3UWa^SkM$!k_|Z|+%B
z!OUyV%)n600&$qzWWf#F(^hjZFt~FtFxYZ1FkEG4V8~@>VED<#!0>~Of#C)l14ADh
z149)X14AVn14A4e1A{di1A`<R1H&&?28JW73=B(I85kN_85lBH85j&$85sVuFfhDe
zVPLq-!oYBVg@IuS3&_UJj4ZCqo2M-N$22*}MIPjX$-9>bFhM*pIm|_7@`=>~llLs)
xhd5rHH8rO=)oQY@i^^pFb^Md}EHRp_8!0ilb}sj3gVtrNoAYP&FfKYE007siV|V}n

delta 257
zcmZozz}&EaSv1KY%+puFLeGeSfq_AQf#FeTMEZ=4qSAtlPMZw{FZZ#UaWXKRn#{Q%
zT=zdW1H(dY28L*E1_lRi1_l;x28Nwn3=A{47#OO!7#Os;7#PlQGBBJ5>Db)6z>;(F
zzLk!X4d!T1_FY%CdBrLNMmVQ&O*1oZ01E>{2`j{2r^$jFwuj|$FfjaLXJGir&cJY!
zoq?gBoq?g6oq?f>oq-{qoq@rIoq<7$oq^#u8w0~pHU@@eYzz!dYzz#UYzz#BYzz$l
vSQ!{zvNAASVP#-A$jZR5loe#dW=57Umd#TZ{$rb5&=tJ-zzl2VMF#``7)w9p

diff --git a/python/ur_simple_control/optimal_control/crocoddyl_mpc.py b/python/ur_simple_control/optimal_control/crocoddyl_mpc.py
index 47aa20a..d20301e 100644
--- a/python/ur_simple_control/optimal_control/crocoddyl_mpc.py
+++ b/python/ur_simple_control/optimal_control/crocoddyl_mpc.py
@@ -338,7 +338,11 @@ def BaseAndEEPathFollowingMPCControlLoop(args, robot : RobotManager, solver : cr
 
     # idk if that's necessary
     solver.problem.terminalModel.differential.costs.costs['base_translation'+str(args.n_knots)].cost.residual.reference = path_base[-1]
-    solver.problem.terminalModel.differential.costs.costs['ee_pose'+str(args.n_knots)].cost.residual.reference = pathSE3_handlebar[-1]
+    if robot.robot_name != "yumi":
+        solver.problem.terminalModel.differential.costs.costs['ee_pose'+str(args.n_knots)].cost.residual.reference = pathSE3_handlebar[-1]
+    else:
+        solver.problem.terminalModel.differential.costs.costs['l_ee_pose'+str(args.n_knots)].cost.residual.reference = pathSE3_handlebar[-1]
+        solver.problem.terminalModel.differential.costs.costs['r_ee_pose'+str(args.n_knots)].cost.residual.reference = pathSE3_handlebar[-1]
 
     solver.solve(xs_init, us_init, args.max_solver_iter)
     xs = np.array(solver.xs)
diff --git a/python/ur_simple_control/optimal_control/crocoddyl_optimal_control.py b/python/ur_simple_control/optimal_control/crocoddyl_optimal_control.py
index 4f1ce3c..942dae2 100644
--- a/python/ur_simple_control/optimal_control/crocoddyl_optimal_control.py
+++ b/python/ur_simple_control/optimal_control/crocoddyl_optimal_control.py
@@ -516,16 +516,16 @@ def createBaseAndEEPathFollowingOCP(args, robot : RobotManager, x0):
                     # MASSIVE TODO: actually put in reference for left arm
                     path_ee[i],
                     state.nv)
-            eeTrackingCost = crocoddyl.CostModelResidual(state, eePoseResidual)
-            runningCostModel.addCost("l_ee_pose" + str(i), eeTrackingCost, args.ee_pose_cost)
+            l_eeTrackingCost = crocoddyl.CostModelResidual(state, eePoseResidual)
+            runningCostModel.addCost("l_ee_pose" + str(i), l_eeTrackingCost, args.ee_pose_cost)
             r_eePoseResidual = crocoddyl.ResidualModelFramePlacement(
                     state,
                     robot.model.getFrameId("robr_joint_7"),
                     # MASSIVE TODO: actually put in reference for left arm
                     path_ee[i], 
                     state.nv)
-            eeTrackingCost = crocoddyl.CostModelResidual(state, eePoseResidual)
-            runningCostModel.addCost("r_ee_pose" + str(i), eeTrackingCost, args.ee_pose_cost)
+            r_eeTrackingCost = crocoddyl.CostModelResidual(state, eePoseResidual)
+            runningCostModel.addCost("r_ee_pose" + str(i), r_eeTrackingCost, args.ee_pose_cost)
 
 
         baseTranslationResidual = crocoddyl.ResidualModelFrameTranslation(
@@ -572,7 +572,11 @@ def createBaseAndEEPathFollowingOCP(args, robot : RobotManager, x0):
                 0.0,
             )
 
-    terminalCostModel.addCost("ee_pose" + str(args.n_knots), eeTrackingCost, args.ee_pose_cost)
+    if robot.robot_name != "yumi":
+        terminalCostModel.addCost("ee_pose" + str(args.n_knots), eeTrackingCost, args.ee_pose_cost)
+    else:
+        terminalCostModel.addCost("l_ee_pose" + str(args.n_knots), l_eeTrackingCost, args.ee_pose_cost)
+        terminalCostModel.addCost("r_ee_pose" + str(args.n_knots), r_eeTrackingCost, args.ee_pose_cost)
     terminalCostModel.addCost("base_translation" + str(args.n_knots), baseTrackingCost, args.base_translation_cost)
 
     # now we define the problem
-- 
GitLab