Skip to main content

A set of convenient logging and testing tools for the Drake robotics toolbox.

Project description

codecov sphinx

brom_drake-py

Brom is a helper library for the Drake 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
The Drake-ify feature (converts your URDF file into a form that Drake can consume) drakeify_my_urdf() Drakeify Example
Productions (partially complete robot scenarios to test your algorithms) (See Examples Directory or the Docs) Kinematic Motion Planning Example
Puppeteer (Move free bodies in drake with a RigidTransform input) Puppetmaker class's methods A cube being moved using the Puppetmaker's methods.

To learn more, look through our documentation here.

Installation

brom_drake is available on PyPI and installable with pip:

pip install brom-drake

ROS 2-capable install

If you use ROS 2 package URIs (for example, package://...) and want brom_drake to resolve package share directories via ament_index_python, install the optional ROS 2 extra:

pip install "brom-drake[ros2]"

In most ROS 2 workflows, make sure your ROS 2 environment is sourced before running your scripts so package discovery works as expected.

Developer install

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

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 is a character from the Inheritance series by Christopher Paolini. He is a wise mentor that helps Eragon (the protagonist) master dragons. ;)

Where are the release notes?

You can follow the development of Brom by:

  • Following the Release Notes on Substack ([Substack])
  • Studying the Pull Requests (available above in the Pull Requests tab of GitHub), or

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 - 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 - 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 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brom_drake-0.5.6.tar.gz (27.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brom_drake-0.5.6-py3-none-any.whl (27.8 MB view details)

Uploaded Python 3

File details

Details for the file brom_drake-0.5.6.tar.gz.

File metadata

  • Download URL: brom_drake-0.5.6.tar.gz
  • Upload date:
  • Size: 27.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for brom_drake-0.5.6.tar.gz
Algorithm Hash digest
SHA256 06e859734882b3489c06e8ad8d0a86b9cf88cc3d336cc73ebd9d8f3c9b5f03a5
MD5 d14dd4595c3ee81a86341d22477c0a13
BLAKE2b-256 1cdf74bf1aac39d013d43374d3f9553c0aec8c038d09c94cc28254e2d719e391

See more details on using hashes here.

Provenance

The following attestation bundles were made for brom_drake-0.5.6.tar.gz:

Publisher: deploy-to-pypi.yml on kwesiRutledge/brom_drake-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brom_drake-0.5.6-py3-none-any.whl.

File metadata

  • Download URL: brom_drake-0.5.6-py3-none-any.whl
  • Upload date:
  • Size: 27.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for brom_drake-0.5.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f39d1af10a752d84ebee1e5356a2658bbbd8eac9ba2878f65317a1551e4f3adf
MD5 60b229cdd13033b4be2a16a3af4e5808
BLAKE2b-256 008f7b7ba7c8dbe244d93608dacc46293cdd03c01173fe15eae13b80b0321efd

See more details on using hashes here.

Provenance

The following attestation bundles were made for brom_drake-0.5.6-py3-none-any.whl:

Publisher: deploy-to-pypi.yml on kwesiRutledge/brom_drake-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page