Introduction¶
Navis is a minimal, plug-and-play navigation stack for Python robotics experiments.
It provides a simple, consistent API for running navigation servers and robot clients under the same LAN,
with automatic discovery supported through Zenoh
,
allowing users to quickly connect simulated (or later, physical) robots to a centralized
controller.
Key Features¶
🚀 Plug-and-Play Architecture — connect any robot object implementing a simple interface.
🌐 Router Model — robots communicate with a central navis-router over the network.
🔧 Extensible API — designed to be clear, composable, and easy to extend.
🧩 Visualization Tools — includes a built-in visualizer for real-time state monitoring.
Example Workflow¶
Start the Navis server on your host machine.
Run a robot client that connects automatically.
Send control commands or visualize motion — all through the same Python API.
For example:
# Start the Navis server on host machine
uv run navis-router
# (Optional) Launch the visualizer on client machine
uv run navis-visualizer --dims 30
Then, if robot001
is already connected to the server, you can control it in Python through the API:
import navis
import time
# Initialize a controller for a specific robot
controller = navis.api.RobotController("robot001")
# Send a command
controller.move(linear_vel=1.0, angular_vel=0.0)
time.sleep(2)
controller.move(linear_vel=0.0, angular_vel=0.0)
Next Steps¶
Continue with the Installation guide to get Navis set up locally.