robotic 0.2.8.dev5__cp38-cp38-manylinux2014_x86_64.whl → 0.2.9.dev1__cp38-cp38-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.

Files changed (35) hide show
  1. robotic/_robotic.pyi +10 -6
  2. robotic/_robotic.so +0 -0
  3. robotic/import.py +0 -0
  4. robotic/include/rai/Core/graph.h +2 -2
  5. robotic/include/rai/Geo/geo.h +1 -1
  6. robotic/include/rai/Geo/mesh.h +1 -3
  7. robotic/include/rai/Kin/frame.h +2 -2
  8. robotic/include/rai/Kin/kin.h +3 -2
  9. robotic/include/rai/Kin/kin_physx.h +1 -2
  10. robotic/librai.so +0 -0
  11. robotic/meshTool +0 -0
  12. robotic/rai-robotModels/panda/panda_clean.g +11 -11
  13. robotic/rai-robotModels/ranger/meshes/cleanMeshes.mlx +23 -0
  14. robotic/rai-robotModels/ranger/meshes/cleanMeshes.sh +8 -0
  15. robotic/rai-robotModels/ranger/meshes/ranger_mini3.ply +0 -0
  16. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.ply +0 -0
  17. robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.ply +0 -0
  18. robotic/rai-robotModels/ranger/ranger.g +33 -0
  19. robotic/rai-robotModels/ranger/ranger_clean.g +18 -0
  20. robotic/ry-h5info +5 -1
  21. robotic/ry-test +1 -1
  22. robotic/version.py +1 -1
  23. {robotic-0.2.8.dev5.data → robotic-0.2.9.dev1.data}/scripts/ry-h5info +5 -1
  24. {robotic-0.2.8.dev5.data → robotic-0.2.9.dev1.data}/scripts/ry-test +1 -1
  25. {robotic-0.2.8.dev5.dist-info → robotic-0.2.9.dev1.dist-info}/METADATA +1 -1
  26. {robotic-0.2.8.dev5.dist-info → robotic-0.2.9.dev1.dist-info}/RECORD +35 -27
  27. {robotic-0.2.8.dev5.dist-info → robotic-0.2.9.dev1.dist-info}/WHEEL +1 -1
  28. {robotic-0.2.8.dev5.data → robotic-0.2.9.dev1.data}/scripts/ry-bot +0 -0
  29. {robotic-0.2.8.dev5.data → robotic-0.2.9.dev1.data}/scripts/ry-info +0 -0
  30. {robotic-0.2.8.dev5.data → robotic-0.2.9.dev1.data}/scripts/ry-meshTool +0 -0
  31. {robotic-0.2.8.dev5.data → robotic-0.2.9.dev1.data}/scripts/ry-urdf2rai +0 -0
  32. {robotic-0.2.8.dev5.data → robotic-0.2.9.dev1.data}/scripts/ry-urdf2yaml +0 -0
  33. {robotic-0.2.8.dev5.data → robotic-0.2.9.dev1.data}/scripts/ry-view +0 -0
  34. {robotic-0.2.8.dev5.dist-info → robotic-0.2.9.dev1.dist-info}/LICENSE +0 -0
  35. {robotic-0.2.8.dev5.dist-info → robotic-0.2.9.dev1.dist-info}/top_level.txt +0 -0
robotic/_robotic.pyi CHANGED
@@ -363,6 +363,14 @@ class Config:
363
363
  """
364
364
  def get_viewer(self, window_title: str = None, offscreen: bool = False) -> ...:
365
365
  ...
366
+ def processInertias(self, recomputeInertias: bool = True, transformToDiagInertia: bool = False) -> None:
367
+ """
368
+ collect all inertia at root frame of links, optionally reestimate all inertias based on standard surface density, optionally relocate the link frame to the COM with diagonalized I)
369
+ """
370
+ def processStructure(self, pruneNamed: bool, pruneNonContactNonMarker: bool, pruneTransparent: bool) -> None:
371
+ """
372
+ structurally simplify the Configuration (deleting frames, relinking to minimal tree)
373
+ """
366
374
  def report(self) -> str:
367
375
  """
