Overview
What this system is and why it exists
The Robot System Server is the backbone of our lab work: instead of every student project talking to hardware directly, all robots, cameras, and sensors register with one server. Clients send tasks through a simple API, the server schedules them, streams back telemetry, and logs everything for later analysis and learning.
This site documents the system as it is being developed. Expect rough edges, changing APIs, and frequent updates, that is the point.
Tasks & Functions
The six modules every robot server needs
1. Task Scheduler
Accepts jobs from clients, queues them by priority, and dispatches each job to a capable robot. Handles retries and timeouts.
2. Device Manager
Discovers and registers robots, grippers, and cameras on the network. Tracks which devices are online, busy, or in fault state.
3. Telemetry Monitor
Streams live joint states, camera feeds, and system health to a dashboard so you can watch every robot from one screen.
4. Simulation Bridge
Exposes the same API for simulated robots (for example a UR12e model) and real hardware, so code moves between sim and lab unchanged.
5. Data Logger
Records every task execution as a timestamped dataset: observations, actions, and outcomes, ready for imitation learning research.
6. Access Control
Lab member accounts with per project permissions, so student teams can share hardware without stepping on each other.
How To Run It
Get a local instance up in five minutes
Clone the repository
Grab the server code and install dependencies. Python 3.10 or newer is recommended.
Start the server
Launch it on your machine or a lab workstation. The dashboard becomes available in your browser immediately.
Register a robot
Point the server at a simulated arm or real hardware. The device shows up in the Device Manager within seconds.
Send your first task
Use the example API calls below, then watch the telemetry stream as the robot executes.
# Start the server
python server.py --port 8080
# Register a robot (simulated UR12e)
curl -X POST localhost:8080/api/robots \
-d '{"name":"ur12e_sim","type":"arm"}'
# Send a task: move the end effector
curl -X POST localhost:8080/api/tasks \
-d '{"robot":"ur12e_sim","action":"move_to","target":[0.4,0.0,0.3]}'
# Watch the log stream
curl localhost:8080/api/telemetry/ur12e_sim
Course Info
Where this system is taught and built
EECE 5698 / CS 6983 · Robot System Server
Northeastern University, Seattle campus
Instructors: Dr. Xian Li and Dr. Steve Shafer
Students in this course design, implement, and extend the modules above, then deploy them against real lab hardware. If you are interested in the course, the system, or collaborating with our lab, please reach out to the instructors.