Skip to main content

NanoBot

Minimalist robot navigation framework using cascading decision nodes.

For NVIDIA Jetson robots (Nano, Orin, Xavier, TX2) - Python 3.6+

Principle

Nodes execute in cascade by priority. First to return a decision wins.

SafetyNode (0)      -> Avoid collisions
NavigationNode (10) -> Handle turns
ExplorerNode (50)   -> Move forward

Install

pip install nanobot

Quick Start

from nanobot import NodeEngine, SensorData
from nanobot.nodes import SafetyNode, NavigationNode, ExplorerNode

engine = NodeEngine()
engine.add_node(SafetyNode())
engine.add_node(NavigationNode())
engine.add_node(ExplorerNode())

while True:
    sensors = SensorData(front=1.5, left=0.8, right=0.6)
    decision = engine.tick(sensors)
    if decision:
        robot.execute(decision.action, decision.speed)

CLI

python -m nanobot                    # Local simulation
python -m nanobot -s 192.168.1.1:8777  # Connect to server

Custom Node

from nanobot.core import Node, Decision, Action

class MyNode(Node):
    def __init__(self):
        super().__init__("MY_NODE", priority=25)

    def evaluate(self, sensors):
        if sensors.front < 0.5:
            return Decision(Action.STOP, 0.0, "Too close")
        return None  # Pass to next node

Available Nodes

  • SafetyNode (0) - Collision avoidance
  • NavigationNode (10) - Turn handling
  • PathfindingNode (20) - A* navigation
  • WallFollowerNode (30) - Wall following with PID
  • ExplorationNode (40) - Frontier exploration
  • ExplorerNode (50) - Basic forward movement

Actions

FORWARD, BACKWARD, TURN_LEFT, TURN_RIGHT, STOP

License

MIT

Metadata

Release files for nanobot 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nanobot 0.4.1
File Size Uploaded
nanobot-0.4.1.tar.gz 41.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nanobot 0.4.1
File Interpreter ABI Platform
nanobot-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 95.7 kB

Release files / nanobot-0.4.1.tar.gz

Download URL nanobot-0.4.1.tar.gz
Size 41.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2b3376cef7a7e4a75f01d1503ea65c0074fd8a4e3a31bc5e153f1afc8db75eb2
BLAKE2b-256 checksum
How to use checksums
f5066cd43ddc4c22a84abc310e1bc61440347a62163ae260211a30c23ae5d2a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / nanobot-0.4.1-py3-none-any.whl

Download URL nanobot-0.4.1-py3-none-any.whl
Size 53.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
40cf0d2befdf64991aafb894d9a7f09d2d0c9506774fcc8638d453ced4bbf0ad
BLAKE2b-256 checksum
How to use checksums
6c012905b21cff9b48553ec2829e9fdfdd274ddf2eeac7a43eb14824bf6f30ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

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