scikit-robot 0.4.2__tar.gz → 0.4.4__tar.gz

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 (223) hide show
  1. {scikit_robot-0.4.2/scikit_robot.egg-info → scikit_robot-0.4.4}/PKG-INFO +1 -1
  2. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/pyproject.toml +2 -1
  3. {scikit_robot-0.4.2 → scikit_robot-0.4.4/scikit_robot.egg-info}/PKG-INFO +1 -1
  4. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/scikit_robot.egg-info/SOURCES.txt +3 -0
  5. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/scikit_robot.egg-info/entry_points.txt +1 -0
  6. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/cli.py +1 -0
  7. scikit_robot-0.4.4/skrobot/apps/convert_urdf_to_usd.py +115 -0
  8. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/collision/__init__.py +9 -0
  9. scikit_robot-0.4.4/skrobot/collision/environment_collision.py +579 -0
  10. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/collision/robot_collision.py +8 -0
  11. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/export/usd.py +121 -17
  12. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/model/robot_model.py +75 -7
  13. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/viewers/__init__.py +16 -1
  14. scikit_robot-0.4.4/skrobot/viewers/_offscreen.py +495 -0
  15. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/LICENSE +0 -0
  16. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/MANIFEST.in +0 -0
  17. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/README.md +0 -0
  18. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/scikit_robot.egg-info/dependency_links.txt +0 -0
  19. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/scikit_robot.egg-info/not-zip-safe +0 -0
  20. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/scikit_robot.egg-info/requires.txt +0 -0
  21. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/scikit_robot.egg-info/top_level.txt +0 -0
  22. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/setup.cfg +0 -0
  23. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/__init__.py +0 -0
  24. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/_lazy_imports.py +0 -0
  25. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/__init__.py +0 -0
  26. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/canonicalize_urdf.py +0 -0
  27. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/change_urdf_root.py +0 -0
  28. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/convert_urdf_mesh.py +0 -0
  29. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/convert_urdf_to_mjcf.py +0 -0
  30. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/convert_urdf_to_primitives.py +0 -0
  31. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/convert_wheel_collision.py +0 -0
  32. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/extract_sub_urdf.py +0 -0
  33. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/generate_robot_class.py +0 -0
  34. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/modularize_urdf.py +0 -0
  35. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/scale_urdf.py +0 -0
  36. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/transform_urdf.py +0 -0
  37. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/urdf_hash.py +0 -0
  38. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/urdf_tree.py +0 -0
  39. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/visualize_mesh.py +0 -0
  40. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/apps/visualize_urdf.py +0 -0
  41. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/assembly/__init__.py +0 -0
  42. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/assembly/module_assembly.py +0 -0
  43. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/assembly/module_registry.py +0 -0
  44. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/backend/__init__.py +0 -0
  45. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/backend/jax_backend.py +0 -0
  46. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/backend/math_utils.py +0 -0
  47. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/backend/numpy_backend.py +0 -0
  48. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/backend/registry.py +0 -0
  49. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/collision/distance.py +0 -0
  50. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/collision/geometry.py +0 -0
  51. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/collision/self_collision.py +0 -0
  52. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/coordinates/__init__.py +0 -0
  53. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/coordinates/base.py +0 -0
  54. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/coordinates/geo.py +0 -0
  55. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/coordinates/math.py +0 -0
  56. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/__init__.py +0 -0
  57. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/kuka.urdf +0 -0
  58. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/finger_base_left.stl +0 -0
  59. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/finger_base_right.stl +0 -0
  60. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/finger_tip_left.stl +0 -0
  61. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/finger_tip_right.stl +0 -0
  62. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_0.mtl +0 -0
  63. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_0.obj +0 -0
  64. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_0.stl +0 -0
  65. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_1.mtl +0 -0
  66. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_1.obj +0 -0
  67. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_1.stl +0 -0
  68. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_2.mtl +0 -0
  69. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_2.obj +0 -0
  70. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_2.stl +0 -0
  71. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_3.mtl +0 -0
  72. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_3.obj +0 -0
  73. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_3.stl +0 -0
  74. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_4.mtl +0 -0
  75. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_4.obj +0 -0
  76. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_4.stl +0 -0
  77. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_5.mtl +0 -0
  78. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_5.obj +0 -0
  79. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_5.stl +0 -0
  80. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_6.mtl +0 -0
  81. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_6.obj +0 -0
  82. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_6.stl +0 -0
  83. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_7.mtl +0 -0
  84. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_7.obj +0 -0
  85. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/kuka_description/meshes/link_7.stl +0 -0
  86. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/robot_descriptions/urdf/r8_6.urdf +0 -0
  87. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/ros_config_templates/CMakeLists.txt.ros2.template +0 -0
  88. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/ros_config_templates/gazebo.launch.py.template +0 -0
  89. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/ros_config_templates/gazebo_moveit.launch.py.template +0 -0
  90. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/ros_config_templates/isaac_fjt_server.py.template +0 -0
  91. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/ros_config_templates/moveit.rviz.template +0 -0
  92. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/ros_config_templates/package.xml.ros2.template +0 -0
  93. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/ros_config_templates/ros2_control.xacro.joint.template +0 -0
  94. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/ros_config_templates/ros2_control.xacro.template +0 -0
  95. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/data/ros_config_templates/setup_assistant.template +0 -0
  96. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/dynamics/__init__.py +0 -0
  97. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/dynamics/differentiable.py +0 -0
  98. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/dynamics/gravity.py +0 -0
  99. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/export/__init__.py +0 -0
  100. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/export/contact_links.py +0 -0
  101. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/export/isaac/__init__.py +0 -0
  102. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/export/isaac/fjt_server.py +0 -0
  103. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/export/task.py +0 -0
  104. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/__init__.py +0 -0
  105. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/_pybullet.py +0 -0
  106. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros/__init__.py +0 -0
  107. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros/base.py +0 -0
  108. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros/move_base.py +0 -0
  109. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros/nextage.py +0 -0
  110. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros/panda.py +0 -0
  111. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros/pr2.py +0 -0
  112. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros/tf_utils.py +0 -0
  113. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros/transform_listener.py +0 -0
  114. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros2/__init__.py +0 -0
  115. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros2/base.py +0 -0
  116. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros2/gripper.py +0 -0
  117. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/interfaces/ros2/panda.py +0 -0
  118. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/kinematics/__init__.py +0 -0
  119. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/kinematics/_base_placement_jax.py +0 -0
  120. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/kinematics/base_placement.py +0 -0
  121. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/kinematics/differentiable.py +0 -0
  122. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/kinematics/inverse_reachability_map.py +0 -0
  123. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/kinematics/loop_closure.py +0 -0
  124. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/kinematics/reachability_map.py +0 -0
  125. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/model/__init__.py +0 -0
  126. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/model/joint.py +0 -0
  127. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/model/joint_limit_table.py +0 -0
  128. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/model/link.py +0 -0
  129. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/model/primitives.py +0 -0
  130. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/model/skeleton.py +0 -0
  131. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/__init__.py +0 -0
  132. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/aero.py +0 -0
  133. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/differential_wrist_sample.py +0 -0
  134. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/fetch.py +0 -0
  135. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/g1.py +0 -0
  136. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/griphis.py +0 -0
  137. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/hydrus.py +0 -0
  138. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/jaxon_jvrc.py +0 -0
  139. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/jedy.py +0 -0
  140. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/kuka.py +0 -0
  141. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/nextage.py +0 -0
  142. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/panda.py +0 -0
  143. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/pr2.py +0 -0
  144. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/r8_6.py +0 -0
  145. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/tycoon.py +0 -0
  146. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/models/urdf.py +0 -0
  147. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/__init__.py +0 -0
  148. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/collision_checker.py +0 -0
  149. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/inverse_kinematics_optimization.py +0 -0
  150. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/sqp_based.py +0 -0
  151. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/swept_sphere.py +0 -0
  152. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/__init__.py +0 -0
  153. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/collision.py +0 -0
  154. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/fk_utils.py +0 -0
  155. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/gridsdf_collision.py +0 -0
  156. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/problem.py +0 -0
  157. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/residuals.py +0 -0
  158. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/solvers/__init__.py +0 -0
  159. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/solvers/augmented_lagrangian.py +0 -0
  160. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/solvers/base.py +0 -0
  161. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/solvers/gradient_descent.py +0 -0
  162. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/solvers/jaxls_solver.py +0 -0
  163. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/solvers/scipy_solver.py +0 -0
  164. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/solvers/solver_utils.py +0 -0
  165. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/trajectory.py +0 -0
  166. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/trajectory_optimization/world_surface_collision.py +0 -0
  167. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/planner/utils.py +0 -0
  168. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/pycompat.py +0 -0
  169. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/sdf/__init__.py +0 -0
  170. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/sdf/signed_distance_function.py +0 -0
  171. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/__init__.py +0 -0
  172. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/aggregate.py +0 -0
  173. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/canonicalize.py +0 -0
  174. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/compare.py +0 -0
  175. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/extract_sub_urdf.py +0 -0
  176. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/flip_axis.py +0 -0
  177. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/hash.py +0 -0
  178. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/link_origins.py +0 -0
  179. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/llm_grouping.py +0 -0
  180. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/merge_fixed_links.py +0 -0
  181. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/modularize_urdf.py +0 -0
  182. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/primitives_converter.py +0 -0
  183. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/robot_class_generator.py +0 -0
  184. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/ros_config/__init__.py +0 -0
  185. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/ros_config/export.py +0 -0
  186. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/ros_config/gazebo_generator.py +0 -0
  187. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/ros_config/moveit_generator.py +0 -0
  188. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/ros_config/moveit_package.py +0 -0
  189. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/ros_config/urdf_parser.py +0 -0
  190. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/ros_package.py +0 -0
  191. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/ros_package_exporter.py +0 -0
  192. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/sanitize.py +0 -0
  193. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/scale_urdf.py +0 -0
  194. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/structure.py +0 -0
  195. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/transform_urdf.py +0 -0
  196. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/wheel_collision_converter.py +0 -0
  197. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/urdf/xml_root_link_changer.py +0 -0
  198. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/__init__.py +0 -0
  199. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/_blender_decimate_core.py +0 -0
  200. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/_blender_remesh_core.py +0 -0
  201. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/archive.py +0 -0
  202. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/blender_mesh.py +0 -0
  203. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/checksum.py +0 -0
  204. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/convex_decomposition.py +0 -0
  205. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/draco.py +0 -0
  206. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/inertia.py +0 -0
  207. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/listify.py +0 -0
  208. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/mesh.py +0 -0
  209. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/mjcf_converter.py +0 -0
  210. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/package.py +0 -0
  211. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/primitive_fitting.py +0 -0
  212. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/urdf.py +0 -0
  213. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/urdf_mesh.py +0 -0
  214. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/video.py +0 -0
  215. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/utils/visualization.py +0 -0
  216. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/viewers/_base.py +0 -0
  217. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/viewers/_manipulability_ellipse.py +0 -0
  218. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/viewers/_mitsuba.py +0 -0
  219. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/viewers/_notebook.py +0 -0
  220. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/viewers/_path_utils.py +0 -0
  221. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/viewers/_pyrender.py +0 -0
  222. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/viewers/_trimesh.py +0 -0
  223. {scikit_robot-0.4.2 → scikit_robot-0.4.4}/skrobot/viewers/_viser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scikit-robot
