Author Topic: Infrared identification  (Read 2672 times)

0 Members and 1 Guest are viewing this topic.

Offline AxilleasTopic starter

  • Jr. Member
  • **
  • Posts: 9
  • Helpful? 0
Infrared identification
« on: July 19, 2012, 07:25:24 AM »
Hey guys,

I put leds on top of my robots and then I identify each robot by camera according to the colors. But it proved to be difficult to use when the light in room changes.
Is there a way to do this in infrared version? And would it help?

I mean is there a way to distinguish at least four different infrared leds by (infrared) camera?

Thanks

Offline Soeren

  • Supreme Robot
  • *****
  • Posts: 4,672
  • Helpful? 227
  • Mind Reading: 0.0
Re: Infrared identification
« Reply #1 on: July 19, 2012, 08:58:26 AM »
Hi,

I mean is there a way to distinguish at least four different infrared leds by (infrared) camera?
If you get 830nm (best for camera) LED's and  place them in a unique pattern on each, it may work.

For an alternative, you could consider a longer wavelength (like 910..950nm) wide angle or a cluster, modulate them in unique patterns and detect them via an IR detector rather than a camera.
Regards,
Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?
Please remember...
Engineering is based on numbers - not adjectives

Offline AxilleasTopic starter

  • Jr. Member
  • **
  • Posts: 9
  • Helpful? 0
Re: Infrared identification
« Reply #2 on: July 19, 2012, 09:39:03 AM »
Quote
and detect them via an IR detector rather than a camera.
I already have video recognition software. And the leds are used to find robot's position in a field. I don't believe that this is possible with detector or is it?

Btw. currently camera does not have to be directly on top of the filed. It can be also on the side of field (under some reasonable angle).

Offline Gertlex

  • Supreme Robot
  • *****
  • Posts: 763
  • Helpful? 24
  • Nuclear Engineer · Roboticist
    • Index of Oddities
Re: Infrared identification
« Reply #3 on: July 19, 2012, 11:18:08 AM »
To throw a totally different way of doing this out there, you could use QR codes on each robot, instead of LEDs.  I've seen this done successfully by others: http://www.eecs.umich.edu/eecs/about/articles/2010/MAGIC_finalists.html

I'd imagine this has the advantage of depending solely on contrast rather than actual colors.
I

Offline AxilleasTopic starter

  • Jr. Member
  • **
  • Posts: 9
  • Helpful? 0
Re: Infrared identification
« Reply #4 on: July 19, 2012, 01:08:33 PM »
Thanks Gertlex,

looks really good. But I have one problem with that. It is supposed to work also in dark. That is why we used leds. I wonder if there is a way to make QR visible when it is dark.
« Last Edit: July 19, 2012, 01:13:51 PM by Axilleas »

Offline Gertlex

  • Supreme Robot
  • *****
  • Posts: 763
  • Helpful? 24
  • Nuclear Engineer · Roboticist
    • Index of Oddities
Re: Infrared identification
« Reply #5 on: July 19, 2012, 02:36:22 PM »
Ooh, ya. That'd make it challenging.  There's probably a way, but complicated and finicky...
I

Offline AxilleasTopic starter

  • Jr. Member
  • **
  • Posts: 9
  • Helpful? 0
Re: Infrared identification
« Reply #6 on: July 19, 2012, 04:49:44 PM »
But if somebody know a way how to do it with infra leds (or other type of led) I would be very grateful.

Btw. on top of every robot there are three leds in a row. In same distance on each robot. So detection is not done by positioning leds.

Offline spooneythegoon

  • Jr. Member
  • **
  • Posts: 10
  • Helpful? 0
Re: Infrared identification
« Reply #7 on: July 20, 2012, 08:06:33 AM »
Ooh, ya. That'd make it challenging.  There's probably a way, but complicated and finicky...

Maybe QR codes printed with a phosphorescent pigment would work?

Offline Soeren

  • Supreme Robot
  • *****
  • Posts: 4,672
  • Helpful? 227
  • Mind Reading: 0.0
Re: Infrared identification
« Reply #8 on: July 20, 2012, 06:09:50 PM »
Hi,

But if somebody know a way how to do it with infra leds (or other type of led) I would be very grateful.

Btw. on top of every robot there are three leds in a row. In same distance on each robot. So detection is not done by positioning leds.
I don't know what your software is capable of, of course, but assuming it can just distinguish between two different magnitudes/levels of IR, you could use a dim LED as "0" and a bright LED as "1", giving you up to 8 combinations with 3 LEDs (if you can detect what's front and back, only 6 unique combinations if you can't).

If that's not enough and if your software's up for it, you could use ternary ("trinary") numbers (like the Russian computers did during the "Cold War" to speed things up considerably), giving 3 levels on each LED (dim, medium and bright, representing "-1", "0" and "1"), giving you 27 combinations if direction can be established (and 18 unique combinations if not).

How many different vehicles do you need to distinguish?
Regards,
Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?
Please remember...
Engineering is based on numbers - not adjectives

Offline AxilleasTopic starter

  • Jr. Member
  • **
  • Posts: 9
  • Helpful? 0
Re: Infrared identification
« Reply #9 on: July 21, 2012, 12:07:02 PM »
Thx Soeren, that is actually what I wanted to know. So it is possible Thanks very much.

But  thanks to Gertlex I realized one more way to do it in IR (or UV). I just need to use IR/Uv paint to create the QR code and it should work. Then I have more than enough combination and detecting QR via image recognition is more reliable than using led (I think).

Thx guys

Offline Soeren

  • Supreme Robot
  • *****
  • Posts: 4,672
  • Helpful? 227
  • Mind Reading: 0.0
Re: Infrared identification
« Reply #10 on: July 22, 2012, 03:10:33 PM »
Hi,

I just need to use IR/Uv paint to create the QR code and it should work. Then I have more than enough combination and detecting QR via image recognition is more reliable than using led (I think).
No need for any special paint, white and black (to IR) will do.
Personally, I think it will be way more work, as you need to get each "dot" of the code filling more than one pixel (at all possible angles).
Contrast and resolution are the key parameters in reading QR codes and bar codes.
Oh, and you need to know how to code and decode a QR code image of course.
Regards,
Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?
Please remember...
Engineering is based on numbers - not adjectives

Offline spooneythegoon

  • Jr. Member
  • **
  • Posts: 10
  • Helpful? 0
Re: Infrared identification
« Reply #11 on: July 23, 2012, 03:14:40 AM »
Why can't you just use a picaxe controlling an IR LED on the robot and another one using IR receivers to read a variable sent from the LED. You can use IROUT and IRIN commands with a picaxe that send and receive variables by IR automatically.

Offline AxilleasTopic starter

  • Jr. Member
  • **
  • Posts: 9
  • Helpful? 0
Re: Infrared identification
« Reply #12 on: July 23, 2012, 07:55:15 AM »
Soeren,
good thing is that my robot's size is around 10cmx10cm ant top is flat co QR can cover most of it. There are supposed to be 5 - 10 object on the field so I don't need so many combinations. Then QR can be low res. In this situation it should be simple task to capture and decode it with camera.

Offline AxilleasTopic starter

  • Jr. Member
  • **
  • Posts: 9
  • Helpful? 0
Re: Infrared identification
« Reply #13 on: July 23, 2012, 07:58:18 AM »
Hi spooneythegoon,
and how would I determine position of the robot on field? Btw. robot are controlled by PC with BT.

Offline Soeren

  • Supreme Robot
  • *****
  • Posts: 4,672
  • Helpful? 227
  • Mind Reading: 0.0
Re: Infrared identification
« Reply #14 on: July 23, 2012, 08:08:57 PM »
Hi,

Soeren,
good thing is that my robot's size is around 10cmx10cm ant top is flat co QR can cover most of it. There are supposed to be 5 - 10 object on the field so I don't need so many combinations. Then QR can be low res. In this situation it should be simple task to capture and decode it with camera.
In that case, you might wanna consider using bar codes, code 2/5i ("two of five interleave", sometimes called ITF) in particular, as that will make your life a lot easier.

I have attached an example of QR code (encoded with the number "5") and 2/5i (encoded with "05" - two digits) respectively, as with any interleaved code, it only works with an even number of chars - one is encoded in the bars and the next is encoded in the spaces, This makes the comparison a bit unequal, as the 2/5i, as shown, can hold up to 100 numbers (00 to 99) with the complexity shown, compared to only 10 for the QR (0 to 9).
QR codes was developed for holding more information than bar codes, but they carry quite an overhead compared to bar codes.
Regards,
Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?
Please remember...
Engineering is based on numbers - not adjectives

Offline spooneythegoon

  • Jr. Member
  • **
  • Posts: 10
  • Helpful? 0
Re: Infrared identification
« Reply #15 on: July 24, 2012, 04:15:14 AM »
Hi spooneythegoon,
and how would I determine position of the robot on field? Btw. robot are controlled by PC with BT.

