rod 0.2.1.dev43__tar.gz → 0.2.1.dev45__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 (52) hide show
  1. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/PKG-INFO +51 -21
  2. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/README.md +50 -20
  3. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod.egg-info/PKG-INFO +51 -21
  4. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/.github/workflows/ci_cd.yml +0 -0
  5. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/.github/workflows/style.yml +0 -0
  6. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/.gitignore +0 -0
  7. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/LICENSE +0 -0
  8. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/pyproject.toml +0 -0
  9. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/setup.cfg +0 -0
  10. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/setup.py +0 -0
  11. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/__init__.py +0 -0
  12. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/builder/__init__.py +0 -0
  13. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/builder/primitive_builder.py +0 -0
  14. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/builder/primitives.py +0 -0
  15. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/kinematics/__init__.py +0 -0
  16. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/kinematics/kinematic_tree.py +0 -0
  17. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/kinematics/tree_transforms.py +0 -0
  18. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/logging.py +0 -0
  19. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/pretty_printer.py +0 -0
  20. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/__init__.py +0 -0
  21. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/collision.py +0 -0
  22. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/common.py +0 -0
  23. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/element.py +0 -0
  24. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/geometry.py +0 -0
  25. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/joint.py +0 -0
  26. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/link.py +0 -0
  27. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/material.py +0 -0
  28. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/model.py +0 -0
  29. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/physics.py +0 -0
  30. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/scene.py +0 -0
  31. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/sdf.py +0 -0
  32. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/visual.py +0 -0
  33. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/sdf/world.py +0 -0
  34. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/tree/__init__.py +0 -0
  35. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/tree/directed_tree.py +0 -0
  36. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/tree/tree_elements.py +0 -0
  37. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/urdf/__init__.py +0 -0
  38. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/urdf/exporter.py +0 -0
  39. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/utils/__init__.py +0 -0
  40. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/utils/frame_convention.py +0 -0
  41. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/utils/gazebo.py +0 -0
  42. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/utils/resolve_frames.py +0 -0
  43. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod/utils/resolve_uris.py +0 -0
  44. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod.egg-info/SOURCES.txt +0 -0
  45. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod.egg-info/dependency_links.txt +0 -0
  46. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod.egg-info/not-zip-safe +0 -0
  47. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod.egg-info/requires.txt +0 -0
  48. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/src/rod.egg-info/top_level.txt +0 -0
  49. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/tests/test_meshbuilder.py +0 -0
  50. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/tests/test_urdf_exporter.py +0 -0
  51. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/tests/test_urdf_parsing.py +0 -0
  52. {rod-0.2.1.dev43 → rod-0.2.1.dev45}/tests/utils_models.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rod
3
- Version: 0.2.1.dev43
3
+ Version: 0.2.1.dev45
4
4
  Summary: The ultimate Python tool for RObot Descriptions processing.
5
5
  Home-page: https://github.com/ami-iit/rod
6
6
  Author: Diego Ferigo
@@ -81,39 +81,71 @@ Last but not least, the pose semantics also makes SDF aware of the concept of _f
81
81
 
82
82
  ## Features
83
83
 
84
- - Out-of-the-box support of SDFormat specifications [≥ 1.7][sdformat_spec_17]
85
- - Serialization and deserialization support of SDF files
86
- - In-memory layout based on `dataclasses`
87
- - Syntax highlighting and auto-completion
88
- - Support of programmatic creation of SDF files from Python APIs
89
- - Transitive support of URDF through conversion to SDF[^urdf_to_sdf]
90
- - Type validation of elements and attributes
91
- - Automatic check of missing required elements
92
- - Based on [`Fatal1ty/mashumaro`][mashumaro] for great serialization and deserialization performance
93
- - Support of exporting the in-memory model description to URDF
84
+ - Out-of-the-box support for SDFormat specifications [≥ 1.10][sdformat_spec_110].
85
+ - Serialization and deserialization support for SDF files.
86
+ - In-memory layout based on `dataclasses`.
87
+ - Syntax highlighting and auto-completion.
88
+ - Programmatic creation of SDF files from Python APIs.
89
+ - Transitive support for URDF through conversion to SDF.
90
+ - Type validation of elements and attributes.
91
+ - Automatic check of missing required elements.
92
+ - High-performance serialization and deserialization using [`Fatal1ty/mashumaro`][mashumaro].
93
+ - Export in-memory model description to URDF.
94
94
 
