scikit-robot 0.2.4__tar.gz → 0.2.6__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 (111) hide show
  1. {scikit_robot-0.2.4/scikit_robot.egg-info → scikit_robot-0.2.6}/PKG-INFO +8 -5
  2. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/README.md +1 -0
  3. {scikit_robot-0.2.4 → scikit_robot-0.2.6/scikit_robot.egg-info}/PKG-INFO +8 -5
  4. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/scikit_robot.egg-info/requires.txt +0 -1
  5. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/setup.py +10 -5
  6. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/apps/convert_urdf_mesh.py +37 -0
  7. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/urdf/modularize_urdf.py +3 -1
  8. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/LICENSE +0 -0
  9. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/MANIFEST.in +0 -0
  10. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/pyproject.toml +0 -0
  11. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/requirements.txt +0 -0
  12. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/requirements_docs.txt +0 -0
  13. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/requirements_opt.txt +0 -0
  14. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/scikit_robot.egg-info/SOURCES.txt +0 -0
  15. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/scikit_robot.egg-info/dependency_links.txt +0 -0
  16. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/scikit_robot.egg-info/entry_points.txt +0 -0
  17. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/scikit_robot.egg-info/not-zip-safe +0 -0
  18. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/scikit_robot.egg-info/top_level.txt +0 -0
  19. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/setup.cfg +0 -0
  20. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/__init__.py +0 -0
  21. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/_lazy_imports.py +0 -0
  22. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/apps/__init__.py +0 -0
  23. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/apps/change_urdf_root.py +0 -0
  24. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/apps/modularize_urdf.py +0 -0
  25. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/apps/urdf_hash.py +0 -0
  26. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/apps/visualize_mesh.py +0 -0
  27. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/apps/visualize_urdf.py +0 -0
  28. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/coordinates/__init__.py +0 -0
  29. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/coordinates/base.py +0 -0
  30. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/coordinates/dual_quaternion.py +0 -0
  31. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/coordinates/geo.py +0 -0
  32. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/coordinates/math.py +0 -0
  33. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/coordinates/quaternion.py +0 -0
  34. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/__init__.py +0 -0
  35. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/kuka.urdf +0 -0
  36. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/finger_base_left.stl +0 -0
  37. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/finger_base_right.stl +0 -0
  38. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/finger_tip_left.stl +0 -0
  39. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/finger_tip_right.stl +0 -0
  40. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_0.mtl +0 -0
  41. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_0.obj +0 -0
  42. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_0.stl +0 -0
  43. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_1.mtl +0 -0
  44. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_1.obj +0 -0
  45. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_1.stl +0 -0
  46. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_2.mtl +0 -0
  47. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_2.obj +0 -0
  48. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_2.stl +0 -0
  49. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_3.mtl +0 -0
  50. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_3.obj +0 -0
  51. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_3.stl +0 -0
  52. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_4.mtl +0 -0
  53. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_4.obj +0 -0
  54. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_4.stl +0 -0
  55. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_5.mtl +0 -0
  56. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_5.obj +0 -0
  57. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_5.stl +0 -0
  58. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_6.mtl +0 -0
  59. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_6.obj +0 -0
  60. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_6.stl +0 -0
  61. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_7.mtl +0 -0
  62. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_7.obj +0 -0
  63. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/data/kuka_description/meshes/link_7.stl +0 -0
  64. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/interfaces/__init__.py +0 -0
  65. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/interfaces/_pybullet.py +0 -0
  66. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/interfaces/ros/__init__.py +0 -0
  67. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/interfaces/ros/base.py +0 -0
  68. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/interfaces/ros/move_base.py +0 -0
  69. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/interfaces/ros/panda.py +0 -0
  70. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/interfaces/ros/pr2.py +0 -0
  71. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/interfaces/ros/tf_utils.py +0 -0
  72. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/interfaces/ros/transform_listener.py +0 -0
  73. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/interpolator.py +0 -0
  74. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/model/__init__.py +0 -0
  75. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/model/joint.py +0 -0
  76. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/model/link.py +0 -0
  77. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/model/primitives.py +0 -0
  78. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/model/robot_model.py +0 -0
  79. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/models/__init__.py +0 -0
  80. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/models/fetch.py +0 -0
  81. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/models/kuka.py +0 -0
  82. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/models/panda.py +0 -0
  83. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/models/pr2.py +0 -0
  84. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/models/urdf.py +0 -0
  85. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/optimizer.py +0 -0
  86. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/optimizers/__init__.py +0 -0
  87. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/optimizers/cvxopt_solver.py +0 -0
  88. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/optimizers/quadprog_solver.py +0 -0
  89. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/planner/__init__.py +0 -0
  90. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/planner/collision_checker.py +0 -0
  91. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/planner/sqp_based.py +0 -0
  92. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/planner/swept_sphere.py +0 -0
  93. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/planner/utils.py +0 -0
  94. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/pycompat.py +0 -0
  95. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/sdf/__init__.py +0 -0
  96. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/sdf/signed_distance_function.py +0 -0
  97. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/urdf/__init__.py +0 -0
  98. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/urdf/aggregate.py +0 -0
  99. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/urdf/hash.py +0 -0
  100. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/urdf/xml_root_link_changer.py +0 -0
  101. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/utils/__init__.py +0 -0
  102. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/utils/archive.py +0 -0
  103. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/utils/checksum.py +0 -0
  104. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/utils/listify.py +0 -0
  105. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/utils/mesh.py +0 -0
  106. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/utils/package.py +0 -0
  107. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/utils/urdf.py +0 -0
  108. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/utils/visualization.py +0 -0
  109. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/viewers/__init__.py +0 -0
  110. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/viewers/_pyrender.py +0 -0
  111. {scikit_robot-0.2.4 → scikit_robot-0.2.6}/skrobot/viewers/_trimesh.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scikit-robot
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: A Flexible Framework for Robot Control in Python
5
5
  Home-page: https://github.com/iory/scikit-robot