3
- Version: 0.4.2
3
+ Version: 0.4.4
4
4
  Summary: A Flexible Framework for Robot Control in Python
5
5
  Author-email: iory <ab.ioryz@gmail.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "scikit-robot"
7
- version = "0.4.2"
7
+ version = "0.4.4"
8
8
  description = "A Flexible Framework for Robot Control in Python"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -113,6 +113,7 @@ urdf-hash = "skrobot.apps.urdf_hash:main"
113
113
  convert-wheel-collision = "skrobot.apps.convert_wheel_collision:main"
114
114
  urdf-tree = "skrobot.apps.urdf_tree:main"
115
115
  convert-urdf-to-mjcf = "skrobot.apps.convert_urdf_to_mjcf:main"
116
+ convert-urdf-to-usd = "skrobot.apps.convert_urdf_to_usd:main"
116
117
  canonicalize-urdf = "skrobot.apps.canonicalize_urdf:main"
117
118
 
118
119
  [tool.setuptools]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scikit-robot
3
- Version: 0.4.2
3
+ Version: 0.4.4
4
4
  Summary: A Flexible Framework for Robot Control in Python
5
5
  Author-email: iory <ab.ioryz@gmail.com>
6
6
  License: MIT
@@ -19,6 +19,7 @@ skrobot/apps/cli.py
19
19
  skrobot/apps/convert_urdf_mesh.py
