codegen-rnea.py
Go to the documentation of this file.
1 from pycppad import (
2  AD,
3  ADCG,
4  CG,
5  Independent,
6  Value,
7  ADCGFun,
8  CodeHandler,
9  LanguageC,
10  LangCDefaultVariableNameGenerator,
11 )
12 import pinocchio.cppadcg as cgpin
13 import pinocchio as pin
14 import numpy as np
15 
16 pinmodel = pin.buildSampleModelHumanoidRandom()
17 model = cgpin.Model(pinmodel)
18 data = model.createData()
19 
20 nq = model.nq
21 nv = model.nv
22 
23 x = np.array([ADCG(CG(0.0))] * (nq + nv + nv))
24 x[:nq] = cgpin.neutral(model)
25 Independent(x)
26 
27 y = cgpin.rnea(model, data, x[:nq], x[nq : nq + nv], x[nq + nv :])
28 
29 fun = ADCGFun(x, y)
30 
31 # /***************************************************************************
32 # * Generate the C source code
33 # **************************************************************************/
34 
35 # /**
36 # * start the special steps for source code generation for a Jacobian
37 # */
38 handler = CodeHandler(50)
39 
40 indVars = np.array([CG(1.0)] * (nq + nv + nv))
41 handler.makeVariables(indVars)
42 
43 jac = fun.Jacobian(indVars)
44 
45 langC = LanguageC("double", 3)
46 nameGen = LangCDefaultVariableNameGenerator("y", "x", "v", "array", "sarray")
47 code = handler.generateCode(langC, jac, nameGen, "source")
48 print(code)
pinocchio.cppadcg
Definition: bindings/python/pinocchio/cppadcg/__init__.py:1


pinocchio
Author(s):
autogenerated on Tue Jun 25 2024 02:42:36