SensorKinematicTree
A sensor attached to a link \(n_l\) of an ObjectKinematicTree at a local position \(\pLocB\) in the frame of the link, which measures one of the output variables of the kinematic tree at that point.
Parameters
The parameters of the item; in a dictionary, its type is ‘KinematicTree’:
name |
type |
size |
default |
description |
|---|---|---|---|---|
name |
String |
‘’ |
sensor’s unique name |
|
objectNumber |
ObjectIndex |
invalid (-1) |
object number of KinematicTree to which sensor is attached to |
|
linkNumber |
UInt |
invalid (-1) |
(symbol: \(n_l\)) number of link in KinematicTree to measure quantities; must be given: the default is only a placeholder |
|
localPosition |
Vector3D |
3 |
[0.,0.,0.] |
(symbol: \(\LU{l}{\bv}\)) local (link-fixed) position of sensor, defined in link (\(n_l\)) coordinate system |
writeToFile |
Bool |
True |
True: write sensor output to file; flag is ignored (interpreted as False), if fileName=’’ |
|
fileName |
String |
‘’ |
directory and file name for sensor file output; empty: no file is written; a relative name is placed in |
|
outputVariableType |
OutputVariableType |
OutputVariableType::_None |
OutputVariableType for sensor |
|
storeInternal |
Bool |
False |
true: store sensor data in memory (faster, but may consume large amounts of memory); false: internal storage not available |
|
visualization |
VSensorKinematicTree |
parameters for visualization of item |
Visualization parameters
The parameters of VSensorKinematicTree, given as visualization:
name |
type |
size |
default |
description |
|---|---|---|---|---|
show |
Bool |
True |
set true, if item is shown in visualization and false if it is not shown |
Drawing
Drawn as all sensors.
Detailed description
Attached to
The ObjectKinematicTree objectNumber, at its link linkNumber \(n_l\) and the point
localPosition \(\LU{l}{\bv}\), given in the frame of that link.
Measures
outputVariableType is one of the output variables the kinematic tree provides for a link, as its
page lists them under the output variables of SensorKinematicTree - e.g. the position, velocity or
rotation of that point of the link.
Mini example
#a point of a link of a kinematic tree: one prismatic link along x, pulled by a force
nTree = mbs.AddNode(NodeGenericODE2(referenceCoordinates=[0.], initialCoordinates=[0.],
initialCoordinates_t=[0.], numberOfODE2Coordinates=1))
oTree = mbs.AddObject(ObjectKinematicTree(nodeNumber=nTree, jointTypes=[exu.JointType.PrismaticX], linkParents=[-1],
jointTransformations=exu.Matrix3DList([np.eye(3)]),
jointOffsets=exu.Vector3DList([[0,0,0]]),
linkInertiasCOM=exu.Matrix3DList([np.eye(3)]),
linkCOMs=exu.Vector3DList([[0,0,0]]), linkMasses=[2.]))
mLink = mbs.AddMarker(MarkerKinematicTreeRigid(objectNumber=oTree, linkNumber=0, localPosition=[0,0,0]))
mbs.AddLoad(LoadForceVector(markerNumber=mLink, loadVector=[1,0,0]))
sLink = mbs.AddSensor(SensorKinematicTree(objectNumber=oTree, linkNumber=0, localPosition=[0.5,0,0],
outputVariableType=exu.OutputVariableType.Position,
storeInternal=True, writeToFile=False))
mbs.Assemble()
mbs.SolveDynamic()
#local position 0.5 plus the joint coordinate F/(2m)*t^2 at t=1
exu.sys['testResult'] = mbs.GetSensorValues(sLink)[0] #0.75
Examples (Ex) and TestModels (TM) that show this item, with weblink to github: kinematicTreeConstraintTest.py (TM)