Git Product home page Git Product logo

2015-ui's Introduction

FRC1418 2015 Driver Station Code

Introduction

ScreenShot

We've made an updated version of our UI which is way easier to use and modify for other teams. You can find it here.

We're really excited to release our Driver Station code for 2015! At the Greater DC Regional, 1418 won an Innovation In Control award, and the polished UI was mentioned as one of the reasons for winning the award.

One of the really cool ideas that was a departure from last year's UI was using HTML5 & Javascript to create the driver station interface. The UI features:

  • Touchscreen web browser interface provides richer control interface for secondary robot operator
  • Provides full access to robot functionality
    • Can raise or lower the forklifts to any given position
    • Enable and disable automatic functions of the robot
    • Tune autonomous modes and other robot parameters in the pits
  • Select one of multiple autonomous modes
  • Live streaming camera views to assist operators when view is blocked

The HTML/JavaScript interface is made possible by using [pynetworktables2js] (https://github.com/robotpy/pynetworktables2js) to forward NetworkTables traffic to the webpage. pynetworktables2js was initially prototyped by Leon Tan, our lead UI student, but it is now maintained by the RobotPy project so that other teams can benefit from our work.

Running the code

Requirements

python 3 must be installed!

Make sure you have pynetworktables2 installed:

pip3 install pynetworktables2js

Connect to a local simulation

Run this command:

python3 driverStationServer.py

Connect to the robot

Run this command:

python3 driverStationServer.py --host=roborio-1418.local

View the output

Open a web browser (preferably Chrome), and go to:

http://localhost:8888/

You can replace the HTML file at the end of the URL with whatever you're trying to test.

Authors

Students

  • Leon Tan, UI Lead
  • Aki Maher
  • Jacob Hanse
  • Tyler Gogal
  • Cami Borja

Dustin Spicuzza, mentor

2015-ui's People

Contributors

17mahera avatar carterfendley avatar erikboesen avatar infinxyxs avatar lleontan avatar matt-puentes avatar virtuald avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

2015-ui's Issues

Make Robot Visualizations

Use d3 to make svg widgets of the robot. side view and top down. side view should show whether the wheels are running and the current height of the forklifts. the topdown widget should rotate using the gyroscope and show crate distance using the distance sensors.

Current Tasks

  1. Implement new layout
  2. Implement new liftTo buttons
  3. Finish top down visual
  4. Finish side view visual
  5. Fix encoding
  6. Implement Camera Feed
  7. Move Timer

Need to be able to select autonomous mode

The networktables support needs to be extended to allow selecting a particular autonomous mode. Probably will need subtable listener support to make this work.

Run the robot code once frc1418/2015-robot#27 is merged, and you'll see what you need to do. The 'outline viewer' can help out too.

Feature request: buttons change color based on the currently selected action

This means that when the driver switches the forklift position, the buttons should clearly show the currently targeted position (or none if in manual mode).

Additionally, when the button is clicked, then it should also change. However -- you don't need to do that in the onclick button -- if the robot code is working correctly, then it'll set the targeted position and the UI will show that.

References, ID's and Labels.

UI_MainPage page should have-

  1. imports for d3, jquery, and SocketController.js
  2. ids for html elements
  3. sample text inside the buttons

Make Settings Pages

UI_SettingsPage should be divided into RobotSettings.html,AutonomousSettings.html,VisionSettings.html, and GuiSettings.html

Current Tasks

In order of importance

  1. driver buttons
  2. *enable/disable auto-acquire
    *set forklift positions
    *drop buttons
    
  3. Settings
  4. *autonomous *vision *forklift *persistence(cookies)
  5. visual robot representation
  6. vertical and side view
  7. stored settings
  8. game clock
  9. other
  10. <><>

Autoaquire

Talk with the robot team to identify what sensors we need to make it happen. At the moment the robot doesn't have limit switches to detect collision with totes. Are the distance sensors accurate enough or do limit switches need to be installed?

form submit event

in testingpage make the form message the server when the user presses enter. currently only works when the button is clicked.

BlobFile

testing page is receiving blobObjects instead of text when messaging the server. Turn them into text.

line 63 in testingpage

Camera feed

After build season is finished we need to get the camera feed from the robot and display it on UI_Mainpage

@kcodes7 notebook!

put the information in your notebook online so we can see it anytime!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.