Overview - UCSD-E4E/Wolf-Tracker-2014 GitHub Wiki

alt text

The above is a high level diagram of the data flow for the Wolf Tracker. When controlling the wolf tracker data is sent as follows:

Gamepad -> HTML (web page) -> Nginx (web server) -> Node.js (web to serial parsing) -> Arduino -> Robot

The gamepad sends controller data which is picked up by the webpage. The webpage runs on the user machine and sends the pertinant controller data over the the Nginx web server and reroutes this to Node.js. Node.js converts to data and sends it over serial to the arduino. The arduino reverse engineers the data and sends a modulated signal to the various motor controllers to move the robot.

The wolf tracker also sends back image data as follows:

Camera -> mjpg_streamer -> Nginx (web server) -> HTML

The camera sends each image it gets to a program running called "mjpg_streamer" which creates a server to serve up the images. The backend is configured with the help of Nginx to show the camera images in the HTML webpage for viewing.