Basic roborealm tutorials?

Having recently read a number of posts with regard to the RoboRealm software, I decided to have a look at it. I must say that I’m impressed, and can see how this would make vision processing a lot simpler.

I am, however, finding myself a bit overwhelmed by all of the options, filters, features, and what have you. I’ve learned a lot just by plonking around with the options, building processing chains, reading some online tutorials, and reverse-engineering a bit of code.

With the RoboRealm folks working on adding SSC-32 support for the software, I would very much like to see something for the rank beginners, to introduce the program, and get up to speed on using the software effectively.

What would be extra-cool would be a “Using RoboRealm with the SSC-32” tutorial file that walked the reader through creating a chain that would, for example take the image from a camera mounted on top of a 2-servo pan/tilt platform connected to an SSC-32 via a COM port, analyze it, and produce the proper control commands to allow it to track, say, a blue target object with the pan/tilt rig, to keep the target in the center of the field of view.

I found a feature that does something similar with a robot following a green ball around, but it was more of a “look what you can do” sort of thing, than something that broke down the functions that it was performing to achieve the desired results, and why they were used, as opposed to other similar modules.

For all I know, there may well already be such a tutorial out there, but if so, I’ve missed it.

I am experiencing that same overwhelmed feeling myself right now with RoboRealm. Have you been to check out the online RoboRealm Tutorials yet?

This would be a real nice starter tutorial. It looks like basic color tracking would not be too difficult with RoboRealm. I am betting that controlling the SSC-32 from RoboRealm will not be that difficult, if what I am seeing for the SSC is any indication. I bet they do something very similar for the SSC-32, but just with more servo sliders and such.

8-Dale

Yes, I’ve had a look at the tutorial links that they provide on the website - looks very interesting. Unfortunately, a lot of them seem to come down to, “…and here’s the processing pipeline that we used to do this,” without any explanation as to why it was assembled in the order it was, or why one module was used rather than another. It’s more like show-and-tell and an invitation to reverse-engineer their project than an actual tutorial; you might be able to replicate their results, but you still don’t know how it works or why.

A basic project or series of incremental tutorials that even briefly explained what was going on would be quite helpful in grasping the concepts involed, and actually being able to use the knowledge to build something new, rather than just copying existing stuff.

It’s the difference between actually being able to design something, and “cargo-cult engineering”.

seamus…

I’ve been looking at doing exactly what you are talking about, Use a color filter, find a red ball on screen and use their Centre of Gravity thingy to tell me the co-ordinates.

All well and good and fairly easy… but I thought so what use is that to me until I found the bit on the API examples.

If you are a programmer of any level there is a stunning example written in Visual Basic 6 that shows how some very simple code can be used to drive roborealm externally but more importantly fetch back the co-ordinates being displayed on screen.

If you are not a programmer then what roborealm and Laureatus are doing at present should help out.

As to tutorials, ask them, I emailed them over the weekend and they responded within a few hours (weekend?) and were very keen to help where they could.

As RobotDude has provided them with what they need to get this up and running, I’m sure they would welcome some insight into how we intend to use it…

I think I just made a 3 segment chain that isolates skin tones. :slight_smile: It cuts everything out but the skin and colors that red. That should make it pretty easy for a robot to see and track a person.

8-Dale

Just tinkering around with it on the notebook, I’ve been able to do some simple filtering, and even managed to do something similar to the flesh-tone isolation, but I was unable to figure out how to get it to ignore the lighting patterns on the wall in the background, which it was also seeing as flesh, and the noise in the image was playing havoc with anything that I tried to do so far as shape isolation was concerned.

Could I ask for a copy or description of the processing chain that you used to achieve this effect, please? I might be able to make some sense of it, and figure out what you did differently.

Just been playing…

RGB Filter set to filter out a bright red foam ball

Centre Of Gravity set on ball

If statement If COG_X greater than 320
Set PULSE = 2000
endif

If statement If COG_X less than 320
Set PULSE = 1000
endif

Added a serial and set up the comm port

Then sent

#0P[PULSE]T1000

and robot moved head very rudimentary to try and keep ball in view.

Such fun

Here is the red-skin.robo file I made:

<head><version>1.7.5.0</version></head> <Contrast> <amount>-44</amount> </Contrast> <Color_Filter> <colors>#FF0000 </colors> <min_distance>80</min_distance> <min_value>100</min_value> </Color_Filter> <Normalize_Color/>
I have not fiddled with it any more, so there may be more that can be done.

8-Dale

I just added the COG module, and it looks like it is tracking my face perfectly so far. :smiley:

8-Dale

A bit of VB6 code.

The image below shows some filters set up to track a red foam ball round the screen. This info I got from their coloured ball tracking tutorial.

The small form titled form1 is a small VB6 application that is accessing roborealm via their API. The variables it is displaying are being polled every 200ms .

The Ball in view label at the bottom simply changes from Left to Middle to Right as the ball is moved left and right.

All it needs now is to open a comm port and send #nP commands to move the head to try and keep the ball central

http://img517.imageshack.us/img517/9092/image2ex3.jpg

thats what i osted in the general programming forum,i wanted to know how to do that :frowning:

This is not fair! I am a LINUX person, not a Windows person! :slight_smile: You are making me want to install VB and C# Express now. I just have to figure out why they insist on being installed on drive C: instead of E: where I want them, and I did install the .NET 2.0 SDK and such on drive E:. Maybe it is the .NET 1.x and/or .NET 3.x that is messing this up - I’ll have to see where they installed to.

I must find out how to communicate with RoboRealm from Linux… I’ll have to do this on Quark, since Intrepid runs Windows XP.

<Wanders off, mumbling something about Python, TCP/IP and sockets…>

8-Dale

That app is in VB6 not .NET, I hit problems in .NET straight away as it expects video etc in DirectX. Roborealm is using Video For Windows which is for one why it runs with pretty much any camera and for two is not properly supported on Linux…

I wasn’t talking about programming this in .NET. Oh now, I don’t want to even think about that. I meant that I should be able to communicate from Linux, using any programming language, with Windows XP and RoboRealm using RoboRealm’s socket server.

8-Dale

gotcha, yep it should and I think there was a tutorial on that. The API isnt distributed though so you cant get at that.

All I need is for Quark (Linux) to be able to open a socket and connect with Intrepid (Windows XP and RoboRealm). :smiley:

8-Dale

A short clip for you…

I am just movint the ball across the table, the VB code and roborealm are moving the bots head to follow the ball…

youtube.com/watch?v=RFQU1QrZEPA

Good job! It tracks perfectly! :smiley:

RoboRealm tracks my head at up to 3 1/2 feet away from the camera now. :smiley: With this, I should be able to have WALTER track people. :slight_smile:

I am looking forward to being able to build the top arm for WALTER, which will probably be 3DOF and have a sensor mount like the sensor mount I have designed for the Bipod and Mega Scout.

Now I will definitely have to mount a wireless camera on WALTER and add a Bluetooth link. I already have a Bluetooth USB dongle for my PC that seems to be usable for both Linux and Windows XP.

8-Dale

You worry me linuxguy…

It sounds like you want to build a robot stalker. Are you using infra-red for head detection and distance sensing so you know when you are close enough to strike? :laughing: :laughing: