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 avoidanceNavigationNode(10) - Turn handlingPathfindingNode(20) - A* navigationWallFollowerNode(30) - Wall following with PIDExplorationNode(40) - Frontier explorationExplorerNode(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)
| File | Size | Uploaded | |
|---|---|---|---|
| nanobot-0.4.1.tar.gz | 41.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|