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

Download files

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

Source Distribution

nanobot-0.4.1.tar.gz (41.7 kB view details)

Uploaded Source

Built Distribution

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

nanobot-0.4.1-py3-none-any.whl (53.9 kB view details)

Uploaded Python 3

File details

Details for the file nanobot-0.4.1.tar.gz.

File metadata

  • Download URL: nanobot-0.4.1.tar.gz
  • Upload date:
  • Size: 41.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for nanobot-0.4.1.tar.gz
Algorithm Hash digest
SHA256 2b3376cef7a7e4a75f01d1503ea65c0074fd8a4e3a31bc5e153f1afc8db75eb2
MD5 3268af613b43137662fbf000ca7739b6
BLAKE2b-256 f5066cd43ddc4c22a84abc310e1bc61440347a62163ae260211a30c23ae5d2a8

See more details on using hashes here.

File details

Details for the file nanobot-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: nanobot-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 53.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for nanobot-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 40cf0d2befdf64991aafb894d9a7f09d2d0c9506774fcc8638d453ced4bbf0ad
MD5 aff8d2c982e8e7bf80ee8deb5374832d
BLAKE2b-256 6c012905b21cff9b48553ec2829e9fdfdd274ddf2eeac7a43eb14824bf6f30ed

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 files

0.4.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page