robotic 0.2.9.dev2__cp312-cp312-manylinux2014_x86_64.whl → 0.3.0__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.
Files changed (69) hide show
  1. robotic/__init__.py +1 -1
  2. robotic/_robotic.pyi +9 -9
  3. robotic/_robotic.so +0 -0
  4. robotic/include/rai/Algo/rungeKutta.h +1 -1
  5. robotic/include/rai/Control/TimingMPC.h +2 -2
  6. robotic/include/rai/Core/array.h +64 -40
  7. robotic/include/rai/Core/array.ipp +244 -80
  8. robotic/include/rai/Core/arrayDouble.h +10 -13
  9. robotic/include/rai/Core/graph.h +22 -2
  10. robotic/include/rai/Core/h5.h +3 -1
  11. robotic/include/rai/Geo/fclInterface.h +3 -1
  12. robotic/include/rai/Geo/geo.h +4 -1
  13. robotic/include/rai/Geo/mesh.h +11 -5
  14. robotic/include/rai/Geo/pairCollision.h +4 -4
  15. robotic/include/rai/Gui/RenderData.h +4 -3
  16. robotic/include/rai/Gui/opengl.h +1 -1
  17. robotic/include/rai/KOMO/komo.h +1 -0
  18. robotic/include/rai/KOMO/manipTools.h +1 -1
  19. robotic/include/rai/Kin/F_forces.h +1 -1
  20. robotic/include/rai/Kin/dof_forceExchange.h +4 -4
  21. robotic/include/rai/Kin/frame.h +4 -3
  22. robotic/include/rai/Kin/kin.h +24 -15
  23. robotic/include/rai/Kin/kin_physx.h +2 -2
  24. robotic/include/rai/Logic/folWorld.h +1 -1
  25. robotic/include/rai/Optim/testProblems_Opt.h +2 -2
  26. robotic/include/rai/Optim/utils.h +2 -2
  27. robotic/include/rai/PathAlgos/ConfigurationProblem.h +3 -2
  28. robotic/include/rai/PathAlgos/RRT_PathFinder.h +1 -1
  29. robotic/librai.so +0 -0
  30. robotic/meshTool +0 -0
  31. robotic/rai-robotModels/g1/g1.g +11 -2
  32. robotic/rai-robotModels/objects/shelf.g +1 -1
  33. robotic/rai-robotModels/panda/panda.g +1 -1
  34. robotic/rai-robotModels/panda/panda_arm_hand_conv.g +22 -22
  35. robotic/rai-robotModels/panda/panda_arm_hand_conv.yml +24 -0
  36. robotic/rai-robotModels/pr2/pr2.g +6 -6
  37. robotic/rai-robotModels/pr2/pr2_clean.g +114 -114
  38. robotic/rai-robotModels/pr2/pr2_modifications.g +2 -2
  39. robotic/rai-robotModels/ranger/ranger.g +3 -3
  40. robotic/rai-robotModels/robotiq/robotiq.g +1 -1
  41. robotic/rai-robotModels/scenarios/panda_fixRobotiq.g +3 -3
  42. robotic/rai-robotModels/tests/arm.g +11 -11
  43. robotic/rai-robotModels/ur10/ur10.g +1 -1
  44. robotic/rai-robotModels/ur10/ur10_clean.g +8 -8
  45. robotic/ry-h5info +2 -2
  46. robotic/ry-urdfConvert.py +3 -2
  47. robotic/{cleanMeshes.py → src/cleanMeshes.py} +0 -0
  48. robotic/src/meshlabFilters.mlx +20 -0
  49. robotic/src/{config_mujoco.py → mujoco_io.py} +18 -13
  50. robotic/test.py +15 -0
  51. robotic/version.py +1 -1
  52. {robotic-0.2.9.dev2.data → robotic-0.3.0.data}/scripts/ry-h5info +2 -2
  53. robotic-0.3.0.data/scripts/ry-urdfConvert.py +74 -0
  54. {robotic-0.2.9.dev2.dist-info → robotic-0.3.0.dist-info}/METADATA +3 -7
  55. {robotic-0.2.9.dev2.dist-info → robotic-0.3.0.dist-info}/RECORD +63 -65
  56. {robotic-0.2.9.dev2.dist-info → robotic-0.3.0.dist-info}/WHEEL +1 -1
  57. robotic/rai-robotModels/g1/g1_29dof_conv.g +0 -77
  58. robotic/rai-robotModels/robotiq/robotiq_arg2f_85_model_conv.g +0 -21
  59. robotic/ry-urdf2rai +0 -222
  60. robotic/ry-urdf2yaml +0 -250
  61. robotic-0.2.9.dev2.data/scripts/ry-urdf2rai +0 -222
  62. robotic-0.2.9.dev2.data/scripts/ry-urdf2yaml +0 -250
  63. {robotic-0.2.9.dev2.data → robotic-0.3.0.data}/scripts/ry-bot +0 -0
  64. {robotic-0.2.9.dev2.data → robotic-0.3.0.data}/scripts/ry-info +0 -0
  65. {robotic-0.2.9.dev2.data → robotic-0.3.0.data}/scripts/ry-meshTool +0 -0
  66. {robotic-0.2.9.dev2.data → robotic-0.3.0.data}/scripts/ry-test +0 -0
  67. {robotic-0.2.9.dev2.data → robotic-0.3.0.data}/scripts/ry-view +0 -0
  68. {robotic-0.2.9.dev2.dist-info → robotic-0.3.0.dist-info}/licenses/LICENSE +0 -0
  69. {robotic-0.2.9.dev2.dist-info → robotic-0.3.0.dist-info}/top_level.txt +0 -0
@@ -1,32 +1,32 @@
1
1
  world: { }
2
- world_joint_origin(world): { rel: [0, 0, 1, 1, 0, 0, 0] }
2
+ world_joint_origin(world): { pose: [0, 0, 1, 1, 0, 0, 0] }
3
3
  world_joint(world_joint_origin): { joint: rigid }
4
4
  base_link(world_joint): { mass: 4, inertia: [0.00610633, 0.00610633, 0.01125] }
5
5
  base_link_0(base_link): { shape: mesh, mesh: <ur_description/meshes/ur10/visual/Base.dae>, visual: True }
6
- shoulder_pan_joint_origin(base_link): { rel: [0, 0, 0.1273, 1, 0, 0, 0] }
6
+ shoulder_pan_joint_origin(base_link): { pose: [0, 0, 0.1273, 1, 0, 0, 0] }
7
7
  shoulder_pan_joint(shoulder_pan_joint_origin): { joint: hingeZ, limits: [-6.28319, 6.28319, 2.16, -1, 330], ctrl_limits: [2.16, -1, 330] }
8
8
  shoulder_link(shoulder_pan_joint): { mass: 7.778, inertia: [0.0314743, 0.0314743, 0.0218756] }
9
9
  shoulder_link_0(shoulder_link): { shape: mesh, mesh: <ur_description/meshes/ur10/visual/Shoulder.dae>, visual: True }
10
- shoulder_lift_joint_origin(shoulder_link): { rel: [0, 0.220941, 0, 0.707107, 0, 0.707107, 0] }
10
+ shoulder_lift_joint_origin(shoulder_link): { pose: [0, 0.220941, 0, 0.707107, 0, 0.707107, 0] }
11
11
  shoulder_lift_joint(shoulder_lift_joint_origin): { joint: hingeY, limits: [-6.28319, 6.28319, 2.16, -1, 330], ctrl_limits: [2.16, -1, 330] }
12
12
  upper_arm_link(shoulder_lift_joint): { mass: 12.93, inertia: [0.421754, 0.421754, 0.0363656] }
13
13
  upper_arm_link_0(upper_arm_link): { shape: mesh, mesh: <ur_description/meshes/ur10/visual/UpperArm.dae>, visual: True }
14
- elbow_joint_origin(upper_arm_link): { rel: [0, -0.1719, 0.612, 1, 0, 0, 0] }
14
+ elbow_joint_origin(upper_arm_link): { pose: [0, -0.1719, 0.612, 1, 0, 0, 0] }
15
15
  elbow_joint(elbow_joint_origin): { joint: hingeY, limits: [-6.28319, 6.28319, 3.15, -1, 150], ctrl_limits: [3.15, -1, 150] }
16
16
  forearm_link(elbow_joint): { mass: 3.87, inertia: [0.11107, 0.11107, 0.0108844] }
17
17
  forearm_link_0(forearm_link): { shape: mesh, mesh: <ur_description/meshes/ur10/visual/Forearm.dae>, visual: True }
18
- wrist_1_joint_origin(forearm_link): { rel: [0, 0, 0.5723, 0.707107, 0, 0.707107, 0] }
18
+ wrist_1_joint_origin(forearm_link): { pose: [0, 0, 0.5723, 0.707107, 0, 0.707107, 0] }
19
19
  wrist_1_joint(wrist_1_joint_origin): { joint: hingeY, limits: [-6.28319, 6.28319, 3.2, -1, 54], ctrl_limits: [3.2, -1, 54] }
20
20
  wrist_1_link(wrist_1_joint): { mass: 1.96, inertia: [0.00510825, 0.00510825, 0.0055125] }
21
21
  wrist_1_link_0(wrist_1_link): { shape: mesh, mesh: <ur_description/meshes/ur10/visual/Wrist1.dae>, visual: True }
22
- wrist_2_joint_origin(wrist_1_link): { rel: [0, 0.1149, 0, 1, 0, 0, 0] }
22
+ wrist_2_joint_origin(wrist_1_link): { pose: [0, 0.1149, 0, 1, 0, 0, 0] }
23
23
  wrist_2_joint(wrist_2_joint_origin): { joint: hingeZ, limits: [-6.28319, 6.28319, 3.2, -1, 54], ctrl_limits: [3.2, -1, 54] }
24
24
  wrist_2_link(wrist_2_joint): { mass: 1.96, inertia: [0.00510825, 0.00510825, 0.0055125] }
25
25
  wrist_2_link_0(wrist_2_link): { shape: mesh, mesh: <ur_description/meshes/ur10/visual/Wrist2.dae>, visual: True }
26
- wrist_3_joint_origin(wrist_2_link): { rel: [0, 0, 0.1157, 1, 0, 0, 0] }
26
+ wrist_3_joint_origin(wrist_2_link): { pose: [0, 0, 0.1157, 1, 0, 0, 0] }
27
27
  wrist_3_joint(wrist_3_joint_origin): { joint: hingeY, limits: [-6.28319, 6.28319, 3.2, -1, 54], ctrl_limits: [3.2, -1, 54] }
28
28
  wrist_3_link(wrist_3_joint): { mass: 0.202, inertia: [0.000526462, 0.000526462, 0.000568125] }
29
29
  wrist_3_link_0(wrist_3_link): { shape: mesh, mesh: <ur_description/meshes/ur10/visual/Wrist3.dae>, visual: True }
30
- ee_fixed_joint_origin(wrist_3_link): { rel: [0, 0.0922, 0, 0.707107, 0, 0, 0.707107] }
30
+ ee_fixed_joint_origin(wrist_3_link): { pose: [0, 0.0922, 0, 0.707107, 0, 0, 0.707107] }
31
31
  ee_fixed_joint(ee_fixed_joint_origin): { joint: rigid }
32
32
  ee_link(ee_fixed_joint): { }
robotic/ry-h5info CHANGED
@@ -12,9 +12,9 @@ def print_attrs(name, obj):
12
12
  if isinstance(obj, h5py.Dataset):
13
13
  print(' ', name, obj.name, obj.shape, obj.dtype, f'{obj.size*obj.dtype.itemsize/1024:.2f}kB')
14
14
  if obj.dtype=='int8':
15
- print(''.join([chr(x) for x in obj[()]]))
15
+ print(' ', ''.join([chr(x) for x in obj[()]]))
16
16
  elif obj.size<20:
17
- print(obj[()])
17
+ print(' ', obj[()])
18
18
  else:
19
19
  print('---', name)
20
20
 
