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.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.

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