brom-drake 0.0.1.post3__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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Kwesi Rutledge
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,98 @@
1
+ Metadata-Version: 2.1
2
+ Name: brom_drake
3
+ Version: 0.0.1.post3
4
+ Summary: A set of convenient logging and testing tools for the Drake robotics toolbox.
5
+ Author: Kwesi Rutledge
6
+ Author-email: thesolitaryecrivain@gmail.com
7
+ Keywords: drake,robotics,testing,logging
8
+ Classifier: Programming Language :: Python :: 3
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+
12
+
13
+ [![codecov](https://codecov.io/gh/kwesiRutledge/brom_drake-py/graph/badge.svg?token=0TI5PV2HUD)](https://codecov.io/gh/kwesiRutledge/brom_drake-py)
14
+
15
+ # brom_drake-py
16
+ Brom is a helper library for the [Drake](https://drake.mit.edu/) robotics simulation and verification library.
17
+ Its goal is to simplify logging and robustness characterization
18
+ of Drake simulations.
19
+
20
+ ## Usage
21
+
22
+ ### DiagramWatcher
23
+
24
+ It is recommended that you use the convenience function `add_watcher_and_build` to add a `DiagramWatcher` to your diagram.
25
+
26
+ ```python
27
+ # Drake imports
28
+ from pydrake.all import (
29
+ DiagramBuilder, Simulator,
30
+ )
31
+ # All your other imports
32
+
33
+ from brom_drake.all import add_watcher_and_build
34
+
35
+ # Create a diagram builder
36
+ builder = DiagramBuilder()
37
+
38
+ # Add and connect your systems...
39
+
40
+ # Add the watcher and build the diagram
41
+ dw, diagram, diagram_context = add_watcher_and_build(builder)
42
+
43
+ # Set up simulation
44
+ simulator = Simulator(diagram, diagram_context)
45
+ simulator.set_target_realtime_rate(1.0)
46
+ simulator.set_publish_every_time_step(False)
47
+
48
+ # Run simulation
49
+ simulator.Initialize()
50
+ simulator.AdvanceTo(15.0)
51
+
52
+ ```
53
+
54
+
55
+ What will happen whenever you use this function is that:
56
+ - The `DiagramWatcher` will be created.
57
+ - It will search through all systems that the `DiagramBuilder` has added.
58
+ - For each system, the watcher will add a `VectorLogger` to each output port that is a `kVectorValued` port.
59
+ - The `DiagramWatcher` will connect all loggers to all targeted ports (in this case, we will target all available output ports).
60
+ - After the simulation is run and the script completes, the watcher will save all of the data traces for each port in plots. These plots will be in a new `.brom` directory.
61
+
62
+ ## Installation
63
+
64
+ ### Local install:
65
+
66
+ ```bash
67
+ pip install -r requirements.txt
68
+ pip install -e .
69
+ ```
70
+
71
+ ## FAQs
72
+
73
+ ### Why the name Brom?
74
+
75
+ [Brom the storyteller](https://inheritance.fandom.com/wiki/Brom) is a character from the
76
+ [Inheritance](https://en.wikipedia.org/wiki/Eragon) series by Christopher Paolini.
77
+ He is a wise mentor that helps Eragon (the protagonist) master dragons. ;)
78
+
79
+
80
+
81
+ ## Related Work
82
+
83
+ Some other work in the open-source drake community:
84
+ - [kinova_drake](https://github.com/vincekurtz/kinova_drake) - A Drake-based library that builds a
85
+ simple version of the manipulation station for the Kinova Gen3 robot arm.
86
+ Also works with the hardware.
87
+
88
+ ## To-Dos
89
+
90
+ - [ ] Figure out how to tell if two systems are connected in Drake.
91
+ - [x] Demonstrate how to create a simple Vector logger for the
92
+ tutorial's diagram.
93
+ - [x] Determine if we can use `DiagramTarget` objects to do everything (assuming that they are all valid). i.e., with the name and the port # can we do waht we want?
94
+ - [ ] Add more examples
95
+ - [x] Add Code coverage
96
+ - [ ] Add support for abstract output ports?
97
+ - [ ] Add more readme explanations of what is going on under the hood.
98
+ - [ ] Add support for giving `DiagramTarget` (or simpler objects) to the convenience functions.
@@ -0,0 +1,86 @@
1
+ [![codecov](https://codecov.io/gh/kwesiRutledge/brom_drake-py/graph/badge.svg?token=0TI5PV2HUD)](https://codecov.io/gh/kwesiRutledge/brom_drake-py)
2
+
3
+ # brom_drake-py
4
+ Brom is a helper library for the [Drake](https://drake.mit.edu/) robotics simulation and verification library.
5
+ Its goal is to simplify logging and robustness characterization
6
+ of Drake simulations.
7
+
8
+ ## Usage
9
+
10
+ ### DiagramWatcher
11
+
12
+ It is recommended that you use the convenience function `add_watcher_and_build` to add a `DiagramWatcher` to your diagram.
13
+
14
+ ```python
15
+ # Drake imports
16
+ from pydrake.all import (
17
+ DiagramBuilder, Simulator,
18
+ )
19
+ # All your other imports
20
+
21
+ from brom_drake.all import add_watcher_and_build
22
+
23
+ # Create a diagram builder
24
+ builder = DiagramBuilder()
25
+
26
+ # Add and connect your systems...
27
+
28
+ # Add the watcher and build the diagram
29
+ dw, diagram, diagram_context = add_watcher_and_build(builder)
30
+
31
+ # Set up simulation
32
+ simulator = Simulator(diagram, diagram_context)
33
+ simulator.set_target_realtime_rate(1.0)
34
+ simulator.set_publish_every_time_step(False)
35
+
36
+ # Run simulation
37
+ simulator.Initialize()
38
+ simulator.AdvanceTo(15.0)
39
+
40
+ ```
41
+
42
+
43
+ What will happen whenever you use this function is that:
44
+ - The `DiagramWatcher` will be created.
45
+ - It will search through all systems that the `DiagramBuilder` has added.
46
+ - For each system, the watcher will add a `VectorLogger` to each output port that is a `kVectorValued` port.
47
+ - The `DiagramWatcher` will connect all loggers to all targeted ports (in this case, we will target all available output ports).
48
+ - After the simulation is run and the script completes, the watcher will save all of the data traces for each port in plots. These plots will be in a new `.brom` directory.
49
+
50
+ ## Installation
51
+
52
+ ### Local install:
53
+
54
+ ```bash
55
+ pip install -r requirements.txt
56
+ pip install -e .
57
+ ```
58
+
59
+ ## FAQs
60
+
61
+ ### Why the name Brom?
62
+
63
+ [Brom the storyteller](https://inheritance.fandom.com/wiki/Brom) is a character from the
64
+ [Inheritance](https://en.wikipedia.org/wiki/Eragon) series by Christopher Paolini.
65
+ He is a wise mentor that helps Eragon (the protagonist) master dragons. ;)
66
+
67
+
68
+
69
+ ## Related Work
70
+
71
+ Some other work in the open-source drake community:
72
+ - [kinova_drake](https://github.com/vincekurtz/kinova_drake) - A Drake-based library that builds a
73
+ simple version of the manipulation station for the Kinova Gen3 robot arm.
74
+ Also works with the hardware.
75
+
76
+ ## To-Dos
77
+
78
+ - [ ] Figure out how to tell if two systems are connected in Drake.
79
+ - [x] Demonstrate how to create a simple Vector logger for the
80
+ tutorial's diagram.
81
+ - [x] Determine if we can use `DiagramTarget` objects to do everything (assuming that they are all valid). i.e., with the name and the port # can we do waht we want?
82
+ - [ ] Add more examples
83
+ - [x] Add Code coverage
84
+ - [ ] Add support for abstract output ports?
85
+ - [ ] Add more readme explanations of what is going on under the hood.
86
+ - [ ] Add support for giving `DiagramTarget` (or simpler objects) to the convenience functions.
@@ -0,0 +1,98 @@
1
+ Metadata-Version: 2.1
2
+ Name: brom-drake
3
+ Version: 0.0.1.post3
4
+ Summary: A set of convenient logging and testing tools for the Drake robotics toolbox.
5
+ Author: Kwesi Rutledge
6
+ Author-email: thesolitaryecrivain@gmail.com
7
+ Keywords: drake,robotics,testing,logging
8
+ Classifier: Programming Language :: Python :: 3
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+
12
+
13
+ [![codecov](https://codecov.io/gh/kwesiRutledge/brom_drake-py/graph/badge.svg?token=0TI5PV2HUD)](https://codecov.io/gh/kwesiRutledge/brom_drake-py)
14
+
15
+ # brom_drake-py
16
+ Brom is a helper library for the [Drake](https://drake.mit.edu/) robotics simulation and verification library.
17
+ Its goal is to simplify logging and robustness characterization
18
+ of Drake simulations.
19
+
20
+ ## Usage
21
+
22
+ ### DiagramWatcher
23
+
24
+ It is recommended that you use the convenience function `add_watcher_and_build` to add a `DiagramWatcher` to your diagram.
25
+
26
+ ```python
27
+ # Drake imports
28
+ from pydrake.all import (
29
+ DiagramBuilder, Simulator,
30
+ )
31
+ # All your other imports
32
+
33
+ from brom_drake.all import add_watcher_and_build
34
+
35
+ # Create a diagram builder
36
+ builder = DiagramBuilder()
37
+
38
+ # Add and connect your systems...
39
+
40
+ # Add the watcher and build the diagram
41
+ dw, diagram, diagram_context = add_watcher_and_build(builder)
42
+
43
+ # Set up simulation
44
+ simulator = Simulator(diagram, diagram_context)
45
+ simulator.set_target_realtime_rate(1.0)
46
+ simulator.set_publish_every_time_step(False)
47
+
48
+ # Run simulation
49
+ simulator.Initialize()
50
+ simulator.AdvanceTo(15.0)
51
+
52
+ ```
53
+
54
+
55
+ What will happen whenever you use this function is that:
56
+ - The `DiagramWatcher` will be created.
57
+ - It will search through all systems that the `DiagramBuilder` has added.
58
+ - For each system, the watcher will add a `VectorLogger` to each output port that is a `kVectorValued` port.
59
+ - The `DiagramWatcher` will connect all loggers to all targeted ports (in this case, we will target all available output ports).
60
+ - After the simulation is run and the script completes, the watcher will save all of the data traces for each port in plots. These plots will be in a new `.brom` directory.
61
+
62
+ ## Installation
63
+
64
+ ### Local install:
65
+
66
+ ```bash
67
+ pip install -r requirements.txt
68
+ pip install -e .
69
+ ```
70
+
71
+ ## FAQs
72
+
73
+ ### Why the name Brom?
74
+
75
+ [Brom the storyteller](https://inheritance.fandom.com/wiki/Brom) is a character from the
76
+ [Inheritance](https://en.wikipedia.org/wiki/Eragon) series by Christopher Paolini.
77
+ He is a wise mentor that helps Eragon (the protagonist) master dragons. ;)
78
+
79
+
80
+
81
+ ## Related Work
82
+
83
+ Some other work in the open-source drake community:
84
+ - [kinova_drake](https://github.com/vincekurtz/kinova_drake) - A Drake-based library that builds a
85
+ simple version of the manipulation station for the Kinova Gen3 robot arm.
86
+ Also works with the hardware.
87
+
88
+ ## To-Dos
89
+
90
+ - [ ] Figure out how to tell if two systems are connected in Drake.
91
+ - [x] Demonstrate how to create a simple Vector logger for the
92
+ tutorial's diagram.
93
+ - [x] Determine if we can use `DiagramTarget` objects to do everything (assuming that they are all valid). i.e., with the name and the port # can we do waht we want?
94
+ - [ ] Add more examples
95
+ - [x] Add Code coverage
96
+ - [ ] Add support for abstract output ports?
97
+ - [ ] Add more readme explanations of what is going on under the hood.
98
+ - [ ] Add support for giving `DiagramTarget` (or simpler objects) to the convenience functions.
@@ -0,0 +1,8 @@
1
+ LICENSE
2
+ README.md
3
+ setup.py
4
+ brom_drake.egg-info/PKG-INFO
5
+ brom_drake.egg-info/SOURCES.txt
6
+ brom_drake.egg-info/dependency_links.txt
7
+ brom_drake.egg-info/requires.txt
8
+ brom_drake.egg-info/top_level.txt
@@ -0,0 +1,5 @@
1
+ drake
2
+ meshcat
3
+ manipulation
4
+ loguru
5
+ matplotlib
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,27 @@
1
+ from setuptools import find_packages, setup
2
+ import codecs
3
+ import os
4
+
5
+ if __name__ == "__main__":
6
+ here = os.path.abspath(os.path.dirname(__file__))
7
+
8
+ with codecs.open(
9
+ os.path.join(here, "README.md"), encoding="utf-8"
10
+ ) as f:
11
+ long_description = "\n" + f.read()
12
+
13
+ setup(
14
+ name="brom_drake",
15
+ version='0.0.1-3',
16
+ author="Kwesi Rutledge",
17
+ author_email="thesolitaryecrivain@gmail.com",
18
+ description="A set of convenient logging and testing tools for the Drake robotics toolbox.",
19
+ long_description_content_type="text/markdown",
20
+ long_description=long_description,
21
+ packages=find_packages(),
22
+ install_requires=['drake', 'meshcat', 'manipulation', 'loguru', 'matplotlib'],
23
+ keywords=["drake", "robotics", "testing", "logging"],
24
+ classifiers=[
25
+ "Programming Language :: Python :: 3",
26
+ ]
27
+ )