368
376
  return a string with basic info (#frames, etc)
@@ -391,10 +399,6 @@ class Config:
391
399
  ...
392
400
  def set_viewer(self, arg0: ...) -> None:
393
401
  ...
394
- def simplify(self, pruneNamed: bool, pruneNonContactNonMarker: bool, pruneTransparent: bool) -> None:
395
- """
396
- structurally simplify the Configuration (deleting frames, relinking to minimal tree)
397
- """
398
402
  def view(self, pause: bool = False, message: str = None) -> int:
399
403
  """
400
404
  open a view window for the configuration
@@ -449,7 +453,7 @@ class Config:
449
453
  """
450
454
  write the full configuration in a ply mesh file
451
455
  """
452
- def writeMeshes(self, pathPrefix: ...) -> None:
456
+ def writeMeshes(self, pathPrefix: ..., copyTextures: bool) -> None:
453
457
  """
454
458
  write all object meshes in a directory
455
459
  """
@@ -724,7 +728,7 @@ class Frame:
724
728
  """
725
729
  def asDict(self) -> dict:
726
730
  ...
727
- def computeCompoundInertia(self, clearChildInertias: bool = True) -> Frame:
731
+ def computeCompoundInertia(self) -> Frame:
728
732
  ...
729
733
  def convertDecomposedShapeToChildFrames(self) -> Frame:
730
734
  ...
robotic/_robotic.so CHANGED
Binary file
robotic/import.py ADDED
File without changes
@@ -133,8 +133,8 @@ struct Graph : NodeL {
133
133
  //-- basic node retrieval -- users should use the higher-level wrappers below
134
134
  Node* findNode(const char* key, bool recurseUp=false, bool recurseDown=false) const; ///< returns nullptr if not found
135
135
  NodeL findNodes(const char* key, bool recurseUp=false, bool recurseDown=false) const;
136
- Node* findNodeOfType(const std::type_info& type, const char* key, bool recurseUp=false, bool recurseDown=false) const;
137
- NodeL findNodesOfType(const std::type_info& type, const char* key, bool recurseUp=false, bool recurseDown=false) const;
136
+ Node* findNodeOfType(const std::type_info& type, const char* key=0, bool recurseUp=false, bool recurseDown=false) const;
137
+ NodeL findNodesOfType(const std::type_info& type, const char* key=0, bool recurseUp=false, bool recurseDown=false) const;
138
138
  NodeL findGraphNodesWithTag(const char* tag) const;
139
139
 
140
140
  //
@@ -91,7 +91,7 @@ struct Matrix {
91
91
 
92
92
  double diffZero() const;
93
93
 
94
- bool isDiagonal() const { return !m01 && !m02 && !m10 && !m12 && !m20 && !m21; }
94
+ bool isDiagonal() const;
95
95
  void deleteOffDiagonal() { m01=m02=m10=m12=m20=m21=0.; }
96
96
 
97
97
  void write(std::ostream&) const;
@@ -17,7 +17,7 @@ namespace rai { struct Mesh; }
17
17
  typedef rai::Array<rai::Mesh> MeshA;
18
18
  typedef rai::Array<rai::Mesh*> MeshL;
19
19
  struct ANN;
20
- struct SharedTextureImage{ byteA img; uint glBufferID=UINT32_MAX; };
20
+ struct SharedTextureImage{ byteA img; charA file; uint glBufferID=UINT32_MAX; };
21
21
 
22
22
  namespace rai {
23
23
 
@@ -45,8 +45,6 @@ struct Mesh {
45
45
  rai::Transformation glX; ///< transform (only used for drawing! Otherwise use applyOnPoints) (optional)
46
46
 
47
47
  int version = 0;
48
- long parsing_pos_start;
49
- long parsing_pos_end;
50
48
 
51
49
  uint _support_vertex=0;
52
50
  bool isArrayFormatted=false;
@@ -146,8 +146,9 @@ struct Frame : NonCopyable {
146
146
 
147
147
  //composed object manipulation
148
148
  Transformation transformToDiagInertia(bool transformOwnMesh=false);
149
- Frame& computeCompoundInertia(bool clearChildInertias=true);
149
+ Frame& computeCompoundInertia();
150
150
  Frame& convertDecomposedShapeToChildFrames();
151
+ bool standardizeInertias(bool recomputeInertias=true, bool _transformToDiagInertia=false);
151
152
 
152
153
  //I/O
153
154
  void read(const Graph& ats);
@@ -306,7 +307,6 @@ struct Inertia : NonCopyable {
306
307
  Frame& frame;
307
308
  double mass=0.;
308
309
  Matrix matrix=0;
309
- Enum<BodyType> type;
310
310
  Vector com=0; ///< its center of mass
311
311
 
312
312
  Inertia(Frame& f, rai::Inertia* copyInertia=nullptr);
@@ -182,7 +182,8 @@ struct Configuration {
182
182
  void reconnectShapesToParents();
183
183
  void reconnectLinksToClosestJoints(); ///< re-connect all links to closest joint
184
184
  void pruneUselessFrames(bool pruneNamed=false, bool pruneNonContactNonMarker=false, bool pruneTransparent=false); ///< delete frames that have no name, joint, and shape
185
- void simplify(bool pruneNamed=false, bool pruneNonContactNonMarker=false, bool pruneTransparent=false); ///< call the three above methods in this order
185
+ void processStructure(bool pruneNamed=false, bool pruneNonContactNonMarker=false, bool pruneTransparent=false); ///< call the three above methods in this order
186
+ void processInertias(bool recomputeInertias=true, bool transformToDiagInertia=false);
186
187
  void sortFrames();
187
188
  void makeObjectsFree(const StringA& objects, double H_cost=0.);
188
189
  void addTauJoint();
@@ -288,7 +289,7 @@ public:
288
289
  void write(Graph& G) const;
289
290
  void writeURDF(std::ostream& os, const char* robotName="myrobot") const;
290
291
  void writeCollada(const char* filename, const char* format="collada") const;
291
- void writeMeshes(str pathPrefix="meshes/") const;
292
+ void writeMeshes(str pathPrefix="meshes/", bool copyTextures=false) const;
292
293
  void writeMesh(const char* filename="z.ply") const;
293
294
  void read(std::istream& is);
294
295
  Graph getGraph() const;
@@ -25,7 +25,7 @@ struct PhysX_Options {
25
25
  struct PhysXInterface {
26
26
  struct PhysXInterface_self* self=0;
27
27
 
28
- PhysXInterface(const rai::Configuration& C, int verbose=1, const rai::PhysX_Options* _opt=0);
28
+ PhysXInterface(rai::Configuration& C, int verbose=1, const rai::PhysX_Options* _opt=0);
29
29
  ~PhysXInterface();
30
30
 
31
31
  void step(double tau=.01);
@@ -40,7 +40,6 @@ struct PhysXInterface {
40
40
  void addJoint(rai::Joint* j);
41
41
  void removeJoint(rai::Joint* j);
42
42
  void postAddObject(rai::Frame* f);
43
- void setArticulatedBodiesKinematic(const rai::Configuration& C);
44
43
 
45
44
  void view(bool pause=false, const char* txt=nullptr);
46
45
 
robotic/librai.so CHANGED
Binary file
robotic/meshTool CHANGED
Binary file
@@ -1,45 +1,45 @@
1
1
  panda_link0: { }
2
- panda_link0_0(panda_link0): { shape: mesh, mesh: <franka_description/meshes/visual/link0.ply>, visual: True }
2
+ panda_link0_0(panda_link0): { shape: mesh, mesh: <franka_description/meshes/visual/link0.ply>, mass: 1., visual: True }
3
3
  panda_joint1_origin(panda_link0): { rel: [0, 0, 0.333, 1, 0, 0, 0] }
4
4
  panda_joint1(panda_joint1_origin): { joint: hingeZ, limits: [-2.8973, 2.8973, 2.175, -1, 87], ctrl_limits: [2.175, -1, 87] }
5
5
  panda_link1(panda_joint1): { }
6
- panda_link1_0(panda_link1): { shape: mesh, mesh: <franka_description/meshes/visual/link1.ply>, visual: True }
6
+ panda_link1_0(panda_link1): { shape: mesh, mesh: <franka_description/meshes/visual/link1.ply>, mass: 1., visual: True }
7
7
  panda_joint2_origin(panda_link1): { rel: [0, 0, 0, 0.707107, -0.707107, 0, 0] }
8
8
  panda_joint2(panda_joint2_origin): { joint: hingeZ, limits: [-1.7628, 1.7628, 2.175, -1, 87], ctrl_limits: [2.175, -1, 87] }
9
9
  panda_link2(panda_joint2): { }
10
- panda_link2_0(panda_link2): { shape: mesh, mesh: <franka_description/meshes/visual/link2.ply>, visual: True }
10
+ panda_link2_0(panda_link2): { shape: mesh, mesh: <franka_description/meshes/visual/link2.ply>, mass: 1., visual: True }
11
11
  panda_joint3_origin(panda_link2): { rel: [0, -0.316, 0, 0.707107, 0.707107, 0, 0] }
12
12
  panda_joint3(panda_joint3_origin): { joint: hingeZ, limits: [-2.8973, 2.8973, 2.175, -1, 87], ctrl_limits: [2.175, -1, 87] }
13
13
  panda_link3(panda_joint3): { }
14
- panda_link3_0(panda_link3): { shape: mesh, mesh: <franka_description/meshes/visual/link3.ply>, visual: True }
14
+ panda_link3_0(panda_link3): { shape: mesh, mesh: <franka_description/meshes/visual/link3.ply>, mass: 1., visual: True }
15
15
  panda_joint4_origin(panda_link3): { rel: [0.0825, 0, 0, 0.707107, 0.707107, 0, 0] }
16
16
  panda_joint4(panda_joint4_origin): { joint: hingeZ, limits: [-3.0718, -0.0698, 2.175, -1, 87], ctrl_limits: [2.175, -1, 87] }
17
17
  panda_link4(panda_joint4): { }
18
- panda_link4_0(panda_link4): { shape: mesh, mesh: <franka_description/meshes/visual/link4.ply>, visual: True }
18
+ panda_link4_0(panda_link4): { shape: mesh, mesh: <franka_description/meshes/visual/link4.ply>, mass: 1., visual: True }
19
19
  panda_joint5_origin(panda_link4): { rel: [-0.0825, 0.384, 0, 0.707107, -0.707107, 0, 0] }
20
20
  panda_joint5(panda_joint5_origin): { joint: hingeZ, limits: [-2.8973, 2.8973, 2.61, -1, 12], ctrl_limits: [2.61, -1, 12] }
21
21
  panda_link5(panda_joint5): { }
22
- panda_link5_0(panda_link5): { shape: mesh, mesh: <franka_description/meshes/visual/link5.ply>, visual: True }
22
+ panda_link5_0(panda_link5): { shape: mesh, mesh: <franka_description/meshes/visual/link5.ply>, mass: 1., visual: True }
23
23
  panda_joint6_origin(panda_link5): { rel: [0, 0, 0, 0.707107, 0.707107, 0, 0] }
24
24
  panda_joint6(panda_joint6_origin): { joint: hingeZ, limits: [-0.0175, 3.7525, 2.61, -1, 12], ctrl_limits: [2.61, -1, 12] }
25
25
  panda_link6(panda_joint6): { }
26
- panda_link6_0(panda_link6): { shape: mesh, mesh: <franka_description/meshes/visual/link6.ply>, visual: True }
26
+ panda_link6_0(panda_link6): { shape: mesh, mesh: <franka_description/meshes/visual/link6.ply>, mass: 1., visual: True }
27
27
  panda_joint7_origin(panda_link6): { rel: [0.088, 0, 0, 0.707107, 0.707107, 0, 0] }
28
28
  panda_joint7(panda_joint7_origin): { joint: hingeZ, limits: [-2.8973, 2.8973, 2.61, -1, 12], ctrl_limits: [2.61, -1, 12] }
29
29
  panda_link7(panda_joint7): { }
30
- panda_link7_0(panda_link7): { shape: mesh, mesh: <franka_description/meshes/visual/link7.ply>, visual: True }
30
+ panda_link7_0(panda_link7): { shape: mesh, mesh: <franka_description/meshes/visual/link7.ply>, mass: 1., visual: True }
31
31
  panda_joint8_origin(panda_link7): { rel: [0, 0, 0.107, 1, 0, 0, 0] }
32
32
  panda_joint8(panda_joint8_origin): { joint: rigid }
33
33
  panda_link8(panda_joint8): { }
34
34
  panda_hand_joint_origin(panda_link8): { rel: [0, 0, 0, 0.92388, 0, 0, -0.382683] }
35
35
  panda_hand_joint(panda_hand_joint_origin): { joint: rigid }
36
36
  panda_hand(panda_hand_joint): { }
37
- panda_hand_0(panda_hand): { shape: mesh, mesh: <franka_description/meshes/visual/hand.ply>, visual: True }
37
+ panda_hand_0(panda_hand): { shape: mesh, mesh: <franka_description/meshes/visual/hand.ply>, mass: .1, visual: True }
38
38
  panda_finger_joint1_origin(panda_hand): { Q: [0, 0, 0.0584, 1, 0, 0, 0] }
39
39
  panda_finger_joint2_origin(panda_hand): { Q: [0, 0, 0.0584, 1, 0, 0, 0] }
40
40
  panda_finger_joint1(panda_finger_joint1_origin): { joint: transY, limits: [0, 0.04, 0.2, -1, 20], ctrl_limits: [0.2, -1, 20] }
41
41
  panda_finger_joint2(panda_finger_joint2_origin): { joint: transY, joint_scale: -1, limits: [0, 0.04, 0.2, -1, 20], mimic: "panda_finger_joint1", ctrl_limits: [0.2, -1, 20] }
42
42
  panda_leftfinger(panda_finger_joint1): { }
43
43
  panda_rightfinger(panda_finger_joint2): { }
44
- panda_leftfinger_0(panda_leftfinger): { shape: mesh, mesh: <franka_description/meshes/visual/finger.ply>, visual: True }
45
- panda_rightfinger_0(panda_rightfinger): { Q: [0, 0, 0, -1.03412e-13, 0, 0, 1], shape: mesh, mesh: <franka_description/meshes/visual/finger.ply>, visual: True }
44
+ panda_leftfinger_0(panda_leftfinger): { shape: mesh, mesh: <franka_description/meshes/visual/finger.ply>, mass: .05, visual: True }
45
+ panda_rightfinger_0(panda_rightfinger): { Q: [0, 0, 0, -1.03412e-13, 0, 0, 1], shape: mesh, mesh: <franka_description/meshes/visual/finger.ply>, mass: .05, visual: True }
@@ -0,0 +1,23 @@
1
+ <!DOCTYPE FilterScript>
2
+ <FilterScript>
3
+ <filter name="Merge Close Vertices">
4
+ <Param tooltip="All the vertices that closer than this threshold are merged together. Use very small values, default values is 1/10000 of bounding box diagonal. " type="RichAbsPerc" description="Merging distance" min="0" value="0.001" name="Threshold" max="0.00938277"/>
5
+ </filter>
6
+ <filter name="Repair non Manifold Edges by removing faces"/>
7
+ <filter name="Simplification: Quadric Edge Collapse Decimation">
8
+ <Param tooltip="The desired final number of faces." type="RichInt" description="Target number of faces" value="20000" name="TargetFaceNum"/>
9
+ <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"/>
10
+ <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"/>
11
+ <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"/>
12
+ <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"/>
13
+ <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"/>
14
+ <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"/>
15
+ <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"/>
16
+ <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"/>
17
+ <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"/>
18
+ <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"/>
19
+ <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"/>
20
+ <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"/>
21
+ </filter>
22
+ <filter name="Repair non Manifold Edges by removing faces"/>
23
+ </FilterScript>
@@ -0,0 +1,8 @@
1
+ for file in *.dae
2
+ do
3
+ cmd="meshlabserver -i $file -o ${file%.*}.ply -s cleanMeshes.mlx -om"
4
+ echo $cmd
5
+ $cmd
6
+ done
7
+
8
+ # meshlabserver -i upper_forearm/W0.STL -o upper_forearm/W0.ply -s cleanMeshes.mlx -om
@@ -0,0 +1,33 @@
1
+ ## create standard base frame before including
2
+
3
+ ranger_base { multibody: true, multibody_gravity: false }
4
+
5
+ ranger_transX(ranger_base) { joint: transX, limits: [-5 5], ctrl_H: 2., motorLambda:.02, motorMass:40 }
6
+ ranger_transY(ranger_transX) { joint: transY, limits: [-5 5], ctrl_H: 2., motorLambda:.02, motorMass:40 }
7
+ #ranger_rot(ranger_trans) { joint: hingeZ, limits: [-5 5] }
8
+ #ranger_rot(ranger_trans) { joint: circleZ, limits: [-1.1 -1.1 1.1 1.1], ctrl_H: 2. }
9
+ ranger_rot(ranger_transY) { }
10
+
11
+ Prefix: ranger_
12
+ Include: <ranger_clean.g>
13
+ Prefix!
14
+
15
+ ranger_coll(ranger_base_link) { Q:[0, 0, -.14], shape: ssBox, size: [.75, .5, .3, .05], color:[1.,1.,1.,.5], contact: 1 }
16
+
17
+ Edit ranger_fr_Link_0: { meshscale: .025, color:[.9] }
18
+ Edit ranger_fl_Link_0: { meshscale: .025, color:[.9] }
19
+ Edit ranger_br_Link_0: { meshscale: .025, color:[.9] }
20
+ Edit ranger_bl_Link_0: { meshscale: .025, color:[.9] }
21
+ Edit ranger_base_link_0: { color:[.9] }
22
+
23
+ Edit ranger_base_link(ranger_rot): { Q:[0, 0, .315], mass: 20 }
24
+
25
+ Edit ranger_fr_joint: { limits: [-3, 3] },
26
+ Edit ranger_fl_joint: { limits: [-3, 3] },
27
+ Edit ranger_br_joint: { limits: [-3, 3] },
28
+ Edit ranger_bl_joint: { limits: [-3, 3] },
29
+
30
+ Edit ranger_fr_joint: { joint: none },
31
+ Edit ranger_fl_joint: { joint: none },
32
+ Edit ranger_br_joint: { joint: none },
33
+ Edit ranger_bl_joint: { joint: none },
@@ -0,0 +1,18 @@
1
+ base_link: { mass: 0.162716, inertia: [0.0007237, -1.55745e-08, -3.42379e-12, 0.000744047, 2.24935e-07, 2.14413e-05] },
2
+ base_link_0(base_link): { Q: [0, 0, 0, 0.000796327, 1, 0, 0], shape: mesh, color: [0.792157, 0.819608, 0.933333, 1], mesh: <meshes/ranger_mini3.ply>, visual: True },
3
+ fr_joint_origin(base_link): { Q: [0.25, -0.19, -0.1] },
4
+ fl_joint_origin(base_link): { Q: [0.25, 0.19, -0.1, -3.67321e-06, 1, 0, 0] },
5
+ br_joint_origin(base_link): { Q: [-0.25, -0.19, -0.1] },
6
+ bl_joint_origin(base_link): { Q: [-0.25, 0.19, -0.1, -3.67321e-06, 1, 0, 0] },
7
+ fr_joint(fr_joint_origin): { joint: hingeZ, joint_scale: -1 },
8
+ fl_joint(fl_joint_origin): { joint: hingeZ, joint_scale: -1 },
9
+ br_joint(br_joint_origin): { joint: hingeZ, joint_scale: -1 },
10
+ bl_joint(bl_joint_origin): { joint: hingeZ, joint_scale: -1 },
11
+ fr_Link(fr_joint): { mass: 2.2786, inertia: [0.0063625, -1.0581e-07, -4.0831e-07, 0.006363, -3.4944e-08, 0.010465] },
12
+ fl_Link(fl_joint): { mass: 2.2786, inertia: [0.0063695, -2.1067e-08, -0.00016867, 0.006363, -1.0301e-08, 0.010458] },
13
+ br_Link(br_joint): { mass: 2.2786, inertia: [0.0063627, -2.1069e-08, -1.587e-05, 0.006363, 9.3201e-09, 0.010465] },
14
+ bl_Link(bl_joint): { mass: 2.2786, inertia: [0.0063656, -8.1498e-08, -0.00011049, 0.006363, 6.6847e-08, 0.010462] },
15
+ fr_Link_0(fr_Link): { Q: [-0.248, -0.113, 0.155, 0.000563312, 0.000562864, 0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel_right.ply>, visual: True },
16
+ fl_Link_0(fl_Link): { Q: [-0.248, 0.1265, 0.191, 0.000563312, -0.000562864, -0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel.ply>, visual: True },
17
+ br_Link_0(br_Link): { Q: [-0.241, -0.11, 0.155, 0.000563312, 0.000562864, 0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel_right.ply>, visual: True },
18
+ bl_Link_0(bl_Link): { Q: [-0.241, 0.13, 0.2, 0.000563312, -0.000562864, -0.706825, 0.707388], shape: mesh, color: [0.79216, 0.81961, 0.93333, 1], mesh: <meshes/ranger_mini_v3_wheel.ply>, visual: True }
robotic/ry-h5info CHANGED
@@ -10,7 +10,11 @@ parser.add_argument('FILE', type=str,
10
10
 
11
11
  def print_attrs(name, obj):
12
12
  if isinstance(obj, h5py.Dataset):
13
- print(' ', name, obj.name, obj.shape, obj.dtype)
13
+ print(' ', name, obj.name, obj.shape, obj.dtype, f'{obj.size*obj.dtype.itemsize/1024:.2f}kB')
14
+ if obj.dtype=='int8':
15
+ print(''.join([chr(x) for x in obj[()]]))
16
+ elif obj.size<20:
17
+ print(obj[()])
14
18
  else:
15
19
  print('---', name)
16
20
 
robotic/ry-test CHANGED
@@ -16,7 +16,7 @@ q0 = C.getJointState()
16
16
  qT = q0
17
17
  qT[0] += 1.
18
18
 
19
- sim = ry.Simulation(C, ry.SimulationEngine.physx, verbose=1) #try verbose=2
19
+ sim = ry.Simulation(C, ry.SimulationEngine.physx, verbose=2) #try verbose=3 or 1
20
20
 
21
21
  [X, q, V, qDot] = sim.getState()
22
22
 
robotic/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '0.2.8.dev5'
1
+ __version__ = '0.2.9.dev1'
@@ -10,7 +10,11 @@ parser.add_argument('FILE', type=str,
10
10
 
11
11
  def print_attrs(name, obj):
12
12
  if isinstance(obj, h5py.Dataset):
13
- print(' ', name, obj.name, obj.shape, obj.dtype)
13
+ print(' ', name, obj.name, obj.shape, obj.dtype, f'{obj.size*obj.dtype.itemsize/1024:.2f}kB')
14
+ if obj.dtype=='int8':
15
+ print(''.join([chr(x) for x in obj[()]]))
16
+ elif obj.size<20:
17
+ print(obj[()])
14
18
  else:
15
19
  print('---', name)
16
20
 
@@ -16,7 +16,7 @@ q0 = C.getJointState()
16
16
  qT = q0
17
17
  qT[0] += 1.
18
18
 
19
- sim = ry.Simulation(C, ry.SimulationEngine.physx, verbose=1) #try verbose=2
19
+ sim = ry.Simulation(C, ry.SimulationEngine.physx, verbose=2) #try verbose=3 or 1
20
20
 
21
21
  [X, q, V, qDot] = sim.getState()
22
22
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: robotic
3
- Version: 0.2.8.dev5
3
+ Version: 0.2.9.dev1
4
4
  Summary: Robotic Control Interface & Manipulation Planning Library
5
5
  Home-page: https://github.com/MarcToussaint/robotic/
6
6
  Author: Marc Toussaint
@@ -1,22 +1,23 @@
1
1
  robotic/DataGen.pyi,sha256=Psut6_CMYC1lkRWIfpem1vjiHeDA1bDRYh5WmALUuDw,3239
2
2
  robotic/__init__.py,sha256=k-hVqPB7vN-huwpRzQLt3f--6sNdjaCQ_hWw66dWkA8,297
3
- robotic/_robotic.pyi,sha256=n3SGnLZXHD2OAYfdyUs7D_0exUox-4ZOY4Z2g_TrPx4,73626
4
- robotic/_robotic.so,sha256=FTuHYsuNONdAsUCk78bEf0b5hZGSY-6g6_YeCpwWmmk,1218272
5
- robotic/librai.so,sha256=W_YrlbvnMsVHG3BrSei6m4sN1A2mVDv-VRWvMdTWOoc,40175496
3
+ robotic/_robotic.pyi,sha256=ciAMUYT5hlp9mtKZz4V9T-82HkWmE0AzmcR5j7rahb8,73943
4
+ robotic/_robotic.so,sha256=dUYJIF1q1232JiHQrngPsxROJDOIgKMAiIgzutiXJK8,1218272
5
+ robotic/import.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ robotic/librai.so,sha256=W5eJcwygHdbcPCfKWLwr9-JuPMo-i7rW-F5SQpr3Ilk,38845120
6
7
  robotic/manipulation.py,sha256=EhM_Zuv3vl8H4SBNqqYMD3NT9AzFUpOhr4PIzM4U7tM,22374
7
- robotic/meshTool,sha256=VjGOnOwgoO0iujNEhKJ8D_AOscHs_mlIWi1tuWoCKVw,48072
8
+ robotic/meshTool,sha256=tjJPwrNrLVjiINI1yKBEKQgJE_zpq-pBtUX1rb-LUN4,48072
8
9
  robotic/nlp.py,sha256=n9_hOj3i707DdL_r49Yd2eWyjsSOahW8DmJrEhQlNFw,3200
9
10
  robotic/render.py,sha256=OE1dvyWHD7Oyzk4wlhXZ7m3v3xxa3zAL5_LCV1RgJXk,4662
10
11
  robotic/ry-bot,sha256=nd2yWqaDsFbwAmr7ySdOjq06ek0E1FMHTxPRO-7e2Q8,2294
11
- robotic/ry-h5info,sha256=YrkBvLAadxAgTmx0hlcm9h_KXy-KaNV_zp4raSXXdYY,620
12
+ robotic/ry-h5info,sha256=TivZP5k6Xj0oihWO4cCQQ8wS-dGH5hUMkRQ5nBeu_iE,802
12
13
  robotic/ry-info,sha256=GRj4oMCgTCGRF2wxtYxiFvETROB92rwwtUFb6S_Eo7g,439
13
14
  robotic/ry-meshTool,sha256=h4f4wFPNaey3ziz870SrEvy6SsQSL-ZnR_cH3UuAZxE,101
14
- robotic/ry-test,sha256=JZJ_h4NxLkkkrcV9IYdXzYHn9eEZDPFPBAzo1jIv278,976
15
+ robotic/ry-test,sha256=yikBKckTos-lPTcazB5zCssW0H9qIj1-QPlRL39gQgs,981
15
16
  robotic/ry-urdf2rai,sha256=88CFu5ikKsjy4wQixvCZqtNOqCheBiT18cjZfOsJA8A,7736
16
17
  robotic/ry-urdf2yaml,sha256=D36MR8Ui6Ry9V0TqJOBaPCWC89OZa43Fytz4P7Y4v0w,8543
17
18
  robotic/ry-view,sha256=T1Omn1QS7cNAtjQhBjMJTNz7aW5FgoOf9vBIfW0mFME,613
18
19
  robotic/test.pyi,sha256=vVxwRSerjUG4bpB7pIhof7ZatrBqwg3Bj5voywa-YTI,917
19
- robotic/version.py,sha256=s5KdV62VO2S1RtYm6EQ3img4TW3bs_GI6AGDMl0qS_A,27
20
+ robotic/version.py,sha256=ZnQmjVEmjmcgJEt_FqINJpnrHFupuBkYtD_UBEE_t9w,27
20
21
  robotic/include/rai/Algo/MLcourse.h,sha256=TGkAJWC5ollGfPw0-gcYL0TZeDJiHtWFzkHSMK8_lqU,1828
21
22
  robotic/include/rai/Algo/RidgeRegression.h,sha256=VXiv6-xr3j--CN7DJTzUg9Xb49zV9FZ9dwzxP1CmcPM,3730
22
23
  robotic/include/rai/Algo/SplineCtrlFeed.h,sha256=9ZtYLHXx9sExj0lZV6F5ZWaCtkm0R4hMiYb-KJjktnc,3339
@@ -49,7 +50,7 @@ robotic/include/rai/Core/array.h,sha256=YYdSaiZ0o7RoC_Zv6S1oGWMuFBdSrOWIIt-6Kuai
49
50
  robotic/include/rai/Core/array.ipp,sha256=ELRBdyAqrIi3taDBe74rjPQRDYp5MwYFn4eYAhwE8EI,58371
50
51
  robotic/include/rai/Core/arrayDouble.h,sha256=ACvesIGz_0UP3G-x7-LlfGzodKB7EVsGeX5z2RbMFx8,28869
51
52
  robotic/include/rai/Core/defines.h,sha256=hBTgf5EiJ50rQYW1saGw8Ox87aKVFOYVKnFw0jojVW0,6894
52
- robotic/include/rai/Core/graph.h,sha256=YlDZVq5woqF7nYSgqk2hn6ynVPpA4SJakjPic2cjA2c,20534
53
+ robotic/include/rai/Core/graph.h,sha256=x96tKYig_NpN4RxArNjvuQhcNx-EBfjZhJXJktClIuM,20538
53
54
  robotic/include/rai/Core/h5.h,sha256=FzIP0eLL7XYg5eRjJgfPIt9SwY5HBaazy4ddoCcpkSU,1057
54
55
  robotic/include/rai/Core/thread.h,sha256=wjwvXACwI8B6rhZSf2UDruWUb8kT9Xjm-VE-OnUQpwk,18248
55
56
  robotic/include/rai/Core/util.h,sha256=KhBcYsprUaZXt2BMpsOACoOcmEWLEtOG4WM9Dcooamc,19514
@@ -63,8 +64,8 @@ robotic/include/rai/DataGen/shapenetGrasps.h,sha256=QWv85YMGtW_X9ldKu4eZuoRNdQeI
63
64
  robotic/include/rai/Geo/assimpInterface.h,sha256=2Jg7v2GZ83nz4kkgPLzbSWTIBmL9nZg-LhMlWcjiF_o,1055
64
65
  robotic/include/rai/Geo/depth2PointCloud.h,sha256=0mXJnTk0sMB--KDE9CO_2gKgGw4gHXUe7xg6DcROhvk,1168
65
66
  robotic/include/rai/Geo/fclInterface.h,sha256=iNdxNc_DSOgYCLyCajxP8lxdnrNcyoKQmjUlVmjxjQM,940
66
- robotic/include/rai/Geo/geo.h,sha256=qZFXffvHa2sM2JsvvKWkRnlQ59gdD8qvsGyDtXrk_Oo,14715
67
- robotic/include/rai/Geo/mesh.h,sha256=cmEhGxaTaBc9K2Z7lOjm7ZFzH9teVYA6I_Kr1B3sxlg,6803
67
+ robotic/include/rai/Geo/geo.h,sha256=J4EgOUXRyPzwbaTJBesR8xHOQxG4-w8X7j2ppnoihro,14659
68
+ robotic/include/rai/Geo/mesh.h,sha256=g_4mfHRP2d5ypqy990eU-u9xo1YvOWepQZDC7XI0MwE,6765
68
69
  robotic/include/rai/Geo/pairCollision.h,sha256=kFEtQpkgPV_VKJ6YBDBKdb3ko62_s7HKDUti0kB2yYI,4374
69
70
  robotic/include/rai/Geo/qhull.h,sha256=dRAAHIdvujPPW1fXW4hXMjgixpBDajDg-y_OX1JMi_0,1890
70
71
  robotic/include/rai/Geo/signedDistanceFunctions.h,sha256=hrC838CsYWQ6TXm536iNRwB8W5-62LNb-JPqPoDAFPE,4831
@@ -116,12 +117,12 @@ robotic/include/rai/Kin/dof_particles.h,sha256=PboLndC5a5extUKAfUPAIsJEGTTs6_ACD
116
117
  robotic/include/rai/Kin/dof_path.h,sha256=XRPj3bH90JUIdkTS4jxwbAb5n9yAsRoemWUWUV1xDtQ,792
117
118
  robotic/include/rai/Kin/feature.h,sha256=xicsrElMcYnYXdIXdO5LBLmXxvCGVUVgZJY2NIarO5I,3935
118
119
  robotic/include/rai/Kin/featureSymbols.h,sha256=JVXbXoW43PlEGOgwHPpULlbXUQzkl79F1EFnfl-0wyk,1984
119
- robotic/include/rai/Kin/frame.h,sha256=lYP6v7yZodtCQrfVg61H9qwtOsiYab9l7y2BHLOmeXY,14440
120
- robotic/include/rai/Kin/kin.h,sha256=IBnhAcpn1R6ubXCh1dSac-NBhKZA_i8-GCK7eJBwme4,15610
120
+ robotic/include/rai/Kin/frame.h,sha256=ckmsEuTZEuqS8lMsvJCy0fQv9AuxrcZJPHurmLoQ57w,14482
121
+ robotic/include/rai/Kin/kin.h,sha256=0c2QXQeiH4NC2B_BBTaBrAGrZLe2lkxJw3IqW205vFA,15731
121
122
  robotic/include/rai/Kin/kin_bullet.h,sha256=y8aApXpXY4bD5QN_WmDAU2vNEvvbdo1Rd4zY7qo-FKE,1970
122
123
  robotic/include/rai/Kin/kin_feather.h,sha256=o-hOJA8UcmIBKx_qPzoG9R7fxzz-4zhBNMBmBTK21oA,1627
123
124
  robotic/include/rai/Kin/kin_ode.h,sha256=zwB8Le1WMGRkQBc9bssndJICkjO1lZ_y1aZKCwP4c1Y,3686
124
- robotic/include/rai/Kin/kin_physx.h,sha256=A39_BMDTMGixK_37sdlofFHtV-Pf0n5JtcYpmdWNWMw,1871
125
+ robotic/include/rai/Kin/kin_physx.h,sha256=yVNvg-fh0-mbpSlhU2Jc74TM5cTqNnXHRQyhQ8OVhas,1798
125
126
  robotic/include/rai/Kin/proxy.h,sha256=jfFQrvokqvt8bGYEzGQoD2ZpnuWuLzCeOjFfUvdxcx0,1473
126
127
  robotic/include/rai/Kin/simulation.h,sha256=rM08Epf72aiI26z2MPE0sZ6CrnNzolzdzZKhKxw5Zn8,5238
127
128
  robotic/include/rai/Kin/viewer.h,sha256=GzObhDzEnIBYH0Yu_wCX8Cm2GAN5wuk-El09b2Vy_8w,2031
@@ -280,7 +281,7 @@ robotic/rai-robotModels/objects/kitchen.g,sha256=PLi7un2u3I29Mcngc08-9J3ocTU_c5T
280
281
  robotic/rai-robotModels/objects/shelf.g,sha256=9_CH-LPhcvShNxmqOueMckNK70uWeRdkSFfanvp4z-w,817
281
282
  robotic/rai-robotModels/objects/tables.g,sha256=z9GifBjAaCbu3Y2ISmzhVyU9_mw2NlR87eAyj0vNYnI,455
282
283
  robotic/rai-robotModels/panda/panda.g,sha256=AKF2C2mQ8KNUcU4QJQY6Zb_cXnT4LI6jlB2baYOrxs8,2667
283
- robotic/rai-robotModels/panda/panda_clean.g,sha256=yqS8MZp38LCy3ZW2JDgXeifeDwu4-ApDYj5kDhfYDL4,3818
284
+ robotic/rai-robotModels/panda/panda_clean.g,sha256=3lS3EOq9JYCXxA3gxj9bUS9q-wjG81pvcH-tdlPGeLE,3930
284
285
  robotic/rai-robotModels/panda/panda_deformable.g,sha256=DvkhnJYSXc1S_GRBM3iJOm6WovKYrsckzAW-rXxLqH8,6037
285
286
  robotic/rai-robotModels/panda/panda_gripper.g,sha256=WNEaU06yEJJGOVTsyS4l6ztTsteqgecqTgf1JWqinGI,943
286
287
  robotic/rai-robotModels/panda/panda_withoutCollisionModels.g,sha256=RPJawK8POmG_Hyc92XcprQbFArEryQWM8O6IB5zcSYQ,278
@@ -347,6 +348,13 @@ robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/elbow_flex.ply,s
347
348
  robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll.ply,sha256=tm0QfQgssjev648wWCbrVDodi1hMgi9kfBfCed6TPJM,19230
348
349
  robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/forearm_roll_L.ply,sha256=yykffZwhCqhqAG2sQi2hwiNBzfzeXBjxL2fr7YcWq5U,4459
349
350
  robotic/rai-robotModels/pr2/pr2_description/meshes/upper_arm_v0/upper_arm.ply,sha256=39sYPJsVZNWelcC4yX12toVRtQC3KKS1CMyyQNmNSUg,33860
351
+ robotic/rai-robotModels/ranger/ranger.g,sha256=FFnALDKjUHIFh8qBMgjGSENlxqgwhGdXca2QeinaSkQ,1331
352
+ robotic/rai-robotModels/ranger/ranger_clean.g,sha256=uvTXQ3Dp9DeZqNGVqst4i0FwaZpgxEDVuWOxYJEPpnc,2106
353
+ robotic/rai-robotModels/ranger/meshes/cleanMeshes.mlx,sha256=owTpbxCg0SWiXs_xR5TrvsPZ0tcE38XyJh7_J6_fIkc,4155
354
+ robotic/rai-robotModels/ranger/meshes/cleanMeshes.sh,sha256=JK8w118AZQl0GiN873DNZsNfB6Q61gsW3qnTcmREaQQ,211
355
+ robotic/rai-robotModels/ranger/meshes/ranger_mini3.ply,sha256=OUhhCPG4dFCrpa-O95bbJ8E-wx-Gu8fGrjGgq2ZS91o,332381
356
+ robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel.ply,sha256=W8__YI0o8dCDLKnPNfkOReN4ThCKhAOqqFKYxogR8bc,377953
357
+ robotic/rai-robotModels/ranger/meshes/ranger_mini_v3_wheel_right.ply,sha256=s0IUxZqvsZmCNkXUXrtUT7bv5V38sRXczVTPiAnmwD8,376946
350
358
  robotic/rai-robotModels/robotiq/robotiq.g,sha256=C74qu9Ca7F1uNtSxyhQ9Er7g9XB1SVdoFrqihbI-NRU,1057
351
359
  robotic/rai-robotModels/robotiq/robotiq_clean.g,sha256=s1QwMa1s-Y29aB70IUfuK0s96gxnIUhTzvQZ31pvld8,3737
352
360
  robotic/rai-robotModels/robotiq/meshes/visual/robotiq_arg2f_85_base_link.ply,sha256=Wsp8wg1vwELn1rUAAn3tosY9a6uLUy3C96OVoOtzB9k,299782
@@ -398,16 +406,16 @@ robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/UpperArm.ply,sha2
398
406
  robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist1.ply,sha256=Qmlgt3g046pi8GPzlUBKbDcR-4JehZkXfSRNabe_RVI,282487
399
407
  robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist2.ply,sha256=br9zVxfiGNlEMAuVm36e2dJ0chDKpVMe3H1MCh-318E,784726
400
408
  robotic/rai-robotModels/ur10/ur_description/meshes/ur10/visual/Wrist3.ply,sha256=el2jO6EOzwgz3ybkKjz9XcjCIQJWCpOCgTA7DSFHz6U,25593
401
- robotic-0.2.8.dev5.data/scripts/ry-bot,sha256=LBNbbQeNNNd_tupI5463Xe-RKSD6xy4HGTbJloisCGk,2280
402
- robotic-0.2.8.dev5.data/scripts/ry-h5info,sha256=J-0Q4NRASUaQ_Xgii4Zyiw5mLp5XvvrrJvp-L248Ia4,606
403
- robotic-0.2.8.dev5.data/scripts/ry-info,sha256=fL5QXJL4Xx-Q42L2C29HHbj1XsmWdWiKIv9rVfc5sm4,425
404
- robotic-0.2.8.dev5.data/scripts/ry-meshTool,sha256=h4f4wFPNaey3ziz870SrEvy6SsQSL-ZnR_cH3UuAZxE,101
405
- robotic-0.2.8.dev5.data/scripts/ry-test,sha256=61CnOEa-OqBsNznvXlZ_Xo5aCXx8QKYeokhsHcEUZac,962
406
- robotic-0.2.8.dev5.data/scripts/ry-urdf2rai,sha256=oeLKgNzYKV5yZ_vkvCrw65CY3ZAxL2ssFQQKcRuCNeo,7722
407
- robotic-0.2.8.dev5.data/scripts/ry-urdf2yaml,sha256=Nebu73TLTUx2p40-FLakek9n3y74cRJfRchV0vV0Gf0,8529
408
- robotic-0.2.8.dev5.data/scripts/ry-view,sha256=_GjUbVS2X3AWnlXqIHwU5dofLmUKA2-NUPySgS-QJNI,599
409
- robotic-0.2.8.dev5.dist-info/LICENSE,sha256=oT-pAsUSXiuMq2_3omR87-GFBeBnegQYixH4Bm_7wag,1071
410
- robotic-0.2.8.dev5.dist-info/METADATA,sha256=f-G4aCdTj47okUlEs2agCfbv0QyZ3SYYdnbQoO6xuhU,6565
411
- robotic-0.2.8.dev5.dist-info/WHEEL,sha256=QjksN8yqvEZiPRpkysvFl_zIoTPrHYtCPi208j7yd3I,102
412
- robotic-0.2.8.dev5.dist-info/top_level.txt,sha256=x5A4haAZ18y9FpO1IhXSVJ2TFdhVAgT5JMkejHUg_9U,8
413
- robotic-0.2.8.dev5.dist-info/RECORD,,
409
+ robotic-0.2.9.dev1.data/scripts/ry-bot,sha256=LBNbbQeNNNd_tupI5463Xe-RKSD6xy4HGTbJloisCGk,2280
410
+ robotic-0.2.9.dev1.data/scripts/ry-h5info,sha256=1qurqBvr2WEM23TZnqNY7tCoAQYrmuRCfr4S3JnsjQI,788
411
+ robotic-0.2.9.dev1.data/scripts/ry-info,sha256=fL5QXJL4Xx-Q42L2C29HHbj1XsmWdWiKIv9rVfc5sm4,425
412
+ robotic-0.2.9.dev1.data/scripts/ry-meshTool,sha256=h4f4wFPNaey3ziz870SrEvy6SsQSL-ZnR_cH3UuAZxE,101
413
+ robotic-0.2.9.dev1.data/scripts/ry-test,sha256=wM2TpyuPGCVtulIi3ux7Okc2beiljTH29lsETCLEKq8,967
414
+ robotic-0.2.9.dev1.data/scripts/ry-urdf2rai,sha256=oeLKgNzYKV5yZ_vkvCrw65CY3ZAxL2ssFQQKcRuCNeo,7722
415
+ robotic-0.2.9.dev1.data/scripts/ry-urdf2yaml,sha256=Nebu73TLTUx2p40-FLakek9n3y74cRJfRchV0vV0Gf0,8529
416
+ robotic-0.2.9.dev1.data/scripts/ry-view,sha256=_GjUbVS2X3AWnlXqIHwU5dofLmUKA2-NUPySgS-QJNI,599
417
+ robotic-0.2.9.dev1.dist-info/LICENSE,sha256=oT-pAsUSXiuMq2_3omR87-GFBeBnegQYixH4Bm_7wag,1071
418
+ robotic-0.2.9.dev1.dist-info/METADATA,sha256=CoXZDFmi3CtscAU_QJX3jEqcjsQyNBdgFZvC9PSdcNY,6565
419
+ robotic-0.2.9.dev1.dist-info/WHEEL,sha256=rxKmMK2tk-0XikPyvYWdvWiQiwwfnpvkbvkHpHVHavU,102
420
+ robotic-0.2.9.dev1.dist-info/top_level.txt,sha256=x5A4haAZ18y9FpO1IhXSVJ2TFdhVAgT5JMkejHUg_9U,8
421
+ robotic-0.2.9.dev1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.3.0)
2
+ Generator: setuptools (75.3.2)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp38-cp38-linux_x86_64
5
5