95
95
  [mashumaro]: https://github.com/Fatal1ty/mashumaro
96
96
  [open_robotics]: https://www.openrobotics.org/
97
97
  [pose_semantics]: http://sdformat.org/tutorials?tut=pose_frame_semantics_proposal&cat=pose_semantics_docs&
98
98
  [sdformat]: http://sdformat.org/
99
99
  [sdformat_python]: http://sdformat.org/tutorials?tut=python_bindings&cat=developers&
100
- [sdformat_repo]: https://github.com/gazebosim/sdformat
101
100
  [sdformat_spec]: http://sdformat.org/spec
102
- [sdformat_spec_17]: http://sdformat.org/spec?elem=sdf&ver=1.7
101
+ [sdformat_spec_110]: http://sdformat.org/spec?elem=sdf&ver=1.10
103
102
  [urdf]: http://wiki.ros.org/urdf
104
103
 
105
- [^urdf_to_sdf]: Conversion can be done either using `ign sdf` included in Ignition Gazebo Fortress, or `gz sdf` included in Gazebo Sim starting from Garden.
104
+ [^urdf_to_sdf]: Conversion can be done using the `gz sdf` command included in Gazebo Sim starting from Garden.
106
105
 
107
106
  ## Installation
108
107
 
109
- You can install the project with [`pypa/pip`][pip], preferably in a [virtual environment][venv]:
108
+ > [!TIP]
109
+ > ROD does not support out-of-the-box URDF files.
110
+ > URDF support is obtained by converting URDF files to SDF using the `gz sdf` command provided by [sdformat][sdformat_repo] and [gz-tools][gz-tools_repo].
111
+ > Ensure these tools are installed on your system if URDF support is needed (more information below).
112
+
113
+ [sdformat_repo]: https://github.com/gazebosim/sdformat
114
+ [gz-tools_repo]: https://github.com/gazebosim/gz-tools
115
+
116
+ <details>
117
+ <summary>Using conda (recommended)</summary>
118
+
119
+ Installing ROD using `conda` is the recommended way to obtain a complete installation with out-of-the-box support for both URDF and SDF descriptions:
110
120
 
111
121
  ```bash
112
- pip install git+https://github.com/ami-iit/rod
122
+ conda install rod -c conda-forge
113
123
  ```
114
124
 
125
+ This will automatically install `sdformat` and `gz-tools`.
126
+
127
+ </details>
128
+
129
+ <details>
130
+ <summary>Using pip</summary>
131
+
132
+ You can install ROD from PyPI with [`pypa/pip`][pip], preferably in a [virtual environment][venv]:
133
+
134
+ ```bash
135
+ pip install rod[all]
136
+ ```
137
+
138
+ If you need URDF support, follow the [official instructions][gazebo_sim_docs] to install Gazebo Sim on your operating system,
139
+ making sure to obtain `sdformat ≥ 13.0` and `gz-tools ≥ 2.0`.
140
+
141
+ You don't need to install the entire Gazebo Sim suite.
142
+ For example, on Ubuntu, you can only install the `libsdformat13 gz-tools2` packages.
143
+
115
144
  [pip]: https://github.com/pypa/pip/
116
- [venv]: https://docs.python.org/3.8/tutorial/venv.html
145
+ [venv]: https://docs.python.org/3.10/tutorial/venv.html
146
+ [gazebo_sim_docs]: https://gazebosim.org/docs
147
+
148
+ </details>
117
149
 
118
150
  ## Examples
119
151
 
@@ -224,10 +256,8 @@ print(sdf.serialize(pretty=True))
224
256
 
225
257
  from rod.urdf.exporter import UrdfExporter
226
258
 
227
- urdf_string = UrdfExporter.sdf_to_urdf_string(
228
- sdf=sdf,
229
- pretty=True,
230
- gazebo_preserve_fixed_joints=True,
259
+ urdf_string = UrdfExporter(pretty=True, gazebo_preserve_fixed_joints=True).to_urdf_string(
260
+ sdf=sdf
231
261
  )
232
262
 
233
263
  print(urdf_string)
@@ -21,39 +21,71 @@ Last but not least, the pose semantics also makes SDF aware of the concept of _f
21
21
 
22
22
  ## Features
23
23
 
24
- - Out-of-the-box support of SDFormat specifications [≥ 1.7][sdformat_spec_17]
25
- - Serialization and deserialization support of SDF files
26
- - In-memory layout based on `dataclasses`
27
- - Syntax highlighting and auto-completion
28
- - Support of programmatic creation of SDF files from Python APIs
29
- - Transitive support of URDF through conversion to SDF[^urdf_to_sdf]
30
- - Type validation of elements and attributes
31
- - Automatic check of missing required elements
32
- - Based on [`Fatal1ty/mashumaro`][mashumaro] for great serialization and deserialization performance
33
- - Support of exporting the in-memory model description to URDF
24
+ - Out-of-the-box support for SDFormat specifications [≥ 1.10][sdformat_spec_110].
25
+ - Serialization and deserialization support for SDF files.
26
+ - In-memory layout based on `dataclasses`.
27
+ - Syntax highlighting and auto-completion.
28
+ - Programmatic creation of SDF files from Python APIs.
29
+ - Transitive support for URDF through conversion to SDF.
30
+ - Type validation of elements and attributes.
31
+ - Automatic check of missing required elements.
32
+ - High-performance serialization and deserialization using [`Fatal1ty/mashumaro`][mashumaro].
33
+ - Export in-memory model description to URDF.
34
34
 
35
35
  [mashumaro]: https://github.com/Fatal1ty/mashumaro
36
36
  [open_robotics]: https://www.openrobotics.org/
37
37
  [pose_semantics]: http://sdformat.org/tutorials?tut=pose_frame_semantics_proposal&cat=pose_semantics_docs&
38
38
  [sdformat]: http://sdformat.org/
39
39
  [sdformat_python]: http://sdformat.org/tutorials?tut=python_bindings&cat=developers&
40
- [sdformat_repo]: https://github.com/gazebosim/sdformat
41
40
  [sdformat_spec]: http://sdformat.org/spec
42
- [sdformat_spec_17]: http://sdformat.org/spec?elem=sdf&ver=1.7
41
+ [sdformat_spec_110]: http://sdformat.org/spec?elem=sdf&ver=1.10
43
42
  [urdf]: http://wiki.ros.org/urdf
44
43
 
45
- [^urdf_to_sdf]: Conversion can be done either using `ign sdf` included in Ignition Gazebo Fortress, or `gz sdf` included in Gazebo Sim starting from Garden.
44
+ [^urdf_to_sdf]: Conversion can be done using the `gz sdf` command included in Gazebo Sim starting from Garden.
46
45
 
47
46
  ## Installation
48
47
 
49
- You can install the project with [`pypa/pip`][pip], preferably in a [virtual environment][venv]:
48
+ > [!TIP]
49
+ > ROD does not support out-of-the-box URDF files.
50
+ > URDF support is obtained by converting URDF files to SDF using the `gz sdf` command provided by [sdformat][sdformat_repo] and [gz-tools][gz-tools_repo].
51
+ > Ensure these tools are installed on your system if URDF support is needed (more information below).
52
+
53
+ [sdformat_repo]: https://github.com/gazebosim/sdformat
54
+ [gz-tools_repo]: https://github.com/gazebosim/gz-tools
55
+
56
+ <details>
57
+ <summary>Using conda (recommended)</summary>
58
+
59
+ Installing ROD using `conda` is the recommended way to obtain a complete installation with out-of-the-box support for both URDF and SDF descriptions:
50
60
 
51
61
  ```bash
52
- pip install git+https://github.com/ami-iit/rod
62
+ conda install rod -c conda-forge
53
63
  ```
54
64
 
65
+ This will automatically install `sdformat` and `gz-tools`.
66
+
67
+ </details>
68
+
69
+ <details>
70
+ <summary>Using pip</summary>
71
+
72
+ You can install ROD from PyPI with [`pypa/pip`][pip], preferably in a [virtual environment][venv]:
73
+
74
+ ```bash
75
+ pip install rod[all]
76
+ ```
77
+
78
+ If you need URDF support, follow the [official instructions][gazebo_sim_docs] to install Gazebo Sim on your operating system,
79
+ making sure to obtain `sdformat ≥ 13.0` and `gz-tools ≥ 2.0`.
80
+
81
+ You don't need to install the entire Gazebo Sim suite.
82
+ For example, on Ubuntu, you can only install the `libsdformat13 gz-tools2` packages.
83
+
55
84
  [pip]: https://github.com/pypa/pip/
56
- [venv]: https://docs.python.org/3.8/tutorial/venv.html
85
+ [venv]: https://docs.python.org/3.10/tutorial/venv.html
86
+ [gazebo_sim_docs]: https://gazebosim.org/docs
87
+
88
+ </details>
57
89
 
58
90
  ## Examples
59
91
 
@@ -164,10 +196,8 @@ print(sdf.serialize(pretty=True))
164
196
 
165
197
  from rod.urdf.exporter import UrdfExporter
166
198
 
167
- urdf_string = UrdfExporter.sdf_to_urdf_string(
168
- sdf=sdf,
169
- pretty=True,
170
- gazebo_preserve_fixed_joints=True,
199
+ urdf_string = UrdfExporter(pretty=True, gazebo_preserve_fixed_joints=True).to_urdf_string(
200
+ sdf=sdf
171
201
  )
172
202
 
173
203
  print(urdf_string)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rod
3
- Version: 0.2.1.dev43
3
+ Version: 0.2.1.dev45
4
4
  Summary: The ultimate Python tool for RObot Descriptions processing.
5
5
  Home-page: https://github.com/ami-iit/rod
6
6
  Author: Diego Ferigo
@@ -81,39 +81,71 @@ Last but not least, the pose semantics also makes SDF aware of the concept of _f
81
81
 
82
82
  ## Features
83
83
 
84
- - Out-of-the-box support of SDFormat specifications [≥ 1.7][sdformat_spec_17]
85
- - Serialization and deserialization support of SDF files
86
- - In-memory layout based on `dataclasses`
87
- - Syntax highlighting and auto-completion
88
- - Support of programmatic creation of SDF files from Python APIs
89
- - Transitive support of URDF through conversion to SDF[^urdf_to_sdf]
90
- - Type validation of elements and attributes
91
- - Automatic check of missing required elements
92
- - Based on [`Fatal1ty/mashumaro`][mashumaro] for great serialization and deserialization performance
93
- - Support of exporting the in-memory model description to URDF
84
+ - Out-of-the-box support for SDFormat specifications [≥ 1.10][sdformat_spec_110].
85
+ - Serialization and deserialization support for SDF files.
86
+ - In-memory layout based on `dataclasses`.
87
+ - Syntax highlighting and auto-completion.
88
+ - Programmatic creation of SDF files from Python APIs.
89
+ - Transitive support for URDF through conversion to SDF.
90
+ - Type validation of elements and attributes.
91
+ - Automatic check of missing required elements.
92
+ - High-performance serialization and deserialization using [`Fatal1ty/mashumaro`][mashumaro].
93
+ - Export in-memory model description to URDF.
94
94
 
95
95
  [mashumaro]: https://github.com/Fatal1ty/mashumaro
96
96
  [open_robotics]: https://www.openrobotics.org/
97
97
  [pose_semantics]: http://sdformat.org/tutorials?tut=pose_frame_semantics_proposal&cat=pose_semantics_docs&
98
98
  [sdformat]: http://sdformat.org/
99
99
  [sdformat_python]: http://sdformat.org/tutorials?tut=python_bindings&cat=developers&
100
- [sdformat_repo]: https://github.com/gazebosim/sdformat
101
100
  [sdformat_spec]: http://sdformat.org/spec
102
- [sdformat_spec_17]: http://sdformat.org/spec?elem=sdf&ver=1.7
101
+ [sdformat_spec_110]: http://sdformat.org/spec?elem=sdf&ver=1.10
103
102
  [urdf]: http://wiki.ros.org/urdf
104
103
 
105
- [^urdf_to_sdf]: Conversion can be done either using `ign sdf` included in Ignition Gazebo Fortress, or `gz sdf` included in Gazebo Sim starting from Garden.
104
+ [^urdf_to_sdf]: Conversion can be done using the `gz sdf` command included in Gazebo Sim starting from Garden.
106
105
 
107
106
  ## Installation
108
107
 
109
- You can install the project with [`pypa/pip`][pip], preferably in a [virtual environment][venv]:
108
+ > [!TIP]
109
+ > ROD does not support out-of-the-box URDF files.
110
+ > URDF support is obtained by converting URDF files to SDF using the `gz sdf` command provided by [sdformat][sdformat_repo] and [gz-tools][gz-tools_repo].
111
+ > Ensure these tools are installed on your system if URDF support is needed (more information below).
112
+
113
+ [sdformat_repo]: https://github.com/gazebosim/sdformat
114
+ [gz-tools_repo]: https://github.com/gazebosim/gz-tools
115
+
116
+ <details>
117
+ <summary>Using conda (recommended)</summary>
118
+
119
+ Installing ROD using `conda` is the recommended way to obtain a complete installation with out-of-the-box support for both URDF and SDF descriptions:
110
120
 
111
121
  ```bash
112
- pip install git+https://github.com/ami-iit/rod
122
+ conda install rod -c conda-forge
113
123
  ```
114
124
 
125
+ This will automatically install `sdformat` and `gz-tools`.
126
+
127
+ </details>
128
+
129
+ <details>
130
+ <summary>Using pip</summary>
131
+
132
+ You can install ROD from PyPI with [`pypa/pip`][pip], preferably in a [virtual environment][venv]:
133
+
134
+ ```bash
135
+ pip install rod[all]
136
+ ```
137
+
138
+ If you need URDF support, follow the [official instructions][gazebo_sim_docs] to install Gazebo Sim on your operating system,
139
+ making sure to obtain `sdformat ≥ 13.0` and `gz-tools ≥ 2.0`.
140
+
141
+ You don't need to install the entire Gazebo Sim suite.
142
+ For example, on Ubuntu, you can only install the `libsdformat13 gz-tools2` packages.
143
+
115
144
  [pip]: https://github.com/pypa/pip/
116
- [venv]: https://docs.python.org/3.8/tutorial/venv.html
145
+ [venv]: https://docs.python.org/3.10/tutorial/venv.html
146
+ [gazebo_sim_docs]: https://gazebosim.org/docs
147
+
148
+ </details>
117
149
 
118
150
  ## Examples
119
151
 
@@ -224,10 +256,8 @@ print(sdf.serialize(pretty=True))
224
256
 
225
257
  from rod.urdf.exporter import UrdfExporter
226
258
 
227
- urdf_string = UrdfExporter.sdf_to_urdf_string(
228
- sdf=sdf,
229
- pretty=True,
230
- gazebo_preserve_fixed_joints=True,
259
+ urdf_string = UrdfExporter(pretty=True, gazebo_preserve_fixed_joints=True).to_urdf_string(
260
+ sdf=sdf
231
261
  )
232
262
 
233
263
  print(urdf_string)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes