bindings_aba.py
Go to the documentation of this file.
1 import unittest
2 
3 import numpy as np
4 import pinocchio as pin
5 from test_case import PinocchioTestCase as TestCase
6 
7 
8 class TestABA(TestCase):
9  def setUp(self):
10  # Set up non mimic model
11  self.model = pin.buildSampleModelHumanoidRandom()
12  self.data = self.model.createData()
13 
14  qmax = np.full((self.model.nq, 1), np.pi)
15  self.q = pin.randomConfiguration(self.model, -qmax, qmax)
16  self.v = np.random.rand(self.model.nv)
17  self.ddq = np.random.rand(self.model.nv)
18 
19  self.fext = []
20  for _ in range(self.model.njoints):
21  self.fext.append(pin.Force.Random())
22 
23  # Set up mimic model
24  self.model_mimic = pin.buildSampleModelManipulator(True)
26  self.q_mimic = np.zeros((self.model_mimic.nq,))
27 
28  def test_aba(self):
29  model = self.model
30  ddq = pin.aba(self.model, self.data, self.q, self.v, self.ddq)
31 
32  null_fext = pin.StdVec_Force()
33  for _ in range(model.njoints):
34  null_fext.append(pin.Force.Zero())
35 
36  ddq_null_fext = pin.aba(
37  self.model, self.data, self.q, self.v, self.ddq, null_fext
38  )
39  self.assertApprox(ddq_null_fext, ddq)
40 
41  null_fext_list = []
42  for f in null_fext:
43  null_fext_list.append(f)
44 
45  print("size:", len(null_fext_list))
46  ddq_null_fext_list = pin.aba(
47  self.model, self.data, self.q, self.v, self.ddq, null_fext_list
48  )
49  self.assertApprox(ddq_null_fext_list, ddq)
50 
52  model = self.model
53  Minv = pin.computeMinverse(model, self.data, self.q)
54 
55  data2 = model.createData()
56  M = pin.crba(model, data2, self.q)
57 
58  self.assertApprox(np.linalg.inv(M), Minv)
59 
61  self.assertRaises(
62  RuntimeError,
63  pin.computeMinverse,
64  self.model_mimic,
65  self.data_mimic,
66  self.q_mimic,
67  )
68 
69 
70 if __name__ == "__main__":
71  unittest.main()
bindings_aba.TestABA.setUp
def setUp(self)
Definition: bindings_aba.py:9
bindings_aba.TestABA.test_aba
def test_aba(self)
Definition: bindings_aba.py:28
bindings_aba.TestABA
Definition: bindings_aba.py:8
bindings_aba.TestABA.data
data
Definition: bindings_aba.py:12
bindings_aba.TestABA.data_mimic
data_mimic
Definition: bindings_aba.py:25
bindings_aba.TestABA.model_mimic
model_mimic
Definition: bindings_aba.py:24
bindings_aba.TestABA.fext
fext
Definition: bindings_aba.py:19
bindings_aba.TestABA.ddq
ddq
Definition: bindings_aba.py:17
pinocchio::createData
ConstraintDataTpl< Scalar, Options, ConstraintCollectionTpl > createData(const ConstraintModelTpl< Scalar, Options, ConstraintCollectionTpl > &cmodel)
Definition: constraint-model-visitor.hpp:239
bindings_aba.TestABA.test_computeMinverse
def test_computeMinverse(self)
Definition: bindings_aba.py:51
bindings_aba.TestABA.q_mimic
q_mimic
Definition: bindings_aba.py:26
bindings_aba.TestABA.v
v
Definition: bindings_aba.py:16
boost::fusion::append
result_of::push_front< V const, T >::type append(T const &t, V const &v)
Append the element T at the front of boost fusion vector V.
Definition: fusion.hpp:32
bindings_aba.TestABA.model
model
Definition: bindings_aba.py:11
bindings_aba.TestABA.q
q
Definition: bindings_aba.py:15
bindings_aba.TestABA.test_assert_mimic_not_supported_function
def test_assert_mimic_not_supported_function(self)
Definition: bindings_aba.py:60


pinocchio
Author(s):
autogenerated on Wed Apr 16 2025 02:41:43