robotic/ry-urdfConvert.py CHANGED
@@ -16,6 +16,7 @@ parser.add_argument('file', type=str, help='urdf file', nargs='?', default='none
16
16
 
17
17
  parser.add_argument('-view', help='view mesh', action="store_true", default=True)
18
18
  parser.add_argument('-flipDaeYZ', help='view mesh', action="store_true", default=False)
19
+ parser.add_argument('-pruneRigidJoints', help='view mesh', action="store_true")
19
20
  parser.add_argument('-recomputeInertias', help='view mesh', action="store_true")
20
21
  parser.add_argument('-processMeshes', help='view mesh', action="store_true", default=True)
21
22
  parser.add_argument('-meshlab', help='apply meshlab filters', action="store_true", default=False)
@@ -39,9 +40,9 @@ def main():
39
40
 
40
41
  C = ry.URDFLoader(args.file, visualsOnly=True, meshPathRemove='package://').C
41
42
 
42
- C.processStructure(False, True, False, False)
43
+ C.processStructure(args.pruneRigidJoints, True, False, False)
43
44
  C.processInertias(args.recomputeInertias)
44
- C.processStructure(False, True, False, False)
45
+ C.processStructure(args.pruneRigidJoints, True, False, False)
45
46
 
46
47
  os.system('rm -Rf meshes/')
47
48
  C.writeMeshes('meshes/', copyTextures=True)
File without changes
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE FilterScript>
2
+ <FilterScript>
3
+ <filter name="Repair non Manifold Edges by removing faces"/>
4
+ <filter name="Simplification: Quadric Edge Collapse Decimation">
5
+ <Param tooltip="The desired final number of faces." type="RichInt" description="Target number of faces" value="20000" name="TargetFaceNum"/>
6
+ <Param tooltip="If non zero, this parameter specifies the desired final size of the mesh as a percentage of the initial size." type="RichFloat" description="Percentage reduction (0..1)" value="0" name="TargetPerc"/>
7
+ <Param tooltip="Quality threshold for penalizing bad shaped faces.&lt;br>The value is in the range [0..1]&#xa; 0 accept any kind of face (no penalties),&#xa; 0.5 penalize faces with quality &lt; 0.5, proportionally to their shape&#xa;" type="RichFloat" description="Quality threshold" value="0.3" name="QualityThr"/>
8
+ <Param tooltip="The simplification process tries to do not affect mesh boundaries during simplification" type="RichBool" description="Preserve Boundary of the mesh" value="false" name="PreserveBoundary"/>
9
+ <Param tooltip="The importance of the boundary during simplification. Default (1.0) means that the boundary has the same importance of the rest. Values greater than 1.0 raise boundary importance and has the effect of removing less vertices on the border. Admitted range of values (0,+inf). " type="RichFloat" description="Boundary Preserving Weight" value="1" name="BoundaryWeight"/>
10
+ <Param tooltip="Try to avoid face flipping effects and try to preserve the original orientation of the surface" type="RichBool" description="Preserve Normal" value="false" name="PreserveNormal"/>
11
+ <Param tooltip="Avoid all the collapses that should cause a topology change in the mesh (like closing holes, squeezing handles, etc). If checked the genus of the mesh should stay unchanged." type="RichBool" description="Preserve Topology" value="false" name="PreserveTopology"/>
12
+ <Param tooltip="Each collapsed vertex is placed in the position minimizing the quadric error.&#xa; It can fail (creating bad spikes) in case of very flat areas. &#xa;If disabled edges are collapsed onto one of the two original vertices and the final mesh is composed by a subset of the original vertices. " type="RichBool" description="Optimal position of simplified vertices" value="true" name="OptimalPlacement"/>
13
+ <Param tooltip="Add additional simplification constraints that improves the quality of the simplification of the planar portion of the mesh, as a side effect, more triangles will be preserved in flat areas (allowing better shaped triangles)." type="RichBool" description="Planar Simplification" value="false" name="PlanarQuadric"/>
14
+ <Param tooltip="How much we should try to preserve the triangles in the planar regions. If you lower this value planar areas will be simplified more." type="RichFloat" description="Planar Simp. Weight" value="0.001" name="PlanarWeight"/>
15
+ <Param tooltip="Use the Per-Vertex quality as a weighting factor for the simplification. The weight is used as a error amplification value, so a vertex with a high quality value will not be simplified and a portion of the mesh with low quality values will be aggressively simplified." type="RichBool" description="Weighted Simplification" value="false" name="QualityWeight"/>
16
+ <Param tooltip="After the simplification an additional set of steps is performed to clean the mesh (unreferenced vertices, bad faces, etc)" type="RichBool" description="Post-simplification cleaning" value="true" name="AutoClean"/>
17
+ <Param tooltip="The simplification is applied only to the selected set of faces.&#xa; Take care of the target number of faces!" type="RichBool" description="Simplify only selected faces" value="false" name="Selected"/>
18
+ </filter>
19
+ <filter name="Repair non Manifold Edges by removing faces"/>
20
+ </FilterScript>
@@ -7,8 +7,11 @@ from copy import copy
7
7
 
8
8
  class MujocoLoader():
9
9
 
10
- def __init__(self, file, visualsOnly=True):
10
+ def __init__(self, file, visualsOnly=True, defaultConType='0', basePos=[0,0,0], baseQuat=[0,0,0,1]):
11
+ ry.params_add({'cd_into_mesh_files': False})
12
+
11
13
  self.visualsOnly = visualsOnly
14
+ self.defaultConType = defaultConType
12
15
  self.debug_counter = 0
13
16
  self.muj2rai_joint_map = {
14
17
  '1 0 0': ry.JT.hingeX,
@@ -32,7 +35,8 @@ class MujocoLoader():
32
35
  self.C = ry.Config()
33
36
  self.base = self.C.addFrame('base')
34
37
  self.base.addAttributes({'multibody':True})
35
- self.base.setQuaternion([0,0,0,1])
38
+ self.base.setPosition(basePos)
39
+ self.base.setQuaternion(baseQuat)
36
40
  self.add_node(root, self.base, path, 0)
37
41
 
38
42
  def as_floats(self, input_string):
@@ -104,7 +108,7 @@ class MujocoLoader():
104
108
  for i, joint in enumerate(body.findall('./joint')):
105
109
  axis = joint.attrib.get('axis', None)
106
110
  limits = joint.attrib.get('range', None)
107
- joint_name = joint.attrib.get('name', f'{body_name}_joint{i*'_'}')
111
+ joint_name = joint.attrib.get('name', f'{body_name}_joint{i*"_"}')
108
112
  f_origin = self.C.addFrame(f'{joint_name}_origin')
109
113
  f_origin.setParent(f_body)
110
114
  self.setRelativePose(f_origin, joint.attrib)
@@ -145,7 +149,7 @@ class MujocoLoader():
145
149
  f_body.setParent(f_parent, True)
146
150
 
147
151
  for i, geom in enumerate(body.findall('./geom')):
148
- isColl = ('contype' in geom.attrib and geom.attrib.get('contype', '')!='0') or 'col' in geom.attrib.get('class','')
152
+ isColl = geom.attrib.get('contype', self.defaultConType)!='0' or 'coll' in geom.attrib.get('class','')
149
153
  if self.visualsOnly and isColl:
150
154
  continue
151
155
 
@@ -185,23 +189,24 @@ class MujocoLoader():
185
189
 
186
190
  elif geom.attrib['type']=='box':
187
191
  assert len(size)==3
188
- f_shape.setShape(ry.ST.box, [2.*f for f in size])
192
+ size = [2.*f for f in size]
193
+ f_shape.setShape(ry.ST.box, size)
189
194
  if geom.attrib.get('material', None):
190
195
  texture_path = self.materials[geom.attrib.get('material', None)]
191
196
  if len(texture_path.split()) == 4: # Is a color rgba
192
197
  f_shape.setColor(self.as_floats(texture_path))
193
198
  else:
194
199
  print('applying to box:', texture_path)
195
- #TODO incorperate <texrepeat> tag correctly
200
+ #TODO incorperate <texrepeat> tag correctly
196
201
  uv_coords = np.array([
197
202
  [0, 0], # vertex 0
198
- [1, 0], # vertex 1
199
- [1, 1], # vertex 2
200
- [0, 1], # vertex 3
201
- [0, 0], # vertex 4
202
- [1, 0], # vertex 5
203
- [1, 1], # vertex 6
204
- [0, 1] # vertex 7
203
+ [size[0], 0], # vertex 1
204
+ [size[0], size[1]], # vertex 2
205
+ [0, size[1]], # vertex 3
206
+ [0, 0], # vertex 0
207
+ [size[0], 0], # vertex 1
208
+ [size[0], size[1]], # vertex 2
209
+ [0, size[1]], # vertex 3
205
210
  ])
206
211
 
207
212
  f_shape.setTextureFile(texture_path, uv_coords)
robotic/test.py ADDED
@@ -0,0 +1,15 @@
1
+ import point_cloud_utils as pcu
2
+
3
+ # v is a [n, 3] shaped NumPy array of vertices
4
+ # f is a [m, 3] shaped integer NumPy array of indices into v
5
+ # n is a [n, 3] shaped NumPy array of vertex normals
6
+ v, f, n = pcu.load_mesh_vfn("bunny.ply")
7
+
8
+ # Generate barycentric coordinates of random samples
9
+ num_samples = 1000
10
+ fid, bc = pcu.sample_mesh_random(v, f, num_samples)
11
+
12
+ # Interpolate the vertex positions and normals using the returned barycentric coordinates
13
+ # to get sample positions and normals
14
+ rand_positions = pcu.interpolate_barycentric_coords(f, fid, bc, v)
15
+ rand_normals = pcu.interpolate_barycentric_coords(f, fid, bc, n)
robotic/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '0.2.9.dev2'
1
+ __version__ = '0.3.0'
@@ -12,9 +12,9 @@ def print_attrs(name, obj):
12
12
  if isinstance(obj, h5py.Dataset):
13
13
  print(' ', name, obj.name, obj.shape, obj.dtype, f'{obj.size*obj.dtype.itemsize/1024:.2f}kB')
14
14
  if obj.dtype=='int8':
15
- print(''.join([chr(x) for x in obj[()]]))
15
+ print(' ', ''.join([chr(x) for x in obj[()]]))
16
16
  elif obj.size<20:
17
- print(obj[()])
17
+ print(' ', obj[()])
18
18
  else:
19
19
  print('---', name)
20
20
 
@@ -0,0 +1,74 @@
1
+ #!python
2
+
3
+ # from config_mujoco import *
4
+ # from config_urdf import *
5
+ # from mesh_helper import *
6
+ from robotic.src.yaml_helper import *
7
+ import robotic as ry
8
+ import argparse
9
+ import glob
10
+ import os
11
+
12
+ parser = argparse.ArgumentParser(
13
+ description='Utility to clean meshes in meshes/')
14
+
15
+ parser.add_argument('file', type=str, help='urdf file', nargs='?', default='none')
16
+
17
+ parser.add_argument('-view', help='view mesh', action="store_true", default=True)
18
+ parser.add_argument('-flipDaeYZ', help='view mesh', action="store_true", default=False)
19
+ parser.add_argument('-pruneRigidJoints', help='view mesh', action="store_true")
20
+ parser.add_argument('-recomputeInertias', help='view mesh', action="store_true")
21
+ parser.add_argument('-processMeshes', help='view mesh', action="store_true", default=True)
22
+ parser.add_argument('-meshlab', help='apply meshlab filters', action="store_true", default=False)
23
+
24
+ def main():
25
+ args = parser.parse_args()
26
+
27
+ if args.file=='none':
28
+ # args.file = '/home/mtoussai/git/rai-robotModels/pr2/pr2.urdf'
29
+ args.file = '/home/mtoussai/git/rai-robotModels/panda/panda_arm_hand.urdf'
30
+ # args.file = '/home/mtoussai/git/rai-robotModels/g1/g1_description/g1_29dof.urdf'
31
+ # args.file = '/home/mtoussai/git/rai-robotModels/ranger/ranger_mini.urdf'
32
+
33
+ print('=== URDF CONVERT ===', args.file)
34
+
35
+ path, file = os.path.split(args.file)
36
+ filebase, _ = os.path.splitext(file)
37
+
38
+ if args.flipDaeYZ:
39
+ ry.params_add({'assimp/daeFlipYZ': False})
40
+
41
+ C = ry.URDFLoader(args.file, visualsOnly=True, meshPathRemove='package://').C
42
+
43
+ C.processStructure(args.pruneRigidJoints, True, False, False)
44
+ C.processInertias(args.recomputeInertias)
45
+ C.processStructure(args.pruneRigidJoints, True, False, False)
46
+
47
+ os.system('rm -Rf meshes/')
48
+ C.writeMeshes('meshes/', copyTextures=True)
49
+
50
+ print('#frames: ', C.getFrameDimension())
51
+ with open(f'{filebase}_conv.g', 'w') as fil:
52
+ #yaml.dump(C.asDict(), file, default_flow_style=False)
53
+ fil.write(C.write())
54
+
55
+ yaml_write_dict(C.asDict(), f'{filebase}_conv.yml')
56
+
57
+ C.view(True)
58
+ # C.animate()
59
+
60
+ if args.processMeshes:
61
+ for file in sorted(glob.glob('meshes/*.h5')):
62
+
63
+ M = ry.MeshHelper(file)
64
+ if M.mesh is None:
65
+ continue
66
+
67
+ M.repair(mergeTolerance=1e-4)
68
+ print(' watertight:', M.mesh.is_watertight)
69
+ print(' oriented:', M.mesh.is_winding_consistent)
70
+ M.report()
71
+ M.export_h5()
72
+
73
+ if __name__ == "__main__":
74
+ main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotic
3
- Version: 0.2.9.dev2
3
+ Version: 0.3.0
4
4
  Summary: Robotic Control Interface & Manipulation Planning Library
5
5
  Home-page: https://github.com/MarcToussaint/robotic/
6
6
  Author: Marc Toussaint
@@ -46,19 +46,15 @@ Lab](https://argmin.lis.tu-berlin.de/)) operate our robots.
46
46
  * Tests:
47
47
 
48
48
  ry-info
49
-
50
49
  ry-test
51
50
 
52
- python3 -c 'import robotic as ry; ry.test.RndScene()'
53
-
54
- ry-view `python3 -m site --user-site`/robotic/rai-robotModels/scenarios/pandaSingle.g
55
-
56
51
  * Run all tutorial notebooks as a test and showcase (takes long):
57
52
 
58
53
  pip install jupyter nbconvert matplotlib ipympl
59
54
  git clone https://github.com/MarcToussaint/rai-tutorials.git
60
55
  cd rai-tutorials
61
56
  make run -j1
57
+ make run_demos -j1
62
58
 
63
59
  * Tested in latest ubuntu docker (using a venv):
64
60
 
@@ -74,7 +70,7 @@ Lab](https://argmin.lis.tu-berlin.de/)) operate our robots.
74
70
 
75
71
  ## Installation from source with real Franka & realsense support
76
72
 
77
- This assumes a standard Ubuntu 22.04 (or 20.04, 18.04) machine.
73
+ This assumes a standard Ubuntu 24.04 (or 22.04, 20.04) machine.
78
74
 
79
75
  * Install Ubuntu and python packages:
80
76
 
@@ -1,25 +1,23 @@
1
1
  robotic/DataGen.pyi,sha256=Psut6_CMYC1lkRWIfpem1vjiHeDA1bDRYh5WmALUuDw,3239
2
- robotic/__init__.py,sha256=OkuazBQE-7JL2TRG45oMCeG0l1VLs5bciAN-ox1xz9M,422
3
- robotic/_robotic.pyi,sha256=dp4LZWFnddd6Eu_f56vxGhOkwJ5A9mF5GcGUU3wMYPw,74136
4
- robotic/_robotic.so,sha256=aCREl5EnDxcEvLjJZtscTkfVdyZEm2BTkC0coTWT9Q0,1234688
5
- robotic/cleanMeshes.py,sha256=42T9WwN_cn4u_s_BzN2eRfBQxmZTEQ6ZYPBtsesA5BM,1678
6
- robotic/librai.so,sha256=gEHvVF7zEMmq89zNpPWTLcS_yDzfUwLgCDCh3x7-aec,38787680
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
7
6
  robotic/manipulation.py,sha256=EhM_Zuv3vl8H4SBNqqYMD3NT9AzFUpOhr4PIzM4U7tM,22374
8
- robotic/meshTool,sha256=w48RDT5rQ_jrgp-fO3dwVrEGI7ONTFxW66XhwwrPToU,48072
7
+ robotic/meshTool,sha256=AWNp8WLaNlttZMHFyrBxy7eKkeTXUzxQP_38mjNyBcQ,52176
9
8
  robotic/mujoco-import.py,sha256=6zZTUvl6GuxSQrTnMW2y4Iy8iL7RuRbfZET-KiqO1Fg,363
10
9
  robotic/nlp.py,sha256=n9_hOj3i707DdL_r49Yd2eWyjsSOahW8DmJrEhQlNFw,3200
11
10
  robotic/render.py,sha256=OE1dvyWHD7Oyzk4wlhXZ7m3v3xxa3zAL5_LCV1RgJXk,4662
12
11
  robotic/ry-bot,sha256=nd2yWqaDsFbwAmr7ySdOjq06ek0E1FMHTxPRO-7e2Q8,2294
13
- robotic/ry-h5info,sha256=TivZP5k6Xj0oihWO4cCQQ8wS-dGH5hUMkRQ5nBeu_iE,802
12
+ robotic/ry-h5info,sha256=BRBpQSkzO13rcEJx4hJ8vNm_HXPHlSL_lmx9qDn-9LA,824
14
13
  robotic/ry-info,sha256=GRj4oMCgTCGRF2wxtYxiFvETROB92rwwtUFb6S_Eo7g,439
15
14
  robotic/ry-meshTool,sha256=h4f4wFPNaey3ziz870SrEvy6SsQSL-ZnR_cH3UuAZxE,101
16
15
  robotic/ry-test,sha256=yikBKckTos-lPTcazB5zCssW0H9qIj1-QPlRL39gQgs,981
17
- robotic/ry-urdf2rai,sha256=88CFu5ikKsjy4wQixvCZqtNOqCheBiT18cjZfOsJA8A,7736
18
- robotic/ry-urdf2yaml,sha256=D36MR8Ui6Ry9V0TqJOBaPCWC89OZa43Fytz4P7Y4v0w,8543
19
- robotic/ry-urdfConvert.py,sha256=0zJ9Y6ClrfHdEcBqHT39ZFz-ZntHu8fXgws25vc28a4,2444
16
+ robotic/ry-urdfConvert.py,sha256=8Efnq3PU202rrZrVEZiGwzFOJdvrLjTJ2q-gnY6-tiU,2556
20
17
  robotic/ry-view,sha256=T1Omn1QS7cNAtjQhBjMJTNz7aW5FgoOf9vBIfW0mFME,613
18
+ robotic/test.py,sha256=8hiDRB2kB37hE5cZ7h26AJDnSGYb1y8DwOrcEGD_5Hc,620
21
19
  robotic/test.pyi,sha256=vVxwRSerjUG4bpB7pIhof7ZatrBqwg3Bj5voywa-YTI,917
22
- robotic/version.py,sha256=Y-GMeX72OrmNR-dHSwKfIkJndwzU3txGbwJZkhNClWI,27
20
+ robotic/version.py,sha256=3wVEs2QD_7OcTlD97cZdCeizd2hUbJJ0GeIO8wQIjrk,22
23
21
  robotic/include/rai/Algo/MLcourse.h,sha256=TGkAJWC5ollGfPw0-gcYL0TZeDJiHtWFzkHSMK8_lqU,1828
24
22
  robotic/include/rai/Algo/RidgeRegression.h,sha256=VXiv6-xr3j--CN7DJTzUg9Xb49zV9FZ9dwzxP1CmcPM,3730
25
23
  robotic/include/rai/Algo/SplineCtrlFeed.h,sha256=9ZtYLHXx9sExj0lZV6F5ZWaCtkm0R4hMiYb-KJjktnc,3339
@@ -32,7 +30,7 @@ robotic/include/rai/Algo/hungarian.h,sha256=RcO0vEzy638pOCqKNv_xWJvOvB1XSAYYjj3C
32
30
  robotic/include/rai/Algo/kalman.h,sha256=c3i6ebYHZtyT5ReTmpJVx8aJ26JWLymqK_QRDY4-7GU,744
33
31
  robotic/include/rai/Algo/minimalSpanningTree.h,sha256=56zTSWdMi4TMjtQDVv7tHo4ahivfidTXWN4zp9NX-Jw,512
34
32
  robotic/include/rai/Algo/priorityQueue.h,sha256=nF-5_eSbGjXMmY2K3SpD-Hxwb3bhFA1ilr6IBsFq87Q,1938
35
- robotic/include/rai/Algo/rungeKutta.h,sha256=4j78OS20S_1Ai7S2i2IL_y65MltBk7H8YfPyo3DI208,1730
33
+ robotic/include/rai/Algo/rungeKutta.h,sha256=Kbqeu-MauQDQnmKXSRk3VnOLUY_ngKzy-rqSskBqR9k,1761
36
34
  robotic/include/rai/Algo/spline.h,sha256=sc36vGI2Ypm1bAo1bgu1mB8D2I4pHlmvHKonmrQi4v4,4358
37
35
  robotic/include/rai/Control/CtrlMsgs.h,sha256=61lxkvpcVB2ZAL7qmB35CJ1KkhZUB27lUJ4ZMiFH0Co,2406
38
36
  robotic/include/rai/Control/CtrlObjective.h,sha256=fC-6cS0X0RR_7ooFm1xnAXlN2mgyF26qKfTjomUK45U,2591
@@ -43,17 +41,17 @@ robotic/include/rai/Control/CtrlTargets.h,sha256=FRjAi9KwDL2-5ziKYP5g_-uR234SdPw
43
41
  robotic/include/rai/Control/RTControllerSimulation.h,sha256=iDpVRfivTlGS7DVWxVrS-xzCdVWrag1pUHsczZEb0po,1254
44
42
  robotic/include/rai/Control/SecMPC.h,sha256=VpQBxibL9jI6bG31sm4U95vfJlYJDJxIqBDahppixN8,1916
45
43
  robotic/include/rai/Control/ShortPathMPC.h,sha256=bZQ9I7fklqPOk-PwCTvi3xgnLVdVBoJ2j5i1iWwNxfE,938
46
- robotic/include/rai/Control/TimingMPC.h,sha256=oRzYTDuF1kJ-74QGu-jS9pTyrFv-8m0-oogso2WHMXw,1702
44
+ robotic/include/rai/Control/TimingMPC.h,sha256=smnQ72mSk2_FQ_k-rEwGIMdjA50Wa_1FCttyk8Oo7pw,1706
47
45
  robotic/include/rai/Control/WaypointMPC.h,sha256=Pa36-K1yMxszD9EFuLfLayaOe9pTK8cm1qAALLifdeM,811
48
46
  robotic/include/rai/Control/control.h,sha256=_dJefR6WzvdQMaJIYIBuYP8NwoKgNeG4owhQWPxWXzo,765
49
47
  robotic/include/rai/Control/ctrlMsg.h,sha256=uGuwAaKM1UsQW3hTNv4AihW99MJMuow4cxa9-AU9AmA,1121
50
48
  robotic/include/rai/Control/timingOpt.h,sha256=Ne_IH8QuFCID0Sy88LS5i3qkp1nL1FbIgREqSjRctz0,2045
51
- robotic/include/rai/Core/array.h,sha256=YYdSaiZ0o7RoC_Zv6S1oGWMuFBdSrOWIIt-6KuaiO0Q,25290
52
- robotic/include/rai/Core/array.ipp,sha256=bDyJgme109oGzY7u7t2uQk-llz0Oqr2dPmf8jy9JfXs,58464
53
- robotic/include/rai/Core/arrayDouble.h,sha256=ACvesIGz_0UP3G-x7-LlfGzodKB7EVsGeX5z2RbMFx8,28869
49
+ robotic/include/rai/Core/array.h,sha256=YcI48DcBMUYgdlXP4V1dV6juBUe1iCtbKoxWjp4nCxI,26125
50
+ robotic/include/rai/Core/array.ipp,sha256=DNmfosznj0jF-5lXTb8NUejfrVfs_Fw3O0IvvnDfF7M,63560
51
+ robotic/include/rai/Core/arrayDouble.h,sha256=9pr_9g50dFluF2dLgc29bl9o6ri9C84p69fNW2PYqXg,28724
54
52
  robotic/include/rai/Core/defines.h,sha256=hBTgf5EiJ50rQYW1saGw8Ox87aKVFOYVKnFw0jojVW0,6894
55
- robotic/include/rai/Core/graph.h,sha256=x96tKYig_NpN4RxArNjvuQhcNx-EBfjZhJXJktClIuM,20538
56
- robotic/include/rai/Core/h5.h,sha256=FzIP0eLL7XYg5eRjJgfPIt9SwY5HBaazy4ddoCcpkSU,1057
53
+ robotic/include/rai/Core/graph.h,sha256=qIpLS_-ey89--kwJ1NbpQEJONTpWMV2FV90a_AgQRVw,20996
54
+ robotic/include/rai/Core/h5.h,sha256=cfs8cew5QYpOxbWFZHV9TXVh5_dEJdFF1-aGZVR54EY,1162
57
55
  robotic/include/rai/Core/thread.h,sha256=wjwvXACwI8B6rhZSf2UDruWUb8kT9Xjm-VE-OnUQpwk,18248
58
56
  robotic/include/rai/Core/util.h,sha256=qcP8KmyVZ1Ht8pmqfAme_SRjQX5mDpuV4iKl56zyG2o,19453
59
57
  robotic/include/rai/Core/util.ipp,sha256=soCVdpzWTpLL9i6rilFPNGozHZP40yhkmuXul7gHC7o,2157
@@ -65,10 +63,10 @@ robotic/include/rai/DataGen/rndStableConfigs.h,sha256=bIz2RovkruMjYaaDwJIkyevsF6
65
63
  robotic/include/rai/DataGen/shapenetGrasps.h,sha256=QWv85YMGtW_X9ldKu4eZuoRNdQeIYtVTx1XIsk3Pbvg,1589
66
64
  robotic/include/rai/Geo/assimpInterface.h,sha256=2Jg7v2GZ83nz4kkgPLzbSWTIBmL9nZg-LhMlWcjiF_o,1055
67
65
  robotic/include/rai/Geo/depth2PointCloud.h,sha256=0mXJnTk0sMB--KDE9CO_2gKgGw4gHXUe7xg6DcROhvk,1168
68
- robotic/include/rai/Geo/fclInterface.h,sha256=iNdxNc_DSOgYCLyCajxP8lxdnrNcyoKQmjUlVmjxjQM,940
69
- robotic/include/rai/Geo/geo.h,sha256=H9DEqvd4-vL2gOJkY_UbnvCHpN43g_gJh3LefxhpCd4,14660
70
- robotic/include/rai/Geo/mesh.h,sha256=g_4mfHRP2d5ypqy990eU-u9xo1YvOWepQZDC7XI0MwE,6765
71
- robotic/include/rai/Geo/pairCollision.h,sha256=kFEtQpkgPV_VKJ6YBDBKdb3ko62_s7HKDUti0kB2yYI,4374
66
+ robotic/include/rai/Geo/fclInterface.h,sha256=d89JFW3WKI64gOdQSGs6uFdE7NcMavNg89BMHhzMDac,984
67
+ robotic/include/rai/Geo/geo.h,sha256=9_hpJsINF7Fpc6hb41LPsz9A_tCp48QgfB1HqAAeklU,14858
68
+ robotic/include/rai/Geo/mesh.h,sha256=9tXbU-uuuBv56JUEHjZrGs_WZRCOC4HA2yd4Ex_P12g,6904
69
+ robotic/include/rai/Geo/pairCollision.h,sha256=DOrRoKrYFHM_--h1Ubcgc7tc3xt6KyxA0ezLRCn5IaM,4256
72
70
  robotic/include/rai/Geo/qhull.h,sha256=dRAAHIdvujPPW1fXW4hXMjgixpBDajDg-y_OX1JMi_0,1890
73
71
  robotic/include/rai/Geo/signedDistanceFunctions.h,sha256=hrC838CsYWQ6TXm536iNRwB8W5-62LNb-JPqPoDAFPE,4831
74
72
  robotic/include/rai/Geo/stbImage.h,sha256=R5MRPs3KLL-GOipzAN_jdV-pdlBCTkUFaA5LnYEIElw,100
@@ -90,14 +88,14 @@ robotic/include/rai/Geo/ccd_rai/support.h,sha256=B9KBuOctG7Hx-e1TXpnkU667WVH7SP4
90
88
  robotic/include/rai/Geo/ccd_rai/vec3.h,sha256=ARkNnQz8yWf_Cs3vgt22zclN1cLeGmwWPTVHVpvmfEA,8115
91
89
  robotic/include/rai/Geo/ply/ply.h,sha256=_oAXgQ5CyHvUMtPDBxYtOBbnKDVoZf5PKMswisqvOeI,9384
92
90
  robotic/include/rai/Geo/vhacd/VHACD.h,sha256=QT_cT6PPzec_mxKODsS9cJGr6nBt6S8cUJF7dCeBQCc,258343
93
- robotic/include/rai/Gui/RenderData.h,sha256=PpNfJ6-k2mPTMv2CemQ8Ki8rPzQWrburopSgtosvb-k,4897
91
+ robotic/include/rai/Gui/RenderData.h,sha256=SQEJbq1lTdCBsbMx8Yo6Dk_EPpQ2pNxM5l9D9xVU-qk,4986
94
92
  robotic/include/rai/Gui/color.h,sha256=4ElBkpWgwBuqQEFD4Mdhv_afZE4ul6NkptwFQ2oDS5o,2596
95
- robotic/include/rai/Gui/opengl.h,sha256=sRvOz-QGHwgrf11UiQV4At4G2FjClveTTJorXyer1Fw,9036
93
+ robotic/include/rai/Gui/opengl.h,sha256=d0Ww1xnRb0JMxzGNzVwQT0F2MDQuD5VJCWOvDXYudm8,9024
96
94
  robotic/include/rai/Gui/plot.h,sha256=xhTBY84UN4KpgZsX7SJQGqVKd1jU7jojGVKFv02v0xU,2341
97
95
  robotic/include/rai/KOMO/PathSmoother.h,sha256=y-t3yVEZvxfQIs8_EA-WI7FJ_RzfbG8TEfdiNAruuUI,813
98
- robotic/include/rai/KOMO/komo.h,sha256=5TR2IVJzMkWB6oH7NCl1X5OiYtM_OERmf_UPLBaEOlQ,13249
96
+ robotic/include/rai/KOMO/komo.h,sha256=9p3lX7X1mr-EYclUzCWQDMagI_ac-Silo0LtTuOXoJY,13389
99
97
  robotic/include/rai/KOMO/komo_NLP.h,sha256=kSzUMDmw4yzAXtpNB2v38dpw2tBS8n8R_op_T3yS3DQ,3681
100
- robotic/include/rai/KOMO/manipTools.h,sha256=_QUzY5b29DQgVC-gv199sZuABXVfr1b1feB_y7wDt-A,4230
98
+ robotic/include/rai/KOMO/manipTools.h,sha256=WMdCxQB2rTcb3kzbiW9CHDpmGJZcKRqAnT861_iTsH4,4233
101
99
  robotic/include/rai/KOMO/objective.h,sha256=Cl4-KjheRMNWoh_xFas5tLWMKSMlJf-HLDihfqvfcSw,2704
102
100
  robotic/include/rai/KOMO/pathTools.h,sha256=w0Wq6BGLBxG1LAZQBDmmPWTXzwxW3RHj2EX1cm92WeE,3288
103
101
  robotic/include/rai/KOMO/skeleton.h,sha256=NPaMfUMC_sUd3AjlLHTFpxWH4QtnKP_zzvHb2YvEigI,4437
@@ -107,24 +105,24 @@ robotic/include/rai/KOMO/switch.h,sha256=teNNnHFe4h9W5rLlL3TFBsq97ni-RUEhcxw4uVP
107
105
  robotic/include/rai/KOMO/testProblems_KOMO.h,sha256=zpujbYe9Q97Mx_m91LQcPhEW8YVSitzYO_7I8l7M3WI,2882
108
106
  robotic/include/rai/Kin/F_LeapCost.h,sha256=wNAUNgAJjLirMurF67BlFLHtjyuXy1EPr--9XLBe6Wk,556
109
107
  robotic/include/rai/Kin/F_collisions.h,sha256=Atq9LPVOkEuMF-kSHk78cGjaJYwDIbvrTxHmLBJw3yk,2092
110
- robotic/include/rai/Kin/F_forces.h,sha256=xUPLO0g3AU0nemQfPqElvt4SuGfqU2pV-7olCVBCkmM,6694
108
+ robotic/include/rai/Kin/F_forces.h,sha256=tHyBQcKhi4ZdsHoBU5bu7kLWVm611SfEYG_o-vMSDN0,6694
111
109
  robotic/include/rai/Kin/F_geometrics.h,sha256=2yPFycgcmZjXLezxoRL_aaetrZusDgtGyx7GQbfbRrI,2146
112
110
  robotic/include/rai/Kin/F_operators.h,sha256=Nxdk1dPSoN7lW0A5Ns-BSJ_YXFft4iZi9RDOmVn3BJ0,1608
113
111
  robotic/include/rai/Kin/F_pose.h,sha256=QlZnpS4ZTNFBZlH-lpe6sTt2gdbxbjsZTHPqk0T_4AI,5252
114
112
  robotic/include/rai/Kin/F_qFeatures.h,sha256=x4cfFGaVBQSmj9ZetcC25qiGxnvfNMPsWh9zbPa5owE,2212
115
113
  robotic/include/rai/Kin/cameraview.h,sha256=byzJyTxP4Irh0A6gi8ZNndvJ0UFDD8leLfbW9B7laJI,2478
116
114
  robotic/include/rai/Kin/dof_direction.h,sha256=9tio7VXxXAv-ZAxA6QskjD5rMH2LHU4hIGAG6TC0RaY,831
117
- robotic/include/rai/Kin/dof_forceExchange.h,sha256=ZjtIbaO0MU5AGsvtMJdAQJh3Ghfn8XrZavAx1WH4MZk,1823
115
+ robotic/include/rai/Kin/dof_forceExchange.h,sha256=TM-DHiGxaw9g3O5IcN7M7VDWF_8LKKtie3qvPn8Y1dA,1931
118
116
  robotic/include/rai/Kin/dof_particles.h,sha256=PboLndC5a5extUKAfUPAIsJEGTTs6_ACDgnLrei2s8g,790
119
117
  robotic/include/rai/Kin/dof_path.h,sha256=XRPj3bH90JUIdkTS4jxwbAb5n9yAsRoemWUWUV1xDtQ,792
120
118
  robotic/include/rai/Kin/feature.h,sha256=xicsrElMcYnYXdIXdO5LBLmXxvCGVUVgZJY2NIarO5I,3935
121
119
  robotic/include/rai/Kin/featureSymbols.h,sha256=JVXbXoW43PlEGOgwHPpULlbXUQzkl79F1EFnfl-0wyk,1984
122
- robotic/include/rai/Kin/frame.h,sha256=b5ErTzV3nh5XJP-0j_1PauRuwesI55XquAlnKcSlzzM,14543
123
- robotic/include/rai/Kin/kin.h,sha256=lVaOD8oHfjffAOHdwG9EycWMT5lBDCwIib16ZN0CsDI,15790
120
+ robotic/include/rai/Kin/frame.h,sha256=p7uRLEqhrxwKkCOEykOX8GYgl4lQqjG3hheKEAAi4XI,14585
121
+ robotic/include/rai/Kin/kin.h,sha256=g-b4adXdOVmQcQ4gwQCWz1n-llhUCUVvm2JLBNa0DwA,16235
124
122
  robotic/include/rai/Kin/kin_bullet.h,sha256=y8aApXpXY4bD5QN_WmDAU2vNEvvbdo1Rd4zY7qo-FKE,1970
125
123
  robotic/include/rai/Kin/kin_feather.h,sha256=o-hOJA8UcmIBKx_qPzoG9R7fxzz-4zhBNMBmBTK21oA,1627
126
124
  robotic/include/rai/Kin/kin_ode.h,sha256=zwB8Le1WMGRkQBc9bssndJICkjO1lZ_y1aZKCwP4c1Y,3686
127
- robotic/include/rai/Kin/kin_physx.h,sha256=yVNvg-fh0-mbpSlhU2Jc74TM5cTqNnXHRQyhQ8OVhas,1798
125
+ robotic/include/rai/Kin/kin_physx.h,sha256=QfYi_-dIvVm7dFgG2SA3csHeb0peRMEhrf-I6pFOMPQ,1832
128
126
  robotic/include/rai/Kin/proxy.h,sha256=jfFQrvokqvt8bGYEzGQoD2ZpnuWuLzCeOjFfUvdxcx0,1473
129
127
  robotic/include/rai/Kin/simulation.h,sha256=rM08Epf72aiI26z2MPE0sZ6CrnNzolzdzZKhKxw5Zn8,5238
130
128
  robotic/include/rai/Kin/viewer.h,sha256=GzObhDzEnIBYH0Yu_wCX8Cm2GAN5wuk-El09b2Vy_8w,2031
@@ -136,7 +134,7 @@ robotic/include/rai/LGP/LGP_tree.h,sha256=J6W4Qypr70g0EZg30tTZBuca_6_O0sDQAGGv6O
136
134
  robotic/include/rai/LGP/Motif.h,sha256=-1cYCDDxJK3at3LKT2R-qRoum7o7CnziBg30yijt4Ls,592
137
135
  robotic/include/rai/LGP/initFol.h,sha256=m67VqzKUQzMN0kBFL0lWACu0ls7eYj8ExyXVFjuLtDA,507
138
136
  robotic/include/rai/Logic/fol.h,sha256=ubWsZacmrRPGeDPKQVGKDoGC_4GxYGdVLJ0K3a3eZu0,3598
139
- robotic/include/rai/Logic/folWorld.h,sha256=8tocnoOMORvfo23tsDBCD69KfrpbL467PAcCHnVVqkw,6063
137
+ robotic/include/rai/Logic/folWorld.h,sha256=XpqTWOIvZbKlS_vsJkXOexrhjfy3_iywebFezJamhHA,6072
140
138
  robotic/include/rai/Logic/treeSearchDomain.h,sha256=sO5Y6o9wRTQxfST9YyJw3P0KcqGX7ISqbIN-uGQ5abU,3882
141
139
  robotic/include/rai/Optim/BayesOpt.h,sha256=GqOqGk5Y0USf513duMPtt--TBYGqujdsvY2qi17jVxI,1241
142
140
  robotic/include/rai/Optim/GlobalIterativeNewton.h,sha256=WRaTFUrx0A1FO7d7shgZbJVaC5AWKZT5PTD8LnuPXiE,801
@@ -155,11 +153,11 @@ robotic/include/rai/Optim/opt-ipopt.h,sha256=1v147tZVY3MuNMRLaFFWxKC7fyNP5-59WJz
155
153
  robotic/include/rai/Optim/opt-nlopt.h,sha256=R0ma9SjxcVU9nI7H39QOWUIPy95H4AiQwLRHz3DRe7k,970
156
154
  robotic/include/rai/Optim/options.h,sha256=JSqHw6agqLkvfvw6kd54KHQ6Hz7xZyHeRkWAumYUag0,1876
157
155
  robotic/include/rai/Optim/primalDual.h,sha256=xHXhAPbZWPVj17ZGpDr4OrLJLYj_G1Wr_k4TCPFBiHc,1272
158
- robotic/include/rai/Optim/testProblems_Opt.h,sha256=GBzuiO5lI3tSh9sHzhQuf5bElr3eejFbYHWAXYiUAdg,6532
159
- robotic/include/rai/Optim/utils.h,sha256=lZcBjPtYl0JDY-DfjYOlOBBR-nRqu67XgYPF6nxfspU,3515
160
- robotic/include/rai/PathAlgos/ConfigurationProblem.h,sha256=xNtvq0sK9sTtpWd_c8X6yzoYmFkACOvv_9VIRbG6R8s,1311
156
+ robotic/include/rai/Optim/testProblems_Opt.h,sha256=rYPVdz7y1pkmzJH6aIw3pQ6JqN2_HhJ50CAAdsL2r9A,6531
157
+ robotic/include/rai/Optim/utils.h,sha256=VMTSVUcg3UWN8RhBYSSyqoBCa_AcUrZ_7zvcz3XWEC0,3517
158
+ robotic/include/rai/PathAlgos/ConfigurationProblem.h,sha256=6Mr3MjD3T3lG3OCCDLKrPRA6WddIFpbRRl_O1gVFP5U,1329
161
159
  robotic/include/rai/PathAlgos/PathResult.h,sha256=xxZiD8ClGKO719mQR50BsIzOlHeoH0UH4QNzWifoz6c,1070
162
- robotic/include/rai/PathAlgos/RRT_PathFinder.h,sha256=T_2Hvra_qWFOg32t--WONo6AEuc81JtP7Fb24Wksn44,3288
160
+ robotic/include/rai/PathAlgos/RRT_PathFinder.h,sha256=44ahBizEoW1HgXh5LPgIL9poCIgaaTiTUeHsfV8Q5kI,3282
163
161
  robotic/include/rai/Perception/audio.h,sha256=HQPC8bmOv4Mdfl8f71eUmKFlRE0_N_spY3bg6YJzduo,1105
164
162
  robotic/include/rai/Perception/avutil.h,sha256=RlxtNGw8mvKYrWI7Sy8neILBDb1SF2wuf4hFKjPx-4w,802
165
163
  robotic/include/rai/Perception/colorseg.h,sha256=1zax9KZGSJcTZ7MTnLZBSbHlZsJqQ1NkvU6cStzQ4vc,2314
@@ -193,8 +191,7 @@ robotic/include/rai/ry/py-Simulation.h,sha256=Kc4e6pK1yQyxDMCQu1HvXOYt9IlUiojBYF
193
191
  robotic/include/rai/ry/py-Spline.h,sha256=gR8Cvwt5PlzlolxegS1wUEEOQj9RydOp1gS67Zxm0jk,433
194
192
  robotic/include/rai/ry/py-tests.h,sha256=-l_0V-yRqeOEztqCo_BAdcKCAMovyd8-9tnrytM5pQM,432
195
193
  robotic/include/rai/ry/types.h,sha256=KQ_byer3O3iFnrtBNyg5sptEfCsujbEeo6edOHSNzaM,8495
196
- robotic/rai-robotModels/g1/g1.g,sha256=0bzOmI8Cb3cfQj5801khoVTjwDqbCQcpNWl6iy8vf3s,172
197
- robotic/rai-robotModels/g1/g1_29dof_conv.g,sha256=JGWXXdtj2diFPjGAh7yZ5EBcFc_HsZK6eBafGO9EsEY,13288
194
+ robotic/rai-robotModels/g1/g1.g,sha256=9lA31eCRoFENw9Nbg04KoX3diIIQYKz981oRYNKLvO4,499
198
195
  robotic/rai-robotModels/g1/g1_clean.g,sha256=jXlPAlL02pPSybl5DgazO0Qf96wAg2tbVwXKYh9e5XQ,11883
199
196
  robotic/rai-robotModels/g1/meshes/head_link.h5,sha256=7Gnh6fTAHrUp_8O70hmKKGFVW3246-yUdHqCGEuzK14,253939
200
197
  robotic/rai-robotModels/g1/meshes/left_ankle_pitch_link.h5,sha256=2LKu5c-bPbGf8Q0tys5cHS0c38A7Nm39Vpa2ZyyE_Qc,23677
@@ -233,10 +230,11 @@ robotic/rai-robotModels/g1/meshes/waist_roll_link.h5,sha256=n98tspx87SX7J0lcHZMG
233
230
  robotic/rai-robotModels/g1/meshes/waist_support_link.h5,sha256=ixpmHi4U4F5Hl86aU4RwU13jBH_C_jEvbCkqkjEjMRM,45034
234
231
  robotic/rai-robotModels/g1/meshes/waist_yaw_link.h5,sha256=GXkMr0tmYUvKPW5iKv8xdHYtTSppV1FLAzjv3538NtE,94546
235
232
  robotic/rai-robotModels/objects/kitchen.g,sha256=PLi7un2u3I29Mcngc08-9J3ocTU_c5TYlXplYXTgQHU,1223
236
- robotic/rai-robotModels/objects/shelf.g,sha256=9_CH-LPhcvShNxmqOueMckNK70uWeRdkSFfanvp4z-w,817
233
+ robotic/rai-robotModels/objects/shelf.g,sha256=ZZb8kTKrhIY9I4U_sFuGgf5V4GcNH_Zd-l7eHbAg54s,808
237
234
  robotic/rai-robotModels/objects/tables.g,sha256=z9GifBjAaCbu3Y2ISmzhVyU9_mw2NlR87eAyj0vNYnI,455
238
- robotic/rai-robotModels/panda/panda.g,sha256=AwffmpG0rOJoPuUfzMuC-tompC1580GNtxdqhjCxI2o,2675
239
- robotic/rai-robotModels/panda/panda_arm_hand_conv.g,sha256=5zIWN5wW7zL0fvjlQFN3Do-fmDK1IiXeh1_QKcIVdbY,3372
235
+ robotic/rai-robotModels/panda/panda.g,sha256=VNmWPo9s3GOeWXw7FAr8CeVL_R3W6GmDUgGFOu2A4dA,2677
236
+ robotic/rai-robotModels/panda/panda_arm_hand_conv.g,sha256=BVDQNIAwPB45rrvLX-WYw3Ys44jeqS9upi8RCV31UcY,2296
237
+ robotic/rai-robotModels/panda/panda_arm_hand_conv.yml,sha256=_YP4vVVKeScSPNLRRkkiH2fnHuFUQgt12O1RnWV5mTY,2486
240
238
  robotic/rai-robotModels/panda/panda_clean.g,sha256=6EShzBmEa2R5sJRhnGRXwLWcyjRybFY3Su-hdwz55yw,3168
241
239
  robotic/rai-robotModels/panda/panda_deformable.g,sha256=DvkhnJYSXc1S_GRBM3iJOm6WovKYrsckzAW-rXxLqH8,6037
242
240
  robotic/rai-robotModels/panda/panda_gripper.g,sha256=CB_rY6PUTdpgNsSvvAQ967t2Sm6r0B59rUqaVCZCmvA,862
@@ -251,10 +249,10 @@ robotic/rai-robotModels/panda/meshes/link4.h5,sha256=BLYmj5sOiAAfKGNJdoXII0Sl2Ie
251
249
  robotic/rai-robotModels/panda/meshes/link5.h5,sha256=TbrDtvaUYwrFJO8KKhCSF0fOZ8e6rC7GQ5xGtMrxud4,254542
252
250
  robotic/rai-robotModels/panda/meshes/link6.h5,sha256=vWc78TMcfY5l8_dTLmypJiKsQx9Llb47BcfACXd2tOA,309727
253
251
  robotic/rai-robotModels/panda/meshes/link7.h5,sha256=x-xcLQT0g3vrvdYhaVbX57LRrz9DT8nZFW6YN6oT0-0,172303
254
- robotic/rai-robotModels/pr2/pr2.g,sha256=FUih-DnSyx_UhdgJbMgGB-VLK8nWipk8kFIkbjd7POU,2352
255
- robotic/rai-robotModels/pr2/pr2_clean.g,sha256=iUg-pVDogbUAd6nuwIIRyb71EoVPx-llRcx_-xt17U0,28053
252
+ robotic/rai-robotModels/pr2/pr2.g,sha256=h1bQcK6_BjriokfVyae-T3i774Mm5Wo8-5Lpu0Ap1W8,2352
253
+ robotic/rai-robotModels/pr2/pr2_clean.g,sha256=Ng1MRoWuf1dUVSyA_KfA9Nfg0IVRSRVIHcT6GE3Rsgw,26874
256
254
  robotic/rai-robotModels/pr2/pr2_conv.g,sha256=XIxIBSz5h_luzKBga2ZP2rKOLi0Cp2w0Z65NpdFUFf8,25950
257
- robotic/rai-robotModels/pr2/pr2_modifications.g,sha256=j8ZwuJO2i6su4Tv-hCvDY7dyRMCFNJ5qWgRk9NcWZkQ,4675
255
+ robotic/rai-robotModels/pr2/pr2_modifications.g,sha256=3CgSjGVbO-T-RNCSqAXJJuyQxwZTNNPoYgr73iA-EyI,4659
258
256
  robotic/rai-robotModels/pr2/pr2_modify_fixGrippers.g,sha256=kgMG39nOyMoBoBPZLlzvjm0bIa10KB8g8y5nskt1onc,712
259
257
  robotic/rai-robotModels/pr2/pr2_modify_fixHead.g,sha256=iRlRNiCFbf6w7Qu0tn0j0qbfSTTQw59L857c7UYLsqs,152
260
258
  robotic/rai-robotModels/pr2/pr2_modify_fixLeft.g,sha256=ZKceDnAvEaxIBX0eraFrUddhlEdP7pfIeNeGCVMXp08,364
@@ -294,14 +292,13 @@ robotic/rai-robotModels/pr2/meshes/wheel_color.png,sha256=TTnLNSv7bJ6o4Qoip3WLTC
294
292
  robotic/rai-robotModels/pr2/meshes/wrist_color.png,sha256=b_6yenGLjF7OI0PbvD6KlSEnrE-8COO7Mr7IYqxhN5s,24950
295
293
  robotic/rai-robotModels/pr2/meshes/wrist_flex.h5,sha256=mxKzkKpspBdM1Vl9sOJYas1HepMy0M4rwa4NtvEYHOU,23886
296
294
  robotic/rai-robotModels/pr2/meshes/wrist_roll.h5,sha256=XRDDvGdLSinKxFzdygRRBMW6zLubDqHGqH6CP77kBRw,17980
297
- robotic/rai-robotModels/ranger/ranger.g,sha256=DAZWgD7pey_XCCXhob-6r59ISDwyQvRGZIhy-OOC7hI,1267
295
+ robotic/rai-robotModels/ranger/ranger.g,sha256=wOkVUoZZMUzFLreAT-5-9SfLweZB83MNDyk-h02_hgE,1269
298
296
  robotic/rai-robotModels/ranger/ranger_clean.g,sha256=Ps3u1n0gBorsqs_dfKnXmI-pfOEmB6QY6FWP_MskZmY,2093
299
297
  robotic/rai-robotModels/ranger/ranger_mini_conv.g,sha256=6jNaqgtUuyOMgOTD-SazpsA-JcAz2pkj2Mw5TTzDxd4,2156
300
298
  robotic/rai-robotModels/ranger/meshes/ranger_mini3.h5,sha256=Af2ppMf2YGOUkw7S0jHxFyvBTAsAZVFGeUcgaG5ArAU,235957
301
299
  robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.h5,sha256=zIiMDHGxqaztUyGNeCa-XBBbSoq6Kme0dy4gA7IkWl4,268465
302
300
  robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.h5,sha256=Rs3a7mj3SHgRa31iNNa5RmOMGBdXrpr73GrqaIqRmqs,270937
303
- robotic/rai-robotModels/robotiq/robotiq.g,sha256=LKe8-W5PxIJ1m69XSHOrAno97c0yJyh9K-0zCMdIl4I,1064
304
- robotic/rai-robotModels/robotiq/robotiq_arg2f_85_model_conv.g,sha256=hIHNm6Ic4kEQhqMR7SRGj8n76_bBxIXZkDUIsD88N8g,4008
301
+ robotic/rai-robotModels/robotiq/robotiq.g,sha256=3m_n4NjH7Gfp_ztWIDb-ruR74q9WhElzqkT76KPeToQ,1066
305
302
  robotic/rai-robotModels/robotiq/robotiq_clean.g,sha256=0EyQ_jt7YCRqGqrtXiWKhUcp7LBEmE_9KcWIj17LqV8,3899
306
303
  robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_base_link.h5,sha256=papTdqkLlRzo_svqTXwd9Cp2qJHw2Wnt-Ct31lQCAKQ,331303
307
304
  robotic/rai-robotModels/robotiq/meshes/robotiq_arg2f_85_inner_finger.h5,sha256=TYBns07SFdffSCNRZNh45_jOtprZAAIAO1WDHbvMMi0,34288
@@ -321,7 +318,7 @@ robotic/rai-robotModels/scenarios/mobileMini.g,sha256=I7SE9YUUciZ1JrJG6BIAZ9Oho_
321
318
  robotic/rai-robotModels/scenarios/pandaFloatingGripper.g,sha256=zYo9T6aFWREpP2gnME0iFwOErKR8Ram2gndnZ9s-xXA,1498
322
319
  robotic/rai-robotModels/scenarios/pandaSingle.g,sha256=H_UnXdMUbk16os9StOZB0PZMPL3FaGbCAZy0uUAKEKA,1147
323
320
  robotic/rai-robotModels/scenarios/panda_fixGripper.g,sha256=bhkRey6igLb18HlOFj7CpAjqF6R7Z3saxevipHAn4W0,337
324
- robotic/rai-robotModels/scenarios/panda_fixRobotiq.g,sha256=77KlkNgYLNLz3YrO-OrWNK0QTpr9-KaxsV2F7JfpT_U,1561
321
+ robotic/rai-robotModels/scenarios/panda_fixRobotiq.g,sha256=QVLpZCchSnoouayhIoVQcaWYHaZGVn4pIlj6nkFDHjs,1564
325
322
  robotic/rai-robotModels/scenarios/panda_mobile.g,sha256=Om5rU2C6_GBKcZcRBZ0cTsk2gKxzwoSE-32dxBMQa-8,713
326
323
  robotic/rai-robotModels/scenarios/panda_moveGripper.g,sha256=HyyzCAg8ksvqGxjVrAqh6r16lvifGyjQd7Txa0wkR-Q,1920
327
324
  robotic/rai-robotModels/scenarios/panda_noGripper.g,sha256=FL5vq3ysYJl7f_y9xOBfSTYuB6btJO22f6g2Z-HU1tw,670
@@ -336,12 +333,12 @@ robotic/rai-robotModels/scenarios/walker1.g,sha256=FTi0HxqU2fsKgqLCkdq5VCuc3Q9py
336
333
  robotic/rai-robotModels/scenarios/walker3.g,sha256=zODCp1jzoFNLWs5f98qCkKeEcXxm8TKZ0RzPBFH1qq4,796
337
334
  robotic/rai-robotModels/scenarios/workshop.g,sha256=2Xjh6cPk2xKbdvtDC89eDHZcRv8CxCnvDB2qR7AQWyY,5633
338
335
  robotic/rai-robotModels/scenarios/workshopTable.g,sha256=zDvlVXHQlZV5Ppc9XbUJ6q5XjW1Fni-OsE2NHMdkGpY,4440
339
- robotic/rai-robotModels/tests/arm.g,sha256=5rIvASgj_L7e1aB7h7zq4L-GJjvlPfoTt36sT5DJceI,1671
336
+ robotic/rai-robotModels/tests/arm.g,sha256=wflvWkI0vHApK3XTWIgBgqMMPJkvmsO2wOOsE_QCcRU,1556
340
337
  robotic/rai-robotModels/tests/compound.g,sha256=kwI7G0K5M-EEJDsEq37aEBR-BQGSIzroFUPD2OZGrcU,555
341
338
  robotic/rai-robotModels/tests/pr2Shelf.g,sha256=axlVxDwuLMsNGdOga40nbzK3e6dWEthQEXm25XewNTw,329
342
339
  robotic/rai-robotModels/tests/thin.g,sha256=1bWARayk8TJutfO8CZs3GWCcBwr_oL2SRLLCP1lDMRQ,222
343
- robotic/rai-robotModels/ur10/ur10.g,sha256=fVvNkjdoB2dAF-3Mq-mnj1w7Q9pFiFg04ppniwflDAc,315
344
- robotic/rai-robotModels/ur10/ur10_clean.g,sha256=lQrLiWlr2RmAziR1D-w1xK1Bb_YBhzIfSzObOy2SXFc,2976
340
+ robotic/rai-robotModels/ur10/ur10.g,sha256=kdY50ure-vbOONtoeeRh7XMgoNY8qM1Vv0zzRtwChAU,316
341
+ robotic/rai-robotModels/ur10/ur10_clean.g,sha256=3DnKD69vgV6ybr_W7s6hsFI7witEE6TxsOQ8lvcKwbc,2984
345
342
  robotic/rai-robotModels/ur10/ur10_conv.g,sha256=2Ohq3b3UpA31-4f431zt0YUyYl9Jlh3TJh3kfGcFp30,2301
346
343
  robotic/rai-robotModels/ur10/meshes/base.h5,sha256=sbQdK1120CLJI_LDR5asAq9b1IGu1WfK1SbDb12IbCI,31330
347
344
  robotic/rai-robotModels/ur10/meshes/forearm.h5,sha256=yuIHTdkov2nXep2mOKlSSXRDHk5urpfw86yH5hm30J4,359953
@@ -350,20 +347,21 @@ robotic/rai-robotModels/ur10/meshes/upperarm.h5,sha256=7EscqPPAzKSzbtSCMrgbI_uGh
350
347
  robotic/rai-robotModels/ur10/meshes/wrist1.h5,sha256=4r7yAEKKx5zYoC2NbqL0yjGvX4ilafjrpuNP3oDKsU8,185725
351
348
  robotic/rai-robotModels/ur10/meshes/wrist2.h5,sha256=fJSQ4Jh-ChmwvRYfDobqXssVaBZj8GhpvmPNp1UTrN0,498733
352
349
  robotic/rai-robotModels/ur10/meshes/wrist3.h5,sha256=F8FrYVVp8YBdkgJ6EHKb5r_rm0kyhxf6b8KbwHjeegk,20770
353
- robotic/src/config_mujoco.py,sha256=aHI4GQviEmIASgbnnDAH5WvogN0rjeg2kBprOHB381s,9220
350
+ robotic/src/cleanMeshes.py,sha256=42T9WwN_cn4u_s_BzN2eRfBQxmZTEQ6ZYPBtsesA5BM,1678
354
351
  robotic/src/config_urdf.py,sha256=bbPcJWS9rnYk8CWgEZTmx1XJRBIDrfwgCj-S_RFxl9U,8800
355
352
  robotic/src/mesh_helper.py,sha256=AMSOz3Eew9uJkDm5tFThbfJKcEQCmGyRLN4bZphISNk,16691
353
+ robotic/src/meshlabFilters.mlx,sha256=SCIiIk7XZusvKEKY62pHSem_R3TcMUP8BFaLTVUcnEg,3833
354
+ robotic/src/mujoco_io.py,sha256=6LpOcqQ61Ihwg1BpSIu4YrQGxpR4dvhSt0QuGglgIx0,9477
356
355
  robotic/src/yaml_helper.py,sha256=eCUK6w4FCRpBqNgP7FdVDbJf2H7Y1bfIGzs89nOrAsY,637
357
- robotic-0.2.9.dev2.data/scripts/ry-bot,sha256=LBNbbQeNNNd_tupI5463Xe-RKSD6xy4HGTbJloisCGk,2280
358
- robotic-0.2.9.dev2.data/scripts/ry-h5info,sha256=1qurqBvr2WEM23TZnqNY7tCoAQYrmuRCfr4S3JnsjQI,788
359
- robotic-0.2.9.dev2.data/scripts/ry-info,sha256=fL5QXJL4Xx-Q42L2C29HHbj1XsmWdWiKIv9rVfc5sm4,425
360
- robotic-0.2.9.dev2.data/scripts/ry-meshTool,sha256=h4f4wFPNaey3ziz870SrEvy6SsQSL-ZnR_cH3UuAZxE,101
361
- robotic-0.2.9.dev2.data/scripts/ry-test,sha256=wM2TpyuPGCVtulIi3ux7Okc2beiljTH29lsETCLEKq8,967
362
- robotic-0.2.9.dev2.data/scripts/ry-urdf2rai,sha256=oeLKgNzYKV5yZ_vkvCrw65CY3ZAxL2ssFQQKcRuCNeo,7722
363
- robotic-0.2.9.dev2.data/scripts/ry-urdf2yaml,sha256=Nebu73TLTUx2p40-FLakek9n3y74cRJfRchV0vV0Gf0,8529
364
- robotic-0.2.9.dev2.data/scripts/ry-view,sha256=_GjUbVS2X3AWnlXqIHwU5dofLmUKA2-NUPySgS-QJNI,599
365
- robotic-0.2.9.dev2.dist-info/licenses/LICENSE,sha256=oT-pAsUSXiuMq2_3omR87-GFBeBnegQYixH4Bm_7wag,1071
366
- robotic-0.2.9.dev2.dist-info/METADATA,sha256=yw-RkfzS3o8asUd6H5U4VaQYiUBNCh1Cm-CkzFmiSTo,6716
367
- robotic-0.2.9.dev2.dist-info/WHEEL,sha256=ziAMZrFEBAMOBaTDNVVFwf5i-WiFj1yXRFZ4MRxHC0g,104
368
- robotic-0.2.9.dev2.dist-info/top_level.txt,sha256=x5A4haAZ18y9FpO1IhXSVJ2TFdhVAgT5JMkejHUg_9U,8
369
- robotic-0.2.9.dev2.dist-info/RECORD,,
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,,