From 9934585566835f3e3cbbad7053aac516704bc07c Mon Sep 17 00:00:00 2001
From: Carlos Mastalli <carlos.mastalli@gmail.com>
Date: Sat, 14 Dec 2019 23:01:15 +0000
Subject: [PATCH] [reduced] Added effort limits for reduced models

---
 python/example_robot_data/robots_loader.py | 30 +++++++++++++---------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/python/example_robot_data/robots_loader.py b/python/example_robot_data/robots_loader.py
index 8d36a81..fa4b80b 100644
--- a/python/example_robot_data/robots_loader.py
+++ b/python/example_robot_data/robots_loader.py
@@ -115,21 +115,27 @@ def loadTalosLegs():
     for j, M, name, parent, Y in zip(m1.joints, m1.jointPlacements, m1.names, m1.parents, m1.inertias):
         if j.id < legMaxId:
             jid = m2.addJoint(parent, getattr(pinocchio, j.shortname())(), M, name)
-            up = m2.upperPositionLimit
-            down = m2.lowerPositionLimit
-            up[m2.joints[jid].idx_q:m2.joints[jid].idx_q + j.nq] = m1.upperPositionLimit[j.idx_q:j.idx_q + j.nq]
-            down[m2.joints[jid].idx_q:m2.joints[jid].idx_q + j.nq] = m1.lowerPositionLimit[j.idx_q:j.idx_q + j.nq]
-            m2.upperPositionLimit = up
-            m2.lowerPositionLimit = down
+            upperPos = m2.upperPositionLimit
+            lowerPos = m2.lowerPositionLimit
+            effort = m2.effortLimit
+            upperPos[m2.joints[jid].idx_q:m2.joints[jid].idx_q + j.nq] = m1.upperPositionLimit[j.idx_q:j.idx_q + j.nq]
+            lowerPos[m2.joints[jid].idx_q:m2.joints[jid].idx_q + j.nq] = m1.lowerPositionLimit[j.idx_q:j.idx_q + j.nq]
+            effort[m2.joints[jid].idx_v:m2.joints[jid].idx_v + j.nv] = m1.effortLimit[j.idx_v:j.idx_v + j.nv]
+            m2.upperPositionLimit = upperPos
+            m2.lowerPositionLimit = lowerPos
+            m2.effortLimit = effort
             assert (jid == j.id)
             m2.appendBodyToJoint(jid, Y, pinocchio.SE3.Identity())
 
-    u = m2.upperPositionLimit
-    u[:7] = 1
-    m2.upperPositionLimit = u
-    limit = m2.lowerPositionLimit
-    limit[:7] = -1
-    m2.lowerPositionLimit = limit
+    upperPos = m2.upperPositionLimit
+    upperPos[:7] = 1
+    m2.upperPositionLimit = upperPos
+    lowerPos = m2.lowerPositionLimit
+    lowerPos[:7] = -1
+    m2.lowerPositionLimit = lowerPos
+    effort = m2.effortLimit
+    effort[:6] = np.inf
+    m2.effortLimit = effort
 
     # q2 = robot.q0[:19]
     for f in m1.frames:
-- 
GitLab