The model in the following code leads to an error:
import sympy
import sympybotics
rbtdef = sympybotics.RobotDef('left_arm',
[('pi/2', 0, 0, 'pi/2'),
('pi/2', 0.03, 0.246, '-pi'),
('-pi/2', -0.03, 0, '-pi/4'),
('pi/2', 0, 0.186, 'pi'),
('pi/2', 0, 0, 'pi'),
('pi', 0, 0, 'pi/2')],
dh_convention='standard'
)
rbt = sympybotics.RobotDynCode(rbtdef, verbose=True)
rbt.calc_base_parms(verbose=True)
Whereby changing the offsets of the first four joints works fine:
import sympy
import sympybotics
rbtdef = sympybotics.RobotDef('left_arm',
[('pi/2', 0, 0, '-pi/2'),
('pi/2', 0.03, 0.246, '-pi/2'),
('-pi/2', -0.03, 0,' 0'),
('pi/2', 0, 0.186, '0'),
('pi/2', 0, 0, 'pi'),
('pi', 0, 0, 'pi/2')],
dh_convention='standard'
)
rbt = sympybotics.RobotDynCode(rbtdef, verbose=True)
rbt.calc_base_parms(verbose=True)
Console output and error message:
generating geometric model
generating kinematic model
generating inverse dynamics code
generating gravity term code
generating coriolis term code
generating coriolis matrix code
generating inertia matrix code
generating regressor matrix code
done
calculating base parameters and regressor code
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
202 else:
203 filename = fname
--> 204 __builtin__.execfile(filename, *where)
/home/philipp/thor_identification/left_arm/URDF_file_handling/dh_to_baseparams.py in <module>()
17 rbt = sympybotics.RobotDynCode(rbtdef, verbose=True)
18
---> 19 rbt.calc_base_parms(verbose=True)
20 print rbt.dyn.baseparms
21
/usr/local/lib/python2.7/dist-packages/sympybotics-1.0_dev-py2.7.egg/sympybotics /robotmodel.pyc in calc_base_parms(self, verbose)
120 _fprint('calculating base parameters and regressor code')
121
--> 122 self.dyn.calc_base_parms(regressor_func)
123
124 H_se = Subexprs()
/usr/local/lib/python2.7/dist-packages/sympybotics-1.0_dev-py2.7.egg/sympybotics/dynamics /dynamics.pyc in calc_base_parms(self, regressor_func)
53
54 Pb, Pd, Kd = find_dyn_parm_deps(
---> 55 self.dof, self.n_dynparms, regressor_func)
56
57 self.Pb = sympy.Matrix(Pb).applyfunc(lambda x: x.nsimplify())
/usr/local/lib/python2.7/dist-packages/sympybotics-1.0_dev-py2.7.egg/sympybotics/dynamics /dyn_parm_dep.pyc in find_dyn_parm_deps(dof, parm_num, regressor_func)
20 for j in range(dof)]
21 Z[i * dof: i * dof + dof, :] = numpy.matrix(
---> 22 regressor_func(q, dq, ddq)).reshape(dof, parm_num)
23
24 R1_diag = numpy.linalg.qr(Z, mode='economic').diagonal().round(round)
/usr/local/lib/python2.7/dist-packages/sympybotics-1.0_dev-py2.7.egg/sympybotics /robotmodel.pyc in regressor_func(q, dq, ddq)
NameError: global name 'sqrt' is not defined
The model in the following code leads to an error:
Whereby changing the offsets of the first four joints works fine:
Console output and error message: