I’m looking to make an interactive program to control the forward/backward movement of a “rover type” design that I have built. AS well as some controls for a 4DOF arm and some motorized on/off devices.
I’m well into my BasicX learning curve now but I don’t think that will help me here. If I’m looking for a GUI to control my rover via an SSC-32, where would I start?
I’m thinking I might have to have someone make this for me. I’m incorporated and bonded, and will pay well for an individual with the ability to make the program. Credit will be given where it is due of course.
This is very similar to what I wanted but with some changes to color, buttons, etc. But I would like it to include the video feed from the NTFS_M capture device. There are 4 Omni cams run into an on board quad processor to allow 4way split screen, 2 way split with panning, full screen on any of the 4 channels and dual picture in picture mode. The main feed is a single screen in NTFS_M format. http://i138.photobucket.com/albums/q253/gfisher2002/robots/cc.jpg
This guy built 2 versions of his rover and I’m guessing also made the GUI interface for it. He gives no mention of the program in his posts and I can’t find any links that aren’t dead to any information about his robot or how to contact him. If anyone knows who this is, let me know so I can talk to him.
My rover will be tethered to the laptop so I can run a program directly from the PC to control it.
GUI programming looks way beyond my current abilities so any help would be appreciated.
Realistically this is beyond anything I’ve ever attempted, but from dealing with other groups who professionally design software I know some of the parts of a display like this are not difficult to come by. The video window(s) for example are likely some sort of Direct-something object that handles using a DirectX viewport. You might be able to find sample code using DirectShow in the Visual C++ Net SDK-type or DirectX resources. A lot of the other controls could certainly be replaced by simple bargraph objects that you can drag-drop into your code. There are undoubtedly canned things like that around or you might be able to buy a library of them if you can find one with a specific appearance that operates the way you like. The largest chunk of original software will probably be writing an object to deal with intefacing the SSC-32 and I/O control. That is something an individual familliar with writing embedded industrial control apps might not find to be especially challenging, depending on the individual. We recently built a system where the software developers used a C# wrapper around some visual C primatives that in turn linked a vendor supplied .dll to access some dedicated hardware on a PC platform. Then their top level program (which uses DirectShow video to display processed streaming video) used that C# module at the higher level. All this is beyond me as I am just a simple hardware guy who knows some Visual C/C++ 6, but it seems not entirely different from the kind of thing you are talking about so maybe it’ll help get you started.
Why don’t you make your control setup web based? That way you could control your robot from most anywhere on the internet and the gui would be a web page which would be fairly easy to make.
That sounds good. If Im reading this right, that means I could be 5000 miles away and be able to control my robot via a pc connected to the internet? Excellent idea! And if he adds a video window a wirless pc camera could also be viewed.
Below is a simple setup to control two servos. You could make a control panel web page that has clickable buttons and such if you need a conrtol panel look.
I don’t really want it to be web based since being online won’t be an option in most areas it will be. And how would I link the HTML buttons to SSC-32 commands?
I’m thinking for the SSC-32 control via a GUI, the best person to talk to would be Laurent, who made the SEQ program. For controls, that would suffice. Really the rover movement and arm would be controlled by a control station with buttons and toggle pots wired to the appropriate PS2 connections on the paddle board. So it would be PS2 controlled. …wait…that’s right.
I guess I don’t need buttons to send commands to the SSC-32 because I want to use a joystick/ps2 setup for arm and movement. So really, all I need is a program I can run that appears like the one above with a video feed, distance read-out, Voltage level, speed, and the ability to take snap shots and record. So really just a less fancy version of RoboRealm. Sort of. And I could run the SEQ with a PS2 in the background.
Can you run the SSC-32 with a PS2 controller or UBS controller plugged into the laptop? Or will I have to use my BotBoard?
And can anyone help with the video display thing?
And wowy, if you can make that program, I will pay you for it.
Well, I understood the concept of what you were saying, just some of the programming terminology feels like something I wouldn’t understand unless I knew what I was doing, which I don’t.
I’ve never indulged into DirectX or OpenGL engines or programs. But what you said does make sense.
You don’t have to be connected to the internet to be “on line”. Ever since win 95 there is a tcp/ip stack running in the back ground when you boot up. I run the apache web server on my laptop so a web based setup runs on it no matter where the laptop is. Below are some “html image map” google hits showing the coding for clickable image maps. With a web based gui you really only need apache (free) for the cgi control, the image you want for your gui, and notepad to do the page and cgi coding. If you DIY, you save $$$ and time if you later want to make changes to the setup. I made a joystick/game pad controls for my servos using a free program called just basic (bottom). This is for a different type of servo controller, but should be easily tweeked for use with the ssc-32.
zoomkat, I can’t thank you enough. I thought everyone was refering to “online” stuff as a solution to connect to the SSC-32. I guess not. HTML is something I can definitely do. I’ve very good with that and have done image mapping before. I never even thought of that.
Then I can insert an ActiveX or similair video capture into the page and link it to my capture card from the quad processor. Then the video will be displayed on page with the image map. Hmmmm, this is sounding pretty easy this way.
So I can insert the video capture, add buttons and screen for clickable backdrop, but I need to display my readings for voltage and such. Hmmmm, I’m liking this so far.
DirectX has its own SDK which you download and install after wisual studio is installed. The SDK has header files which you include and libraries you link to let you access the DirectX stuff already on your computer, the same stuff used by everything from video games to media player. Many video capture devices will have their own SDK (sometimes free, sometimes not) with headers and libraries and most importantly sample code that shows you how to access their specific features like video mux or sending configuration information to the camera (all of which entirely depends on the camera/card you have chosen.) Usually the whole point of the sample apps is to illustrate their product so they are not difficult to make run. At a hobby level once you understand the basics of how the samples work you can use them as a starting place to a more involved application and add other controls and displays to the program. On a professional design you would likely approach it more from a specification driven aspect and that would define how you started the coding.
So to get an idea of what I’m talking about, on the project I mentioned earlier they used a very basic $100USD analog video capture card called Picolo (mfg. Euresys, or something close to that) and what I remember is when doing the initial hardware setup on the prototypes there was a whole lot of development type stuff you could install along with the drivers, everything from delphi to .net to visual basic. Of course I didn’t use any of it so I can’t comment on how good or bad it was, it’s just an example of what you might be able to expect with some cards. One thing I did notice, with their drivers installed we were able to select their video stream along with some others in other applications like moviemaker. The point being they were presenting some generic API that anybody can use, presumably that’s the DirectShow bit. It is possible the samples in the DirectX SDK alone might bridge the whole getting started gap for you.
If you are the type who gets intrigued by neat programming stuff then it might be worthwhile checking out the whole DirectX thing. If the guts of how software works gives you a migraine, well, maybe you should find a friend who likes neat programming stuff.
For video, you could use the free webcam2000 application. It is made for supplying single frames, but using javascript or a java applet, the video streams adequately. Below is a page with some setup info, and the bottom links show i in action.
Eddie and Zoomkat, thanks alot for taking the time to post information and links. This is really awesome. I’m goign to play around with some DirectX stuff and some Image mapping in HTML, see which is going to be easiest for me to work with. I’ll post the result when I make some progress.
Ok, here is what I have so far. I used DreamWeaver and Unlead Photo Impact to make an interactive image map XHTML. I’m trying to get a Streaming link to my Video Capture to work but the drivers for the NTFS_M capture is giving me compatibility problems with my streaming link.
I think I can get it working, just need more time.
Here’s a screen shot so far. I have no idea how I will link most of this stuff up but it’s just an idea of what I would like to have, not what I think I can do ( I hope it ends up something this nice).