Team #1648's Robot Monitoring Program

Hey everybody,

I just finished the development on a little Robot Monitoring Program in VB.Net for our Robot and I’m kinda courious what you guys think about it and if anybody would maybe like to use it for their team.

What it basically does is interpreting Commands send with printf() to your Computer and showing the Content of Variables and so called Viewers which are taking the values of variables you select and showing them graphically in a little Box on the Screen.

For example if you got the Variables pwm07 and pwm08 you want to use these in the Program you just add this little Line somewhere in your Code to see it:


printf("snd Pwm_Out7=%02x Pwm_Out8=%02x
", pwm07, pwm08);

If you don’t want to send the Variable as a Hex String for some Reasons (like Performance, Signed Types, Strings, …) you can also use these notations:


printf("snd SignedInt:%d
", mySignedInt); // For Sending a Decimal Number
prinft("snd MyString$Hello_i_am_a_String
");

The other thing thats kinda nice is that the Viewer Windows for the Program a easily expandable and not limited to a set amount of varibales (well maybe to some point with performance but that varies). So theoretically you could make a Viewer that simulates an entire Robot + Playingfield, but since this thing would need tons of variables thats might getting a little harsh on performance : ).

But whatever I added some Screenshots to give you guys a little better Idea about what I’m talking:

http://www.werocktheusa.com/gw/mainscreen.gif
**This is the Main Window, to the Right you see 2 boxes. One shows all avaible variables and one shows the ones your watching. Underneath it you see all Input from the Controler (besides the snd snd’s which are hidden).
**

http://www.werocktheusa.com/gw/selectviewer.gif
This shows the Viewer Selection Window where you can choose your Viewer and set up the Variables you want it to use.

http://www.werocktheusa.com/gw/viewerwindow.gif
This is another Shot of the Main Windows, but this time filled with Viewers. One is Watching the Pwm Outputs with a little Wheel Screen, one show the signal of an connected IR Sensor and the third one could be used to Display a Joystick Input (here it’s just using the PWM’s since I didn’t had a Joystick connected)

So if anybody is interested, has questions or anything like that, just post here : ). And btw. I believe it’s also possible to write these Viewer Classes in C# for those of you who don’t like VB.Net : ) …

Bye

Felix

hmm can’t belive that nobody seems to be interested in this …?

No to shabby!! how many people did oyu have working on that? I find it pretty impressive for a rookie team.

This seems vary cool will you be releasing this for download?

Hey,

Thank you guys, I was really afraid that I wasted my time after nobody answerd to the thread ^^.

I was working on the Program for ~17-23 hours and one of the main intends is to publish it for the Community and include the Source Code so that everybody can develop and share their Viewer Windows which each other.
Right now I’m just testing it on different System Configurations to make sure nobody has problems running it and I’ll probably upload it to my webspace at the begining of next week.

So if anybody has some Idea’s what I should include into it till then just let me know and I’ll see what I can do : ) …

Bye

Felix

I had an idea while looking at your screen shots. Have you thought of how to incorporate the CMUcam2’s output in the the program. Maybe a spacial block that would show the object that the camera sees in an x,y plane that would be very helpful.

Yeah I actually thought about this, but I didn’t play around with the Camera yet , therefore I couldn’t add that to the viewer till now.

If you could tell me how much Variables with what Values I’ll get from the Camera and how you want it to look it’ll be about 5 min for me to put that in : ) …

nice programming job. i bet this will be useful to many teams.

i like the idea of posting the source code. OPEN SOURCE RULES!!! :smiley:

Dude that is awesome like CyberWolf_22 said when will it be available for d/l?

Probably around Monday - Wednesday.

I may want to add something about performance: I’m running and Developing this thing on a Pentium 3 Laptop with 1.2 Ghz and 768 MB Ram. During my test’s I didn’t had to much problems with performance but I guess not everybody has the same Resources (not that mine are very fenzy but still).
Whatsoever, in order to make sure the Data on your Screen is Synchronized with the Program, it is only Interpreting Input if your PC is fast enough. That means if your Computer is to slow the program is starting to only interpret every 2nd, 3rd, usw. InputLine uintil it the Speed meets your Systems performance. The advantage of this is that the when the Screen Updates you can be sure the Information you see is Sync, but the disadvantage is your update frequenzy is going to sink with lower resources.
But there also is a cmd called “snda” which you can use if you want to make sure this InputLine never gets skipped for some reasons (because you might only send it at some events in your program and not in your main loop) so theoretically everybody should be able to use it : ).

Ok stay tuned, I’m just testing the thing on other System’s and Clean Up my Source Code a little bit and add some comments here and there …

Wow dude… that looks sweet. I was actually thinking of writing something like that up as well but I’ve been so busy looking up and planning the electrical that I never had a chance. I’ll probably direct someone on our team to this thread so that they maybe use it whenever you release it to the public. Great job and keep up the good work!

Thanks : ). Yeah I mean there is nothing really difficult to this besides that it takes a good amount of time doing it. The only challenge was working witht the Serial Port in VB.Net since the MSCom Control from VB6 is not avaible in there any more … First I was trieng to use a class that was supposed to read the Com Ports but at a certain speed it started to loose packages and producing garbage. So finally I ended up using a refurbished Version of the VB6 Control that works in VB.Net … o_O ^^