Skip to main content

bonicos

The Python SDK for BonicBot robots. Drive the base, move the arms, run navigation and mapping, and read live sensor telemetry — from your own laptop or from a program running on the robot itself, with the same code either way.

pip install bonicos
from bonicos import BonicBot

with BonicBot("192.168.1.50", robot_id="M1_001") as robot:
    robot.move_forward(speed=0.3, duration=2)
    robot.move_left_arm(shoulder=45, elbow=-30)
    print(robot.get_battery(), "V")
# motors stopped and the connection closed, even on an exception

Requires Python 3.10+. Pure Python — the same wheel runs on a laptop, a Raspberry Pi, or a Jetson.


Connecting

bonicos talks to the robot over your local network. You need the robot's address and its robot id:

robot = BonicBot("192.168.1.50", robot_id="M1_001")

The id must match the robot you're pointing at — it's a guard against driving the wrong machine on a network with several robots on it, and the connection is refused if it doesn't match.

If the environment already knows which robot you mean, a bare BonicBot() works. That's the case when your program runs on the robot, where BONICOS_HOST and BONICOS_ROBOT_ID are set for you — so a script you developed on your laptop needs no edits to run on the robot. You can also set those variables yourself, or install bonicos[discovery] to find a robot by mDNS.

Anyone on the same network can connect. There is no authentication yet — the robot id is a wrong-robot guard, not a password. Run robots on a network you trust.

No robot handy? BonicBot.simulated() connects to a fake one instead — driving, arms, and telemetry all behave for real, with no network and no hardware required.


What you can do

Area Examples
Motion move_forward, move_backward, turn_left, turn_right, stop, raw drive
Precise motion drive_distance, rotate_angle, drive_and_rotate, draw_square, queued routines
Navigation go_to(x, y), navigate_waypoints, cancel_goal, wait_for_goal, get_plan
Mapping enter_mapping_mode, start_mapping, save_map, list_maps, enter_navigation_mode
Arms & grippers move_left_arm, move_right_arm, set_servos, set_gripper, set_neck, get_servo_angles
Sensors get_position, get_battery, get_imu, get_servo_angles, wait_for_update
Camera get_camera_frame() → BGR numpy arrays (needs pip install bonicos[camera])
System speak, health, ask_llm, session status and recovery

Full reference with every signature: API.md.

Movement calls block until the robot actually gets there — move_left_arm(...) returns when the joint has converged on its target, not when the command was merely acknowledged.

Not yet working on the robot

Some commands are accepted and silently do nothing on current robot firmware. Your code runs; that actuator just doesn't move. They are marked 🔌 stub in API.md:

  • Named locations — save_location, goto_location, list_locations, delete_location, delete_all_locations
  • Nav2 lifecycle — start_navigation, stop_navigation
  • servo_single, head expression (head_mode, head_look), and the LED matrix (display_*)

Everything else in the table above is live. Vision pipelines (face/pose/object detection), autonomous exploration, and recorded sequences are not in this release.


Safety

  • Use the context-manager form (with BonicBot(...) as robot:) or call robot.close() in a finally. Both stop the robot on the way out.
  • The robot stops its own motors if it stops hearing from you (roughly 400 ms), so a crashed script or a dropped connection will not leave it driving. That backstop covers driving only — a navigation goal keeps running, so cancel it explicitly if you're bailing out.

Installing extras

pip install bonicos              # driving, arms, navigation, telemetry
pip install bonicos[camera]      # + camera frames (aiortc, numpy)
pip install bonicos[discovery]   # + find a robot by mDNS

Each extra reports what's missing if you use a feature without it, rather than failing with an import error.


Documentation

  • API.md — every class and method, with blocking behaviour and worked examples.
  • PROTOCOL.md — the wire protocol, if you're writing your own client or working on the robot side.

License

MIT — see LICENSE. © Autobonics Pvt Ltd.

Download files

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

Source Distribution

bonicos-0.1.1.tar.gz (84.1 kB view details)

Uploaded Source

Built Distribution

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

bonicos-0.1.1-py3-none-any.whl (52.4 kB view details)

Uploaded Python 3

File details

Details for the file bonicos-0.1.1.tar.gz.

File metadata

  • Download URL: bonicos-0.1.1.tar.gz
  • Upload date:
  • Size: 84.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for bonicos-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f8fc039faa3b87ad8c3a9c0e543d95ef2a4ccc320715ce7ad5d292810697a0ae
MD5 2f7670e9c16341cee1a569cddf87152f
BLAKE2b-256 03cc5347de38ea903fe061fbc704fb637c5a0b9d87303758f84770efe2c3cd96

See more details on using hashes here.

File details

Details for the file bonicos-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: bonicos-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 52.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for bonicos-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ee51f816005970a7f0cefe09f38d69eccc7a5ecbd23638a722f0d05f21007e9d
MD5 8acd7aa3c9c7deb72e82d24a12cd40e6
BLAKE2b-256 f8bdd5991e72eee79e83054936070bccbdad56c19907200131335cb0e978bb99

See more details on using hashes here.

Release history Release notifications | RSS feed

0.7.0

2 files

0.5.2

2 files

0.2.0

2 files

This release

0.1.1 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page