![]() |
Dashboard
1 Attachment(s)
Heres a screenshot of our dashboard for this year. It has speeds for the encoders and the general position of the robot as seen by the IrSensors
|
Re: Dashboard
looks pretty good :)
|
Re: Dashboard
awsome lookin. is that the demo dashboard or the full version?
edit: i went to if site. there is no full verion dashboard. how did you get it to look all cool like that?? did you write it in VB or is there a button im missing? i wana be cool like you! :ahh: |
Re: Dashboard
I wish I had time to do stuff like that. :cry: ;) Very nice. Did your robot actually have a map and store its position on it? We had thought about doing that this year, but decided it would take to long and instead would do it over the summer and use it next year.
|
Re: Dashboard
I coded it in VB. The robot stores its position as a double, then I convert it into a char (255x255 resolution) and send it via 2 user bytes. The speed is sent via 4 user bytes and 2 limit variables (not used otherwise by us). Designing the dash actualy took the longest, the parsing code was pretty easy.
|
Re: Dashboard
I'm not meaning to be a thorn in the side but I have a question for you. You posted a screen shot of the program but you did not post any code for the program. Why? I mean, you did a great job coding it, why not share it? I would like to look at the code for a dashboard to see how it works. I think it would be really cool. Yeah, I'm one of those crazy open source hippies. I can't force you to share the code but I wish you would considering FIRST robotics is an educational expierience and education has typically been a place for open source. Again, I'm not meaning to be a thorn in your side and if you don't agree with me then just take what I said and ignore it.
|
Re: Dashboard
That's pretty cool looking.
One thing I might suggest? Last year, me and my friend (SuperDan) created a dashboard "suite" of programs last year. It used a C++ backend to read/parse data, and a Flash MX frontend to display data. This allowed us to make a pretty crazy frontend, and Dan actually made a small model of the robot, which made it very easy to see what was going on without reading. Keep in mind, you don't want to be reading absolute values so much as seeing relative values. It's nice to know you're going exactly 10 ft/sec, but I find it more useful to see a bar that gets higher the close I get to full speed. Or see an arm that moves on the computer screen as the arm on our robot moves instead of a "LED" lighting up. I like the way you did your output, it's very simple and it's following IFI's dashboard so people should be somewhat familiar with it. But I think that depending on how you interpret data, it can be much improved upon. Just remember, you only have 2 minutes to play, most of the time you'll be looking at the field, not a laptop, so you want those few seconds spent looking at the laptop to give you as much data as possible, sometimes numbers take too long to read. |
Re: Dashboard
Quote:
|
Re: Dashboard
Quote:
|
Re: Dashboard
One way to do it would be to have the C++ App write to a file and have the Flash App read the file.
|
Re: Dashboard
yeah but thats kinda skech... think refresh rate at least 15 times a second. i would think VB would be best here, but c++ is a lot more direct in accessing ports.
|
Re: Dashboard
Can you explain a little about how you keep an accurate position of your robot during a match? Is it based on speed and direction, and if so how do you account for slipping wheels or other irregularities?
We thought about designing a positioning system briefly at 254 but decided against it for the complexity and predicted inaccuracy (with proximity sensors on gear teeth and possibe optical encoders on the motors). What it boils down to: can you keep an accurate position even when bumping into things, dueling with other bots, or climbing the stairs, where your wheels will be slipping? Thanks, ~Alex Baxter Programming, Team 254 |
Re: Dashboard
theoreticly you can accuretly track postion with an acceleromitor and a compas. everything else just adds accurcy.
|
Re: Dashboard
We get a position, though not all that accurate, within a few feet, with a combination of ir sensors and encoders.
And Nick, I was going to finish cleaning up the code and make a white paper with an example since noone else had. EDIT: let me explain this alitle better, The way we get position is to use the encoders for distance and the sensors for direction. The encoders do a horrible job figureing out where the robot is pointing, but their good for getting distance. The encoders are great for getting what direction the robot is pointing, but horrible at getting distance. They also try to detect when the other is not working. For instance, if the encoders show the robot is moving, but the trackers show that its stopped, the robot will first deturmine if there is somthing wrong with the trackers by giving up its current lock and relocking it on the beacon, if its the same, it can assume the encoders are the problem, and will ignore them untill the trackers show the robot has moved. |
Re: Dashboard
how bout some VB example code. please?
ooor flash & c++. PRETTY PLEASE? lol white paper would be most exclent. |
Re: Dashboard
yeah i would also find that very helpful. I am not going to make a dashboard program this year, but it would be nice if i could figure out how to code this all in vb.
|
Re: Dashboard
Thanks for doing that then. I was hoping someone would release something on making daskboards.
As for the code being specific to your robot, I knew that it was and by asking you to give code out I wasn't aiming to just plug it in and make it work for my team's bot. I was merely trying to look at code to see how I could perhaps do similar stuff for my team's bot. I like the idea of releasing a white paper and I hope you do, it would be very beneficial and much appreciated. |
Re: Dashboard
We found our positioning system to be accurate enough to be benefitial. Sure, there are some problems due to wheel slippage and climbing the center structure, but all in all -- it works well.
|
Re: Dashboard
Quote:
I'm more of an extremist. |
Re: Dashboard
Quote:
|
Re: Dashboard
Quote:
The one problem with this method that I ran into was when trying to multiplex data. I was unable to create any useful data from multiplexed bits last year, although I'm not sure why. I've been working on the revamping the program for this year, and I think I'm having similar problems, although I'm not entirely sure. I need some more time to work with it. Another solution is to use ports. I don't know how this works, but a computer scientist who helps us mentioned it as another way, but I never tried using them. C++ has many classes that let you use ports very easily, and apparently Flash MX has stuff to read data on certain ports, but I've never used this. If you have any questions, I can send you the code from last year, but it's not polished or neat, but it shows how we got the job done. The Flash MX frontend I can't give you, I'm afraid, as it would not help you. It was written specifically for our robot, and I'm not sure how much use it'd be for you. Talk to SuperDan if you have any questions on the Flash MX part though, that was his job. |
Re: Dashboard
does anyone know anything about accesing ram in flash? i know you can do it in C++... so like instead of writing to a file which has got to be bad; i dont know why its just badl; you just share a couple of bytes in ram. the flash could call the c++.
:confused: :confused: trying to thing of a way to get around the file I/O |
Re: Dashboard
I would apreciate just a zip of the version you showed us and us adapting it. No sense in reinventing the wheel. Of course, I wish that IFI would just relaease source code for both IFI_Loader and Dashboard, since they're both VB.
|
Re: Dashboard
how exactly does the dashboard port work anyway?
the data sheet from first says some thing about interlaced data frames how in vb would you read the data? |
Re: Dashboard
I uploaded a blank VB template application and our customized 2004 dashboard in the whitepapers section. The blank app has all of the backend plumbing set up to read and process the data from the dashboard port. All you need to do is add GUI elements to display the stuff you want to see, and edit ShowDataFrame1(), ShowDataFrame2(), and ShowDataFrame3(). Those three subs are called when a frame of that type is ready. If you do anything really cool show me at Richmond or Annapolis.
|
Re: Dashboard
wow man that is a really nice looking interface
i wish i could do some thing that nice by the way how do you get the way points from the program in to the robot? thanks for the help |
Re: Dashboard
Use the MSCOMM control set to Binary mode (as opposed to text). Unfortunately, the only way to have a developer's liscense for it is to get an Enteprise Edition, which may not be accessable.
|
Re: Dashboard
Quote:
|
Re: Dashboard
Quote:
|
Re: Dashboard
Flash can't do things like that. It is for animations and web sites, not actual programs.
|
Re: Dashboard
Quote:
|
Re: Dashboard
Quote:
|
Re: Dashboard
its the princaple of the thing. at least use scrachpad ram or something. it works, but that doesnt meen its the right way to do it.
Quote:
|
Re: Dashboard
I wrote a small dashboard interface program in QBASIC, which read the data from the serial port, mangled (processed) it, and stored the output in text files.
Then I wrote a program in Java, which read those text files and displayed the data on screen in a fancily-formatted window. I used the AWT for graphics, 'cause I don't know how to program Swing yet. Btw, to improve the speed of text-files for communication, I created a RAM disk. The output files are outputted from BASIC into the RAM disk. I find the speed to be no problem. |
Re: Dashboard
Quote:
but anyway have an old OI and RC (yes i know its diffrent but the princaple is the same) and i have a program in c++ that gets the data realy well. there is an obscure class that lets me write to ram, but getting it from anythign else was a problem. i may have it use a ramdisk if i cant figure out anything else before richmond. btw if you wana post your QBASIC it may help some people that dont know the language and need somewhere to start. |
Re: Dashboard
Quote:
|
Re: Dashboard
Quote:
I've been looking into how easy it'd be to change the dashboard from file I/O to sockets (which is the right term for what I want, I think). I think it should be easy, but I'm still looking for a nice class to do all the hard socket work for me :p. |
Re: Dashboard
Did you create a ramdisk under Windows or Linux?
I know how to do it under Linux (well, not exactly, but I know where to look to find out), but I have no idea how to do it under Windows. And for the dashboard program I'm using Windows to appease the rest of my team :p. |
Re: Dashboard
My Ramdisk is running under Windows.
The easiest way (for Windows 95/98) is to place a line for RAMDRIVE.SYS in your config.sys files. PM me if you need help doing what I am talking about. Under Windows NT, 2000, and XP, you must download a driver from Microsoft. The driver is a sample driver, demo-ing NT-based drivers. It is neither stable nor debugged, but it works for what I am doing. |
Re: Dashboard
Incase anyone was wondering, Im currently porting the reciever code into a visual basic control (ocx) so anyone can just slap it into their own dashboard nice and easy, with this you could make a dashboard interface and a skilled coder could have it up and running in an hour or so. Im still testing and optomizing it and I would like to have a first release by next week. I will release pre-compiled binarys, the source for them, as well as an example app that shows how it would be used. It will differ from other dashbord control moduals in that I WILL be releasing the source and I WILL be parsing all of the data frames allowing for every single bit of usable data to be utilized.
|
Re: Dashboard
Quote:
|
Re: Dashboard
Quote:
|
Re: Dashboard
Thanks a lot. That will be a lot of fun to play around with, not to mention a great time saver. :):):):)
|
Re: Dashboard
Is there a way to tell (in code) what year's dashboard stuff your getting? Especially post-season, I'm sure we're going to be playing with both (may be in the same thing!), so 1 program would be nice.
|
Re: Dashboard
Quote:
|
Re: Dashboard
I know, thtat's why I asked. The port is the same, packet is different. So if there are any 'signature' signs, knowing one from the other prevents stuff like translating bytes.
|
Re: Dashboard
Update: The last two weeks were very, very bad weeks. The week I announced this, my laptop that I made this on just died. Plus I was very sick. First it was the motherboard, I got a new one in a day or so. Then the hard drive died, causing me to loose the code that I had done... I still dont have the new hard drive in yet. The warrentee center didnt even get in my old one till last thurdsday and I dont know when Im getting my new one back... The good news, I recoded the whole thing yesterday and Im fairly confident that its done and working. I wont get to test it till tomarrow night, so hold on a few more days. The example is done and working so ... blah. Im not making any promices, but I will probably release it wensday or thursday.
|
Re: Dashboard
Alright, The test last night went very well. Im going to add it the the whitepapers later tonight or in the morning
|
Re: Dashboard
Where can I get the source for your program, it looks awsome. If you don't want to give away the source then can you just explain how to recieve data from a serial port.
|
Re: Dashboard
Im just about to put it in the white papers. Its a visual basic control that you can just slap into your own dashboard. I included the source and an example with it so hold on a few more minutes.
|
Re: Dashboard
Quote:
I'm hopping for properties for each of the items, plus an event when one changes. |
Re: Dashboard
Quote:
After looking at that w/VBA, I'm thinking "Whose going to use that?" I'm glad some one did it, but programic interface needs work. Not to mention: No prop pages (like you need it), no com stuff (properties), Bad graphics (not necessary), Bad naming, no toolbox icon, no properties. I'll e-mail you a revised version when I get time. :yikes: |
Re: Dashboard
Quote:
|
Re: Dashboard
Seriously man. That is what open source is all about, you give the other guy credit for writing it first and then you improve it. You don't yell at the guy for writing the program and tell him how lame he is just because you think you can do it better. For one, it's not "gracious professionalism" and for two it just makes you look like an ungreatful arse. I hate to say it man but that crap is irritating, it is the sort of stuff that I see happening with Microsoft employees who have to patch each others code. This sort of stuff doesn't need patching, it needs to be reworked and tweaked to get maximum performance which patching doesn't provide. Many thanks to the guy or gal who gave his code for the dashboard, I think it's great to see some FIRST robotics code being opened.
|
Re: Dashboard
Quote:
Quote:
But I must admit, some of the ways he implemented things was difficult. Several issues I fixed in an hour or 2. I'm glad someone did it, and maybe I should think of it as polishing it up. I suppose I had to do some work. |
Re: Dashboard
can I atleast see some of the mods you did to it...
|
Re: Dashboard
1 Attachment(s)
Quote:
In addition to graphics (I reversed-engineered IFI's Icon and made a 48x48 for it), I renmed the controls, gave it a more descriptive image, and adjust the MSComm to work on IFI's settings and used binary made instead of string (It outputs an array of bytes). The code has been cleaded up, and I actually put in properties for Port and PortOpen. All the info is retrieved via functions, and events of been consolodated. The defult app, however, doesn't work so well (oops...), but that was second priority. Some prop pages are needed, but for the most part it's as good as any of Microsoft's. Here's the new project group: |
Re: Dashboard
Quote:
|
Re: Dashboard
Quote:
it's just that the MSCOMM control has to convert it to a string and you convert it back to bytes (in vb, an array of bytes and a string are not the same thing), plus there is a possibility that the letters are confused for the unicode versions. Wouldn't want that. Quote:
Quote:
Quote:
Quote:
|
Re: Dashboard
Quote:
|
Re: Dashboard
Quote:
|
| All times are GMT -5. The time now is 22:27. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi