robotic 0.3.0__cp312-cp312-manylinux2014_x86_64.whl → 0.3.1__cp312-cp312-manylinux2014_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of robotic might be problematic. Click here for more details.

robotic/__init__.py CHANGED
@@ -9,9 +9,9 @@ from .version import __version__
9
9
 
10
10
  from .manipulation import KOMO_ManipulationHelper
11
11
 
12
- from .src.mujoco_io import MujocoLoader
13
- from .src.config_urdf import URDFLoader
14
- from .src.mesh_helper import MeshHelper
12
+ #from .src.mujoco_io import MujocoLoader
13
+ #from .src.config_urdf import URDFLoader
14
+ #from .src.mesh_helper import MeshHelper
15
15
 
16
16
  import os
17
17
  setRaiPath( os.path.abspath(os.path.dirname(__file__)) + '/rai-robotModels' )
robotic/_robotic.pyi CHANGED
@@ -1477,13 +1477,17 @@ class Quaternion:
1477
1477
  """
1478
1478
  non-initialized
1479
1479
  """
1480
+ def __mul__(self, arg0: Quaternion) -> Quaternion:
1481
+ """
1482
+ concatenation (quaternion multiplication) of two transforms
1483
+ """
1480
1484
  def append(self, q: Quaternion) -> None:
1481
1485
  ...
1482
1486
  def applyOnPointArray(self, pts: arr) -> None:
1483
1487
  ...
1484
- def flipSign(self) -> None:
1488
+ def asArr(self) -> arr:
1485
1489
  ...
1486
- def getArr(self) -> arr:
1490
+ def flipSign(self) -> None:
1487
1491
  ...
1488
1492
  def getJacobian(self) -> arr:
1489
1493
  ...
@@ -1843,6 +1847,8 @@ class Simulation:
1843
1847
  """
1844
1848
  reset the spline reference, i.e., clear the current spline buffer and initialize it to constant spline at current position (to which setSplineRef can append)
1845
1849
  """
1850
+ def resetTime(self) -> None:
1851
+ ...
1846
1852
  def selectSensor(self, sensorName: str) -> ...:
1847
1853
  ...
1848
1854
  def setSplineRef(self, path: arr, times: arr, append: bool = True) -> None:
robotic/_robotic.so CHANGED
Binary file
@@ -140,6 +140,7 @@ struct Graph : NodeL {
140
140
 
141
141
  //
142
142
  template<class T> Node* set(const char* key, const T& x){ Node* n = findNodeOfType(typeid(T), key); if(n) n->as<T>()=x; else n=add<T>(key, x); return n; }
143
+ Node* set(Node* _n){ Node* n = findNodeOfType(_n->type, _n->key); if(n) n->copyValue(_n); else n=_n->newClone(*this); return n; }
143
144
 
144
145
  //-- get nodes
145
146
  BracketOp operator[](const char* key); ///< returns nullptr if not found
@@ -92,6 +92,7 @@ struct Simulation {
92
92
  //== management interface
93
93
 
94
94
  //-- store and reset the state of the simulation
95
+ void resetTime();
95
96
  void getState(arr& frameState, arr& q=NoArr, arr& frameVelocities=NoArr, arr& qDot=NoArr);
96
97
  void setState(const arr& frameState, const arr& q=NoArr, const arr& frameVelocities=NoArr, const arr& qDot=NoArr);
97
98
  void pushConfigurationToSimulator(const arr& frameVelocities=NoArr, const arr& qDot=NoArr);
robotic/librai.so CHANGED
Binary file
robotic/meshTool CHANGED
Binary file
robotic/mujoco-import.py CHANGED
@@ -1,10 +1,8 @@
1
- from config_mujoco import *
2
- import sysconfig
1
+ import robotic as ry
2
+ from robotic.src.mujoco_io import *
3
3
 
4
- pysite = sysconfig.get_paths()["purelib"]
5
- file = pysite+"/gymnasium_robotics/envs/assets/kitchen_franka/kitchen_assets/kitchen_env_model.xml"
6
- # file = '/home/mtoussai/git/MuJoCo2Rai/kitchen_dataset/RUSTIC_ONE_WALL_SMALL.xml'
4
+ file = '../../rai-robotModels/kitchens/models/MEDITERRANEAN_ONE_WALL_SMALL.xml'
7
5
 
8
6
  print('=====================', file)
9
- C = Config_Mujoco(file, visualsOnly=True)
10
- C.view(True)
7
+ M = MujocoLoader(file, visualsOnly=True)
8
+ M.C.view(True)
@@ -0,0 +1,64 @@
1
+ pelvis: {shape: mesh, color: [0.2, 0.2, 0.2, 1.0], mesh: <meshes/pelvis.h5>, mass: 3.814, inertia: [0.010549099999999999, 0.0, 2.1e-06, 0.009309, 0.0, 0.0079185]}
2
+ left_hip_pitch_joint_origin (pelvis): {pose: [0.0, 0.064452, -0.1027]}
3
+ right_hip_pitch_joint_origin (pelvis): {pose: [0.0, -0.064452, -0.1027]}
4
+ waist_yaw_joint (pelvis): {joint: hingeZ, limits: [-2.618, 2.618], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/waist_yaw_link.h5>, mass: 0.244, inertia: [9.9587e-05, -1.833e-06, -1.2617e-05, 0.00012411, -1.18e-07, 0.00015586]}
5
+ pelvis_contour_link_0 (pelvis): {shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/pelvis_contour_link.h5>}
6
+ left_hip_pitch_joint (left_hip_pitch_joint_origin): {joint: hingeY, limits: [-2.5307, 2.8798], shape: mesh, color: [0.2, 0.2, 0.2, 1.0], mesh: <meshes/left_hip_pitch_link.h5>, mass: 1.35, inertia: [0.001811, 3.68e-05, -3.44e-05, 0.0014193, 0.000171, 0.0012812]}
7
+ right_hip_pitch_joint (right_hip_pitch_joint_origin): {joint: hingeY, limits: [-2.5307, 2.8798], shape: mesh, color: [0.2, 0.2, 0.2, 1.0], mesh: <meshes/right_hip_pitch_link.h5>, mass: 1.35, inertia: [0.001811, -3.68e-05, -3.44e-05, 0.0014193, -0.000171, 0.0012812]}
8
+ waist_roll_joint_origin (waist_yaw_joint): {pose: [-0.0039635, 0.0, 0.035]}
9
+ left_hip_roll_joint_origin (left_hip_pitch_joint): {pose: [0.0, 0.052, -0.030465, 0.9961786849744957, 0.0, -0.08733858026373247, 0.0]}
10
+ right_hip_roll_joint_origin (right_hip_pitch_joint): {pose: [0.0, -0.052, -0.030465, 0.9961786849744957, 0.0, -0.08733858026373247, 0.0]}
11
+ waist_roll_joint (waist_roll_joint_origin): {joint: hingeX, limits: [-0.52, 0.52], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/waist_roll_link.h5>, mass: 0.047, inertia: [7.515e-06, 0.0, 0.0, 6.398e-06, 9.9e-08, 3.988e-06]}
12
+ left_hip_roll_joint (left_hip_roll_joint_origin): {joint: hingeX, limits: [-0.5236, 2.9671], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_hip_roll_link.h5>, mass: 1.52, inertia: [0.0023773, -3.8e-06, -0.0003908, 0.0024123, 1.84e-05, 0.0016595]}
13
+ right_hip_roll_joint (right_hip_roll_joint_origin): {joint: hingeX, limits: [-2.9671, 0.5236], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_hip_roll_link.h5>, mass: 1.52, inertia: [0.0023773, 3.8e-06, -0.0003908, 0.0024123, -1.84e-05, 0.0016595]}
14
+ waist_pitch_joint_origin (waist_roll_joint): {pose: [0.0, 0.0, 0.019]}
15
+ left_hip_yaw_joint_origin (left_hip_roll_joint): {pose: [0.025001, 0.0, -0.12412]}
16
+ right_hip_yaw_joint_origin (right_hip_roll_joint): {pose: [0.025001, 0.0, -0.12412]}
17
+ waist_pitch_joint (waist_pitch_joint_origin): {joint: hingeY, limits: [-0.52, 0.52], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/torso_link.h5>, mass: 9.599999999999998, com: [0.00042855343750000007, 0.0, -0.005838750000000002], inertia: [0.072459751385, -8.851300000000001e-05, -0.0016085661752787497, 0.060434677554607075, 8.3173e-05, 0.032630779169607084]}
18
+ left_hip_yaw_joint (left_hip_yaw_joint_origin): {joint: hingeZ, limits: [-2.7576, 2.7576], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_hip_yaw_link.h5>, mass: 1.702, inertia: [0.0057774, -0.0005411, -0.0023948, 0.0076124, -0.0007072, 0.003149]}
19
+ right_hip_yaw_joint (right_hip_yaw_joint_origin): {joint: hingeZ, limits: [-2.7576, 2.7576], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_hip_yaw_link.h5>, mass: 1.702, inertia: [0.0057774, 0.0005411, -0.0023948, 0.0076124, 0.0007072, 0.003149]}
20
+ left_shoulder_pitch_joint_origin (waist_pitch_joint): {pose: [0.0039563, 0.10022, 0.23778, 0.9902640751049538, 0.13920147853022313, 4.054181625451359e-05, -9.103785623530919e-05]}
21
+ right_shoulder_pitch_joint_origin (waist_pitch_joint): {pose: [0.0039563, -0.10021, 0.23778, 0.9902640751049538, -0.13920147853022313, 4.054181625451359e-05, 9.103785623530919e-05]}
22
+ logo_link_0 (waist_pitch_joint): {pose: [0.0039635, 0.0, -0.054], shape: mesh, color: [0.2, 0.2, 0.2, 1.0], mesh: <meshes/logo_link.h5>}
23
+ head_link_0 (waist_pitch_joint): {pose: [0.0039635, 0.0, -0.054], shape: mesh, color: [0.2, 0.2, 0.2, 1.0], mesh: <meshes/head_link.h5>}
24
+ waist_support_link_0 (waist_pitch_joint): {pose: [0.0039635, 0.0, -0.054], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/waist_support_link.h5>}
25
+ left_knee_joint_origin (left_hip_yaw_joint): {pose: [-0.078273, 0.0021489, -0.17734, 0.9961786849744957, 0.0, 0.08733858026373247, 0.0]}
26
+ right_knee_joint_origin (right_hip_yaw_joint): {pose: [-0.078273, -0.0021489, -0.17734, 0.9961786849744957, 0.0, 0.08733858026373247, 0.0]}
27
+ left_shoulder_pitch_joint (left_shoulder_pitch_joint_origin): {joint: hingeY, limits: [-3.0892, 2.6704], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_shoulder_pitch_link.h5>, mass: 0.718, inertia: [0.0004291, -9.2e-06, 6.4e-06, 0.000453, 2.26e-05, 0.000423]}
28
+ right_shoulder_pitch_joint (right_shoulder_pitch_joint_origin): {joint: hingeY, limits: [-3.0892, 2.6704], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_shoulder_pitch_link.h5>, mass: 0.718, inertia: [0.0004291, 9.2e-06, 6.4e-06, 0.000453, -2.26e-05, 0.000423]}
29
+ left_knee_joint (left_knee_joint_origin): {joint: hingeY, limits: [-0.087267, 2.8798], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_knee_link.h5>, mass: 1.932, inertia: [0.011329, 4.82e-05, -4.49e-05, 0.011277, -0.0007146, 0.0015168]}
30
+ right_knee_joint (right_knee_joint_origin): {joint: hingeY, limits: [-0.087267, 2.8798], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_knee_link.h5>, mass: 1.932, inertia: [0.011329, -4.82e-05, 4.49e-05, 0.011277, 0.0007146, 0.0015168]}
31
+ left_shoulder_roll_joint_origin (left_shoulder_pitch_joint): {pose: [0.0, 0.038, -0.013831, 0.9902682552548409, -0.1391717738427347, 0.0, 0.0]}
32
+ right_shoulder_roll_joint_origin (right_shoulder_pitch_joint): {pose: [0.0, -0.038, -0.013831, 0.9902682552548409, 0.1391717738427347, 0.0, 0.0]}
33
+ left_ankle_pitch_joint_origin (left_knee_joint): {pose: [0.0, -9.4445e-05, -0.30001]}
34
+ right_ankle_pitch_joint_origin (right_knee_joint): {pose: [0.0, 9.4445e-05, -0.30001]}
35
+ left_shoulder_roll_joint (left_shoulder_roll_joint_origin): {joint: hingeX, limits: [-1.5882, 2.2515], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_shoulder_roll_link.h5>, mass: 0.643, inertia: [0.0006177, -1.0e-06, 8.7e-06, 0.0006912, -5.3e-06, 0.0003894]}
36
+ right_shoulder_roll_joint (right_shoulder_roll_joint_origin): {joint: hingeX, limits: [-2.2515, 1.5882], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_shoulder_roll_link.h5>, mass: 0.643, inertia: [0.0006177, 1.0e-06, 8.7e-06, 0.0006912, 5.3e-06, 0.0003894]}
37
+ left_ankle_pitch_joint (left_ankle_pitch_joint_origin): {joint: hingeY, limits: [-0.87267, 0.5236], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_ankle_pitch_link.h5>, mass: 0.074, inertia: [8.4e-06, 0.0, -2.9e-06, 1.89e-05, 0.0, 1.26e-05]}
38
+ right_ankle_pitch_joint (right_ankle_pitch_joint_origin): {joint: hingeY, limits: [-0.87267, 0.5236], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_ankle_pitch_link.h5>, mass: 0.074, inertia: [8.4e-06, 0.0, -2.9e-06, 1.89e-05, 0.0, 1.26e-05]}
39
+ left_shoulder_yaw_joint_origin (left_shoulder_roll_joint): {pose: [0.0, 0.00624, -0.1032]}
40
+ right_shoulder_yaw_joint_origin (right_shoulder_roll_joint): {pose: [0.0, -0.00624, -0.1032]}
41
+ left_ankle_roll_joint_origin (left_ankle_pitch_joint): {pose: [0.0, 0.0, -0.017558]}
42
+ right_ankle_roll_joint_origin (right_ankle_pitch_joint): {pose: [0.0, 0.0, -0.017558]}
43
+ left_shoulder_yaw_joint (left_shoulder_yaw_joint_origin): {joint: hingeZ, limits: [-2.618, 2.618], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_shoulder_yaw_link.h5>, mass: 0.734, inertia: [0.0009988, 7.9e-06, 0.0001412, 0.0010605, -2.86e-05, 0.0004354]}
44
+ right_shoulder_yaw_joint (right_shoulder_yaw_joint_origin): {joint: hingeZ, limits: [-2.618, 2.618], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_shoulder_yaw_link.h5>, mass: 0.734, inertia: [0.0009988, -7.9e-06, 0.0001412, 0.0010605, 2.86e-05, 0.0004354]}
45
+ left_ankle_roll_joint (left_ankle_roll_joint_origin): {joint: hingeX, limits: [-0.2618, 0.2618], shape: mesh, color: [0.2, 0.2, 0.2, 1.0], mesh: <meshes/left_ankle_roll_link.h5>, mass: 0.608, inertia: [0.0002231, 2.0e-07, 8.91e-05, 0.0016161, -1.0e-07, 0.0016667]}
46
+ right_ankle_roll_joint (right_ankle_roll_joint_origin): {joint: hingeX, limits: [-0.2618, 0.2618], shape: mesh, color: [0.2, 0.2, 0.2, 1.0], mesh: <meshes/right_ankle_roll_link.h5>, mass: 0.608, inertia: [0.0002231, -2.0e-07, 8.91e-05, 0.0016161, 1.0e-07, 0.0016667]}
47
+ left_elbow_joint_origin (left_shoulder_yaw_joint): {pose: [0.015783, 0.0, -0.080518]}
48
+ right_elbow_joint_origin (right_shoulder_yaw_joint): {pose: [0.015783, 0.0, -0.080518]}
49
+ left_elbow_joint (left_elbow_joint_origin): {joint: hingeY, limits: [-1.0472, 2.0944], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_elbow_link.h5>, mass: 0.6, inertia: [0.0002891, 6.53e-05, 1.72e-05, 0.0004152, -5.6e-06, 0.0004197]}
50
+ right_elbow_joint (right_elbow_joint_origin): {joint: hingeY, limits: [-1.0472, 2.0944], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_elbow_link.h5>, mass: 0.6, inertia: [0.0002891, -6.53e-05, 1.72e-05, 0.0004152, 5.6e-06, 0.0004197]}
51
+ left_wrist_roll_joint_origin (left_elbow_joint): {pose: [0.1, 0.00188791, -0.01]}
52
+ right_wrist_roll_joint_origin (right_elbow_joint): {pose: [0.1, -0.00188791, -0.01]}
53
+ left_wrist_roll_joint (left_wrist_roll_joint_origin): {joint: hingeX, limits: [-1.972222054, 1.972222054], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_wrist_roll_link.h5>, mass: 0.08544498, inertia: [4.821544023e-05, -4.24511021e-06, 5.10599e-09, 3.722899093e-05, -1.23525e-09, 5.482106541e-05]}
54
+ right_wrist_roll_joint (right_wrist_roll_joint_origin): {joint: hingeX, limits: [-1.972222054, 1.972222054], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_wrist_roll_link.h5>, mass: 0.08544498, inertia: [4.821544023e-05, 4.24511021e-06, 5.10599e-09, 3.722899093e-05, 1.23525e-09, 5.482106541e-05]}
55
+ left_wrist_pitch_joint_origin (left_wrist_roll_joint): {pose: [0.038, 0.0, 0.0]}
56
+ right_wrist_pitch_joint_origin (right_wrist_roll_joint): {pose: [0.038, 0.0, 0.0]}
57
+ left_wrist_pitch_joint (left_wrist_pitch_joint_origin): {joint: hingeY, limits: [-1.614429558, 1.614429558], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_wrist_pitch_link.h5>, mass: 0.48404956, inertia: [0.00016579646273, -1.231206746e-05, 1.231699194e-05, 0.0004295405741, 8.1417712e-07, 0.00042953697654]}
58
+ right_wrist_pitch_joint (right_wrist_pitch_joint_origin): {joint: hingeY, limits: [-1.614429558, 1.614429558], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_wrist_pitch_link.h5>, mass: 0.48404956, inertia: [0.00016579646273, 1.231206746e-05, 1.231699194e-05, 0.0004295405741, -8.1417712e-07, 0.00042953697654]}
59
+ left_wrist_yaw_joint_origin (left_wrist_pitch_joint): {pose: [0.046, 0.0, 0.0]}
60
+ right_wrist_yaw_joint_origin (right_wrist_pitch_joint): {pose: [0.046, 0.0, 0.0]}
61
+ left_wrist_yaw_joint (left_wrist_yaw_joint_origin): {joint: hingeZ, limits: [-1.614429558, 1.614429558], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_wrist_yaw_link.h5>, mass: 0.25457647, com: [0.027712694735691795, 0.0020033273302909765, -1.0899653184406096e-18], inertia: [0.00015079444368903163, 2.869702728036281e-05, 3.715660723580004e-06, 0.00043836153569590437, 3.73406941286e-06, 0.000356006284096386]}
62
+ right_wrist_yaw_joint (right_wrist_yaw_joint_origin): {joint: hingeZ, limits: [-1.614429558, 1.614429558], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_wrist_yaw_link.h5>, mass: 0.25457647, com: [0.027712694735691795, -0.0020033273302909765, -1.0899653184406096e-18], inertia: [0.00015079444368903163, -2.869702728036281e-05, 3.715660723580004e-06, 0.00043836153569590437, -3.73406941286e-06, 0.000356006284096386]}
63
+ left_rubber_hand_0 (left_wrist_yaw_joint): {pose: [0.0415, 0.003, 0.0], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/left_rubber_hand.h5>}
64
+ right_rubber_hand_0 (right_wrist_yaw_joint): {pose: [0.0415, -0.003, 0.0], shape: mesh, color: [0.7, 0.7, 0.7, 1.0], mesh: <meshes/right_rubber_hand.h5>}
@@ -0,0 +1,19 @@
1
+ robotiq_arg2f_base_link: {shape: mesh, color: [0.1, 0.1, 0.1, 1.0], mesh: <meshes/robotiq_arg2f_85_base_link.h5>, mass: 0.22652, inertia: [0.00020005, -4.2442e-10, -2.9069e-10, 0.00017832, -3.4402e-08, 0.00013478]}
2
+ finger_joint_origin (robotiq_arg2f_base_link): {pose: [0.0, -0.0306011, 0.054904, 6.123233995736766e-17, 0.0, 0.0, 1.0]}
3
+ left_inner_knuckle_joint_origin (robotiq_arg2f_base_link): {pose: [0.0, -0.0127, 0.06142, 6.123233995736766e-17, 0.0, 0.0, 1.0]}
4
+ right_outer_knuckle_joint_origin (robotiq_arg2f_base_link): {pose: [0.0, 0.0306011, 0.054904]}
5
+ right_inner_knuckle_joint_origin (robotiq_arg2f_base_link): {pose: [0.0, 0.0127, 0.06142]}
6
+ finger_joint (finger_joint_origin): {joint: hingeX, limits: [0.0, 0.8], color: [0.792156862745098, 0.819607843137255, 0.933333333333333, 1.0] },
7
+ finger_metal_l(finger_joint): {pose: [1 -1 0 0], mesh: <meshes/robotiq_arg2f_85_outer_knuckle.h5>}
8
+ left_inner_knuckle_joint (left_inner_knuckle_joint_origin): {joint: hingeX, limits: [0.0, 0.8757], mimic: finger_joint, shape: mesh, color: [0.1, 0.1, 0.1, 1.0], mesh: <meshes/robotiq_arg2f_85_inner_knuckle.h5>}
9
+ right_outer_knuckle_joint (right_outer_knuckle_joint_origin): {joint: hingeX, limits: [0.0, 0.81], mimic: finger_joint, color: [0.792156862745098, 0.819607843137255, 0.933333333333333, 1.0]}
10
+ finger_metal_r(right_outer_knuckle_joint): {pose: [1 -1 0 0], mesh: <meshes/robotiq_arg2f_85_outer_knuckle.h5>}
11
+ right_inner_knuckle_joint (right_inner_knuckle_joint_origin): {joint: hingeX, limits: [0.0, 0.8757], mimic: finger_joint, shape: mesh, color: [0.1, 0.1, 0.1, 1.0], mesh: <meshes/robotiq_arg2f_85_inner_knuckle.h5>}
12
+ left_outer_finger_0 (finger_joint): {pose: [0.0, 0.0315, -0.0041], shape: mesh, color: [0.1, 0.1, 0.1, 1.0], mesh: <meshes/robotiq_arg2f_85_outer_finger.h5>}
13
+ left_inner_finger_joint_origin (finger_joint): {pose: [0.0, 0.0376, 0.043000000000000003]}
14
+ right_outer_finger_0 (right_outer_knuckle_joint): {pose: [0.0, 0.0315, -0.0041], shape: mesh, color: [0.1, 0.1, 0.1, 1.0], mesh: <meshes/robotiq_arg2f_85_outer_finger.h5>}
15
+ right_inner_finger_joint_origin (right_outer_knuckle_joint): {pose: [0.0, 0.0376, 0.043000000000000003]}
16
+ left_inner_finger_joint (left_inner_finger_joint_origin): {joint: hingeX, limits: [0.0, 0.8757], mimic: finger_joint, shape: mesh, color: [0.1, 0.1, 0.1, 1.0], mesh: <meshes/robotiq_arg2f_85_inner_finger.h5>}
17
+ right_inner_finger_joint (right_inner_finger_joint_origin): {joint: hingeX, limits: [0.0, 0.8757], mimic: finger_joint, shape: mesh, color: [0.1, 0.1, 0.1, 1.0], mesh: <meshes/robotiq_arg2f_85_inner_finger.h5>}
18
+ left_inner_finger_pad_0 (left_inner_finger_joint): {pose: [0.0, -0.0220203446692936, 0.03242], shape: box, size: [0.022, 0.00635, 0.0375], color: [0.9, 0.9, 0.9, 1.0]}
19
+ right_inner_finger_pad_0 (right_inner_finger_joint): {pose: [0.0, -0.0220203446692936, 0.03242], shape: box, size: [0.022, 0.00635, 0.0375], color: [0.9, 0.9, 0.9, 1.0]}
robotic/ry-test CHANGED
@@ -10,7 +10,8 @@ C.addFile(ry.raiPath('panda/panda.g'), 'b_').setPosition([0,0,.5])
10
10
  C.addFrame('box1') .setShape(ry.ST.ssBox,[.3, .3, .3, .05]) .setPosition([1.3, 0, 2.]) .setMass(3)
11
11
  C.addFrame('box2') .setShape(ry.ST.ssBox,[.3, .3, .3, .05]) .setPosition([.5, .0, 1.8]) .setMass(3)
12
12
 
13
- #C.view(False)
13
+ C.view(False)
14
+ time.sleep(.5)
14
15
 
15
16
  q0 = C.getJointState()
16
17
  qT = q0
File without changes
robotic/src/mujoco_io.py CHANGED
@@ -121,7 +121,7 @@ class MujocoLoader():
121
121
  else:
122
122
  vec1 = np.array([0., 0., 1.])
123
123
  vec2 = np.array(self.as_floats(axis))
124
- quat = ry.Quaternion().setDiff(vec1, vec2).getArr()
124
+ quat = ry.Quaternion().setDiff(vec1, vec2).asArr()
125
125
  f_origin.setRelativeQuaternion(quat)
126
126
  axis = ry.JT.hingeZ
127
127
  else:
@@ -178,7 +178,7 @@ class MujocoLoader():
178
178
  l = np.linalg.norm(b-a)
179
179
  q = ry.Quaternion().setDiff([0,0,1],(b-a)/l)
180
180
  f_shape.setRelativePosition(0.5*(a+b))
181
- f_shape.setRelativeQuaternion(q.getArr())
181
+ f_shape.setRelativeQuaternion(q.asArr())
182
182
  f_shape.setShape(ry.ST.capsule, [l, size[0]])
183
183
  elif len(size)==2:
184
184
  f_shape.setShape(ry.ST.capsule, [2.*size[1], size[0]])
@@ -239,4 +239,4 @@ class MujocoLoader():
239
239
  if rpy:
240
240
  q = ry.Quaternion()
241
241
  q.setRollPitchYaw(self.as_floats(rpy))
242
- f.setRelativeQuaternion(q.getArr())
242
+ f.setRelativeQuaternion(q.asArr())
File without changes
File without changes
robotic/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '0.3.0'
1
+ __version__ = '0.3.1'
@@ -10,7 +10,8 @@ C.addFile(ry.raiPath('panda/panda.g'), 'b_').setPosition([0,0,.5])
10
10
  C.addFrame('box1') .setShape(ry.ST.ssBox,[.3, .3, .3, .05]) .setPosition([1.3, 0, 2.]) .setMass(3)
11
11
  C.addFrame('box2') .setShape(ry.ST.ssBox,[.3, .3, .3, .05]) .setPosition([.5, .0, 1.8]) .setMass(3)
12
12
 
13
- #C.view(False)
13
+ C.view(False)
14
+ time.sleep(.5)
14
15
 
15
16
  q0 = C.getJointState()
16
17
  qT = q0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotic
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: Robotic Control Interface & Manipulation Planning Library
5
5
  Home-page: https://github.com/MarcToussaint/robotic/
6
6
  Author: Marc Toussaint
@@ -48,7 +48,7 @@ Lab](https://argmin.lis.tu-berlin.de/)) operate our robots.
48
48
  ry-info
49
49
  ry-test
50
50
 
51
- * Run all tutorial notebooks as a test and showcase (takes long):
51
+ * Run all tutorial notebooks as a test and showcase:
52
52
 
53
53
  pip install jupyter nbconvert matplotlib ipympl
54
54
  git clone https://github.com/MarcToussaint/rai-tutorials.git
@@ -58,13 +58,11 @@ Lab](https://argmin.lis.tu-berlin.de/)) operate our robots.
58
58
 
59
59
  * Tested in latest ubuntu docker (using a venv):
60
60
 
61
- alias sudo=
62
- sudo apt install --yes liblapack3 freeglut3-dev libglu1-mesa libfreetype6 fonts-ubuntu python3 python3-pip python3-venv
63
- cd /usr/lib/x86_64-linux-gnu/ && sudo ln -s libglut.so.3.12 libglut.so.3
61
+ apt install --yes liblapack3 xorg freeglut3-dev libglu1-mesa libfreetype6 fonts-ubuntu python3 python3-pip python3-venv
62
+ cd /usr/lib/x86_64-linux-gnu/ && ln -s libglut.so.3.12 libglut.so.3
64
63
  cd
65
- mkdir -p ~/.local
66
- python3 -m venv ~/.local/venv
67
- source ~/.local/venv/bin/activate
64
+ python3 -m venv ~/venv
65
+ source ~/venv/bin/activate
68
66
  pip install robotic numpy
69
67
  ry-test
70
68
 
@@ -103,7 +101,7 @@ This assumes a standard Ubuntu 24.04 (or 22.04, 20.04) machine.
103
101
  cd $HOME/git
104
102
  git clone --recursive https://github.com/MarcToussaint/robotic.git
105
103
  cd robotic
106
- cp _build_utils/CMakeLists-ubuntu.txt CMakeLists.txt
104
+ cp _make/CMakeLists-ubuntu.txt CMakeLists.txt
107
105
  export PY_VERSION=`python3 -c "import sys; print(str(sys.version_info[0])+'.'+str(sys.version_info[1]))"`
108
106
  cmake -DPY_VERSION=$PY_VERSION -DUSE_REALSENSE=ON -DUSE_LIBFRANKA=ON . -B build
109
107
  make -C build _robotic install
@@ -1,23 +1,23 @@
1
1
  robotic/DataGen.pyi,sha256=Psut6_CMYC1lkRWIfpem1vjiHeDA1bDRYh5WmALUuDw,3239
2
- robotic/__init__.py,sha256=ohFobv0RbIeS22ItTjsBuEh2SCmcXAGuUwu5A2j-foA,418
3
- robotic/_robotic.pyi,sha256=oJJcEuvL8aQGFTbdqmVdLNYTNIqz_KaxK8QYBVKBkrA,74164
4
- robotic/_robotic.so,sha256=Ew_OudXnP0_5eZLkYY_8kdL_P6EsFt-JCbX13jAC6dg,1226528
5
- robotic/librai.so,sha256=ZQ9kyklmvF399Nc97EguActdDxj3REaOcs-AwVxXxBQ,38705536
2
+ robotic/__init__.py,sha256=H8Qi-wA95h6SuziEFNZFEt6Tpt5UrttS9ftBjZCsMm4,421
3
+ robotic/_robotic.pyi,sha256=WGPudISms8zNXQ3iWmDDyPy5zxDFdXqkWRulQPlRByw,74355
4
+ robotic/_robotic.so,sha256=jJDuz8DVbBNRQeuGHkzFGnlruIYjMm8F5-SIouwxfxk,1230656
5
+ robotic/librai.so,sha256=jLZRs6pakYH_QOAbZLaW-2m_N_Tdw8fFovbE3pz5vGw,38705536
6
6
  robotic/manipulation.py,sha256=EhM_Zuv3vl8H4SBNqqYMD3NT9AzFUpOhr4PIzM4U7tM,22374
7
- robotic/meshTool,sha256=AWNp8WLaNlttZMHFyrBxy7eKkeTXUzxQP_38mjNyBcQ,52176
8
- robotic/mujoco-import.py,sha256=6zZTUvl6GuxSQrTnMW2y4Iy8iL7RuRbfZET-KiqO1Fg,363
7
+ robotic/meshTool,sha256=PmuUM1ia3Opa5JT8T7L7k9-ThYgdBNT2pALqudKh82g,52176
8
+ robotic/mujoco-import.py,sha256=8eC8ldlFwnYQfqII3FVdWEQ7zd1PkSdAF-oyryIQtkY,231
9
9
  robotic/nlp.py,sha256=n9_hOj3i707DdL_r49Yd2eWyjsSOahW8DmJrEhQlNFw,3200
10
10
  robotic/render.py,sha256=OE1dvyWHD7Oyzk4wlhXZ7m3v3xxa3zAL5_LCV1RgJXk,4662
11
11
  robotic/ry-bot,sha256=nd2yWqaDsFbwAmr7ySdOjq06ek0E1FMHTxPRO-7e2Q8,2294
12
12
  robotic/ry-h5info,sha256=BRBpQSkzO13rcEJx4hJ8vNm_HXPHlSL_lmx9qDn-9LA,824
13
13
  robotic/ry-info,sha256=GRj4oMCgTCGRF2wxtYxiFvETROB92rwwtUFb6S_Eo7g,439
14
14
  robotic/ry-meshTool,sha256=h4f4wFPNaey3ziz870SrEvy6SsQSL-ZnR_cH3UuAZxE,101
15
- robotic/ry-test,sha256=yikBKckTos-lPTcazB5zCssW0H9qIj1-QPlRL39gQgs,981
15
+ robotic/ry-test,sha256=U54-scN4o_glloiDKjSFKJ7QsUTPgvzia6qnE4-22Js,995
16
16
  robotic/ry-urdfConvert.py,sha256=8Efnq3PU202rrZrVEZiGwzFOJdvrLjTJ2q-gnY6-tiU,2556
17
17
  robotic/ry-view,sha256=T1Omn1QS7cNAtjQhBjMJTNz7aW5FgoOf9vBIfW0mFME,613
18
18
  robotic/test.py,sha256=8hiDRB2kB37hE5cZ7h26AJDnSGYb1y8DwOrcEGD_5Hc,620
19
19
  robotic/test.pyi,sha256=vVxwRSerjUG4bpB7pIhof7ZatrBqwg3Bj5voywa-YTI,917
20
- robotic/version.py,sha256=3wVEs2QD_7OcTlD97cZdCeizd2hUbJJ0GeIO8wQIjrk,22
20
+ robotic/version.py,sha256=TZkGuMIRSRmUY3XCIs5owt2o60vXyqYMHWIkhx65uYE,22
21
21
  robotic/include/rai/Algo/MLcourse.h,sha256=TGkAJWC5ollGfPw0-gcYL0TZeDJiHtWFzkHSMK8_lqU,1828
22
22
  robotic/include/rai/Algo/RidgeRegression.h,sha256=VXiv6-xr3j--CN7DJTzUg9Xb49zV9FZ9dwzxP1CmcPM,3730
23
23
  robotic/include/rai/Algo/SplineCtrlFeed.h,sha256=9ZtYLHXx9sExj0lZV6F5ZWaCtkm0R4hMiYb-KJjktnc,3339
@@ -50,7 +50,7 @@ robotic/include/rai/Core/array.h,sha256=YcI48DcBMUYgdlXP4V1dV6juBUe1iCtbKoxWjp4n
50
50
  robotic/include/rai/Core/array.ipp,sha256=DNmfosznj0jF-5lXTb8NUejfrVfs_Fw3O0IvvnDfF7M,63560
51
51
  robotic/include/rai/Core/arrayDouble.h,sha256=9pr_9g50dFluF2dLgc29bl9o6ri9C84p69fNW2PYqXg,28724
52
52
  robotic/include/rai/Core/defines.h,sha256=hBTgf5EiJ50rQYW1saGw8Ox87aKVFOYVKnFw0jojVW0,6894
53
- robotic/include/rai/Core/graph.h,sha256=qIpLS_-ey89--kwJ1NbpQEJONTpWMV2FV90a_AgQRVw,20996
53
+ robotic/include/rai/Core/graph.h,sha256=Thi03-fM0hqdz1oAXJauWw4WpYQHL8n54XvU0NR2Oyo,21128
54
54
  robotic/include/rai/Core/h5.h,sha256=cfs8cew5QYpOxbWFZHV9TXVh5_dEJdFF1-aGZVR54EY,1162
55
55
  robotic/include/rai/Core/thread.h,sha256=wjwvXACwI8B6rhZSf2UDruWUb8kT9Xjm-VE-OnUQpwk,18248
56
56
  robotic/include/rai/Core/util.h,sha256=qcP8KmyVZ1Ht8pmqfAme_SRjQX5mDpuV4iKl56zyG2o,19453
@@ -124,7 +124,7 @@ robotic/include/rai/Kin/kin_feather.h,sha256=o-hOJA8UcmIBKx_qPzoG9R7fxzz-4zhBNMB
124
124
  robotic/include/rai/Kin/kin_ode.h,sha256=zwB8Le1WMGRkQBc9bssndJICkjO1lZ_y1aZKCwP4c1Y,3686
125
125
  robotic/include/rai/Kin/kin_physx.h,sha256=QfYi_-dIvVm7dFgG2SA3csHeb0peRMEhrf-I6pFOMPQ,1832
126
126
  robotic/include/rai/Kin/proxy.h,sha256=jfFQrvokqvt8bGYEzGQoD2ZpnuWuLzCeOjFfUvdxcx0,1473
127
- robotic/include/rai/Kin/simulation.h,sha256=rM08Epf72aiI26z2MPE0sZ6CrnNzolzdzZKhKxw5Zn8,5238
127
+ robotic/include/rai/Kin/simulation.h,sha256=imCDImhfBDFqAQUospERxhlkEOwb-Pzq415QcrQ8xVI,5258
128
128
  robotic/include/rai/Kin/viewer.h,sha256=GzObhDzEnIBYH0Yu_wCX8Cm2GAN5wuk-El09b2Vy_8w,2031
129
129
  robotic/include/rai/LGP/LGP_SkeletonTool.h,sha256=T4lXAUxY2QFo_ETZEm7RqRzfmU6NAHdVcow8qj_8-9Y,3240
130
130
  robotic/include/rai/LGP/LGP_Tool.h,sha256=vcQ3ixwJ4wepPDX8ZGkDBKGIpchJQWMOoMu82_cS_8I,4230
@@ -192,6 +192,7 @@ robotic/include/rai/ry/py-Spline.h,sha256=gR8Cvwt5PlzlolxegS1wUEEOQj9RydOp1gS67Z
192
192
  robotic/include/rai/ry/py-tests.h,sha256=-l_0V-yRqeOEztqCo_BAdcKCAMovyd8-9tnrytM5pQM,432
193
193
  robotic/include/rai/ry/types.h,sha256=KQ_byer3O3iFnrtBNyg5sptEfCsujbEeo6edOHSNzaM,8495
194
194
  robotic/rai-robotModels/g1/g1.g,sha256=9lA31eCRoFENw9Nbg04KoX3diIIQYKz981oRYNKLvO4,499
195
+ robotic/rai-robotModels/g1/g1_29dof_conv.yml,sha256=KU7Usxi4fMCKFH7Jfb6Jvs98fbK1UozBHCeTnD0KPPU,12132
195
196
  robotic/rai-robotModels/g1/g1_clean.g,sha256=jXlPAlL02pPSybl5DgazO0Qf96wAg2tbVwXKYh9e5XQ,11883
196
197
  robotic/rai-robotModels/g1/meshes/head_link.h5,sha256=7Gnh6fTAHrUp_8O70hmKKGFVW3246-yUdHqCGEuzK14,253939
197
198
  robotic/rai-robotModels/g1/meshes/left_ankle_pitch_link.h5,sha256=2LKu5c-bPbGf8Q0tys5cHS0c38A7Nm39Vpa2ZyyE_Qc,23677
@@ -299,6 +300,7 @@ robotic/rai-robotModels/ranger/meshes/ranger_mini3.h5,sha256=Af2ppMf2YGOUkw7S0jH
299
300
  robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.h5,sha256=zIiMDHGxqaztUyGNeCa-XBBbSoq6Kme0dy4gA7IkWl4,268465
300
301
  robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.h5,sha256=Rs3a7mj3SHgRa31iNNa5RmOMGBdXrpr73GrqaIqRmqs,270937
301
302
  robotic/rai-robotModels/robotiq/robotiq.g,sha256=3m_n4NjH7Gfp_ztWIDb-ruR74q9WhElzqkT76KPeToQ,1066
303
+ robotic/rai-robotModels/robotiq/robotiq_arg2f_85_model_conv.yml,sha256=bkTMr1u1WZdE1LsDFEW3_vcp632_ZXUDM7Yt9T2ZlYU,2908
302
304
  robotic/rai-robotModels/robotiq/robotiq_clean.g,sha256=0EyQ_jt7YCRqGqrtXiWKhUcp7LBEmE_9KcWIj17LqV8,3899
303
305
  robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_base_link.h5,sha256=papTdqkLlRzo_svqTXwd9Cp2qJHw2Wnt-Ct31lQCAKQ,331303
304
306
  robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_inner_finger.h5,sha256=TYBns07SFdffSCNRZNh45_jOtprZAAIAO1WDHbvMMi0,34288
@@ -347,21 +349,22 @@ robotic/rai-robotModels/ur10/meshes/upperarm.h5,sha256=7EscqPPAzKSzbtSCMrgbI_uGh
347
349
  robotic/rai-robotModels/ur10/meshes/wrist1.h5,sha256=4r7yAEKKx5zYoC2NbqL0yjGvX4ilafjrpuNP3oDKsU8,185725
348
350
  robotic/rai-robotModels/ur10/meshes/wrist2.h5,sha256=fJSQ4Jh-ChmwvRYfDobqXssVaBZj8GhpvmPNp1UTrN0,498733
349
351
  robotic/rai-robotModels/ur10/meshes/wrist3.h5,sha256=F8FrYVVp8YBdkgJ6EHKb5r_rm0kyhxf6b8KbwHjeegk,20770
352
+ robotic/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
350
353
  robotic/src/cleanMeshes.py,sha256=42T9WwN_cn4u_s_BzN2eRfBQxmZTEQ6ZYPBtsesA5BM,1678
351
- robotic/src/config_urdf.py,sha256=bbPcJWS9rnYk8CWgEZTmx1XJRBIDrfwgCj-S_RFxl9U,8800
352
354
  robotic/src/mesh_helper.py,sha256=AMSOz3Eew9uJkDm5tFThbfJKcEQCmGyRLN4bZphISNk,16691
353
355
  robotic/src/meshlabFilters.mlx,sha256=SCIiIk7XZusvKEKY62pHSem_R3TcMUP8BFaLTVUcnEg,3833
354
- robotic/src/mujoco_io.py,sha256=6LpOcqQ61Ihwg1BpSIu4YrQGxpR4dvhSt0QuGglgIx0,9477
356
+ robotic/src/mujoco_io.py,sha256=uJ0-ZztwlFiP3ZQvHCKf5DdtkpBMsVT--d332qV9rNQ,9474
357
+ robotic/src/urdf_io.py,sha256=bbPcJWS9rnYk8CWgEZTmx1XJRBIDrfwgCj-S_RFxl9U,8800
355
358
  robotic/src/yaml_helper.py,sha256=eCUK6w4FCRpBqNgP7FdVDbJf2H7Y1bfIGzs89nOrAsY,637
356
- robotic-0.3.0.data/scripts/ry-bot,sha256=LBNbbQeNNNd_tupI5463Xe-RKSD6xy4HGTbJloisCGk,2280
357
- robotic-0.3.0.data/scripts/ry-h5info,sha256=eh9McT5Ury7bbTudxkSOLWo-tZ6heiSEpGStM07N-Dc,810
358
- robotic-0.3.0.data/scripts/ry-info,sha256=fL5QXJL4Xx-Q42L2C29HHbj1XsmWdWiKIv9rVfc5sm4,425
359
- robotic-0.3.0.data/scripts/ry-meshTool,sha256=h4f4wFPNaey3ziz870SrEvy6SsQSL-ZnR_cH3UuAZxE,101
360
- robotic-0.3.0.data/scripts/ry-test,sha256=wM2TpyuPGCVtulIi3ux7Okc2beiljTH29lsETCLEKq8,967
361
- robotic-0.3.0.data/scripts/ry-urdfConvert.py,sha256=762MIDmAhdCCj55QftY7wsy9gOEs-TDEWcRPt5dECyc,2542
362
- robotic-0.3.0.data/scripts/ry-view,sha256=_GjUbVS2X3AWnlXqIHwU5dofLmUKA2-NUPySgS-QJNI,599
363
- robotic-0.3.0.dist-info/licenses/LICENSE,sha256=oT-pAsUSXiuMq2_3omR87-GFBeBnegQYixH4Bm_7wag,1071
364
- robotic-0.3.0.dist-info/METADATA,sha256=4jjtY7o-EynoKj07x60u2I2ryL9M_6p0inKlCAzaW94,6578
365
- robotic-0.3.0.dist-info/WHEEL,sha256=wyNsZZiAPZ_31mmQFQIExwR_yjYlxnCvmv6Al6m-fRQ,104
366
- robotic-0.3.0.dist-info/top_level.txt,sha256=x5A4haAZ18y9FpO1IhXSVJ2TFdhVAgT5JMkejHUg_9U,8
367
- robotic-0.3.0.dist-info/RECORD,,
359
+ robotic-0.3.1.data/scripts/ry-bot,sha256=LBNbbQeNNNd_tupI5463Xe-RKSD6xy4HGTbJloisCGk,2280
360
+ robotic-0.3.1.data/scripts/ry-h5info,sha256=eh9McT5Ury7bbTudxkSOLWo-tZ6heiSEpGStM07N-Dc,810
361
+ robotic-0.3.1.data/scripts/ry-info,sha256=fL5QXJL4Xx-Q42L2C29HHbj1XsmWdWiKIv9rVfc5sm4,425
362
+ robotic-0.3.1.data/scripts/ry-meshTool,sha256=h4f4wFPNaey3ziz870SrEvy6SsQSL-ZnR_cH3UuAZxE,101
363
+ robotic-0.3.1.data/scripts/ry-test,sha256=vcaPrFq9Co9N2F2Mdl2_1CTieOBssSoEhU67wXqJ2EY,981
364
+ robotic-0.3.1.data/scripts/ry-urdfConvert.py,sha256=762MIDmAhdCCj55QftY7wsy9gOEs-TDEWcRPt5dECyc,2542
365
+ robotic-0.3.1.data/scripts/ry-view,sha256=_GjUbVS2X3AWnlXqIHwU5dofLmUKA2-NUPySgS-QJNI,599
366
+ robotic-0.3.1.dist-info/licenses/LICENSE,sha256=oT-pAsUSXiuMq2_3omR87-GFBeBnegQYixH4Bm_7wag,1071
367
+ robotic-0.3.1.dist-info/METADATA,sha256=3DF_RHYZVJC10yPtbb6iQwSGgX8pLPFD4l93lsgjz1M,6497
368
+ robotic-0.3.1.dist-info/WHEEL,sha256=6TsICjgOR7isz_jYr-ssV7RSRmh1_0Z7_b5ESlzfzVY,104
369
+ robotic-0.3.1.dist-info/top_level.txt,sha256=x5A4haAZ18y9FpO1IhXSVJ2TFdhVAgT5JMkejHUg_9U,8
370
+ robotic-0.3.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-linux_x86_64
5
5