Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Introducing the Open Source Driver Station (http://www.chiefdelphi.com/forums/showthread.php?t=118768)

gluxon 29-08-2013 22:50

Introducing the Open Source Driver Station
 
Hey Chief Delphi!

I would like to share with you what the Second Law Enforcers (Team 178) have been working on for the Summer of FIRST project in the last two months. We’ve replicated the current FRC Driver Station and created a version that will be functional without platform-based dependencies. In other words, this Driver Station will work on OS X and Linux as well as Windows.

At the current state, the only thing you really can do is enable and disable the robot. Joystick support is coming up soon. The main issue with adding this feature is that I don’t have one to test with, and won’t until our next team meeting. :(

Anyway, this is just a beta test. I’m working on creating a version for iOS, which I hope to have out within the next month. I do realize this has been done in the past, but the app is no longer up, so I’m recreating it with 2013 and hopefully 2014 season support. :)

Download links are on the GitHub page. https://github.com/Summer-of-FIRST/DriverStation.js

Note: This is not legal for usage during a competition match. I will most likely add a kill switch if it detects FMS in the future.

joelg236 29-08-2013 23:20

Re: Introducing the Open Source Driver Station
 
Saw this on github earlier. Is this legal for competition? Also, how is performance of packets and UI? Any enhancements available?

dellagd 30-08-2013 00:35

Re: Introducing the Open Source Driver Station
 
:O

This is awesome, I cant wait till I can look at this code after school settles down...

EDIT: Uh, what happened to separate lines in "jquery-2.0.3.min.js"?

magnets 30-08-2013 07:08

Re: Introducing the Open Source Driver Station
 
This is pretty neat. I like this user interface more than I like the provided driver station's interface. Just out of curiosity, do you know why the file is so big? Also, why does it come with ffmpeg?

Michael Hill 30-08-2013 07:10

Re: Introducing the Open Source Driver Station
 
Quote:

Originally Posted by dellagd (Post 1289221)
:O

This is awesome, I cant wait till I can look at this code after school settles down...

EDIT: Uh, what happened to separate lines in "jquery-2.0.3.min.js"?

A jquery.min.js will be a minimized version of jquery. It's a pretty common thing to do with javascript to really squeeze down on filesize. If you have 1000 lines of code, there's a hidden "\n" on every line taking up a byte, so by getting rid of those, it reduces the file size by about a kB. But it doesn't just stop with \n, a minimized version will also rename your functions to typically single letter names, so each reference to them will be reduced down to a single letter. This isn't anything you worry about in a compiled language, but since js is interpreted, it can matter.

FrankJ 30-08-2013 08:20

Re: Introducing the Open Source Driver Station
 
Quote:

Originally Posted by joelg236 (Post 1289213)
Saw this on github earlier. Is this legal for competition? Also, how is performance of packets and UI? Any enhancements available?

I don't see it ever being legal for competition. The driver station enables/disables the robot. So it will be always a controlled bit of software.

gluxon 30-08-2013 12:50

Re: Introducing the Open Source Driver Station
 
Quote:

Originally Posted by magnets (Post 1289239)
This is pretty neat. I like this user interface more than I like the provided driver station's interface. Just out of curiosity, do you know why the file is so big? Also, why does it come with ffmpeg?

For the work on this application, I wanted to focus more on the protocol parts, as that was more uncertain. This was basically just a test for the later iOS and possibly Android version. As a result, I used a GUI setup that I was already familiar with and could code quickly. This ended up being node-webkit. The entire interface is written in web technologies (HTML, CSS, and JavaScript).

The file you're downloading is my code bundled with a special version of the webkit engine. I realized that the file size would be in the 60 MB range when making this decision, and modern computers don't really have an issue with storage, so I went with it.

Writing this in web technologies also gave me a very large amount of control over how I wanted this to look, which was huge bonus for me.

brennonbrimhall 31-08-2013 14:50

Re: Introducing the Open Source Driver Station
 
This is great! One thought I have is that this would be even better with a similar homebrew FMS solution. Is this on your roadmap?

I have heard of others who have tried to replicate FMS (https://github.com/itguy51/FRC-OpenFMS, for example), but these haven't been documented very well yet, and look like they're the work of single people, not the FRC community.

gluxon 01-09-2013 15:51

Re: Introducing the Open Source Driver Station
 
Quote:

Originally Posted by brennonbrimhall (Post 1289386)
This is great! One thought I have is that this would be even better with a similar homebrew FMS solution. Is this on your roadmap?

I have heard of others who have tried to replicate FMS (https://github.com/itguy51/FRC-OpenFMS, for example), but these haven't been documented very well yet, and look like they're the work of single people, not the FRC community.

If there is a desire for this, sure. I'll probably end up contacting existing open FMS maintainers to see who's interested in a collaborative effort.

Andrew Lobos 01-09-2013 17:26

Re: Introducing the Open Source Driver Station
 
Quote:

Originally Posted by gluxon (Post 1289498)
If there is a desire for this, sure. I'll probably end up contacting existing open FMS maintainers to see who's interested in a collaborative effort.

I'd be interested in getting something going to develop a full open source FMS.

Here is some of the stuff I worked on a while ago, mainly as a proof of concept: https://github.com/4ndr3w/Java-FRC-FMS/

FMS -> DS is fully implemented. Robot mode(auto/tele), state, alliance, and station setting all work with the 2013 DS.
Since the DS->FMS stuff is not yet implemented, the FMS will just blindly send packets to the team's DS IP without gathering status info, but it works.

For anyone interested, I used this whitepaper as a reference for the protocol. Despite this being for the old Kiwibyte 2009 DS, it still works with the 2013 DS.
http://www.chiefdelphi.com/media/papers/2266

TheBassett 04-09-2013 01:14

Re: Introducing the Open Source Driver Station
 
Quote:

Originally Posted by brennonbrimhall (Post 1289386)
This is great! One thought I have is that this would be even better with a similar homebrew FMS solution. Is this on your roadmap?

How much need is there for this type of FMS lite program? I have been working with my team to create an FMS Lite solution and just a few weeks ago we ran nearly 10 full matches with 3 different robots and no apparent issues. If there is a need for this we would be happy to prep it for release(as open source) :D

Andrew Lawrence 04-09-2013 01:47

Re: Introducing the Open Source Driver Station
 
Any idea when the OSX version will be released?

brennonbrimhall 04-09-2013 06:07

Re: Introducing the Open Source Driver Station
 
Quote:

Originally Posted by TheBassett (Post 1289835)
How much need is there for this type of FMS lite program?

Need? None. We already have the FIRST-sanctioned FMS Lite, and the practice button on the real Driver Station.

It's definitely more of a want. For example, FMS Lite hasn't been updated since 2009, can't be implemented very well at teams' practice fields, and the underlying logic is not accessible to the of the community (minus NI and FIRST, of course). It stands as a decent (but old) solution for some offseason or preseason events. There really isn't any way a team can set up an instance of FMS (homebrew or official) easily for their own purposes.

Plus, after Einstein 2012, I would personally prefer my team's drivers practicing under some sort of FMS to more accurately approximate a real match – and not just driving with the Driver Station set to practice mode.

Quote:

Originally Posted by Andrew Lawrence (Post 1289839)
Any idea when the OSX version will be released?

While I don't know much about node-webkit, I have worked with node.js before. It should be cross-platform, and while there isn't a nice installer or executable, you should be able to download the source and try it from there, I believe – assuming you have node.js installed, of course. It wouldn't be a nice, clean .dmg or installer that you'd be used to, but it would be functional. I'm sure you could PM me or gluxon if you have any questions, or you could just wait until the next release.

gluxon 04-09-2013 17:43

Re: Introducing the Open Source Driver Station
 
All I have to do is package the OS X version into a nice .app. I'll do it tonight when I get home. :)

mlepard 17-09-2013 17:48

Re: Introducing the Open Source Driver Station
 
I really appreciate this open source driver station. I'm not a fan of installing LabVIEW on our programming teams personal laptops just so that they can play with our test cRIO setup (we only have one driver station).

I'd really love the ability to use a joystick with it.

Thanks a lot for this!

hyprvx 30-08-2014 00:06

Ubuntu One is dead, will OSDS live on?
 
So the binary links in your GitHub page all lead to Ubuntu One file storage, which was taken offline about a month or two ago. Can you reupload the files to something like MEGA or MediaFire or something? Thanks~

gixxy 06-12-2014 14:52

Re: The Open Source Driver Station Lives On!
 
Hello my fellow frustrated USFIRST Driver Station users, or am I the only one? :ahh:

I have forked the work done by Gluxon, added Joystick Support, Bound the F1, Enter, and Space keys to Enable, Disable, and Estop, and Added a Joystick Setup section to the Setup tab to select Joystick order.

I have a problem however, NONE OF IT IS TESTED... I am a college student and do not have access to an FRC robot for actual testing. I do not have the resources (a Windows and Mac machine) to put together packages for use other than on Linux, but anyone who knows a little about Node and Node-Webkit (I managed to learn in the 5 days I worked on this) should be able to get this running fairly easily.

I am reaching out to you guys in search of people willing to test and give feedback on what needs to be done to get the Open Source Cross Platform Driver Station in a usable state, preferably before January so it can be used for testing actual robots during the season.

Github: DriverStation.js

gluxon 08-12-2014 12:21

Re: Introducing the Open Source Driver Station
 
Hey gixxy,

When I saw that node-gamepad had came out, integrating it in DriverStation.js was one of my priorities for the year. However, with the new protocol in 2015, I pushed this off until January.

Are you interested in submitting a pull request to my original repository? Forks are good, so there's no hard feelings either way.

Brandon

gixxy 08-12-2014 15:10

Re: Introducing the Open Source Driver Station
 
I was thinking of putting in a pull request, but not until the joystick code is actually tested with bots.

falconeye9 27-05-2015 18:02

Re: Introducing the Open Source Driver Station
 
Im on a mac and I was wondering, how to load code and use the smart dashboard with this?

gixxy 03-06-2015 20:32

Re: Introducing the Open Source Driver Station
 
Quote:

Originally Posted by falconeye9 (Post 1484460)
Im on a mac and I was wondering, how to load code and use the smart dashboard with this?

Firstly the OSDS is NOT compatible with the 2015 protocol, it will not work with RoboRIO robots (yet!).

The OSDS is only a replacement Driver Station. Code is loaded via your standard IDE of choice (LabVIEW for LabVIEW, Netbeans for java, and Workbench for C++) and the smart dashboard is a separate application written in Java and handles it's own network communication.


All times are GMT -5. The time now is 22:42.

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