Skip to content

Commit 6a44a7a

Browse files
Update to new version : 8.0.2.0
1 parent eb7add6 commit 6a44a7a

27 files changed

+585
-3
lines changed

underautomation/universal_robots/common/pose.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ def from_rotation_vector_to4x4_matrix(self) -> typing.List[float]:
2929
@staticmethod
3030
def from_quaternion_to_rotation_vector(x: float, y: float, z: float, w: float) -> 'Pose':
3131
return Pose(None, None, None, None, None, None, pose.FromQuaternionToRotationVector(x, y, z, w))
32+
@staticmethod
33+
def from4x4_matrix_to_rotation_vector(matrixTransform: typing.List[float]) -> 'Pose':
34+
return Pose(None, None, None, None, None, None, pose.From4x4MatrixToRotationVector(matrixTransform))
35+
@staticmethod
36+
def from4x4_matrix_to_rpy(matrixTransform: typing.List[float]) -> 'Pose':
37+
return Pose(None, None, None, None, None, None, pose.From4x4MatrixToRPY(matrixTransform))
3238
@property
3339
def rx_degrees(self) -> float:
3440
return self._instance.RxDegrees
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import clr
2+
import os
3+
clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.UniversalRobots.dll')))
4+
from UnderAutomation.UniversalRobots.Common import RobotModelsExtended as robot_models_extended
5+
6+
class RobotModelsExtended(int):
7+
UR3e = robot_models_extended.UR3e
8+
UR5e = robot_models_extended.UR5e
9+
UR7e = robot_models_extended.UR7e
10+
UR10e = robot_models_extended.UR10e
11+
UR12e = robot_models_extended.UR12e
12+
UR16e = robot_models_extended.UR16e
13+
UR15 = robot_models_extended.UR15
14+
UR20 = robot_models_extended.UR20
15+
UR30 = robot_models_extended.UR30
16+
UR3 = robot_models_extended.UR3
17+
UR5 = robot_models_extended.UR5
18+
UR10 = robot_models_extended.UR10

underautomation/universal_robots/kinematics/__init__.py

