hivebr — OpenLab Simulator
A lightweight 2D simulation framework for single- and multi-robot mobile navigation, built on Pygame, with a dual-paradigm OpenLab API for centralized and decentralized control.
Robots in the simulator are called B-bots (for bee), keeping the hive metaphor.
📖 Full documentation: https://eliasjof.github.io/hivebr_simulator/
Installation
pip install hivebr
Optional extras:
pip install "hivebr[maps]" # occupancy grids (Pillow + scipy)
pip install "hivebr[plot]" # data logger plots (matplotlib)
Quick start
from hivebr import HiveBrAgent, SwarmExperiment
class Patrol(HiveBrAgent):
def loop(self, state, neighbors):
# state.goal holds the current waypoint (x, y, theta)
return 0.5, 0.0
exp = SwarmExperiment(robots=3, backend="navsim2d")
exp.assign_agent(robot_ids=[0, 1, 2], agent_class=Patrol)
exp.assign_route(0, [[5, 2, 0.0], [5, 6, 0.0]])
exp.run()
A single robot is just a fleet with N = 1. Switching backend="ros2" reuses
the same agent code on the physical arena.
Dual paradigm
Decentralized — HiveBrAgent |
Centralized — SwarmController |
|---|---|
| One instance per B-bot | Exactly one instance |
Receives its state + neighbors |
Receives all states |
| Returns a command | Returns {robot_id: command} |
| Reactive control, consensus | Global planning, optimization (DE, L-SHADE) |
Features
- Mono or fleet, one API. A single robot is a fleet with
N = 1. - Interactive GUI. Pan/zoom, load occupancy-grid maps, switch themes, toggle LiDAR, add waypoints and obstacles with the mouse.
- Two environment representations. Analytic circular obstacles and image-based occupancy grids with inflation.
- Precision sensing. Ray-casting LiDAR (DDA) against the grid plus analytic circle intersections.
- Deterministic fleets. Each timestep is computed from a frozen snapshot of the fleet state, independent of update order.
- Research-ready. Pluggable controllers, path planners (A*, RRT, RRT*, PRM, BIT*, OMPL, RRT-Dubins), and a data logger for offline analysis.
Robot models
type |
Command |
|---|---|
differential |
{"v": ..., "omega": ...} |
differential_firstorder |
{"v": ..., "omega": ...} |
holonomic |
{"vx": ..., "vy": ...} |
ackermann |
{"speed": ..., "steer": ...} |
boat |
{"v": ..., "omega": ...} |
Run the examples
# from a clone of the repository (examples are not shipped in the wheel)
python examples/controle_robodiferencial.py
python examples/decentralized_swarm.py
python examples/multi_robot_differential.py
Links
- Documentation: https://eliasjof.github.io/hivebr_simulator/
- Repository: https://github.com/eliasjof/hivebr_simulator
- Issue tracker: https://github.com/eliasjof/hivebr_simulator/issues
License
MIT — free for educational and research use. See LICENSE.
Metadata
Release files for hivebr 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hivebr-0.1.0.tar.gz | 2.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hivebr-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.0 MB
Release files / hivebr-0.1.0.tar.gz
| Download URL | hivebr-0.1.0.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4bdf3cf5bf9eadef0066ab7fed5189bd91c40a3b163a8a47834632854303960e
|
|
BLAKE2b-256 checksum How to use checksums |
4e5280ab5a135fe108a104f39fba8a0a9e79bfb9637faa07185cf57a5fb5c9ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / hivebr-0.1.0-py3-none-any.whl
| Download URL | hivebr-0.1.0-py3-none-any.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
839bfeba2942d7ccf106e72009c96e1b0012200494f80baab60f0bdae98ce2a8
|
|
BLAKE2b-256 checksum How to use checksums |
d90fc209a8415cfea1e05ed75da344f28cf7b0ccd7c0f82af3a5d8e6773b0e53
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|