20
20
  skrobot/apps/convert_urdf_to_mjcf.py
21
21
  skrobot/apps/convert_urdf_to_primitives.py
22
+ skrobot/apps/convert_urdf_to_usd.py
22
23
  skrobot/apps/convert_wheel_collision.py
23
24
  skrobot/apps/extract_sub_urdf.py
24
25
  skrobot/apps/generate_robot_class.py
@@ -39,6 +40,7 @@ skrobot/backend/numpy_backend.py
39
40
  skrobot/backend/registry.py
40
41
  skrobot/collision/__init__.py
41
42
  skrobot/collision/distance.py
43
+ skrobot/collision/environment_collision.py
42
44
  skrobot/collision/geometry.py
43
45
  skrobot/collision/robot_collision.py
44
46
  skrobot/collision/self_collision.py
@@ -212,6 +214,7 @@ skrobot/viewers/_base.py
212
214
  skrobot/viewers/_manipulability_ellipse.py
213
215
  skrobot/viewers/_mitsuba.py
214
216
  skrobot/viewers/_notebook.py
217
+ skrobot/viewers/_offscreen.py
215
218
  skrobot/viewers/_path_utils.py
216
219
  skrobot/viewers/_pyrender.py
217
220
  skrobot/viewers/_trimesh.py
