Dashboard
🚧 Under Development: The HORUS Dashboard is currently under active development. Features and APIs may change. Check back for updates!
Your mission control for robotics applications. Monitor performance, debug issues, and tune parameters - all from your browser, accessible from any device on your network.
What is it?
The HORUS Dashboard is a web interface that lets you see inside your running robot system. Instead of tailing logs or SSH'ing into your robot, you get a visual, real-time view of everything happening.
Access it from:
- Your laptop while the robot runs
- Your phone/tablet for mobile monitoring
- Another team member's computer
- Anywhere on your network
Why use it?
You want to know: "Is my robot working?"
The dashboard shows you at a glance:
- All nodes running? (System health badge)
- Performance good? (CPU, memory, tick rates)
- Messages flowing? (Topic activity)
- Any errors? (Error counts)
Without the dashboard: Grep logs, check processes, SSH into robot, hope you find the issue
With the dashboard: Open browser, see everything instantly
You want to: "Debug why it's not working"
Common problems the dashboard solves:
"My subscriber isn't getting messages"
- Check Topics tab Is the topic there?
- Check Graph view Are publisher and subscriber connected?
- Check Logs Any connection errors?
"The robot is running slow"
- Check Nodes tab Which node is using 90% CPU?
- Check tick rates Which node can't keep up?
- Check Logs Any "slow tick" warnings?
"It worked yesterday, what changed?"
- Check Parameters What values are different?
- Check Nodes Same nodes running as before?
You want to: "Tune parameters live"
Example: Tuning PID controller gains
Without dashboard:
- Edit config file
- Stop robot
- Restart robot
- Test behavior
- Repeat 20 times
With dashboard:
- Open Parameters tab
- Edit
pid.kpvalue - Watch robot respond instantly
- Tweak until perfect
- Export final values
Result: 5 minutes instead of an hour
Quick Start
# Start your robot
horus run
# In another terminal, start dashboard
horus dashboard
Browser opens automatically to http://localhost:3000
What You Can Do
1. Monitor Performance
See at a glance:
- All running nodes in a table
- CPU and memory usage per node
- How fast each node is running (tick rate)
- Error counts
When to check:
- Starting up (verify all nodes launched)
- During operation (watch for anomalies)
- After code changes (ensure no performance regression)
What you'll notice:
- Tick rate steady at ~60 Hz Good
- CPU jumping to 90% Check that node
- Errors climbing Something's wrong
2. Debug Message Flow
Visual graph showing:
- Blue circles = Your nodes
- Green circles = Topics
- Arrows = Who's talking to whom
Use it when:
-
"Why isn't my subscriber getting data?"
- Look: Is there an arrow from publisher topic subscriber?
- If not: Name mismatch or node not running
-
"Which nodes use this topic?"
- Click the topic circle
- See all connected nodes highlighted
3. Watch Real-Time Logs
See logs from:
- All nodes combined (system-wide view)
- One specific node (filter dropdown)
- Messages on a specific topic
Use it when:
- Debugging errors
- Verifying messages are being sent
- Checking timing (IPC overhead shown)
Better than terminal logs:
- Color-coded by level (info/warning/error)
- Filter by node without grep
- Auto-scrolls with new messages
- Shows performance metrics
4. Tune Parameters Live
Interactive parameter editor:
- See all current values
- Edit any parameter
- Changes apply immediately
- Auto-saves to disk
Perfect for:
- PID tuning (adjust gains while watching behavior)
- Speed limits (test different max velocities)
- Sensor thresholds (tune detection sensitivity)
You'll save hours compared to edit-restart-test cycles
5. Manage Packages
Browse and install:
- Search the registry for packages
- One-click install
- Choose global or local installation
Like npm/pip but for robot components
6. Deploy to Robots
Send code to physical hardware:
- Enter robot's IP/ID
- Select file to deploy
- Click deploy
- Watch build progress
- View robot's logs and stats
Use it when:
- Testing on real hardware
- Running experiments remotely
- Managing multiple robots
Common Scenarios
Starting Your Day
You just sat down with coffee:
- Open dashboard
- Check health badge 🟢 All good
- Glance at nodes table All running, tick rates normal
- Start working
Total time: 10 seconds to verify system health
Something Broke
Your robot stopped moving:
Dashboard workflow:
- Health badge is 🔴 Critical
- Nodes tab
motor_controllerhas 50 errors - Click logs for that node
- See: "Failed to connect to motor driver"
- Fix: Cable unplugged
Without dashboard: Spend 15 minutes SSH'ing and grepping logs
With dashboard: Find issue in 30 seconds
Performance Tuning
Robot feels sluggish:
Dashboard shows:
path_plannerusing 85% CPU- Tick rate dropped to 25 Hz (should be 60)
- Logs show "Path computation taking 40ms"
Action:
- Optimize path planning algorithm
- Or reduce planning frequency
- Or move to faster computer
You found the bottleneck in 2 minutes
Team Collaboration
Scenario: Two people debugging
Person 1 (at robot):
- Running the code
- Making physical adjustments
Person 2 (at desk):
- Watching dashboard
- "CPU just spiked to 95%"
- "Tick rate dropped when you turned that corner"
- "I see errors in the lidar node"
Real-time feedback loop without both people crowding around one screen
Access From Anywhere
The dashboard binds to all network interfaces, meaning:
Works great:
- Monitor from your desk while robot runs across the room
- Check on phone while robot is charging
- Team member in another room sees same view
- Demo to visitors on a tablet
How to access:
Same computer:
http://localhost:3000
Different device (same WiFi):
http://192.168.1.100:3000
(Use your computer's actual IP - dashboard shows it at startup)
Security note: No authentication by default. Only use on trusted networks.
Tips
Leave it open: Keep dashboard open while developing. Glance at it occasionally to catch issues early.
Second monitor: Perfect use for that extra screen - full-time system monitoring.
Mobile monitoring: Put it on a tablet mounted near your robot for at-a-glance status.
Parameter experiments: Export parameters before experimenting, so you can restore if needed.
Quick Reference
What each tab shows:
| Tab | Shows | Use it to |
|---|---|---|
| Nodes | All running processes with CPU/memory/tick rate | Find performance issues |
| Topics | Active message channels with sizes | Verify communication setup |
| Graph | Visual network of nodes and topics | Understand system architecture |
| Logs | Real-time log stream from all nodes | Debug errors and timing |
| Parameters | Live config editor | Tune without restart |
| Packages | Registry browser | Install components |
| Remote | Robot deployment manager | Deploy to hardware |
Health colors:
- 🟢 Healthy - Everything normal
- 🟡 Warning - Minor issues
- 🟠 Degraded - Some errors
- 🔴 Critical - Major problems
- ⚪ Idle - Nothing running
Troubleshooting
Dashboard shows nothing Make sure your HORUS app is running first
Can't access from phone
Check both devices on same WiFi
Allow port 3000 in firewall: sudo ufw allow 3000
Port already in use
Use different port: horus dashboard 8080
Parameters not saving
Create config directory: mkdir -p ~/.horus/config
Terminal UI Mode
Prefer the command line? Use terminal UI mode:
horus dashboard --tui
All the same features, rendered in your terminal. Perfect for:
- SSH sessions
- Headless servers
- Terminal enthusiasts
Next Steps
- CLI Reference - Dashboard commands
- Parameters Guide - Deep dive into params
- Examples - Real usage patterns