6
6
  Author: iory
@@ -11,9 +11,12 @@ Classifier: Intended Audience :: Developers
11
11
  Classifier: Natural Language :: English
12
12
  Classifier: License :: OSI Approved :: MIT License
13
13
  Classifier: Programming Language :: Python
14
- Classifier: Programming Language :: Python :: 3.5
15
- Classifier: Programming Language :: Python :: 3.6
16
- Classifier: Programming Language :: Python :: 3.7
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
17
20
  Classifier: Programming Language :: Python :: Implementation :: CPython
18
21
  Description-Content-Type: text/markdown
19
22
  License-File: LICENSE
@@ -53,7 +56,6 @@ Requires-Dist: sphinx>=1.8.2; extra == "docs"
53
56
  Requires-Dist: sphinx_rtd_theme; extra == "docs"
54
57
  Provides-Extra: all
55
58
  Requires-Dist: pybullet>=2.1.9; extra == "all"
56
- Requires-Dist: open3d; extra == "all"
57
59
  Requires-Dist: fast-simplification; extra == "all"
58
60
  Requires-Dist: sphinx>=1.8.2; extra == "all"
59
61
  Requires-Dist: sphinx_rtd_theme; extra == "all"
@@ -74,6 +76,7 @@ Dynamic: summary
74
76
  # scikit-robot: A Flexible Framework for Robot visualization and programming in Python
75
77
 