Do you just need to track it?

Offline AxilleasTopic starter

  • Jr. Member
  • **
  • Posts: 9
  • Helpful? 0
Re: Infrared identification
« Reply #16 on: July 25, 2012, 01:52:12 AM »
Quote
In that case, you might wanna consider using bar codes, code 2/5i
Thanks I really appreciate your advices and willingness to help me. Thnx.
But I'm afraid that there might by problem when capturing with camera. Since the camera is placed in some distance from robots (around 2 meters) and might not be directly above robots.

Dut what I was thinking about was actually using my own version of QR. Let say with resolution 3x3. If we remove two fields to identify front and back side we still have 7 fields that holds 2**7 = 128 combinations. And since we are programmers it should not be a problem to implement this pseudo QR code decoding algorithm.

What do you think?

Offline AxilleasTopic starter

  • Jr. Member
  • **
  • Posts: 9
  • Helpful? 0
Re: Infrared identification
« Reply #17 on: July 25, 2012, 01:54:46 AM »
Quote
Do you just need to track it?
Yes, I capture all robots by camera and then automatically compute position of each robot. It computes where robots should move to and then send them how to move through bluetooth.

Offline spooneythegoon

  • Jr. Member
  • **
  • Posts: 10
  • Helpful? 0
Re: Infrared identification
« Reply #18 on: July 25, 2012, 04:10:49 AM »
That is more tricky! If the robots are not moving when the camera checks their position then a camera on a pan/tilt servo setup with an IR receiver on top could work.

 Or you could pulse the LED slowly enough that the camera itself could read the variable being transmitted?  That would provide the camera with an easy way to track the robot as well.

I'm out of my depth here!

Offline Soeren

  • Supreme Robot
  • *****
  • Posts: 4,672
  • Helpful? 227
  • Mind Reading: 0.0
Re: Infrared identification
« Reply #19 on: July 26, 2012, 07:28:56 PM »
Hi,

Dut what I was thinking about was actually using my own version of QR. Let say with resolution 3x3. If we remove two fields to identify front and back side we still have 7 fields that holds 2**7 = 128 combinations. And since we are programmers it should not be a problem to implement this pseudo QR code decoding algorithm.

What do you think?
Well, for starters, I think you shouldn't use the name QR even if you precede it with "pseudo", as QR code has got a very strict protocol (or should I say several, one for each version).

It's not hard to make up something usable (plenty of other 2D codes exists), but why reinvent the wheel when a 2/5i will do what you need? All you have to do to read it, is to discern between 2 widths (wide bar made 3 times as wide as the narrow bar).

It's not as simple as "removing" 2 fields, ever noticed how much area is used to tell the direction of a QR?
You have two values, white and black, so a 3x3 with the first two fields blanked/white/"0" looking like:

000
110
100

(where "1" represents a black square)
Could mean:
000 110 100 (52) or
000 010 011 (19) or
001 011 000 (88)
Depending on it's rotation at time of reading - that's what the start and direction code is for and as I've just shown, 2 fields isn't gonna do.

Bar codes have a similar code, for 2/5i the start code reads (reading from left to right): narrow bar, narrow space, narrow bar, narrow space.
The stop code (read the same way) is: wide bar, narrow space, narrow bar.
Hence, if the code read starts with: narrow, narrow, wide, it's backwards and the entire string is mirrored to read it right.
You need to implement the same sorat of structure to any code made for automated information gathering and it's not an easy task (as you seem to think), for someone who hasn't done it before and this is why I'll keep suggesting you to go with a code that is already well proven ;D

QR codes are reliable only due to good reading equipment. Bar codes were originally developed for reading with a pen that swept the bars as a trajectory (some people never learned to read a bar code with a pen, it requires a smooth and steady sweep) and therefore, the bar codes were designed to be very forgiving and they're much easier to read than a QR code and the full code extends throughout the entire height, so a torn corner doesn't render it unreadable like it would a QR code. Just to repeat myself, QR codes are for when you need lots of info stored, but they're weaker than bar codes in your application.

If I were in your position, doubting the old hand, I'd simply make one of each codes and test them with a camerasetup like the one you are going to use (and with the same distances and angles for say some hours spread out over a week or so (to get different light, temperatures etc. - That should tell you what to use when testing is done with :)
Regards,
Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?
Please remember...
Engineering is based on numbers - not adjectives

 


Get Your Ad Here