Whitespace-only changes.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import typing
2+
from underautomation.universal_robots.common.i_ur_dh_parameters import IUrDhParameters
3+
import clr
4+
import os
5+
clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.UniversalRobots.dll')))
6+
from UnderAutomation.UniversalRobots.Kinematics import CustomUrDhParameters as custom_ur_dh_parameters
7+
8+
class CustomUrDhParameters:
9+
def __init__(self, a2: float, a3: float, d1: float, d4: float, d5: float, d6: float, _internal = 0):
10+
if(_internal == 0):
11+
self._instance = custom_ur_dh_parameters(a2, a3, d1, d4, d5, d6)
12+
else:
13+
self._instance = _internal
14+
@property
15+
def a2(self) -> float:
16+
return self._instance.A2
17+
@a2.setter
18+
def a2(self, value: float):
19+
self._instance.A2 = value
20+
@property
21+
def a3(self) -> float:
22+
return self._instance.A3
23+
@a3.setter
24+
def a3(self, value: float):
25+
self._instance.A3 = value
26+
@property
27+
def d1(self) -> float:
28+
return self._instance.D1
29+
@d1.setter
30+
def d1(self, value: float):
31+
self._instance.D1 = value
32+
@property
33+
def d4(self) -> float:
34+
return self._instance.D4
35+
@d4.setter
36+
def d4(self, value: float):
37+
self._instance.D4 = value
38+
@property
39+
def d5(self) -> float:
40+
return self._instance.D5
41+
@d5.setter
42+
def d5(self, value: float):
43+
self._instance.D5 = value
44+
@property
45+
def d6(self) -> float:
46+
return self._instance.D6
47+
@d6.setter
48+
def d6(self, value: float):
49+
self._instance.D6 = value
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import typing
2+
from underautomation.universal_robots.kinematics.transformation_set import TransformationSet
3+
import clr
4+
import os
5+
clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.UniversalRobots.dll')))
6+
from UnderAutomation.UniversalRobots.Kinematics import KinematicsResult as kinematics_result
7+
8+
class KinematicsResult:
9+
def __init__(self, _internal = 0):
10+
if(_internal == 0):
11+
self._instance = kinematics_result()
12+
else:
13+
self._instance = _internal
14+
@property
15+
def tool_transform(self) -> typing.List[float]:
16+
return self._instance.ToolTransform
17+
@tool_transform.setter
18+
def tool_transform(self, value: typing.List[float]):
19+
self._instance.ToolTransform = value
20+
@property
21+
def individual_local_transforms(self) -> TransformationSet:
22+
return TransformationSet(self._instance.IndividualLocalTransforms)
23+
@individual_local_transforms.setter
24+
def individual_local_transforms(self, value: TransformationSet):
25+
self._instance.IndividualLocalTransforms = value
26+
@property
27+
def cumulative_global_transforms(self) -> TransformationSet:
28+
return TransformationSet(self._instance.CumulativeGlobalTransforms)
29+
@cumulative_global_transforms.setter
30+
def cumulative_global_transforms(self, value: TransformationSet):
31+
self._instance.CumulativeGlobalTransforms = value
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import typing
2+
from underautomation.universal_robots.kinematics.kinematics_result import KinematicsResult
3+
from underautomation.universal_robots.common.i_ur_dh_parameters import IUrDhParameters
4+
from underautomation.universal_robots.kinematics.singularity_type import SingularityType
5+
from underautomation.universal_robots.common.robot_models_extended import RobotModelsExtended
6+
import clr
7+
import os
8+
clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.UniversalRobots.dll')))
9+
from UnderAutomation.UniversalRobots.Kinematics import KinematicsUtils as kinematics_utils
10+
11+
class KinematicsUtils:
12+
def __init__(self, _internal = 0):
13+
if(_internal == 0):
14+
self._instance = kinematics_utils()
15+
else:
16+
self._instance = _internal
17+
@staticmethod
18+
def dh_transform(theta: float, d: float, a: float, alpha: float) -> typing.List[float]:
19+
return kinematics_utils.DHTransform(theta, d, a, alpha)
20+
@staticmethod
21+
def homogeneous_multiply(A: typing.List[float], B: typing.List[float]) -> typing.List[float]:
22+
return kinematics_utils.HomogeneousMultiply(A, B)
23+
@staticmethod
24+
def forward_kinematics(jointAnglesRad: typing.List[float], dhParameters: IUrDhParameters) -> KinematicsResult:
25+
return KinematicsResult(kinematics_utils.ForwardKinematics(jointAnglesRad, dhParameters._instance))
26+
@staticmethod
27+
def get_nearest_solution(jointSolutions: typing.List[float], jointReference: typing.List[float]) -> typing.List[float]:
28+
return kinematics_utils.GetNearestSolution(jointSolutions, jointReference)
29+
@staticmethod
30+
def inverse_kinematics(toolTransform: typing.List[float], dhParameters: IUrDhParameters) -> typing.List[float]:
31+
return kinematics_utils.InverseKinematics(toolTransform, dhParameters._instance)
32+
@staticmethod
33+
def get_singularity(elbow: float, shoulder: float, wrist1: float, wrist2: float, dhParameters: IUrDhParameters) -> SingularityType:
34+
return SingularityType(kinematics_utils.GetSingularity(elbow, shoulder, wrist1, wrist2, dhParameters._instance))
35+
@staticmethod
36+
def get_dh_parameters_from_model(model: RobotModelsExtended) -> IUrDhParameters:
37+
return IUrDhParameters(kinematics_utils.GetDhParametersFromModel(model._instance))
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import clr
2+
import os
3+
clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.UniversalRobots.dll')))
4+
from UnderAutomation.UniversalRobots.Kinematics import SingularityType as singularity_type
5+
6+
class SingularityType(int):
7+
Wrist = singularity_type.Wrist
8+
Elbow = singularity_type.Elbow
9+
Shoulder = singularity_type.Shoulder
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import typing
2+
import clr
3+
import os
4+
clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.UniversalRobots.dll')))
5+
from UnderAutomation.UniversalRobots.Kinematics import TransformationSet as transformation_set
6+
7+
class TransformationSet:
8+
def __init__(self, _internal = 0):
9+
if(_internal == 0):
10+
self._instance = transformation_set()
11+
else:
12+
self._instance = _internal
13+
@property
14+
def base(self) -> typing.List[float]:
15+
return self._instance.Base
16+
@base.setter
17+
def base(self, value: typing.List[float]):
18+
self._instance.Base = value
19+
@property
20+
def shoulder(self) -> typing.List[float]:
21+
return self._instance.Shoulder
22+
@shoulder.setter
23+
def shoulder(self, value: typing.List[float]):
24+
self._instance.Shoulder = value
25+
@property
26+
def elbow(self) -> typing.List[float]:
27+
return self._instance.Elbow
28+
@elbow.setter
29+
def elbow(self, value: typing.List[float]):
30+
self._instance.Elbow = value
31+
@property
32+
def wrist1(self) -> typing.List[float]:
33+
return self._instance.Wrist1
34+
@wrist1.setter
35+
def wrist1(self, value: typing.List[float]):
36+
self._instance.Wrist1 = value
37+
@property
38+
def wrist2(self) -> typing.List[float]:
39+
return self._instance.Wrist2
40+
@wrist2.setter
41+
def wrist2(self, value: typing.List[float]):
42+
self._instance.Wrist2 = value
43+
@property
44+
def wrist3(self) -> typing.List[float]:
45+
return self._instance.Wrist3
46+
@wrist3.setter
47+
def wrist3(self, value: typing.List[float]):
48+
self._instance.Wrist3 = value
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import typing
2+
import clr
3+
import os
4+
clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.UniversalRobots.dll')))
5+
from UnderAutomation.UniversalRobots.Kinematics import Ur10DhParameters as ur10_dh_parameters
6+
7+
class Ur10DhParameters:
8+
def __init__(self, _internal = 0):
9+
if(_internal == 0):
10+
self._instance = ur10_dh_parameters()
11+
else:
12+
self._instance = _internal
13+
@property
14+
def a2(self) -> float:
15+
return self._instance.A2
16+
@property
17+
def a3(self) -> float:
18+
return self._instance.A3
19+
@property
20+
def d1(self) -> float:
21+
return self._instance.D1
22+
@property
23+
def d4(self) -> float:
24+
return self._instance.D4
25+
@property
26+
def d5(self) -> float:
27+
return self._instance.D5
28+
@property
29+
def d6(self) -> float:
30+
return self._instance.D6
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import typing
2+
import clr
3+
import os
4+
clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.UniversalRobots.dll')))
5+
from UnderAutomation.UniversalRobots.Kinematics import Ur10eDhParameters as ur10e_dh_parameters
6+
7+
class Ur10eDhParameters:
8+
def __init__(self, _internal = 0):
9+
if(_internal == 0):
10+
self._instance = ur10e_dh_parameters()
11+
else:
12+
self._instance = _internal
13+
@property
14+
def a2(self) -> float:
15+
return self._instance.A2
16+
@property
17+
def a3(self) -> float:
18+
return self._instance.A3
19+
@property
20+
def d1(self) -> float:
21+
return self._instance.D1
22+
@property
23+
def d4(self) -> float:
24+
return self._instance.D4
25+
@property
26+
def d5(self) -> float:
27+
return self._instance.D5
28+
@property
29+
def d6(self) -> float:
30+
return self._instance.D6

0 commit comments

Comments
 (0)