diff --git a/index.html b/index.html
index 633b081..4324966 100644
--- a/index.html
+++ b/index.html
@@ -47,6 +47,18 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp
+
+
+
+
+
+
+
+
diff --git a/launch/lab_ui.launch b/launch/lab_ui.launch
index 0aa7274..c9a478c 100755
--- a/launch/lab_ui.launch
+++ b/launch/lab_ui.launch
@@ -1,5 +1,10 @@
-
+
+
+
+
+
+
diff --git a/vision/js/ros_scripts.js b/vision/js/ros_scripts.js
new file mode 100644
index 0000000..1233562
--- /dev/null
+++ b/vision/js/ros_scripts.js
@@ -0,0 +1,104 @@
+
+
+
+///////////////////////////////////////////////////////////////////////////////////
+// Publishers
+///////////////////////////////////////////////////////////////////////////////////
+
+
+////////////////////////////////////////////////////////////////
+// Topics
+////////////////////////////////////////////////////////////////
+
+
+
+////////////////////////////////////////////////////////////////
+// Subscribers
+////////////////////////////////////////////////////////////////
+
+// Operation Mode
+var modeStatus = new ROSLIB.Topic({
+ ros : ros,
+ name : '/aescape/mode/status',
+ messageType : 'std_msgs/String'
+});
+
+modeStatus.subscribe(function(message) {
+ document.getElementById("stoppedModeButton").className = "btn btn-secondary"
+ document.getElementById("standbyModeButton").className = "btn btn-primary"
+ document.getElementById("teachingModeButton").className = "btn btn-primary"
+ document.getElementById("executionModeButton").className = "btn btn-primary"
+
+
+ if (message.data === "stopped") {
+ document.getElementById("stoppedModeButton").className = "btn btn-warning"
+ } else if (message.data === "standby")
+ {
+ document.getElementById("standbyModeButton").className = "btn btn-primary btn-success"
+ } else if (message.data === "teach")
+ {
+ document.getElementById("teachingModeButton").className = "btn btn-primary btn-success"
+ } else if (message.data === "execution")
+ {
+ document.getElementById("executionModeButton").className = "btn btn-primary btn-success"
+ }
+});
+
+// Playing Bag
+var bagPlayingTopic = new ROSLIB.Topic({
+ ros : ros,
+ name : '/aescape/bags/playing',
+ messageType : 'std_msgs/String'
+});
+
+bagPlayingTopic.subscribe(function(message) {
+ document.getElementById("bagPlayingText").innerHTML = message.data
+});
+
+
+
+////////////////////////////////////////////////////////////////
+// Services
+////////////////////////////////////////////////////////////////
+
+
+function triggerService(serviceName)
+{
+ var service = new ROSLIB.Service({
+ ros : ros,
+ name : serviceName,
+ serviceType : 'std_srvs/Trigger'
+ });
+
+ var request = new ROSLIB.ServiceRequest({});
+
+ service.callService(request, function(result) {
+ console.log('Result for service call on '
+ + serviceName
+ + ': '
+ + result.sum);
+ });
+}
+
+
+function triggerMessageService(serviceName, textInput)
+{
+ var text = document.getElementById(textInput).value
+
+ var service = new ROSLIB.Service({
+ ros : ros,
+ name : serviceName,
+ serviceType : 'demobot.TriggerMessage'
+ });
+
+ var request = new ROSLIB.ServiceRequest({
+ message : text
+ });
+
+ service.callService(request, function(result) {
+ console.log('Result for service call on '
+ + serviceName
+ + ': '
+ + result.sum);
+ });
+}
\ No newline at end of file
diff --git a/vision/js/update_guis.js b/vision/js/update_guis.js
new file mode 100644
index 0000000..e69de29
diff --git a/vision/vision.html b/vision/vision.html
new file mode 100644
index 0000000..44aaeb6
--- /dev/null
+++ b/vision/vision.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+ Camera Views
+
+
+ Webcam
+
+

+
+ Realsense Red
+
+

+
+ Realsense Green
+
+

+
+
+
+
+
\ No newline at end of file