1 package com.neuronrobotics.sdk.addons.kinematics;
3 import java.io.InputStream;
7 import com.neuronrobotics.sdk.addons.kinematics.math.RotationNR;
8 import com.neuronrobotics.sdk.addons.kinematics.math.TransformNR;
9 import com.neuronrobotics.sdk.addons.kinematics.xml.XmlFactory;
10 import com.neuronrobotics.sdk.common.BowlerDatagram;
11 import com.neuronrobotics.sdk.namespace.bcs.pid.IExtendedPIDControl;
12 import com.neuronrobotics.sdk.pid.GenericPIDDevice;
13 import com.neuronrobotics.sdk.pid.VirtualGenericPIDDevice;
23 double deg2rad=Math.PI/180;
50 double x = jointSpaceVector[0];
51 double y = jointSpaceVector[1];
52 double z = jointSpaceVector[2];
58 Matrix rotAll = rotX.times(rotY).times(rotZ);
75 inv[0]= cartesianSpaceVector.getX();
76 inv[1]= cartesianSpaceVector.getY();
77 inv[2]= cartesianSpaceVector.getZ();
79 Matrix rotationMatrixArray =
new Matrix(cartesianSpaceVector.getRotation().getRotationMatrix());
82 inv[3]=Math.atan2(-rotationMatrixArray.get(1, 2), rotationMatrixArray.get(2, 2))*180/Math.PI;
84 inv[4]=Math.asin(rotationMatrixArray.get(0, 2))*180/Math.PI;
86 inv[5]=Math.atan2(-rotationMatrixArray.get(0, 1), rotationMatrixArray.get(0, 0))*180/Math.PI;
GenericKinematicsModelNR()
GenericKinematicsModelNR(InputStream configFile, GenericPIDDevice device)
double[] inverseKinematics(TransformNR cartesianSpaceVector)
TransformNR forwardKinematics(double[] jointSpaceVector)
static RotationNR getRotationY(double rotationAngleDegrees)
static RotationNR getRotationZ(double rotationAngleDegrees)
static RotationNR getRotationX(double rotationAngleDegrees)
double[][] getRotationMatrix()
static InputStream getDefaultConfigurationStream(String file)