76
78
  ![PyPI](https://img.shields.io/pypi/v/scikit-robot.svg)
79
+ ![Python Versions](https://img.shields.io/pypi/pyversions/scikit-robot.svg)
77
80
  [![Build Status](https://github.com/iory/scikit-robot/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/iory/scikit-robot/actions)
78
81
 
79
82
 
@@ -1,6 +1,7 @@
1
1
  # scikit-robot: A Flexible Framework for Robot visualization and programming in Python
2
2
 
3
3
  ![PyPI](https://img.shields.io/pypi/v/scikit-robot.svg)
4
+ ![Python Versions](https://img.shields.io/pypi/pyversions/scikit-robot.svg)
4
5
  [![Build Status](https://github.com/iory/scikit-robot/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/iory/scikit-robot/actions)
5
6
 
6
7
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scikit-robot
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: A Flexible Framework for Robot Control in Python
5
5
  Home-page: https://github.com/iory/scikit-robot
6
6
  Author: iory
@@ -11,9 +11,12 @@ Classifier: Intended Audience :: Developers
11
11
  Classifier: Natural Language :: English
12
12
  Classifier: License :: OSI Approved :: MIT License
13
13
  Classifier: Programming Language :: Python
14
- Classifier: Programming Language :: Python :: 3.5
15
- Classifier: Programming Language :: Python :: 3.6
16
- Classifier: Programming Language :: Python :: 3.7
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
17
20
  Classifier: Programming Language :: Python :: Implementation :: CPython
18
21
  Description-Content-Type: text/markdown
19
22
  License-File: LICENSE
@@ -53,7 +56,6 @@ Requires-Dist: sphinx>=1.8.2; extra == "docs"
53
56
  Requires-Dist: sphinx_rtd_theme; extra == "docs"
54
57
  Provides-Extra: all
55
58
  Requires-Dist: pybullet>=2.1.9; extra == "all"
56
- Requires-Dist: open3d; extra == "all"
57
59
  Requires-Dist: fast-simplification; extra == "all"
58
60
  Requires-Dist: sphinx>=1.8.2; extra == "all"
59
61
  Requires-Dist: sphinx_rtd_theme; extra == "all"
@@ -74,6 +76,7 @@ Dynamic: summary
74
76
  # scikit-robot: A Flexible Framework for Robot visualization and programming in Python
75
77
 
76
78
  ![PyPI](https://img.shields.io/pypi/v/scikit-robot.svg)
79
+ ![Python Versions](https://img.shields.io/pypi/pyversions/scikit-robot.svg)
77
80
  [![Build Status](https://github.com/iory/scikit-robot/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/iory/scikit-robot/actions)
78
81
 
79
82
 
@@ -45,7 +45,6 @@ pycollada>=0.8
45
45
 
46
46
  [all]
47
47
  pybullet>=2.1.9
48
- open3d
49
48
  fast-simplification
50
49
  sphinx>=1.8.2
51
50
  sphinx_rtd_theme
@@ -8,7 +8,7 @@ from setuptools import find_packages
8
8
  from setuptools import setup
9
9
 
10
10
 
11
- version = '0.2.4'
11
+ version = '0.2.6'
12
12
 
13
13
 
14
14
  def listup_package_data():
@@ -59,7 +59,9 @@ def remove_from_requirements(install_requires, remove_req):
59
59
 
60
60
  extra_all_requires = ['pybullet>=2.1.9']
61
61
  if (sys.version_info.major > 2):
62
- extra_all_requires.append('open3d')
62
+ # open3d doesn't support Python 3.13 yet
63
+ if (sys.version_info.major, sys.version_info.minor) < (3, 13):
64
+ extra_all_requires.append('open3d')
63
65
  extra_all_requires.append('fast-simplification')
64
66
 
65
67
  # Python 2.7 and 3.4 support has been dropped from packages
@@ -106,9 +108,12 @@ setup(
106
108
  'Natural Language :: English',
107
109
  'License :: OSI Approved :: MIT License',
108
110
  'Programming Language :: Python',
109
- 'Programming Language :: Python :: 3.5',
110
- 'Programming Language :: Python :: 3.6',
111
- 'Programming Language :: Python :: 3.7',
111
+ 'Programming Language :: Python :: 3.8',
112
+ 'Programming Language :: Python :: 3.9',
113
+ 'Programming Language :: Python :: 3.10',
114
+ 'Programming Language :: Python :: 3.11',
115
+ 'Programming Language :: Python :: 3.12',
116
+ 'Programming Language :: Python :: 3.13',
112
117
  'Programming Language :: Python :: Implementation :: CPython',
113
118
  ],
114
119
  packages=find_packages(),
@@ -7,10 +7,13 @@ from pathlib import Path
7
7
  import shutil
8
8
  import sys
9
9
 
10
+ from lxml import etree
10
11
  from packaging.version import Version
11
12
 
12
13
  from skrobot import determine_version
13
14
  from skrobot.model import RobotModel
15
+ from skrobot.urdf.modularize_urdf import find_root_link
16
+ from skrobot.urdf.modularize_urdf import transform_urdf_to_macro
14
17
  from skrobot.utils.package import is_package_installed
15
18
  from skrobot.utils.urdf import export_mesh_format
16
19
  from skrobot.utils.urdf import force_visual_mesh_origin_to_zero
@@ -57,6 +60,14 @@ resulting in less simplification. Default is None."""
57
60
  'When specified, uses enhanced decimation that preserves texture '
58
61
  'colors by converting them to vertex colors, performing decimation, '
59
62
  'and converting back to texture format. Default is None.')
63
+ parser.add_argument(
64
+ '--xacro', action='store_true',
65
+ help='Generate xacro macro file with modularized URDF '
66
+ 'in addition to converted URDF.')
67
+ parser.add_argument(
68
+ '--xacro-no-prefix', action='store_true',
69
+ help='When generating xacro, do not use prefix parameter '
70
+ '(only works with --xacro option).')
60
71
 
61
72
  args = parser.parse_args()
62
73
 
@@ -128,6 +139,32 @@ resulting in less simplification. Default is None."""
128
139
  print(f"Moving {output_path} to {urdf_path} (inplace)")
129
140
  shutil.move(output_path, urdf_path)
130
141
 
142
+ if args.xacro:
143
+ root_link = find_root_link(str(output_path) if not args.inplace else str(urdf_path))
144
+ xacro_root, robot_name = transform_urdf_to_macro(
145
+ str(output_path) if not args.inplace else str(urdf_path),
146
+ root_link,
147
+ args.xacro_no_prefix
148
+ )
149
+
150
+ xacro_output_path = output_path.with_suffix('.xacro') if not args.inplace else urdf_path.with_suffix('.xacro')
151
+ etree.ElementTree(xacro_root).write(
152
+ str(xacro_output_path),
153
+ pretty_print=True,
154
+ xml_declaration=True,
155
+ encoding="utf-8"
156
+ )
157
+ print(f"Successfully generated xacro: {xacro_output_path}")
158
+ prefix_attr = 'prefix="[specify prefix]"' if not args.xacro_no_prefix else ''
159
+ print(f"""To use the generated xacro macro in your xacro file, copy and paste the following:
160
+
161
+ <xacro:{robot_name}
162
+ {prefix_attr}
163
+ parent_link="[specify parent link]">
164
+ <origin xyz="0 0 0" rpy="0 0 0"/>
165
+ </xacro:{robot_name}>
166
+ """)
167
+
131
168
 
132
169
  if __name__ == '__main__':
133
170
  main()
@@ -74,7 +74,9 @@ def transform_urdf_to_macro(input_path, connector_link, no_prefix):
74
74
  xacro_root.append(macro)
75
75
 
76
76
  connector_joint = etree.Element("joint")
77
- connector_joint_name = "{}{}_to_${{parent_link}}_joint".format('${prefix}' if not no_prefix else '', connector_link)
77
+ prefix_part = '${prefix}' if not no_prefix else ''
78
+ connector_link_with_prefix = add_prefix_to_name(connector_link) if not no_prefix else connector_link
79
+ connector_joint_name = f"{prefix_part}${{parent_link}}_to_{connector_link_with_prefix}_joint"
78
80
  connector_joint.set("name", connector_joint_name)
79
81
  connector_joint.set("type", "fixed")
80
82
 
File without changes
File without changes
File without changes