@@ -3,6 +3,7 @@ canonicalize-urdf = skrobot.apps.canonicalize_urdf:main
3
3
  change-urdf-root = skrobot.apps.change_urdf_root:main
4
4
  convert-urdf-mesh = skrobot.apps.convert_urdf_mesh:main
5
5
  convert-urdf-to-mjcf = skrobot.apps.convert_urdf_to_mjcf:main
6
+ convert-urdf-to-usd = skrobot.apps.convert_urdf_to_usd:main
6
7
  convert-wheel-collision = skrobot.apps.convert_wheel_collision:main
7
8
  modularize-urdf = skrobot.apps.modularize_urdf:main
8
9
  skr = skrobot.apps.cli:main
@@ -24,6 +24,7 @@ def get_available_apps():
24
24
  'extract_sub_urdf': ('Extract sub-URDF from a root link', None),
25
25
  'generate_robot_class': ('Generate robot class from URDF geometry', None),
26
26
  'urdf_tree': ('Print URDF link tree and validate its structure', None),
27
+ 'convert_urdf_to_usd': ('Convert URDF to a USD physics articulation', None),
27
28
  }
28
29
 
29
30
  for filename in os.listdir(apps_dir):
@@ -0,0 +1,115 @@
1
+ #!/usr/bin/env python
2
+ """
3
+ Convert a URDF into a USD physics articulation (Isaac Sim / PhysX).
4
+
5
+ One rigid body per link, visual meshes embedded with their colours (and a
6
+ ``UsdPreviewSurface`` per glTF PBR material), convex collision meshes, and
7
+ revolute/prismatic/fixed joints with position drives. The robot is the stage's
8
+ defaultPrim, so the file can be referenced from another stage as is. Needs
9
+ ``usd-core`` (``pip install usd-core``); ``--decompose`` also needs ``coacd``.
10
+ """
11
+
12
+ import argparse
13
+ from pathlib import Path
14
+ import sys
15
+
16
+
17
+ def _parse_home(items):
18
+ """``['joint=0.5', ...]`` -> ``{'joint': 0.5}``."""
19
+ home = {}
20
+ for item in items or []:
21
+ name, sep, value = item.partition('=')
22
+ if not sep or not name:
23
+ raise ValueError('--home takes JOINT=VALUE, not {!r}'.format(item))
24
+ home[name] = float(value)
25
+ return home
26
+
27
+
28
+ def main():
29
+ parser = argparse.ArgumentParser(
30
+ description='Convert a URDF into a USD physics articulation',
31
+ formatter_class=argparse.RawDescriptionHelpFormatter,
32
+ epilog="""
33
+ Examples:
34
+ convert-urdf-to-usd robot.urdf
35
+ convert-urdf-to-usd robot.urdf -o out/robot.usda --floating-base
36
+ convert-urdf-to-usd robot.urdf --decompose --coacd-quality fine
37
+ convert-urdf-to-usd robot.urdf --home elbow_joint=1.2 --home wrist_joint=-0.3
38
+ """
39
+ )
40
+ parser.add_argument('urdf_file', type=str, help='Path to the input URDF file')
41
+ parser.add_argument('-o', '--output', type=str, default=None,
42
+ help='Output .usd/.usda/.usdc path (default: <urdf_stem>.usd)')
43
+ parser.add_argument('--floating-base', action='store_true',
44
+ help='Leave the base free (default: welded to the world)')
45
+ parser.add_argument('--mobile-base', action='store_true',
46
+ help='Give the base planar x / y / yaw joints instead of '
47
+ 'welding it')
48
+ parser.add_argument('--self-collision', action='store_true',
49
+ help='Keep self-collision between the links (default: off)')
50
+ parser.add_argument('--drive-stiffness', type=float, default=1000.0,
51
+ help='Position-drive stiffness of the joints')
52
+ parser.add_argument('--drive-damping', type=float, default=200.0,
53
+ help='Position-drive damping of the joints')
54
+ parser.add_argument('--no-auto-gain', action='store_true',
55
+ help='Use the same drive gains on every joint instead of '
56
+ 'scaling them by each joint\'s gravity load')
57
+ parser.add_argument('--home', action='append', default=[],
58
+ metavar='JOINT=VALUE',
59
+ help='Drive target of a joint (rad or m); repeatable')
60
+ decompose = parser.add_mutually_exclusive_group()
61
+ decompose.add_argument('--decompose', action='store_true',
62
+ help='CoACD-decompose every concave link\'s collision '
63
+ 'mesh (default: one convex hull per link)')
64
+ decompose.add_argument('--decompose-links', nargs='+', default=None,
65
+ metavar='LINK',
66
+ help='CoACD-decompose exactly these links (names or '
67
+ 'substrings)')
68
+ parser.add_argument('--coacd-quality', choices=['balanced', 'fine'],
69
+ default=None,
70
+ help='CoACD preset for --decompose / --decompose-links '
71
+ '(default: a tight fit)')
72
+ args = parser.parse_args()
73
+
74
+ urdf_path = Path(args.urdf_file)
75
+ if not urdf_path.exists():
76
+ print('error: URDF not found: {}'.format(urdf_path), file=sys.stderr)
77
+ return 1
78
+ try:
79
+ home = _parse_home(args.home)
80
+ except ValueError as e:
81
+ print('error: {}'.format(e), file=sys.stderr)
82
+ return 1
83
+ try:
84
+ import pxr # noqa: F401
85
+
86
+ from skrobot.export.usd import urdf_to_usd
87
+ except ImportError:
88
+ print('error: usd-core is required: pip install usd-core',
89
+ file=sys.stderr)
90
+ return 1
91
+ out_path = args.output or str(urdf_path.with_suffix('.usd'))
92
+ decompose_links = True if args.decompose else args.decompose_links
93
+ coacd_params = None
94
+ if args.coacd_quality is not None:
95
+ coacd_params = {'quality': args.coacd_quality}
96
+
97
+ stage = urdf_to_usd(
98
+ str(urdf_path), out_path,
99
+ floating_base=args.floating_base,
100
+ mobile_base=args.mobile_base,
101
+ self_collision=args.self_collision,
102
+ drive_stiffness=args.drive_stiffness,
103
+ drive_damping=args.drive_damping,
104
+ auto_gain=not args.no_auto_gain,
105
+ home_positions=home or None,
106
+ decompose_links=decompose_links,
107
+ coacd_params=coacd_params,
108
+ )
109
+ print('wrote USD: {} (defaultPrim {})'.format(
110
+ out_path, stage.GetDefaultPrim().GetPath()))
111
+ return 0
112
+
113
+
114
+ if __name__ == '__main__':
115
+ sys.exit(main())
@@ -43,6 +43,10 @@ from skrobot.collision.distance import sphere_box_distance
43
43
  from skrobot.collision.distance import sphere_capsule_distance
44
44
  from skrobot.collision.distance import sphere_halfspace_distance
45
45
  from skrobot.collision.distance import sphere_sphere_distance
46
+ from skrobot.collision.environment_collision import CollisionReport
47
+ from skrobot.collision.environment_collision import EnvironmentCollision
48
+ from skrobot.collision.environment_collision import link_transforms
49
+ from skrobot.collision.environment_collision import sample_surface
46
50
  from skrobot.collision.geometry import Box
47
51
  from skrobot.collision.geometry import Capsule
48
52
  from skrobot.collision.geometry import CollisionGeometry
@@ -83,6 +87,11 @@ __all__ = [
83
87
  # Robot collision
84
88
  'RobotCollisionChecker',
85
89
  'LinkCollisionGeometry',
90
+ # Robot against a static environment
91
+ 'EnvironmentCollision',
92
+ 'CollisionReport',
93
+ 'link_transforms',
94
+ 'sample_surface',
86
95
  # Mesh self-collision + joint-limit sweep
87
96
  'SelfCollision',
88
97
  'sweep_limits',