![]() |
Customizable Dashboard
Don't like the look of the LabVIEW dashboard? Frustrated with dashboard examples not working how you want? Confused on how to pack packets for the provided dashboard? Want to customize the dashboard to better fit your needs and strategy or show more relevant information without having to mess around with the LabVIEW one?
I'm developing my own dashboard software that I plan to release to all FIRST teams once I have a stable beta out. My goal is to have it out in a few weeks from now in time for the last third of build season or so. Current features include:
I'm wondering how many teams out there would be interested in something like this, and what additional features they want to see. Feedback is greatly appreciated. |
Re: Customizable Dashboard
Fantastic! We would LOVE to use your C++ custom configurable Dashboard. We are trying to stay in C++ for all of our FRC coding. We had been thinking we would try and dive in and do a C++ port ourselves, but we weren't sure how hard that would be, and from your description, it sounds time-consuming indeed.
Anyway, we'll watch for your C++ customizable Dashboard. Will you post it here to Chief Delphi? Wish we could have it earlier than the last third of build season, but we know how long software takes, and our team greatly appreciates your efforts! |
Re: Customizable Dashboard
If you have any questions about the LV one, or if we can help in any way, feel free to ask, PM or otherwise.
Greg McKaskle |
Re: Customizable Dashboard
I'll be sure to. Your support is greatly appreciated.
Let me clarify to everyone that while this is being written in C++, it is completely independant of robot code. It will work with a robot running in LabVIEW, C++, or Java, since they all communicate to the dashboard in the same way. Again, I'm wide open for any additional features you guys want. This is for the FIRST community, not just my team, and I want to meet the needs all of you have. |
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
Yes, but it will involve lots of printf() calls and not too much movement.:rolleyes:
|
Re: Customizable Dashboard
Quote:
On a more serious note, are you in a design or beta phase? |
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
Something like this would be amazing. I find it very frustrating that if I want to use the dashboard I'm forced to use LabView if I want to customize the dashboard or understand how it works.
Keep it up! :-) |
Re: Customizable Dashboard
Open source?
|
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
I'd definitely check it out!
|
Re: Customizable Dashboard
how close are you to completion?
|
Re: Customizable Dashboard
Any updates on the C++ dashboard?
Need a beta site? Source available yet? |
Re: Customizable Dashboard
The designer mode is 90% done. Features that are done and working
I still have to:
Right now the only implemented control is a meter. However, I'm using an Object-oriented design, and most of the code for the meter is common to all controls and is contained in a base class from which all the other controls can be derived. Would you guys like some screenshots and the code I have so far? |
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
This should be great!
|
Re: Customizable Dashboard
I'll get some screenshots out in a day or two when I have a bit more to show you.
|
Re: Customizable Dashboard
Awesome! I'll be giving this thing a spin as soon as I can!
On a secondary note, are you planning any functionality to process data inputs before being displayed? Our current dashboard needs a bit of calculation before it can be displayed on the classmate and I wouldn't want to tie up processing time on the cRIO |
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
Quote:
Not sure if doing it on a netbook is a better choice though. -Tanner |
Re: Customizable Dashboard
As of right now, the dashboard won't do any processing on the data. It will feed what it gets from the network packets straight into the controls. However, the meter for example, is not bound to a range of 0 to 1. You can set your own minimum and maximum values. That way, you don't have to do any scaling cRIO side.
|
Re: Customizable Dashboard
Both me (and the project) are still alive. I haven't posted because I've been so busy getting things done. ;) Our robotics team is going to get some major hours in this weekend. Expect a big update then.
|
Re: Customizable Dashboard
If I were you, do it in OpenGL for multiplatforming
|
Re: Customizable Dashboard
Looking forward to it!
|
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
You could use boost's socket library.
|
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
Wow this is lookin great. Can't wait to see final product!
|
Re: Customizable Dashboard
This sounds like good stuff. Does anyone know if FIRST will allow this to be used during a competition? Or are we going to be required to use their drive station/dashboard infrastructure?
|
Re: Customizable Dashboard
You can use whatever dashboard you want, provided that you don't change how the robot sends data to the dashboard. That's why the FIRST Driver Station software has a "remote dashboard" option.
|
Re: Customizable Dashboard
This weekend I did a lot more work on it. You can now save and load the entire dashboard, including control properties, names, locations, and packet data offsets (in short, everything). The packet data toolbar at the bottom is completely done, letting you drag and drop data sources straight into the packet bar.
I'm not putting up screenshots because the system doesn't look any different from when I last posted some, but the things you saw before work now :D Both of the things I finished this weekend are big steps towards this project losing vaporware status. All I have left to do is make the actual run/display mode where the dashboard interacts with the robot. This will be developed a lot faster than the other components due to the lack of user interaction. |
Re: Customizable Dashboard
I would be very happy to help to port a version to linux...
|
Re: Customizable Dashboard
SO would I
|
Re: Customizable Dashboard
I have the dashboard running, fullscreen, and went today to test the networking side of it, only to find out that FIRST has changed the network protocol around, making my white paper on the protocol completely useless.
If anyone has newer documentation on the dashboard packet, the sooner I get it, the sooner I can get this out. |
Re: Customizable Dashboard
Quote:
http://www.chiefdelphi.com/forums/sh...ight=dashboard |
Re: Customizable Dashboard
Quote:
I assume the following code is what you're looking for, but if you need information on the structure of the default data packets I can help with that as well. (C#) Code:
public void Parse(byte[] userData) |
Re: Customizable Dashboard
Quote:
(There used to be dedicated space for error and user strings before the user data). My net code should just require a few tweaks. Expect an initial release in a few days. :D |
Re: Customizable Dashboard
I'm going to hazard a guess that this won't be ready for week 1 events (this Weekend) Just wondering since I'm heading to Kettering University in about an hour to setup the field and all so, my time to integrate a new dashboard into our robots program will be quite limited until the competition actually starts.
|
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
The initial release is finished. It's 1:30 AM on Saturday here, so I'm going to get some sleep now. Tomorrow (well, technically today, but after I get some sleep) I'll put together some basic documentation (a basic instruction guide, known bugs, planned improvements, etc.) and throw the dashboard and the dox on this thread for you guys to check out. :D
Please be understanding with this release and think of it as an early beta. It's feature-complete, but there's a few minor things missing (keyboard shortcuts, prompts to save if you've made changes to the dashboard before closing the window, etc.). Rest assured, these features will be added very quickly. My goal here is to give you guys something concrete that you can start to play with in anticipation of the more finished project, instead of making you wait with nothing while I finish things. |
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
1 Attachment(s)
The dashboard is live!
As you can see, the difference between this dashboard and other dashboards released such as ZomB is that this is a complete package requiring no other software. You make your dashboard in the program, and you run your dashboard in the program. Simple, and no need for Visual Studio or other development tools. Using it is simple. To create meter controls (the only type implemented so far - more to come soon), click on the meter button on the toolbar then just click, hold, and drag meters into existence (click where you want a corner of the meter to be, drag to where the other corner should be, and release. The meter will pop into being). Make sure you click the meter button again when you're done creating meters, switching the cursor back to multi-select mode (drag a box around controls to select them). You can also select multiple controls by holding the Control key and clicking the other controls. Holding shift while dragging a corner of a control will cause it to keep its current aspect ratio. Once you've created your controls, tell them where to get data from. In the Packet Data bar at the bottom of the screen will appear a box for each control you've created. Hovering over each box will tell you the name of the control it belongs to (if this doesn't work at first, just click in the Packet Data bar to give it focus). Drag the box into the "User Data Byte Number" line to tell the control where in the packet to get its data from. Each space represents a byte, and since a float (the data type the meter control takes) is 4 bytes, it is 4 spaces wide. The box will turn green to indicate you have successfully placed it in the packet. At the current time you cannot have multiple controls receive data from the same byte(s) - this will cause the box to turn red until it has enough space for itself. In your robot code, simply use the high-priority packer to pack the packet with the data in the same order you laid out in the dashboard. Hit the green run arrow. If you have not saved your dashboard yet, you will be prompted to do so (the dashboard must be saved to run). The display mode will automatically start up, displaying your dashboard in fullscreen. To exit display mode, simply hit Alt-F4 and you will return to edit mode. I realize that right now there's only one control type (the Meter), but rest assured, more will quickly follow. Think of this as a demo. Feel free to provide suggestions, and together we can keep making this system better and better. If you have any further questions, please read the text documents included with the program. If you still have questions, post them here, PM me, or email me at slavik262@gmail.com Enjoy! |
Re: Customizable Dashboard
When I run it, the mouse flickers, CPU usage goes up to nearly 100%, and it is a bit slow (it claims the frame rate is 3-9FPS)
what data do you send from the robot side? GetDashbaordDataPacker()->AddI32(55)? is there a way to not have full screen dashboard? the set resolution fails |
Re: Customizable Dashboard
Quote:
What we're doing is using a separate laptop to run the dashboard and connecting it to the Classmate using a USB to Ethernet adapter. It works quite well, and you have the added benefit of not just a faster computer, but a larger screen so your drivers don't have to view the dashboard in Squint-O-Vision. On a fairly standard laptop that our team bought for programming, we got 90 fps on average. The CPU is pegged not because of a problem, but because the dashboard runs as fast as possible. I can have it sleep in the render loop if it's that huge of an issue, but it shouldn't be. Remember that this isn't an event-based system, but a real-time render loop. If you're worried about running other programs while you're designing the dashboard, don't worry as the dashboard sleeps and uses almost no processor when its window isn't selected. Could you please explain what you mean by "The set resolution fails?" In the edit menu, you can set the resolution to whatever you want. While at first I was going to limit options to the possible resolutions of the computer the dashboard is running on, I decided to let the user set it to whatever they wanted in case they wanted to design a dashboard on one computer and run it on a different one. When you run the dashboard, it checks if the computer supports the desired resolution, and if it doesn't, returns to edit mode after displaying an error message. On the robot side, you use the high-priority packer to pack the dashboard with floats (as I stated in my previous post). |
Re: Customizable Dashboard
I ran this on my MacBook (w/ Win7) and my FPS was ~130 until I added controls when it dropped to ~80 at 5 controls and ~60 at 13 controls. When displaying properties with 13 controls the FPS is ~60 +/- ~10.
I tried to resize from 1280x800 to 800x600, but the resolution did not change; however, it did remove some components. |
Re: Customizable Dashboard
Quote:
Quote:
Quote:
|
Re: Customizable Dashboard
I'm not sure what's going on with the fullscreen mode. I'll take a look at the code as soon as I get home.
Byteit - I have no idea what could be causing FPS to drop so low. Could you give me more details as to what you were doing when it happened? A note on FPS - the entire system is texture-based (since this it runs on a graphics engine after all). The arrows on the Numeric Up/Down controls are textures, the text in the controls are textures, etc. I sped up performance by making each of the labels in the Properties windows solid textures, but that's sill a lot of texture changes (I ran some diagnostics and I think there's like 90 textures in the properties window). Now for those of you who know anything about graphics processing, switching textures, meshes, and shaders is expensive for the graphics card. So having the properties window open will cause the FPS to drop. Also, adding controls not only adds the need to draw the controls themselves, but the data source boxes, etc. Just know that display-mode performance will be much higher than your edit performance - even by a factor of 2 or 3 according to initial tests. While I obviously want designer mode to run fast, I care much less about optimizing the designer mode than the display mode, since during a match you'll be looking at the display, not editing it. :p |
Re: Customizable Dashboard
You should be able to get a performance boost by switching to power-of-two textures. Also, I'm not very familiar with Irrlicht, but you should make sure the quads are not being drawn in immediate-mode, and instead thrown into VBOs (or at the very least, vanilla vertex arrays).
|
Re: Customizable Dashboard
Quote:
As for VBOs, I'm using their built-in 2-D rendering mode, which is in the process of being switched over to VBOs (I think in the next update). The video system, which I'm working on right now, will use VBOs. :D |
Re: Customizable Dashboard
Can I have the source code so I can attempt to port it to Linux?
|
Re: Customizable Dashboard
I'll have a source release in a day or two after I comment it a little bit.
|
Re: Customizable Dashboard
ok, thanks
|
Re: Customizable Dashboard
I found some more bugs (they'll be fixed by the time you read this).
I'm looking into the issues with different resolutions now. Also, for planned updates, I also plan on highlighting the data rectangle of selected controls in some way. |
Re: Customizable Dashboard
Quote:
no controls, just running the exe, and looking at the FPS! |
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
I'm working on the video control next, which will also come out as a stand-alone program (like TheDominis's C# one). I had a few issues with the networking, but thanks to TheDominis, things should be smoothed out now.
My team is playing at the Wisconsin regional this weekend and I'll just be working on the dashboard all competition, so expect some further progress by Sunday. |
Re: Customizable Dashboard
Quote:
-Joe |
Re: Customizable Dashboard
I'll be sure to do so.
This weekend was the Milwaukee competition - the following things happened:
I haven't gotten anything out since because I've been playing catch-up for my calculus class, and school comes before robotics, but expect some stuff within the week. I'll definitely work on getting a FIRST Forge project page and getting the source out to you guys too. Oh, and here's a sneak-preview of the video dashboard: :p ![]() |
Re: Customizable Dashboard
Nice work so far ^_^ even though my teams 2 competitions this year are done (unless our point total can get us into the Michigan State Championship *fingers crossed ^_^*), I can probably still use this for next years bot. Thanks for taking the time to do this.
|
Re: Customizable Dashboard
I applied for a project on FIRSTForge a day and a half ago and still have no response. Should I try again or wait some more?
|
Re: Customizable Dashboard
The dashboard, now known as CARDS (Charger Advanced Robotics Dashboard System), is live on FIRSTForge. Expect the source and latest builds to be uploaded today or tomorrow.
|
Re: Customizable Dashboard
Quote:
|
Re: Customizable Dashboard
Expect the latest builds to be uploaded by tonight. I'm just going to put the project and binaries in some self-extracting archives and upload them to the files section. What I'd really like though is to get the source up on an SVN repository. Does anybody know any free online services that let you host one?
Also, once the source is up, I'm completely open to any help with the project. The more people we have writing code, the faster CARDS can get added functionality and the faster it can be useful to teams out there. Let me know in a PM or email if you're interested in helping - all that's required is some basic C++ and Object-Oriented Design skills. Our team has our next regional April 8, so that's my target date to have a solid release. Things I want done by then:
|
Re: Customizable Dashboard
It would be nice to have a "fully loaded" version with video and a "light" version without. I have a feeling that a project like this will go a long way...
|
Re: Customizable Dashboard
The initial release packages for both the dashboard and my video system are out. Packages include the programs themselves, required resources, and the source for each. They can be located here:
http://firstforge.wpi.edu/sf/frs/do/...ects.cards/frs This release should be much more useful to everyone due to the fact that the bugs that made the last one somewhat unusable have been fixed. :D |
Re: Customizable Dashboard
FIRST Forge seems to be down, but I just wanted to give you guys a quick update:
The forwarding program (so that you can run video on a second laptop at competitions) is almost completely finished. There's a couple of bugs I have to work out, but expect an initial release this weekend. |
Re: Customizable Dashboard
FIRST Forge is back up. Feel free to continue downloading the dashboard and video components. The forwarder will be up soon.
|
Re: Customizable Dashboard
The forwarder is done (enough for its first public release anyways). In about five minutes from when I type this I'm heading off to the North Star regional today. I'll try to put it up if I can get internet access at the hotel. If anyone wants to check the forwarder and video system out, find me (Matt Kline) in the Team 537 pit and I'll be happy to set you up with it and any of my other software.
|
Re: Customizable Dashboard
Both the forwarder and a launchpad program that ensures that the Driver Station starts a single instance of your dashboard are released and available on the CARDS FIRST Forge site (http://firstforge.wpi.edu/sf/projects/cards).
|
Re: Customizable Dashboard
Hi everyone. Sorry for not posting anything in a week - I've been badly sick. The forwarder and the video display system underwent a trial by fire in Minneapolis, so I have some new versions for you guys that I'll put up later today.
Changes to the forwarder include some changes to the networking sockets so that data flows through it more smoothly. Changes to the display include a lot of optimizations to make it run faster and with less overhead on a low-end system like the Classmate. |
Re: Customizable Dashboard
Sorry for the delay, but new versions of both the video system and the forwarder are up for download on FIRST Forge:
http://firstforge.wpi.edu/sf/frs/do/...ects.cards/frs Both have been battle-tested at the North Star regional and run extremely smoothly on the Classmate (or any other laptop you care to run them on). I realize that I haven't made as much progress with the main CARDS dashboard as I'd hoped, but that's mostly due to the fact that I've been busy improving the video system. Our team decided that active video feedback was much more important to our drivers than other sensory data, so that's been my focus during the two regionals we've attended. Team 537 will be at nationals in the Curie division. I'd love anybody else who's going to Atlanta to stop by our pits and have a chat with me about any of the CARDS products. CARDS has always been and will always be about more than just Team 537 so it would be great to hear from any of you who will be there. Talking to you guys really helps me meet your needs and make needed changes to the programs. The end of this competition season will certainly not mark the end of the development of CARDS - it will continue into the off-season and hopefully next year we can see a lot more teams using it! It's crazy to see how far it has come already. I'm really excited to watch this project mature. |
Re: Customizable Dashboard
I know the UPS control systems group has talked about this since it got linked to our email list and I want to look more at it this off-season when we have access to the cRIO. Sounds like good stuff from our friends slightly to the northwest :)
|
Re: Customizable Dashboard
Live from nationals, it's
CARDS Video Version 0.3! http://firstforge.wpi.edu/sf/projects/cards Changes:
Download: http://firstforge.wpi.edu/sf/frs/do/...3/frs1120?dl=1 |
Re: Customizable Dashboard
Does your dashboard support sending feedback commands to controllers (xbox, ps3, gaming joysticks)? We really wanted to give our drivers force feedback in the controllers this year but couldn't make it work. In Atlanta I talked with the NI guys and they said the only way to make force feedback work was to create your own dashboard where you can insert direct-x commands to send feedback signals to the controllers.
Have you tried this? Many teams could this feature as useful as--if not better than--video. |
Re: Customizable Dashboard
That's a really cool idea. I'll play around with DirectInput and add it as a control.
Right now I'm drowning in AP Calculus prep (the test is next Wednesday), so I haven't done a lot of work on the dashboard. I'll pick it back up soon after. |
| All times are GMT -5. The time now is 21:23. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi