From 184e9cc79aec9c8620acd1a6c5f45f73d904695a Mon Sep 17 00:00:00 2001 From: David Date: Mon, 18 Feb 2019 12:18:32 -0500 Subject: [PATCH 01/40] Convert to aescape_lab_ui --- CMakeLists.txt | 14 +++++++------- README.md | 4 +++- launch.bash | 2 +- launch/all.launch | 4 ++-- launch/bagger.launch | 2 +- launch/talker.launch | 2 +- package.xml | 6 +++--- src/bagger.py | 2 +- 8 files changed, 19 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a59c9bb..7d72a0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 2.8.3) -project(rosbridge_gui) +project(aescape_lab_ui) ## Find catkin macros and libraries ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) @@ -82,7 +82,7 @@ find_package(catkin REQUIRED COMPONENTS ## DEPENDS: system dependencies of this project that dependent projects also need catkin_package( # INCLUDE_DIRS include -# LIBRARIES rosbridge_gui +# LIBRARIES aescape_lab_ui # CATKIN_DEPENDS roscpp rospy std_msgs # DEPENDS system_lib ) @@ -99,8 +99,8 @@ include_directories( ) ## Declare a cpp library -# add_library(rosbridge_gui -# src/${PROJECT_NAME}/rosbridge_gui.cpp +# add_library(aescape_lab_ui +# src/${PROJECT_NAME}/aescape_lab_ui.cpp # ) ## Declare a cpp executable @@ -108,7 +108,7 @@ include_directories( ## Add cmake target dependencies of the executable/library ## as an example, message headers may need to be generated before nodes -# add_dependencies(rosbridge_gui_node rosbridge_gui_generate_messages_cpp) +# add_dependencies(aescape_lab_ui_node aescape_lab_ui_generate_messages_cpp) ## Specify libraries to link a library or executable target against @@ -127,7 +127,7 @@ include_directories( # ) ## Mark executables and/or libraries for installation -# install(TARGETS rosbridge_gui rosbridge_gui_node +# install(TARGETS aescape_lab_ui aescape_lab_ui_node # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} @@ -152,7 +152,7 @@ include_directories( ############# ## Add gtest based cpp test target and link libraries -# catkin_add_gtest(${PROJECT_NAME}-test test/test_rosbridge_gui.cpp) +# catkin_add_gtest(${PROJECT_NAME}-test test/test_aescape_lab_ui.cpp) # if(TARGET ${PROJECT_NAME}-test) # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) # endif() diff --git a/README.md b/README.md index 14d65d4..7d146e3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# ROSBRIDGE GUI +# AESCAPE LAB UI + + The purpose of this project is an example of how to write a web page that can be accessed by any device on the same network as the host computer by accessing the IP of that host computer. diff --git a/launch.bash b/launch.bash index 8958e3d..3690fc4 100644 --- a/launch.bash +++ b/launch.bash @@ -19,7 +19,7 @@ trap "kill_child_processes 1 $$; exit 0" INT chmod a+x src/bagger.py -x-terminal-emulator -e "roslaunch rosbridge_gui all.launch" & +x-terminal-emulator -e "roslaunch aescape_lab_ui all.launch" & x-terminal-emulator -e "python -m SimpleHTTPServer 8000" & x-terminal-emulator -e "rosrun web_video_server web_video_server" diff --git a/launch/all.launch b/launch/all.launch index 759dad6..f6263df 100644 --- a/launch/all.launch +++ b/launch/all.launch @@ -1,5 +1,5 @@ - - + + diff --git a/launch/bagger.launch b/launch/bagger.launch index 45f048c..5bd1b5a 100644 --- a/launch/bagger.launch +++ b/launch/bagger.launch @@ -1,3 +1,3 @@ - + diff --git a/launch/talker.launch b/launch/talker.launch index 51399f1..d024e24 100644 --- a/launch/talker.launch +++ b/launch/talker.launch @@ -1,3 +1,3 @@ - + diff --git a/package.xml b/package.xml index ff79b60..85706c8 100644 --- a/package.xml +++ b/package.xml @@ -1,13 +1,13 @@ - rosbridge_gui + aescape_lab_ui 0.0.0 - The rosbridge_gui package + The aescape_lab_ui package - glen + David diff --git a/src/bagger.py b/src/bagger.py index 74977f7..f957cb6 100755 --- a/src/bagger.py +++ b/src/bagger.py @@ -14,7 +14,7 @@ class Bagger(object): self.pub = rospy.Publisher("bag_notifier", String, queue_size=10) self.proc = None rospack = rospkg.RosPack() - self.data_path = os.path.join(rospack.get_path("rosbridge_gui"), "data") + self.data_path = os.path.join(rospack.get_path("aescape_lab_ui"), "data") def callback(self, msg): if msg.data == "STOP" and self.proc is not None: From afdb7259374550d0e23581d7167c5df762885621 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Sun, 24 Feb 2019 21:51:04 -0500 Subject: [PATCH 02/40] Add phoebe and titan connections. --- backend/js/ros_scripts.js | 56 ------------------- backend/js/update_guis.js | 31 +++-------- index.html | 113 +++++++++++++++++++++++--------------- 3 files changed, 78 insertions(+), 122 deletions(-) diff --git a/backend/js/ros_scripts.js b/backend/js/ros_scripts.js index 4b05717..410a3b1 100644 --- a/backend/js/ros_scripts.js +++ b/backend/js/ros_scripts.js @@ -115,62 +115,6 @@ bagNotifier.subscribe(function(message) { /////////////////////////////////////////////////////////////////////////////////// -ros.buildTopicList = function(fresh_topics) -{ - - // console.log(topics) -// fresh_topics = fresh_topics.sort(); - // First check that all our current topics are in the list of fresh_topics - for( var topic = 0; topic < ros.topics.length; topic ++) - { - - if (fresh_topics.indexOf(ros.topics[topic].name) > -1) - { - // We know that we have already found that topic so we don't need to remove it - } - else - { - // That topic is no longer being published so we need ro remove it - ros.topics.splice(topic,1); - } - } - - for (var topic =0; topic < fresh_topics.length; topic ++ ) - { - if (ros.topics.indexOfTopic(fresh_topics[topic]) > -1) - { - // We know that we have already found that topic so we don't need to re-add it - } - else - { - // We do not have that topic so we need to add it - // create the new topic - var new_topic = new Topic(fresh_topics[topic]); - // make sure to put in in the list in the order - ros.topics.push(new_topic); - - } - } - - ros.topics.sort(function(a, b) { - if ( a.name < b.name ) - return -1; - if ( a.name > b.name ) - return 1; - return 0; - }) - -}; - - -ros.getTopicsList = function() -{ - // var topicList = []; - return ros.topics; - -} - - // attept to connect to the ros master from the IP given orgrab it from the form ros.attemptConnection = function(ipAddress) { diff --git a/backend/js/update_guis.js b/backend/js/update_guis.js index 0764ada..f6173b8 100644 --- a/backend/js/update_guis.js +++ b/backend/js/update_guis.js @@ -60,40 +60,26 @@ function updateVoltage(voltage) function updateTopicsGUI() { - ros.getTopics(ros.buildTopicList); + ros.getTopics(function(result) + { + ros.topics = result; + }); - var topics = ros.getTopicsList(); + var topics = ros.topics; + topics.sort() if(topics != null){ var innerHTML = ""; for (var i = 0; i < topics.length; i++ ) { - innerHTML = innerHTML.concat(generateTopicCheckbox(topics[i])); + innerHTML = innerHTML.concat(topics[i]); + innerHTML = innerHTML.concat("
"); } document.getElementById("ROSTopics").innerHTML = innerHTML; } }; -function generateTopicCheckbox(topic) -{ - var str = "
"; - var checked_str = "unchecked"; - if (topic.bag == true) - { - checked_str = "checked" - } - str =str.concat("
"); - return str; -}; - -function toggleToBag(topic_name) -{ - // if($.inArray(topic_name, ros.topics)) - ros.topics[ros.topics.indexOfTopic(topic_name)].bag = !ros.topics[ros.topics.indexOfTopic(topic_name)].bag ; -} function updateNodesGUI() { @@ -113,7 +99,6 @@ function updateNodesGUI() { innerHTML = innerHTML.concat(nodes[i]); innerHTML = innerHTML.concat("
"); - } document.getElementById("ROSNodes").innerHTML = innerHTML; } diff --git a/index.html b/index.html index 0fe8a0b..6dfd9a3 100644 --- a/index.html +++ b/index.html @@ -43,55 +43,27 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp
-
-

