Lightweight heartbeat agent for VnRobo Fleet Monitor
Project description
vnrobo-agent
Lightweight Python agent that sends robot telemetry to VnRobo Fleet Monitor — the open fleet monitoring dashboard for robotics teams.
from vnrobo_agent import VnRoboAgent
agent = VnRoboAgent(api_key="your-key", robot_id="robot-01")
agent.start() # sends heartbeat every 60s in background
Install
pip install vnrobo-agent
Requires Python 3.8+. No dependencies beyond requests.
Quick Start
from vnrobo_agent import VnRoboAgent
agent = VnRoboAgent(
api_key="your-key", # or set VNROBO_API_KEY env var
robot_id="robot-01", # or set VNROBO_ROBOT_ID env var
interval=30, # heartbeat every 30s (default: 60)
)
agent.start()
# ... your robot code runs here ...
agent.stop()
Get your free API key at app.vnrobo.com — free for up to 3 robots.
Send Rich Telemetry
agent.send_heartbeat(
status="busy", # online | idle | busy | error | offline
battery=72.5, # battery % 0-100
location={"lat": 21.0285, "lng": 105.8542}, # GPS or indoor coords
metadata={"task": "picking", "payload_kg": 3.2},
)
ROS 2 Integration
# Zero-config ROS 2 monitoring (no code required):
# See github.com/VnRobo/ros2-fleet-bridge
# Or use the included example node:
ros2 run your_package vnrobo_heartbeat \
--ros-args -p api_key:=YOUR_KEY -p robot_id:=my_robot
Full example: examples/ros2_heartbeat.py
Isaac Lab / RL Training
Track training robots in real-time on the dashboard:
agent = VnRoboAgent(api_key=os.environ["VNROBO_KEY"], robot_id="go2-train-01")
# In your training loop:
agent.send_heartbeat(
status="training",
metadata={"episode": ep, "reward": float(mean_reward), "step": total_steps},
)
CLI
# Test connectivity
vnrobo-agent ping --api-key YOUR_KEY --robot-id robot-01
# Run as daemon
vnrobo-agent start --api-key YOUR_KEY --robot-id robot-01 --interval 30
# Or via environment variables
export VNROBO_API_KEY=your-key
export VNROBO_ROBOT_ID=robot-01
vnrobo-agent start
Compatibility
| Platform | Support |
|---|---|
| ROS 2 (Humble / Iron / Jazzy) | ✅ |
| Isaac Lab / Isaac Sim | ✅ |
| Unitree SDK (Go2, G1, H1) | ✅ |
| MuJoCo / Gymnasium | ✅ |
| Bare Python / embedded | ✅ |
Contributing
git clone https://github.com/VnRobo/vnrobo-agent
cd vnrobo-agent
pip install -e .
Issues and PRs welcome.
License
MIT — see LICENSE.
Monitor your robots for free → app.vnrobo.com
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 vnrobo_agent-0.1.0.tar.gz.
File metadata
- Download URL: vnrobo_agent-0.1.0.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfce1f8ad5a20f28c75e82d299dc39431dc28d67d9bc1d733f80edba72cfe538
|
|
| MD5 |
7097bbe3c9c1f6d7fa9f5ccf152c956d
|
|
| BLAKE2b-256 |
cb5b9424bf33ff36fb2d11cae89a4423c2b906a23c3792abe549c5136c1e521d
|
Provenance
The following attestation bundles were made for vnrobo_agent-0.1.0.tar.gz:
Publisher:
publish.yml on VnRobo/vnrobo-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vnrobo_agent-0.1.0.tar.gz -
Subject digest:
cfce1f8ad5a20f28c75e82d299dc39431dc28d67d9bc1d733f80edba72cfe538 - Sigstore transparency entry: 1349341623
- Sigstore integration time:
-
Permalink:
VnRobo/vnrobo-agent@189b77a63702782badff37546e4abdc9f7dc144c -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/VnRobo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@189b77a63702782badff37546e4abdc9f7dc144c -
Trigger Event:
push
-
Statement type:
File details
Details for the file vnrobo_agent-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vnrobo_agent-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5f143dc5cdc4f6a1d00a3ecfd58e6422e0193fcb40e42ba41c1b2201d417364
|
|
| MD5 |
dc710dc607a8f0ef2e9f72c8e21a80ec
|
|
| BLAKE2b-256 |
ffe065930c708631e6c96a209a4d07d434acc1c2445f8cc23b16696192df9c21
|
Provenance
The following attestation bundles were made for vnrobo_agent-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on VnRobo/vnrobo-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vnrobo_agent-0.1.0-py3-none-any.whl -
Subject digest:
c5f143dc5cdc4f6a1d00a3ecfd58e6422e0193fcb40e42ba41c1b2201d417364 - Sigstore transparency entry: 1349341817
- Sigstore integration time:
-
Permalink:
VnRobo/vnrobo-agent@189b77a63702782badff37546e4abdc9f7dc144c -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/VnRobo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@189b77a63702782badff37546e4abdc9f7dc144c -
Trigger Event:
push
-
Statement type: