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.
- brom_drake-0.0.1.post3/LICENSE +21 -0
- brom_drake-0.0.1.post3/PKG-INFO +98 -0
- brom_drake-0.0.1.post3/README.md +86 -0
- brom_drake-0.0.1.post3/brom_drake.egg-info/PKG-INFO +98 -0
- brom_drake-0.0.1.post3/brom_drake.egg-info/SOURCES.txt +8 -0
- brom_drake-0.0.1.post3/brom_drake.egg-info/dependency_links.txt +1 -0
- brom_drake-0.0.1.post3/brom_drake.egg-info/requires.txt +5 -0
- brom_drake-0.0.1.post3/brom_drake.egg-info/top_level.txt +1 -0
- brom_drake-0.0.1.post3/setup.cfg +4 -0
- brom_drake-0.0.1.post3/setup.py +27 -0
|
@@ -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
|
+
[](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
|
+
[](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
|
+
[](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 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -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
|
+
)
|