EECE 5698 CS 6983 Northeastern University · Seattle

Robot System Server

A teaching and research platform that coordinates robots, sensors, and client applications from one central server. Built in the open, one module at a time.

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
Tip: start with the Simulation Bridge. Everything you build against the simulated arm transfers directly to real hardware later.

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.