ROS Display

+
+

Lab UI

- - -
- -
- ROS Bag -
-
-
-
- Bagfile name must not start with "/" -
- - - - -
-
-
-
- -
- - -
-
+
@@ -99,6 +71,34 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp + + +
+ +
+ ROS Bag +
+
+
+
+ Bagfile name must not start with "/" +
+ + + + +
+
+
+
+ +
+ +
@@ -106,7 +106,33 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp -
+
+
+
+ Predefined Masters Connections +
+
+ + + +
+
+
@@ -129,21 +155,22 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp + +
-
- ROS Topics. Checked topics will be bagged when "Start" is selected. + ROS Topics.
-
+
N/A
@@ -151,7 +178,7 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp
- ROS Nodes + ROS Nodes.
From 1f5ddc99fe8b4757ad6b061dcf2f49441279fb57 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Mon, 25 Feb 2019 16:54:05 -0500 Subject: [PATCH 03/40] Initial coordinator commit. --- coordinator/coordinator.html | 72 +++++++++++++++++++++++++++++++++++ coordinator/js/ros_scripts.js | 38 ++++++++++++++++++ coordinator/js/update_guis.js | 0 index.html | 54 ++++++++++---------------- 4 files changed, 131 insertions(+), 33 deletions(-) create mode 100644 coordinator/coordinator.html create mode 100644 coordinator/js/ros_scripts.js create mode 100644 coordinator/js/update_guis.js diff --git a/coordinator/coordinator.html b/coordinator/coordinator.html new file mode 100644 index 0000000..ac90eea --- /dev/null +++ b/coordinator/coordinator.html @@ -0,0 +1,72 @@ + + +
+
+ Select Operation Mode +
+
+ + +
+
+
+
+ Teaching Mode Operations +
+
+ + +
+
+ +
+
+ Execution Mode Operations +
+
+ + + +
+ +
+ +
+
+ Execution Recording Operations +
+
+ + +
+
\ No newline at end of file diff --git a/coordinator/js/ros_scripts.js b/coordinator/js/ros_scripts.js new file mode 100644 index 0000000..a09b009 --- /dev/null +++ b/coordinator/js/ros_scripts.js @@ -0,0 +1,38 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Publishers +/////////////////////////////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////////// +// Topics +//////////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////////// +// Subscribers +//////////////////////////////////////////////////////////////// + + + +//////////////////////////////////////////////////////////////// +// 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); + }); +} \ No newline at end of file diff --git a/coordinator/js/update_guis.js b/coordinator/js/update_guis.js new file mode 100644 index 0000000..e69de29 diff --git a/index.html b/index.html index 6dfd9a3..2d77342 100644 --- a/index.html +++ b/index.html @@ -32,7 +32,7 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp @@ -40,6 +40,14 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp + + + +
@@ -58,7 +66,11 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp Data Display - +
  • + + Coordinator + +
  • @@ -67,46 +79,22 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp -
    +
    - - - -
    - -
    - ROS Bag -
    -
    -
    -
    - Bagfile name must not start with "/" -
    - - - - -
    -
    -
    -
    - -
    - +
    +
    + +
    +
    - -
    +
    Predefined Masters Connections From 31f57431b19e88cbc68a9156fe01b8b43954279b Mon Sep 17 00:00:00 2001 From: David Walsh Date: Mon, 25 Feb 2019 16:55:34 -0500 Subject: [PATCH 04/40] Cleanup. --- coordinator/coordinator.html | 1 - index.html | 17 +++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/coordinator/coordinator.html b/coordinator/coordinator.html index ac90eea..98760d9 100644 --- a/coordinator/coordinator.html +++ b/coordinator/coordinator.html @@ -1,5 +1,4 @@ -
    Select Operation Mode diff --git a/index.html b/index.html index 2d77342..3068b3b 100644 --- a/index.html +++ b/index.html @@ -57,15 +57,16 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp
    -
    +
    @@ -94,7 +95,7 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp -
    +
    Predefined Masters Connections From 198337bc225f1543351ebd36acf81d26ba01ab31 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Wed, 27 Feb 2019 09:59:59 -0500 Subject: [PATCH 05/40] Improvements. --- coordinator/coordinator.html | 7 +++++-- index.html | 8 +++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/coordinator/coordinator.html b/coordinator/coordinator.html index 98760d9..494e1ce 100644 --- a/coordinator/coordinator.html +++ b/coordinator/coordinator.html @@ -4,12 +4,15 @@ Select Operation Mode
    - - +
    diff --git a/index.html b/index.html index 3068b3b..5ede9f7 100644 --- a/index.html +++ b/index.html @@ -98,7 +98,7 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp -
    +
    @@ -95,13 +96,13 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp -
    +
    Predefined ROSBridge Connections
    - -
    -
    +
    @@ -149,15 +119,49 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp - -
    +
    +
    + Predefined ROSBridge Connections +
    +
    + + +
    +
    + +
    ROS Topics. From 713e696ef6468d86bb713d591e777b30d9d9d4e6 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Wed, 27 Mar 2019 19:01:55 -0400 Subject: [PATCH 17/40] Cleanup --- backend/js/update_guis.js | 57 ---------------------------------- data_display/js/update_guis.js | 44 -------------------------- 2 files changed, 101 deletions(-) diff --git a/backend/js/update_guis.js b/backend/js/update_guis.js index 747b502..08e6599 100644 --- a/backend/js/update_guis.js +++ b/backend/js/update_guis.js @@ -1,62 +1,5 @@ -$("#myImage").click ( function (evt) { - - var jThis = $(this); - var offsetFromParent = jThis.position (); - var topThickness = (jThis.outerHeight(true) - jThis.height() ) / 2; - var leftThickness = (jThis.outerWidth (true) - jThis.width () ) / 2; - - //--- (x,y) coordinates of the mouse click relative to the image. - var x = evt.pageX - offsetFromParent.left - leftThickness; - var y = evt.pageY - offsetFromParent.top - topThickness; - - ReportDims (); - $('#rez').append ('

    User clicked at: ' + x + ', ' + y + ' (x,y).

    ') -} ); - - -function ReportDims () { - w = $("#myImage").width (); - h = $("#myImage").height (); - $('#rez').text ('The image is ' + w + ' by ' + h + ' (w by h).'); -} - -ReportDims (); - -function updateVoltage(voltage) -{ - - var voltage_min = 9.5; - var voltage_max = 12.5; - var voltage_range = voltage_max - voltage_min; - - var voltage_percentage = (voltage - voltage_min) / voltage_range * 100; - - var voltage_string = ""; - voltage_string = voltage_string.concat(voltage_percentage); - voltage_string = voltage_string.substring(0,4); - voltage_string = voltage_string.concat('%'); - - document.getElementById("VoltageDisplay").style.width = voltage_string; - document.getElementById("VoltageDisplay").innerHTML = voltage_string; - - if (voltage_percentage < 50 && voltage_percentage > 25 ) { - document.getElementById("VoltageDisplay").className = "progress-bar progress-bar-warning" - } - else if ( voltage_percentage <= 25) - { - document.getElementById("VoltageDisplay").className = "progress-bar progress-bar-danger" - var sound = document.getElementById("audio"); - sound.play() - console.log("Pay Sound") - } - else - { - document.getElementById("VoltageDisplay").className = "progress-bar progress-bar-success" - } -}; - function updateTopicsGUI() { diff --git a/data_display/js/update_guis.js b/data_display/js/update_guis.js index 9de9459..e69de29 100644 --- a/data_display/js/update_guis.js +++ b/data_display/js/update_guis.js @@ -1,44 +0,0 @@ -function sendRosMessageExample() -{ - publishStringExample(String(document.getElementById("sendRosMessageExample").value)) -} - -function update_sendRosMessageExample(msg) -{ - document.getElementById("recievedMessageDiv").innerHTML = msg -} - -function update_ProgressBar(value) -{ - -// This would be a great way of getting a float or int from a rosTopic and displaying it. -// I would suggest storing the data as a data field in the ros_scripts then updating it every 500 or 1000 ms rather than updating the gui every time you recieve a message - var num_string = ""; - num_string = num_string.concat(value); - num_string = num_string.substring(0,4); - num_string = num_string.concat("%"); - - doc = document.getElementById("progressBar1"); - - doc.style.width = num_string; - doc.innerHTML = num_string; - - if (value < 50 && value > 25 ) { - doc.className = "progress-bar progress-bar-warning"; - } - else if ( value <= 25) - { - doc.className = "progress-bar progress-bar-danger"; - } - else - { - doc.className = "progress-bar progress-bar-success"; - } -} - - -window.setInterval(function(){ - - update_ProgressBar(Math.random() * 100); - -}, 1000); From e85717fa9fc74930eb7957cf819172c9b702549f Mon Sep 17 00:00:00 2001 From: David Walsh Date: Thu, 28 Mar 2019 11:26:45 -0400 Subject: [PATCH 18/40] Remove dataDisplay --- data_display/data_display.html | 58 ---------------------------------- index.html | 45 ++++++++++---------------- 2 files changed, 17 insertions(+), 86 deletions(-) diff --git a/data_display/data_display.html b/data_display/data_display.html index 4cba54d..b1396b2 100644 --- a/data_display/data_display.html +++ b/data_display/data_display.html @@ -42,61 +42,3 @@
    - - - - - - - - - -
    - -
    - Example Pannel Heading -
    - - -
    - - -
    -
    - -
    -
    -
    -
    - No data recieved yet.
    -
    -
    -
    -
    -
    - - - - - -
    -
    - Camera Image -
    -
    -
    - No Camera Image -
    -
    -
    - - diff --git a/index.html b/index.html index af0e5b8..633b081 100644 --- a/index.html +++ b/index.html @@ -29,15 +29,6 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp - - - - - + + + + +
    @@ -61,37 +61,26 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp Not Connected -
  • Coordinator
  • +
  • + + Vision + +
  • -
    - - - -
    - - -
    - - -
    - -
    - +
    +
    +
    From 5f2b9f8d18c609b52bddc6b0bbe1ae67805a7af1 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Thu, 28 Mar 2019 12:04:54 -0400 Subject: [PATCH 19/40] Added robot state indicators --- coordinator/coordinator.html | 36 ++++++++++++++++++++- coordinator/js/ros_scripts.js | 61 ++++++++++++++++++++++++++++++++--- 2 files changed, 92 insertions(+), 5 deletions(-) diff --git a/coordinator/coordinator.html b/coordinator/coordinator.html index 75e0190..a105b88 100644 --- a/coordinator/coordinator.html +++ b/coordinator/coordinator.html @@ -20,12 +20,46 @@
    - Hardware Commands + Franka Arm Status
    +
    + Current Robot Status: + +
    +

    Other

    +
    +
    +

    Idle

    +
    +
    +

    Move

    +
    +
    +

    Guiding

    +
    +
    +

    Reflex

    +
    +
    +

    User Stopped

    +
    +
    +

    Automatic Error Recovery

    +
    +
    +
    +
    +
    +
    + Hardware Commands +
    +
    diff --git a/coordinator/js/ros_scripts.js b/coordinator/js/ros_scripts.js index 1233562..3702390 100644 --- a/coordinator/js/ros_scripts.js +++ b/coordinator/js/ros_scripts.js @@ -30,15 +30,15 @@ modeStatus.subscribe(function(message) { document.getElementById("executionModeButton").className = "btn btn-primary" - if (message.data === "stopped") { + if (message.data == "stopped") { document.getElementById("stoppedModeButton").className = "btn btn-warning" - } else if (message.data === "standby") + } else if (message.data == "standby") { document.getElementById("standbyModeButton").className = "btn btn-primary btn-success" - } else if (message.data === "teach") + } else if (message.data == "teach") { document.getElementById("teachingModeButton").className = "btn btn-primary btn-success" - } else if (message.data === "execution") + } else if (message.data == "execution") { document.getElementById("executionModeButton").className = "btn btn-primary btn-success" } @@ -55,7 +55,60 @@ bagPlayingTopic.subscribe(function(message) { document.getElementById("bagPlayingText").innerHTML = message.data }); +// FrankaState +var frankaStatus = new ROSLIB.Topic({ + ros : ros, + name : '/franka_state_controller/franka_states', + messageType : 'franka_msgs/FrankaState' +}); +frankaStatus.subscribe(function(message) { + document.getElementById("frankaModeOther").className = "label label-default" + document.getElementById("frankaModeIdle").className = "label label-default" + document.getElementById("frankaModeMove").className = "label label-default" + document.getElementById("frankaModeGuiding").className = "label label-default" + document.getElementById("frankaModeReflex").className = "label label-default" + document.getElementById("frankaModeUserStopped").className = "label label-default" + document.getElementById("frankaModeErrorRecovery").className = "label label-default" + document.getElementById("fixFrankaButton").className = "btn btn-primary" + + if (message.robot_mode == 0) + { + document.getElementById("frankaModeOther").className = "label label-warning" + document.getElementById("fixFrankaButton").className = "btn btn-danger" + } + else if (message.robot_mode == 1) + { + document.getElementById("frankaModeIdle").className = "label label-warning" + document.getElementById("fixFrankaButton").className = "btn btn-danger" + } + else if (message.robot_mode == 2) + { + document.getElementById("frankaModeMove").className = "label label-warning" + document.getElementById("fixFrankaButton").className = "btn btn-success" + } + else if (message.robot_mode == 3) + { + document.getElementById("frankaModeGuiding").className = "label label-warning" + document.getElementById("fixFrankaButton").className = "btn btn-default" + } + else if (message.robot_mode == 4) + { + document.getElementById("frankaModeReflex").className = "label label-warning" + document.getElementById("fixFrankaButton").className = "btn btn-danger" + + } + else if (message.robot_mode == 5) + { + document.getElementById("frankaModeUserStopped").className = "label label-warning" + document.getElementById("fixFrankaButton").className = "btn btn-default" + } + else if (message.robot_mode == 6) + { + document.getElementById("frankaModeErrorRecovery").className = "label label-warning" + document.getElementById("fixFrankaButton").className = "btn btn-default" + } +}); //////////////////////////////////////////////////////////////// // Services From 71cc38813c2587c5bc77f3381202e0f545fd866d Mon Sep 17 00:00:00 2001 From: David Walsh Date: Thu, 28 Mar 2019 13:30:56 -0400 Subject: [PATCH 20/40] Robotiq data subscription --- coordinator/coordinator.html | 22 ++++++++++++++++++---- coordinator/js/ros_scripts.js | 22 ++++++++++++++++++++++ 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/coordinator/coordinator.html b/coordinator/coordinator.html index a105b88..2f88272 100644 --- a/coordinator/coordinator.html +++ b/coordinator/coordinator.html @@ -57,12 +57,26 @@
    - Hardware Commands + Robotiq
    - +
    + Current Robotiq Values: +
    +

    X: 0.0

    +
    +
    +

    Y: 0.0

    +
    +
    +

    Z: 0.0

    +
    +
    +
    + +
    diff --git a/coordinator/js/ros_scripts.js b/coordinator/js/ros_scripts.js index 3702390..28a0215 100644 --- a/coordinator/js/ros_scripts.js +++ b/coordinator/js/ros_scripts.js @@ -110,6 +110,28 @@ frankaStatus.subscribe(function(message) { } }); + +// Robotiq Data +var robotiqDataTopic = new ROSLIB.Topic({ + ros : ros, + name : '/robotiq_ft_wrench', + messageType : 'geometry_msgs/WrenchStamped' +}); + +robotiqDataTopic.subscribe(function(message) { + var force = message.wrench.force + document.getElementById("robotiqX").innerHTML = force.x.toFixed(1) + document.getElementById("robotiqY").innerHTML = force.y.toFixed(1) + document.getElementById("robotiqZ").innerHTML = force.z.toFixed(1) + + if ((Math.abs(force.x) > 0.5) || (Math.abs(force.y) > 0.5) || (Math.abs(force.z) > 0.5)) + { + document.getElementById("calibrateButton").className = "btn btn-danger" + } else { + document.getElementById("calibrateButton").className = "btn btn-default" + } +}); + //////////////////////////////////////////////////////////////// // Services //////////////////////////////////////////////////////////////// From a392db84bb1c3025e7c7cb08263c6326117626f2 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Thu, 28 Mar 2019 14:58:11 -0400 Subject: [PATCH 21/40] Throttle subscriptions. --- coordinator/js/ros_scripts.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/coordinator/js/ros_scripts.js b/coordinator/js/ros_scripts.js index 28a0215..e7bf2d9 100644 --- a/coordinator/js/ros_scripts.js +++ b/coordinator/js/ros_scripts.js @@ -20,7 +20,8 @@ var modeStatus = new ROSLIB.Topic({ ros : ros, name : '/aescape/mode/status', - messageType : 'std_msgs/String' + messageType : 'std_msgs/String', + throttle_rate : 500 // 2Hz }); modeStatus.subscribe(function(message) { @@ -59,7 +60,8 @@ bagPlayingTopic.subscribe(function(message) { var frankaStatus = new ROSLIB.Topic({ ros : ros, name : '/franka_state_controller/franka_states', - messageType : 'franka_msgs/FrankaState' + messageType : 'franka_msgs/FrankaState', + throttle_rate : 500 // 2Hz }); frankaStatus.subscribe(function(message) { @@ -115,7 +117,8 @@ frankaStatus.subscribe(function(message) { var robotiqDataTopic = new ROSLIB.Topic({ ros : ros, name : '/robotiq_ft_wrench', - messageType : 'geometry_msgs/WrenchStamped' + messageType : 'geometry_msgs/WrenchStamped', + throttle_rate : 500 // 2Hz }); robotiqDataTopic.subscribe(function(message) { @@ -123,7 +126,7 @@ robotiqDataTopic.subscribe(function(message) { document.getElementById("robotiqX").innerHTML = force.x.toFixed(1) document.getElementById("robotiqY").innerHTML = force.y.toFixed(1) document.getElementById("robotiqZ").innerHTML = force.z.toFixed(1) - + if ((Math.abs(force.x) > 0.5) || (Math.abs(force.y) > 0.5) || (Math.abs(force.z) > 0.5)) { document.getElementById("calibrateButton").className = "btn btn-danger" From 83cf9ccdb0b0d4209b4d24c1e12b3bd76ddf1ae9 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Wed, 27 Mar 2019 19:38:32 -0400 Subject: [PATCH 22/40] Initial vision panel --- index.html | 12 ++++ launch/lab_ui.launch | 7 ++- vision/js/ros_scripts.js | 104 +++++++++++++++++++++++++++++++++++ vision/js/update_guis.js | 0 vision/vision.html | 115 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 237 insertions(+), 1 deletion(-) create mode 100644 vision/js/ros_scripts.js create mode 100644 vision/js/update_guis.js create mode 100644 vision/vision.html 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..b030103 --- /dev/null +++ b/vision/vision.html @@ -0,0 +1,115 @@ + + + +
    +
    + Camera Views +
    +
    + Webcam +
    + No Camera Image +
    + Realsense Red +
    + No Camera Image +
    + Realsense Green +
    + No Camera Image +
    +
    +
    + + \ No newline at end of file From 27f19ed19c28a5f8da626df0908ef543adfbb11d Mon Sep 17 00:00:00 2001 From: David Walsh Date: Wed, 3 Apr 2019 14:23:48 -0400 Subject: [PATCH 23/40] Changed video streams to use compressed streams. --- vision/vision.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vision/vision.html b/vision/vision.html index b030103..44aaeb6 100644 --- a/vision/vision.html +++ b/vision/vision.html @@ -87,15 +87,15 @@
    Webcam
    - No Camera Image + No Camera Image
    Realsense Red
    - No Camera Image + No Camera Image
    Realsense Green
    - No Camera Image + No Camera Image
    From 2687f2e4de7a78b8e5a5d2089f648d8ca0c58614 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Thu, 4 Apr 2019 15:45:44 -0400 Subject: [PATCH 24/40] Add ros master label. --- backend/js/ros_scripts.js | 19 +++++++++++++++ index.html | 51 ++++++++++++++++++++++++--------------- 2 files changed, 51 insertions(+), 19 deletions(-) diff --git a/backend/js/ros_scripts.js b/backend/js/ros_scripts.js index 59078dc..c41ec39 100644 --- a/backend/js/ros_scripts.js +++ b/backend/js/ros_scripts.js @@ -155,3 +155,22 @@ function toggleRecording() } } } + + +function getMasterName() +{ + var service = new ROSLIB.Service({ + ros : ros, + name : '/rosapi/service_host', + serviceType : 'rosapi/ServiceHost' + }); + + var request = new ROSLIB.ServiceRequest({ + service: '/rosout/get_loggers' // Only the master hosts this service. + }); + + service.callService(request, function(result) { + console.log('Master Name = ' + result.host); + document.getElementById("MasterName").innerHTML = result.host; + }); +} diff --git a/index.html b/index.html index 4324966..d38d517 100644 --- a/index.html +++ b/index.html @@ -64,26 +64,39 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp +
    +
    + Master: +
    +
    + + +
    +
    +
    From e0fe29136605ba9193b5cdcec5110a799a148ab0 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Tue, 16 Apr 2019 18:23:23 -0400 Subject: [PATCH 25/40] Add execution and recording status. --- coordinator/coordinator.html | 18 ++++++++++++- coordinator/js/ros_scripts.js | 48 ++++++++++++++++++++++++++++++++--- 2 files changed, 62 insertions(+), 4 deletions(-) diff --git a/coordinator/coordinator.html b/coordinator/coordinator.html index 2f88272..7a482b9 100644 --- a/coordinator/coordinator.html +++ b/coordinator/coordinator.html @@ -84,6 +84,11 @@ Teaching Mode Operations
    + + + @@ -97,9 +102,18 @@
    Execution Mode Operations
    + +
    + + + + + Last Bag Playing: - + None
    @@ -124,6 +138,8 @@
    + +
    diff --git a/coordinator/js/ros_scripts.js b/coordinator/js/ros_scripts.js index e7bf2d9..f761d76 100644 --- a/coordinator/js/ros_scripts.js +++ b/coordinator/js/ros_scripts.js @@ -45,15 +45,57 @@ modeStatus.subscribe(function(message) { } }); -// Playing Bag + +// Recording Bag +var recordingBagTopic = new ROSLIB.Topic({ + ros : ros, + name : '/aescape/bags/recording_status', + messageType : 'std_msgs/String' +}); + +recordingBagTopic.subscribe(function(message) { + if (message.data == "stopped") + { + document.getElementById("RecordingStatusLabel").innerHTML = 'Not Running'; + document.getElementById("RecordingStatusLabel").className = 'label-warning'; + } + else if (message.data == "running") + { + document.getElementById("RecordingStatusLabel").innerHTML = 'RUNNING!'; + document.getElementById("RecordingStatusLabel").className = 'label-success'; + } +}); + +// Executing Bag +var executingBagTopic = new ROSLIB.Topic({ + ros : ros, + name : '/aescape/bags/execution_status', + messageType : 'std_msgs/String' +}); + +executingBagTopic.subscribe(function(message) { + if (message.data == "stopped") + { + document.getElementById("ExecutionStatusLabel").innerHTML = 'Not Running'; + document.getElementById("ExecutionStatusLabel").className = 'label-warning'; + } + else if (message.data == "running") + { + document.getElementById("ExecutionStatusLabel").innerHTML = 'RUNNING!'; + document.getElementById("ExecutionStatusLabel").className = 'label-success'; + } +}); + + +// Last Bag var bagPlayingTopic = new ROSLIB.Topic({ ros : ros, - name : '/aescape/bags/playing', + name : '/aescape/bags/last_played', messageType : 'std_msgs/String' }); bagPlayingTopic.subscribe(function(message) { - document.getElementById("bagPlayingText").innerHTML = message.data + document.getElementById("lastbagText").innerHTML = message.data }); // FrankaState From 5a822a592795a850540fb605be23cf98b2c16da1 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Tue, 16 Apr 2019 19:30:41 -0400 Subject: [PATCH 26/40] Added Rhea lab_ui config. --- backend/js/ros_scripts.js | 2 ++ index.html | 8 +++++++- launch/lab_ui_rhea.launch | 9 +++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100755 launch/lab_ui_rhea.launch diff --git a/backend/js/ros_scripts.js b/backend/js/ros_scripts.js index c41ec39..4132230 100644 --- a/backend/js/ros_scripts.js +++ b/backend/js/ros_scripts.js @@ -119,6 +119,7 @@ bagNotifier.subscribe(function(message) { // attept to connect to the ros master from the IP given orgrab it from the form ros.attemptConnection = function(ipAddress) { + ros.close(); if( typeof ipAddress !== "undefined") { ros.connectionName = ipAddress; @@ -129,6 +130,7 @@ ros.attemptConnection = function(ipAddress) } console.log('Connection = ' + ros.connectionName); ros.connect(ros.connectionName); + getMasterName(); } function toggleRecording() diff --git a/index.html b/index.html index d38d517..59b5f8b 100644 --- a/index.html +++ b/index.html @@ -162,7 +162,13 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp --> + + @@ -89,6 +92,9 @@ Bag manager not connected! + @@ -117,6 +123,9 @@ None
    + diff --git a/coordinator/js/ros_scripts.js b/coordinator/js/ros_scripts.js index f761d76..8a8a335 100644 --- a/coordinator/js/ros_scripts.js +++ b/coordinator/js/ros_scripts.js @@ -27,22 +27,37 @@ var modeStatus = new ROSLIB.Topic({ modeStatus.subscribe(function(message) { document.getElementById("stoppedModeButton").className = "btn btn-secondary" document.getElementById("standbyModeButton").className = "btn btn-primary" + document.getElementById("readyModeButton").className = "btn btn-primary" document.getElementById("teachingModeButton").className = "btn btn-primary" document.getElementById("executionModeButton").className = "btn btn-primary" + + document.getElementById("recordingStartButton").disabled = true + document.getElementById("executionStartButton").disabled = true - if (message.data == "stopped") { + + if (message.data == "stopped") + { document.getElementById("stoppedModeButton").className = "btn btn-warning" - } else if (message.data == "standby") + } + else if (message.data == "standby") { document.getElementById("standbyModeButton").className = "btn btn-primary btn-success" - } else if (message.data == "teach") + } + else if (message.data == "teach") { document.getElementById("teachingModeButton").className = "btn btn-primary btn-success" - } else if (message.data == "execution") + } + else if (message.data == "execution") { document.getElementById("executionModeButton").className = "btn btn-primary btn-success" } + else if (message.data == "ready") + { + document.getElementById("readyModeButton").className = "btn btn-primary btn-success" + document.getElementById("recordingStartButton").disabled = false + document.getElementById("executionStartButton").disabled = false + } }); From 130edaa280af8fb65902a7e8b3f48adcfa56a206 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Wed, 17 Apr 2019 12:25:38 -0400 Subject: [PATCH 28/40] Add thermal camera view. --- vision/vision.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vision/vision.html b/vision/vision.html index 44aaeb6..3502de8 100644 --- a/vision/vision.html +++ b/vision/vision.html @@ -97,6 +97,10 @@
    No Camera Image
    + Thermal +
    + No Camera Image +
    From 50186dd5e78d6e67346985ddcce3dcd2131f1a0d Mon Sep 17 00:00:00 2001 From: David Walsh Date: Wed, 17 Apr 2019 12:44:19 -0400 Subject: [PATCH 29/40] Added switch to specific controllers before recording and playback. --- coordinator/coordinator.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/coordinator/coordinator.html b/coordinator/coordinator.html index 40eae11..ec68eb5 100644 --- a/coordinator/coordinator.html +++ b/coordinator/coordinator.html @@ -95,7 +95,7 @@ - - - -
    @@ -129,7 +129,7 @@ -
    From 365a4bb790bd554b19c8948aadf0569121b842e9 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Fri, 19 Apr 2019 18:28:23 -0400 Subject: [PATCH 31/40] Disable topic update --- backend/js/update_guis.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/js/update_guis.js b/backend/js/update_guis.js index 08e6599..aa4f1e4 100644 --- a/backend/js/update_guis.js +++ b/backend/js/update_guis.js @@ -47,12 +47,12 @@ function updateNodesGUI() }; -window.setInterval(function(){ +// window.setInterval(function(){ - updateTopicsGUI(); - updateNodesGUI(); +// updateTopicsGUI(); +// updateNodesGUI(); -}, 5000); +// }, 5000); function validateForm() { From a6a034315404fa9bd3f31671d8cfb4480c5f9f96 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Fri, 19 Apr 2019 18:29:16 -0400 Subject: [PATCH 32/40] Add safety controller status --- coordinator/coordinator.html | 48 ++++++++++++++++++++++++----------- coordinator/js/ros_scripts.js | 22 ++++++++++++++++ 2 files changed, 55 insertions(+), 15 deletions(-) diff --git a/coordinator/coordinator.html b/coordinator/coordinator.html index e56c72e..7a14021 100644 --- a/coordinator/coordinator.html +++ b/coordinator/coordinator.html @@ -4,22 +4,40 @@ Select Operation Mode
    - - - - - +
    + + + + + +
    +
    + Safety Monitor Status: +
    +

    Running

    +
    +
    +

    Stopped

    +
    +
    + +
    +
    + +
    diff --git a/coordinator/js/ros_scripts.js b/coordinator/js/ros_scripts.js index 8a8a335..ebd53bc 100644 --- a/coordinator/js/ros_scripts.js +++ b/coordinator/js/ros_scripts.js @@ -60,6 +60,28 @@ modeStatus.subscribe(function(message) { } }); +// Safety Status +var safetyStatusTopic = new ROSLIB.Topic({ + ros : ros, + name : '/aescape/mode/safety_status', + messageType : 'std_msgs/String', + throttle_rate : 500 // 2Hz +}); + +safetyStatusTopic.subscribe(function(message) { + document.getElementById("safetyRunning").className = 'label-default'; + document.getElementById("safetyStopped").className = 'label-default'; + + if (message.data == "stopped") + { + document.getElementById("safetyStopped").className = 'label-danger'; + } + else if (message.data == "running") + { + document.getElementById("safetyRunning").className = 'label-success'; + } +}); + // Recording Bag var recordingBagTopic = new ROSLIB.Topic({ From baab18447d168f3fe1f19948d93219eccf420671 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Fri, 19 Apr 2019 19:18:08 -0400 Subject: [PATCH 33/40] Fixed label styles --- coordinator/js/ros_scripts.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/coordinator/js/ros_scripts.js b/coordinator/js/ros_scripts.js index ebd53bc..a12e2a8 100644 --- a/coordinator/js/ros_scripts.js +++ b/coordinator/js/ros_scripts.js @@ -69,16 +69,16 @@ var safetyStatusTopic = new ROSLIB.Topic({ }); safetyStatusTopic.subscribe(function(message) { - document.getElementById("safetyRunning").className = 'label-default'; - document.getElementById("safetyStopped").className = 'label-default'; + document.getElementById("safetyRunning").className = 'label label-default'; + document.getElementById("safetyStopped").className = 'label label-default'; if (message.data == "stopped") { - document.getElementById("safetyStopped").className = 'label-danger'; + document.getElementById("safetyStopped").className = 'label label-danger'; } else if (message.data == "running") { - document.getElementById("safetyRunning").className = 'label-success'; + document.getElementById("safetyRunning").className = 'label label-success'; } }); @@ -94,12 +94,12 @@ recordingBagTopic.subscribe(function(message) { if (message.data == "stopped") { document.getElementById("RecordingStatusLabel").innerHTML = 'Not Running'; - document.getElementById("RecordingStatusLabel").className = 'label-warning'; + document.getElementById("RecordingStatusLabel").className = 'label label-warning'; } else if (message.data == "running") { document.getElementById("RecordingStatusLabel").innerHTML = 'RUNNING!'; - document.getElementById("RecordingStatusLabel").className = 'label-success'; + document.getElementById("RecordingStatusLabel").className = 'label label-success'; } }); @@ -114,12 +114,12 @@ executingBagTopic.subscribe(function(message) { if (message.data == "stopped") { document.getElementById("ExecutionStatusLabel").innerHTML = 'Not Running'; - document.getElementById("ExecutionStatusLabel").className = 'label-warning'; + document.getElementById("ExecutionStatusLabel").className = 'label label-warning'; } else if (message.data == "running") { document.getElementById("ExecutionStatusLabel").innerHTML = 'RUNNING!'; - document.getElementById("ExecutionStatusLabel").className = 'label-success'; + document.getElementById("ExecutionStatusLabel").className = 'label label-success'; } }); From f4f60e0188d929daf2ca5d506e300b151e567a13 Mon Sep 17 00:00:00 2001 From: David Walsh Date: Fri, 26 Apr 2019 15:18:10 -0400 Subject: [PATCH 34/40] Remove Titan specific config. --- launch/lab_ui.launch | 6 ++---- launch/lab_ui_rhea.launch | 9 --------- scripts/webserver.sh | 2 +- 3 files changed, 3 insertions(+), 14 deletions(-) delete mode 100755 launch/lab_ui_rhea.launch diff --git a/launch/lab_ui.launch b/launch/lab_ui.launch index c9a478c..fa83e32 100755 --- a/launch/lab_ui.launch +++ b/launch/lab_ui.launch @@ -1,10 +1,8 @@ - + - - - + diff --git a/launch/lab_ui_rhea.launch b/launch/lab_ui_rhea.launch deleted file mode 100755 index 4557a33..0000000 --- a/launch/lab_ui_rhea.launch +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/scripts/webserver.sh b/scripts/webserver.sh index 90dd8d4..396ef98 100755 --- a/scripts/webserver.sh +++ b/scripts/webserver.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash cd $(rospack find aescape_lab_ui) -python3 -m http.server 8000 --bind titan.aescape.co \ No newline at end of file +python3 -m http.server 8000 \ No newline at end of file From c52a5ba6bcdb13e25d2d8c827cf12e319a01828a Mon Sep 17 00:00:00 2001 From: David Walsh Date: Fri, 26 Apr 2019 15:24:18 -0400 Subject: [PATCH 35/40] Remove duplicate vision --- index.html | 9 --------- 1 file changed, 9 deletions(-) diff --git a/index.html b/index.html index 59b5f8b..cdf2230 100644 --- a/index.html +++ b/index.html @@ -39,15 +39,6 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp - - - - - - + +
    Camera Views From 404fcf686ee05b9734513345d5d4e35aa574bc3f Mon Sep 17 00:00:00 2001 From: David Walsh Date: Fri, 26 Apr 2019 15:33:46 -0400 Subject: [PATCH 37/40] Fix default rosbridge connection --- backend/js/ros_scripts.js | 4 ++-- index.html | 22 ++++++++-------------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/backend/js/ros_scripts.js b/backend/js/ros_scripts.js index 4132230..800e1b9 100644 --- a/backend/js/ros_scripts.js +++ b/backend/js/ros_scripts.js @@ -7,8 +7,8 @@ ros.recording = false; ros.connected = false; // ros.connectionName = 'ws://192.168.1.105:9090'; -// ros.connectionName = 'ws://localhost:9090'; -ros.connectionName = 'ws://titan.aescape.co:9090'; +ros.connectionName = 'ws://localhost:9090'; +// ros.connectionName = 'ws://titan.aescape.co:9090'; // If there is an error on the backend, an 'error' emit will be emitted. ros.on('error', function(error) { diff --git a/index.html b/index.html index a1ed4d4..495539f 100644 --- a/index.html +++ b/index.html @@ -133,31 +133,25 @@ Tutorials can be found here: http://www.w3schools.com/bootstrap/default.asp Predefined ROSBridge Connections
    - - -