Skip to main content

Minimalist robot navigation framework using cascading decision nodes

Project description

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

Project details


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.0.tar.gz (41.0 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.0-py3-none-any.whl (53.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nanobot-0.4.0.tar.gz
  • Upload date:
  • Size: 41.0 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.0.tar.gz
Algorithm Hash digest
SHA256 dd2fa0d9010bf3aa2db32eeec2b01dae8682d05545873bd6b3f9d3ffb315d30b
MD5 6528785201555850d7137c0eac0001ce
BLAKE2b-256 cc006425422b7063dfff8751f9def9451f7eb51956ff5ec21b09d5c1421090de

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nanobot-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 53.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d319d0b785658dd882f0d7d775ab432e46f9ac0c49897ae181e17a0a04e9683c
MD5 b4f99f3c3aca09ee5d1d4fdf39605be5
BLAKE2b-256 514b1b60df5350c940b2c2ec78ece0395689675a846c694ff5b4fb61c7ab24ca

See more details on using hashes here.

Supported by

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