Visualizes the state of your nova instance inside of [rerun.io](https://rerun.io). This is intended to be used alongside the [nova python lib](https://github.com/wandelbotsgmbh/wandelbots-nova).
Project description
Nova Rerun Bridge
Visualizes the state of your nova instance inside of rerun.io. Rerun is a tool to quickly visualize time series data. Instructions for navigation within the Rerun Viewer. This is intended to be used alongside the nova python lib. You will need a running nova instance. Register on wandelbots.com to get access.
https://github.com/user-attachments/assets/ab527bc4-720a-41f2-9499-54d6ed027163
🚀 Quick Start
# Install the package
poetry install nova-rerun-bridge
# Download required robot models
poetry run download-models
from nova_rerun_bridge import NovaRerunBridge
from nova import Nova
# Initialize
nova = Nova()
bridge = NovaRerunBridge(nova)
# Setup visualization
await bridge.setup_blueprint()
# Log a trajectory
await bridge.log_trajectory(joint_trajectory, tcp, motion_group)
✨ Features
- 🤖 Real-time 3D robot visualization (see a list of supported robots)
- 🎯 Trajectory playback and analysis
- 💥 Collision scene visualization
- ⏱️ Motion timing analysis
- 🔄 Continuous monitoring mode
💻 Usage Examples
The python library can be used to feed data to the rerun desktop app. The library is built on top of the nova python library and provides a simple interface to feed data to the rerun desktop app. See the minimal example on how to use the library.
Basic Motion Logging
# Log simple motion
await bridge.log_trajectory(joint_trajectory, tcp, motion_group)
Collision Scene Visualization
# Log collision scenes
await bridge.fetch_and_log_collision_scenes()
Setup
Adjust the NOVA_API and NOVA_ACCESS_TOKEN in the .env file to your instance URL (e.g. https://unzhoume.instance.wandelbots.io) and access token. You can find the access token in the developer portal.
📚 More Examples
Check out our example repository for more detailed examples.
⚙️ Configuration
The bridge can be configured through environment variables:
- RECORDING_INTERVAL: Set visualization update interval (default: 0.1s)
Download Robot Models
After installing the library, you need to download the robot models:
# If installed via poetry
poetry run download-models
# If installed via pip
python -m nova_rerun_bridge.models.download_models
This will download the robot models into your project folder. You can use the library without downloading the models, but you will not be able to visualize the robot models in the rerun viewer.
Tools
Code formatting and linting is done with [ruff]
poetry run ruff check scripts/. --fix
poetry run ruff format
Build
To build the package locally, run the following command
poetry build
This will create a dist/ directory with the built package (.tar.gz and .whl files).
Install a development branch in Poetry
nova-rerun-bridge = { git = "https://github.com/wandelbotsgmbh/nova-rerun-bridge.git", branch = "feature/branchname" }
Run as Nova App
The easiest way to try it out is to install the app on your nova instance. Use the nova cli tool and run:
nova catalog install rerun
There are two script which can be run to feed the data to the rerun desktop app. The app automatically runs both scripts in the background. You can also run the scripts manually on your local machine.
- run
python nova_rerun_bridge/polling/populate.pyto start a service which periodically polls the nova instance for new planned trajectories - run
python nova_rerun_bridge/polling/stream_motion_groups.pyto start a service which streams the state of the active motion groups
Development
Deploy on local instance
-
use the kubeconfig from your nova instance and run
export KUBECONFIG=kubeconfig -
you can use skaffold to build the image and change the deployment
skaffold dev --cleanup=false --status-check=false
Issues
- rerun is able to run behind reverse proxy and the viewer can connect via web
- rerun sdk is not able to connect to rerun which is hosted behind reverse proxy
brew install socat
socat TCP4-LISTEN:6666,fork SYSTEM:"curl -X POST -d @- http://172.30.2.224/some/rerun/sdk/"
{ echo "load_module /usr/lib/nginx/modules/ngx_stream_module.so;"; cat /etc/nginx/nginx.conf; } > temp_file && mv temp_file /etc/nginx/nginx.conf
📝 License
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nova_rerun_bridge-0.10.1.tar.gz.
File metadata
- Download URL: nova_rerun_bridge-0.10.1.tar.gz
- Upload date:
- Size: 32.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba00e6aa08c84a56d44e1e9d89c509e5a8fd4c4254643dd885b6521f41606176
|
|
| MD5 |
e1ac142f6a4beb99039558d7ddbaac9b
|
|
| BLAKE2b-256 |
ef49664e79be3421c3b552a19a5a7c1fc7b4ba627bd8d7bbc1b7c58cc55b785d
|
File details
Details for the file nova_rerun_bridge-0.10.1-py3-none-any.whl.
File metadata
- Download URL: nova_rerun_bridge-0.10.1-py3-none-any.whl
- Upload date:
- Size: 38.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4867b8920b6d0c7a7441e1a089f6b737efa3df97d71f55449464327697d84b8
|
|
| MD5 |
61981643ef44c79efbb757a659f9f417
|
|
| BLAKE2b-256 |
00de97fcc75e1318c6af4a4272c75e59a64f27c801fcdefd253fc15db3d38886
|