addBody adds a body to the end of the chain
THIS METHOD IS NO LONGER THE PREFERRED WAY OF SETTING UP A
NEW KINEMATICS OBJECT. PLEASE LOAD FROM AN .HRDF FILE. FOR
MORE INFORMATION, PLEASE SEE:
http://docs.hebi.us/tools.html#robot-description-format
This method creates a serial chain of bodies that describe
the kinematic relation of a robot. A 'body' can be a rigid
link as well as a dynamic element. More detailed
documentation on body types and parameters can be found at:
http://docs.hebi.us/hardware.html#Kinematic_Info
The 'Type' argument specifies the type of module or body
that should be added. Currently implemented types include:
X-Series Types Required Parameters
'X5-1'
'X5-4'
'X5-9'
'X8-3'
'X8-9'
'X8-16'
'X5-Link' (Extension, Twist)
'X5-LightBracket' (Mounting)
'X5-HeavyBracket' (Mounting)
'R8-3'
'R8-9'
'R8-16'
Custom Types
'GenericJoint' (Axis)
'GenericLink' (CoM, OutputTransform, Mass )
Some types may require a set of parameters. Parameters
that are not required by the specified type are ignored.
Potential kinematic parameters include:
Parameter Size Units Synonyms
'Extension' 1x1 [m] ('ext')
'Twist' 1x1 [rad]
'Mass' 1x1 [kg]
'CoM' 3x1 [m]
'Axis' 1x1 [tx|ty|tz|rx|ry|rz]
'OutputTransform' 4x4 ('output','out')
'Mounting' 1x1 [left|...] ('mount')
Additionally, there are optional parameters that can be used
to control the behavior of joints when calculating inverse
kinematics with HEBIKINEMATICS, or generating trajectories
with HEBITRAJECTORYGENERATOR. Joint limits are applicable
to all joints and expect a [min max] vector without NaN.
Parameter Size Units Synonyms
'PositionLimit' 1x2 [rad|m] ('PosLim')
'VelocityLimit' 1x2 [rad/s] ('VelLim')
'EffortLimit' 1x2 [Nm] ('EffLim')
'Mass' 1x1 [kg]
Example
% Setup a common 5 DoF X-Series arm configuration
kin = HebiKinematics();
kin.addBody('X5-9', 'PosLim', [-pi +pi]);
kin.addBody('X5-HeavyBracket', 'mount', 'right-outside');
kin.addBody('X5-4');
kin.addBody('X5-Link', 'ext', 0.350, 'twist', pi/2);
kin.addBody('X5-4');
kin.addBody('X5-Link', 'ext', 0.250, 'twist', pi/2);
kin.addBody('X5-1');
kin.addBody('X5-LightBracket', 'mount', 'right');
kin.addBody('X5-1');
More general info on kinematics can be found at:
http://docs.hebi.us/core_concepts.html#kinematics