Go to Post Finally, a Team Update that we can all agree to! - artdutra04 [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
 
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 29-11-2015, 23:27
TheOtherGuy's Avatar
TheOtherGuy TheOtherGuy is offline
Unregistered User
AKA: Kevin Forbes
FRC #4183 (Bit Buckets)
Team Role: Engineer
 
Join Date: Jul 2006
Rookie Year: 2006
Location: Tucson, AZ
Posts: 408
TheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond repute
Web interface

I was messing around with Strongback today and decided to also look into the Spark framework: http://sparkjava.com/

It wasn't terribly difficult to get it integrated and running. I used Maven Ant tasks (https://maven.apache.org/ant-tasks/) to incorporate Maven dependencies into the standard build, then tried some basic things like serving static pages, simple routes, and (most importantly) websockets.

Since it was very simple and added little size or performance overhead to the program, we're probably going to develop some kind of web based interface to replace smart dashboard.

I'm curious how many other teams have created web interfaces and what they've used them for? I noticed the one for robotpy (http://www.chiefdelphi.com/forums/sh...ht=web+server), but otherwise there is very little activity here, especially for Java or C++. That, or I'm terrible at searching! With the explosion in web technologies, this seems like an untapped resource.
__________________
  #2   Spotlight this post!  
Unread 30-11-2015, 02:57
Jaci's Avatar
Jaci Jaci is online now
Registered User
AKA: Jaci R Brunning
FRC #5333 (Can't C# | OpenRIO)
Team Role: Mentor
 
Join Date: Jan 2015
Rookie Year: 2015
Location: Perth, Western Australia
Posts: 254
Jaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond reputeJaci has a reputation beyond repute
Re: Web interface

I made a simple WebUI last season. I mostly used it to monitor motor current, power status and other things, as well as serving as a remote console. I'll be rewriting it for the newer season with some more details, and it will be publicly available when I do
__________________
Jacinta R

Curtin FRC (5333+5663) : Mentor
5333 : Former [Captain | Programmer | Driver], Now Mentor
OpenRIO : Owner

Website | Twitter | Github
jaci.brunning@gmail.com
  #3   Spotlight this post!  
Unread 30-11-2015, 09:38
virtuald's Avatar
virtuald virtuald is offline
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,050
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
Re: Web interface

If you're trying to replace Smart Dashboard, pynetworktables2js provides an extraordinarily easy to use javascript NetworkTables interface.
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff
  #4   Spotlight this post!  
Unread 30-11-2015, 15:17
Tom Bottiglieri Tom Bottiglieri is offline
Registered User
FRC #0254 (The Cheesy Poofs)
Team Role: Engineer
 
Join Date: Jan 2004
Rookie Year: 2003
Location: San Francisco, CA
Posts: 3,186
Tom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond repute
Re: Web interface

We built our robot dashboard using websockets served out by Java (https://github.com/Team254/FRC-2015/...54/frc2015/web)

It worked well in the lab, but it failed to connect a few times on the field. I was never able to debug why this failed, and we were seemingly using approved ports. Anyway, good luck!
  #5   Spotlight this post!  
Unread 30-11-2015, 16:29
fovea1959's Avatar
fovea1959 fovea1959 is offline
Herder of programmers
AKA: Doug Wegscheid
FRC #3620 (The Average Joes)
Team Role: Mentor
 
Join Date: Jan 2011
Rookie Year: 2011
Location: St Joseph
Posts: 330
fovea1959 will become famous soon enough
Re: Web interface

We used pynetworktables2js for an offseason project, will probably be our direction for 2016 season.
  #6   Spotlight this post!  
Unread 30-11-2015, 20:01
TheOtherGuy's Avatar
TheOtherGuy TheOtherGuy is offline
Unregistered User
AKA: Kevin Forbes
FRC #4183 (Bit Buckets)
Team Role: Engineer
 
Join Date: Jul 2006
Rookie Year: 2006
Location: Tucson, AZ
Posts: 408
TheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond reputeTheOtherGuy has a reputation beyond repute
Re: Web interface

Quote:
Originally Posted by Tom Bottiglieri View Post
We built our robot dashboard using websockets served out by Java (https://github.com/Team254/FRC-2015/...54/frc2015/web)

It worked well in the lab, but it failed to connect a few times on the field. I was never able to debug why this failed, and we were seemingly using approved ports. Anyway, good luck!
Interesting, did you try multiple ports or stick with 5800? I wonder if this is an FMS problem or an issue with Jetty.

Quote:
Originally Posted by Ari423 View Post
Just wondering, what is the advantage of using a web interface over a Java, LabVIEW, or C++ (or other) NetworkTables dashboard? I have heard of a few teams using a web interface but I have never heard a good reason why.
You have complete control over how you customize and deliver information and control of the robot, using technologies that are installed and work on nearly every device. You can also do some clean visualization with very little code (for example, graphing values with Epoch https://fastly.github.io/epoch/real-time/). You could use it to easily fetch & view log files, control the robot from a phone or tablet, visualize 3d data, adjust autonomous routines, etc.
__________________
  #7   Spotlight this post!  
Unread 30-11-2015, 17:09
Ari423's Avatar
Ari423 Ari423 is offline
LabVIEW aficionado and robot addict
AKA: The guy with the yellow hat
FRC #5987 (Galaxia)
Team Role: Mentor
 
Join Date: Mar 2015
Rookie Year: 2012
Location: Haifa, Israel
Posts: 553
Ari423 has a brilliant futureAri423 has a brilliant futureAri423 has a brilliant futureAri423 has a brilliant futureAri423 has a brilliant futureAri423 has a brilliant futureAri423 has a brilliant futureAri423 has a brilliant futureAri423 has a brilliant futureAri423 has a brilliant futureAri423 has a brilliant future
Re: Web interface

Just wondering, what is the advantage of using a web interface over a Java, LabVIEW, or C++ (or other) NetworkTables dashboard? I have heard of a few teams using a web interface but I have never heard a good reason why.
__________________
2017-present: Mentor FRC 5987
2017-present: CSA for FIRST in Israel
2012-2016: Member FRC 423
2013: Programmer
2014: Head Programmer, Wiring
2015: Head Programmer, Wiring
2016: Captain, Head Programmer, Wiring, Manipulator, Chassis, CAD, Business, Outreach (basically everything)


  #8   Spotlight this post!  
Unread 30-11-2015, 21:14
JesseK's Avatar
JesseK JesseK is offline
Expert Flybot Crasher
FRC #1885 (ILITE)
Team Role: Mentor
 
Join Date: Mar 2007
Rookie Year: 2005
Location: Reston, VA
Posts: 3,640
JesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond repute
Re: Web interface

Quote:
Originally Posted by Ari423 View Post
Just wondering, what is the advantage of using a web interface over a Java, LabVIEW, or C++ (or other) NetworkTables dashboard? I have heard of a few teams using a web interface but I have never heard a good reason why.
Different skillset - different languages and approach to end-to-end programming. Static/traditional programmers are (usually) bad at designing aesthetically-pleasing displays, whereas web people have to focus on style as part of their layouts. Web programmers are also usually looking for something to do towards the end of build season.

On the flip side, web technologies are pretty finicky when it comes to things like touch, external UIs (HUDs like Oculus Rift, e.g.) or other ways of interacting with the robot (Cheezy Vision, e.g.).

If vision is performed on the display laptop, it's often simpler to simply put the vision output on a display that's directly attached to the process which performs the vision processing. Vision, afaik, has absolutely terrible, rotten performance in web languages (except for perhaps Go) so Java/C++ is preferred.

It would be nice if the robot 'came' with a reliable webserver that had all of this data rather than having to use NetworkTables. That way any programmer, whether they're learning web, mobile or embedded, could do something with the robot data. We could also publish calls to the robot. We had on-field connection issues with our stuff in 2015, but we didn't in 2014.
__________________

Drive Coach, 1885 (2007-present)
CAD Library Updated 5/1/16 - 2016 Curie/Carver Industrial Design Winner
GitHub
  #9   Spotlight this post!  
Unread 30-11-2015, 21:18
virtuald's Avatar
virtuald virtuald is offline
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,050
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
Re: Web interface

Quote:
Originally Posted by Ari423 View Post
Just wondering, what is the advantage of using a web interface over a Java, LabVIEW, or C++ (or other) NetworkTables dashboard? I have heard of a few teams using a web interface but I have never heard a good reason why.
One of the biggest advantages is that "anyone" can create a webpage, and it makes it easier to have less technical students involved with the design/etc of the dashboard interface. There's a lot of good real world experience to be had working with HTML/Javascript too (not that there aren't in other languages, but this is a great opportunity for students to branch out).
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff
  #10   Spotlight this post!  
Unread 30-11-2015, 23:15
x86_4819's Avatar
x86_4819 x86_4819 is offline
computer-whisperer
AKA: Christian Balcom
FRC #4819 (Flat Mountain Mechanics)
Team Role: Programmer
 
Join Date: Sep 2014
Rookie Year: 2013
Location: Shepherd MI
Posts: 92
x86_4819 is on a distinguished road
Re: Web interface

Another benefit web interfaces have is their ability to run remotely on almost any device. The webdash I built last season (mentioned by OP) was designed to be run on a roborio and provide convenient debugging information. If our robot started acting funny while someone else was driving I could just pop on the dashboard from my phone to read the logs, check/modify networktables data, or download a complete logfile from the current run to view later. This dashboard was eventually installed and set to run on startup on each of our controllers, and is my first place to check for any robot problem.

Gameplay dashboards are different. Running it on the robot seems to have more drawbacks than benefits, since you can't run pre-match configuration without it. By the way (this goes to virtuald and any who ran web-based gameplay dashboards) how did you manage your webserver so that non-programmers could easily access it?
__________________




My Github Repositories
  #11   Spotlight this post!  
Unread 01-12-2015, 10:00
JesseK's Avatar
JesseK JesseK is offline
Expert Flybot Crasher
FRC #1885 (ILITE)
Team Role: Mentor
 
Join Date: Mar 2007
Rookie Year: 2005
Location: Reston, VA
Posts: 3,640
JesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond repute
Re: Web interface

Quote:
Originally Posted by x86_4819 View Post
By the way (this goes to virtuald and any who ran web-based gameplay dashboards) how did you manage your webserver so that non-programmers could easily access it?
The intent is via web calls - start a browser, point to a URL. We plan to have a 'raw data' page which gives an auto-refreshing view of 'all' data in a simple table format.

If non-programmers want more than that, I'm sure we could hook something like Tableau up to the MongoDB backend.
__________________

Drive Coach, 1885 (2007-present)
CAD Library Updated 5/1/16 - 2016 Curie/Carver Industrial Design Winner
GitHub
  #12   Spotlight this post!  
Unread 01-12-2015, 10:49
virtuald's Avatar
virtuald virtuald is offline
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,050
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
Re: Web interface

I made a shortcut on the desktop of our driver station machine that would start chrome with the correct resolution and the correct page.
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 09:38.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi