brom-drake


Namebrom-drake JSON
Version 0.3.1 PyPI version JSON
download
home_pagehttps://github.com/kwesiRutledge/brom_drake-py
SummaryA set of convenient logging and testing tools for the Drake robotics toolbox.
upload_time2025-01-05 22:10:28
maintainerNone
docs_urlNone
authorKwesi Rutledge
requires_pythonNone
licenseNone
keywords drake robotics testing logging
VCS
bugtrack_url
requirements drake manipulation numpy meshcat matplotlib scipy pycollada trimesh pytest pytest-cov ipdb typer loguru networkx
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
[![codecov](https://codecov.io/gh/kwesiRutledge/brom_drake-py/graph/badge.svg?token=0TI5PV2HUD)](https://codecov.io/gh/kwesiRutledge/brom_drake-py)

# brom_drake-py
Brom is a helper library for the [Drake](https://drake.mit.edu/) robotics simulation and verification library.
Its goal is to simplify common debugging and testing activities in Drake (for example, logging the outputs
of systems in your block diagrams). 

Some of Brom's features:

Feature                    |  Code | Results
:-------------------------:|:-------------------------:|:-------------------------:
The Diagram Watcher (the `DiagramWatcher` will log + plot all output ports of your `Diagram` automatically) |`add_watcher_and_build()`| ![Creation of Brom Directory](./promo/BromWatcher0.gif)
The Drake-ify feature (converts your URDF file into a form that Drake can consume) | `drakeify_my_urdf()` | ![Drakeify Example](./promo/BromDrakeifyURDF0.gif)
Productions (partially complete robot scenarios to test your algorithms) | (See [Examples Directory](https://github.com/kwesiRutledge/brom_drake-py/tree/main/examples/productions) or [the Wiki](https://github.com/kwesiRutledge/brom_drake-py/wiki/Productions)) | ![Kinematic Motion Planning Example](./promo/productions/motion_planning/kinematic/Chem-Lab-Demo.gif)

To learn more, look through our documentation/Wiki [here](https://github.com/kwesiRutledge/brom_drake-py/wiki).

## Installation

`brom_drake` is available on PyPI and installable with pip:

```shell
pip install brom-drake
```

### Developer install

You can also install the package during local development by cloning
the repository and running the following commands from inside it:

```bash
pip install -r requirements.txt
pip install -e .
```

## Citation

Feel free to cite this project if it helped with your work!

```
@misc{bromDrake2024,
  author = "Kwesi Rutledge and the Wrench Robotics Team",
  title = "Brom: A Helper Library for the Drake Toolbox",
  year = 2024,
}
```

## FAQs

### Why the name Brom?

[Brom the storyteller](https://inheritance.fandom.com/wiki/Brom) is a character from the
[Inheritance](https://en.wikipedia.org/wiki/Eragon) series by Christopher Paolini.
He is a wise mentor that helps Eragon (the protagonist) master dragons. ;)



### How can I support this project?

Feel free to create an issue/send the Wrench Robotics team a message if you're interested in helping out!

## Related Work

Some other work in the open-source Drake community:
- [kinova_drake](https://github.com/vincekurtz/kinova_drake) - A Drake-based library that builds a 
  simple version of the manipulation station for the Kinova Gen3 robot arm.
  Also works with the hardware.
- [airo-drake](https://github.com/airo-ugent/airo-drake) - A python package meant to simplify
  working with Drake and the `airo-mono` repository from the AI and Robotics Lab at Ghent University.

## To-Dos

- [ ] Figure out how to tell if two systems are connected in Drake.
- [ ] Add support for abstract output ports?
- [ ] Add more readme explanations of what is going on under the hood.
- [ ] Create a method that makes each material in a URDF file have unique names if they have specific values
- [ ] Allow for the user to give "Drake-unfriendly" URDFs to `ShowMeThisModel` production

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/kwesiRutledge/brom_drake-py",
    "name": "brom-drake",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "drake, robotics, testing, logging",
    "author": "Kwesi Rutledge",
    "author_email": "thesolitaryecrivain@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/e6/5e/0cef69c0bc74926c7ebef4c25555f686346c947e08ddbb10ae6a5c11cd82/brom_drake-0.3.1.tar.gz",
    "platform": null,
    "description": "\n[![codecov](https://codecov.io/gh/kwesiRutledge/brom_drake-py/graph/badge.svg?token=0TI5PV2HUD)](https://codecov.io/gh/kwesiRutledge/brom_drake-py)\n\n# brom_drake-py\nBrom is a helper library for the [Drake](https://drake.mit.edu/) robotics simulation and verification library.\nIts goal is to simplify common debugging and testing activities in Drake (for example, logging the outputs\nof systems in your block diagrams). \n\nSome of Brom's features:\n\nFeature                    |  Code | Results\n:-------------------------:|:-------------------------:|:-------------------------:\nThe Diagram Watcher (the `DiagramWatcher` will log + plot all output ports of your `Diagram` automatically) |`add_watcher_and_build()`| ![Creation of Brom Directory](./promo/BromWatcher0.gif)\nThe Drake-ify feature (converts your URDF file into a form that Drake can consume) | `drakeify_my_urdf()` | ![Drakeify Example](./promo/BromDrakeifyURDF0.gif)\nProductions (partially complete robot scenarios to test your algorithms) | (See [Examples Directory](https://github.com/kwesiRutledge/brom_drake-py/tree/main/examples/productions) or [the Wiki](https://github.com/kwesiRutledge/brom_drake-py/wiki/Productions)) | ![Kinematic Motion Planning Example](./promo/productions/motion_planning/kinematic/Chem-Lab-Demo.gif)\n\nTo learn more, look through our documentation/Wiki [here](https://github.com/kwesiRutledge/brom_drake-py/wiki).\n\n## Installation\n\n`brom_drake` is available on PyPI and installable with pip:\n\n```shell\npip install brom-drake\n```\n\n### Developer install\n\nYou can also install the package during local development by cloning\nthe repository and running the following commands from inside it:\n\n```bash\npip install -r requirements.txt\npip install -e .\n```\n\n## Citation\n\nFeel free to cite this project if it helped with your work!\n\n```\n@misc{bromDrake2024,\n  author = \"Kwesi Rutledge and the Wrench Robotics Team\",\n  title = \"Brom: A Helper Library for the Drake Toolbox\",\n  year = 2024,\n}\n```\n\n## FAQs\n\n### Why the name Brom?\n\n[Brom the storyteller](https://inheritance.fandom.com/wiki/Brom) is a character from the\n[Inheritance](https://en.wikipedia.org/wiki/Eragon) series by Christopher Paolini.\nHe is a wise mentor that helps Eragon (the protagonist) master dragons. ;)\n\n\n\n### How can I support this project?\n\nFeel free to create an issue/send the Wrench Robotics team a message if you're interested in helping out!\n\n## Related Work\n\nSome other work in the open-source Drake community:\n- [kinova_drake](https://github.com/vincekurtz/kinova_drake) - A Drake-based library that builds a \n  simple version of the manipulation station for the Kinova Gen3 robot arm.\n  Also works with the hardware.\n- [airo-drake](https://github.com/airo-ugent/airo-drake) - A python package meant to simplify\n  working with Drake and the `airo-mono` repository from the AI and Robotics Lab at Ghent University.\n\n## To-Dos\n\n- [ ] Figure out how to tell if two systems are connected in Drake.\n- [ ] Add support for abstract output ports?\n- [ ] Add more readme explanations of what is going on under the hood.\n- [ ] Create a method that makes each material in a URDF file have unique names if they have specific values\n- [ ] Allow for the user to give \"Drake-unfriendly\" URDFs to `ShowMeThisModel` production\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A set of convenient logging and testing tools for the Drake robotics toolbox.",
    "version": "0.3.1",
    "project_urls": {
        "Homepage": "https://github.com/kwesiRutledge/brom_drake-py"
    },
    "split_keywords": [
        "drake",
        " robotics",
        " testing",
        " logging"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "686009f61c0e096622d72b9cfeebdc1eea0d3286667eddff300e7779aa56664e",
                "md5": "639abc7222e5aa9b11251aa6f01c8fc9",
                "sha256": "961c8b70899c1f264917416b205803d7bb09483e0a2b7bf026f07c523ec5bc00"
            },
            "downloads": -1,
            "filename": "brom_drake-0.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "639abc7222e5aa9b11251aa6f01c8fc9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 106732,
            "upload_time": "2025-01-05T22:10:25",
            "upload_time_iso_8601": "2025-01-05T22:10:25.718640Z",
            "url": "https://files.pythonhosted.org/packages/68/60/09f61c0e096622d72b9cfeebdc1eea0d3286667eddff300e7779aa56664e/brom_drake-0.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e65e0cef69c0bc74926c7ebef4c25555f686346c947e08ddbb10ae6a5c11cd82",
                "md5": "f877f435eca84171ebce00cd2fc7bde5",
                "sha256": "5a499191d2274536949acee0c765aa2c37c14265e70e157d61284faeab27bbe5"
            },
            "downloads": -1,
            "filename": "brom_drake-0.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "f877f435eca84171ebce00cd2fc7bde5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 67645,
            "upload_time": "2025-01-05T22:10:28",
            "upload_time_iso_8601": "2025-01-05T22:10:28.550070Z",
            "url": "https://files.pythonhosted.org/packages/e6/5e/0cef69c0bc74926c7ebef4c25555f686346c947e08ddbb10ae6a5c11cd82/brom_drake-0.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-05 22:10:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kwesiRutledge",
    "github_project": "brom_drake-py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "drake",
            "specs": []
        },
        {
            "name": "manipulation",
            "specs": []
        },
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "meshcat",
            "specs": []
        },
        {
            "name": "matplotlib",
            "specs": []
        },
        {
            "name": "scipy",
            "specs": []
        },
        {
            "name": "pycollada",
            "specs": []
        },
        {
            "name": "trimesh",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "pytest-cov",
            "specs": []
        },
        {
            "name": "ipdb",
            "specs": []
        },
        {
            "name": "typer",
            "specs": []
        },
        {
            "name": "loguru",
            "specs": []
        },
        {
            "name": "networkx",
            "specs": []
        }
    ],
    "lcname": "brom-drake"
}
        
Elapsed time: 0.41823s