OUR NETWORK: TechLore Explore3DTV MyOpenRouter MediaSmart home TiVoCommunity See all... About UsAdvertiseContact Us

 
Learn about scoring Forum's Raw Score: 4583950.0
November 1, 2008 03:16 PM

Categories: Rovio

Rating (0 votes)
  • 1
  • 2
  • 3
  • 4
  • 5
Rate This!

Member Avatar

Tom B

Member
Joined: 10/08/2008

Hi all,

 My goal is to see if the Rovio can be used as a room localization system for other robots.  So, I'm using the CGI call:

 http://192.168.1.71//rev.cgi?Cmd=nav&action=1

 Which returns something like this....

 ------------------

Cmd = nav
responses = 0|x=1374|y=-370|theta=-1.318|room=0|ss=18444
|beacon=0|beacon_x=0|next_room=9|next_room_ss=35
|state=0|resistance=0|sm=15|pp=0|flags=0005
|brightness=4|resolution=3|video_compression=1|frame_rate=20
|privilege=0|user_check=1|speaker_volume=15|mic_volume=15
|wifi_ss=193|show_time=0|ddns_state=0|email_state=0
|battery=113|charging=80|head_position=202|ac_freq=2

--------------------

The X, Y, and theta values show the XY location of rovio and the spin, reletive to the closest beacon signal.

The question is, will it be possible to read these points in a continuous sampling and thus accurately calculate our location in the room.  The Northstar system (from Evolution) has earlier claimed accuracy of as little as 1/4 inch, which is pretty amazing.   Will be interested what accuracy Rovio provides.

First problem I'm running into...  When moving Rovio in a straight fashion, with no spin, I seem to get an accurate XY coordinate mapping to the floor.  HOWEVER the XY coords change completely when the robot is spun even a bit.  Clearly there is some mathematical mojo happening here, some formula that is needed to convert X-Y-Theta into an "absolute" XY spin number for the beacon.  I can't figure it all out.

 How does Rovio follow paths?  What's the path-following process?  Hmmm...

 Anybody have an idea?

Discussion:    Add a Comment | Comments 1-15 of 48 | Latest Comment | 1 2 3 4 Next »

November 2, 2008 12:47 PM updated: November 2, 2008 5:18 PM

> My goal is to see if the Rovio can be used as a room localization system for other robots.
BTW: Evolution Robotics sells a developer kit for $1800 USD.
http://www.evolution.com/products/northstar/devbundle.masn
(mini review: http://www.acroname.com/robotics/info/evaluation/northstar/northstar.html#c)

The developer kit includes one Detector ($1400). It handles the detection of the IR, locating the detector in a room, and sending the results via RS232 to your computer (or robot).
The developer kit includes two Projector units ($600 for two) which projects the IR signals to the ceiling.
------
AFAIK in Rovio it has a similar setup (the detector part is in the robot neck, and the projector in the charger base)
The NorthStar system is separate and sends data to the main CPU over a serial port. AFAIK it is not upgradable/hackable, but you can tap into the serial protocol.
Buying a few Rovios and stripping out the detectors may be a lower cost alternative to the $1800 kit (but without any documentation).
=======
> ...will it be possible to read these points in a continuous sampling and thus accurately calculate our location in the room.
Of course, it is easy to do today by simply repeating that URL request and stripping out the numbers (that's what the existing JavaScript does). NOTE: they added one additional value in the 4.09 "BATA" release.

> The Northstar system (from Evolution) has earlier claimed accuracy of as little as 1/4 inch...
(I'll believe that when I see it ;-)

TIP: the x/y/theta numbers can bounce all over the place, especially if you are far from the beacon or have high ceilings. The "ss" signal strength will give you an indication of how reliable the numbers are. Play with Rovio (and beacon) under a table and the accuracy goes up ;->

> How does Rovio follow paths? What's the path-following process? Hmmm...
Also little is known here. I believe the path data is stored in the NorthStar system, but I haven't figured out the details of how it interacts with the motor controllers.

You could figure out more by disassembling the main firmware, including the serial packet interface.
Or wait for the open source version which should at least include the NorthStar interface library (it is statically linked with other GPL code), the way it glues to the webcam/webserver part. The NorthStar system itself is proprietary and patented.

November 2, 2008 1:08 PM

I am guessing here, but I would suspect that Rovio uses both dead reckoning, and updates from the Trutrack system to follow a path.

For example, it might know its location accurately now, and knows it must travel 6ft at a 90deg angle in relation to the base to get to the next waypoint. So, it calculate how many turns it must make of each wheel to get there. Perhaps half way there it checks its current position using Trutrack (I have no idea how frequently it checks its position) and realizes it is 3 inches off course. So, it recalculates a new path and how many wheel rotations are needed to get to its goal.

Joe Dunfee

November 2, 2008 4:30 PM

Any physics majors in the bunch? I'd like to know why I can see the infrared beams coming out the TrueTrack beacon as a red glow when I focus my Sony Handycam video recorder on it, but not see the beams reflected on the ceiling. In other words, I understand that my the electronics in my Handycam can see infrared, but why can't the same electronics see the infrared beams projected on to the ceiling?

-roschler

Nanabot - And One Robot To Rule Them All The under $100 game playing, conversational robot

November 2, 2008 5:20 PM

> I understand that my the electronics in my Handycam can see infrared, but why can't the same electronics see the infrared beams projected on to the ceiling?
BTW: This is also true for the built in Rovio camera (OV7670)
It can see regular IR signals (eg: from a TV remote) but can't disambiguate the dots projected on the ceiling.

November 2, 2008 5:34 PM updated: November 2, 2008 5:35 PM

Yes, thanks, I know about the Northstar kit. However my understanding was, the Rovio tech is a "newer" version of the technology. Therefore it made more sense to try to use it. No reason to hack the hardware...the CGI script sends the numbers quite conveniently. Actually in a way the Rovio is an amazingly useful piece of hardware anyway. Take off the wheels, camera, etc, and you have a northstar type position detector hooked to a wireless mini-server that can be queried at any time by other robotic systems. That's a very useful gadget.

The key question, again, is how the X, Y, and theta interact. If the robot is spun in place, the X and Y numbers change radically. Therefore they are not X and Y numbers for the "room" but are some other coordinate system that, I'm guessing, are somehow related to the orientation of the sensor reletive to multiple spots in the beam.

November 3, 2008 6:39 AM

Regarding the ability to see IR with your video recorder; these cameras are not really designed to view infrared, they are primarily visible light cameras. The fact that they can view IR is that their imaging chips happen to also detect IR as well as visible light. This is actually a bad thing for visible light photography because it can cause the image to be "wrong" as compared to what a human would see.

Because of the above, visible light cameras have filters to block the IR light. But, these filters are not perfect, and let some IR light through. As an aside, I know there have been at least one visible light video cameras that had a "nightime" mode where the IR filter is moved out of the light path to allow much better detection of IR light.

The final issue is that when you are focused on a single LED, the amount of IR light the camera recieves to a particular pixel is MUCH greater than when you are looking at the light spread out over a ceiling. Also, the ceiling absorbs some of the IR light and also disperses a lot.

In the end, it could actually be that your camera is detecting the IR light from the ceiling, but that it is so close in brightness to the other light in the room that it doesn't really show enough for you to notice.

Joe Dunfee

November 3, 2008 7:42 AM

Tom B said: Yes, thanks, I know about the Northstar kit. However my understanding was, the Rovio tech is a "newer" version of the technology. Therefore it made more sense to try to use it. No reason to hack the hardware...the CGI script sends the numbers quite conveniently. Actually in a way the Rovio is an amazingly useful piece of hardware anyway. Take off the wheels, camera, etc, and you have a northstar type position detector hooked to a wireless mini-server that can be queried at any time by other robotic systems. That's a very useful gadget. The key question, again, is how the X, Y, and theta interact. If the robot is spun in place, the X and Y numbers change radically. Therefore they are not X and Y numbers for the "room" but are some other coordinate system that, I'm guessing, are somehow related to the orientation of the sensor reletive to multiple spots in the beam.

I was playing with this last night. Theta varies from +Pi to -Pi. When rovio was directly under the center of the beacon 'line' (connecting the two red arrows) and pointed at the base (right angle to the beacon line), theta was ~0.

If you spin the whole Rovio, remember the detector is not at the center of rotation, so it is changing it's XY position. Try rotating it about the sensor position itself. Also, the XY is relative to the brightest beacon, which I suspect means one of the beacon spots is considered 'major'. When you spin it, you're changing the orientation of the detector relative to that spot, so it might make sense that X and Y would change signs? One inch of position change might change the values by several hundred unit... but I've seen the value bounce by up to 1000 units between successive reads. It would be nice to know how many readings Rovio averages, to determine position at any point. 

@RobosapienPet, have you considered hooking a 'scope onto the beacon IR LEDs to see what the signal pattern is?

November 3, 2008 9:07 AM

Thanks for suggestion Milw,

I did try spinning "around detector" as if it were a fixed spot. Im still getting very large (multi-thousand) XY changes. I have to assume that X and Y are changing based on rotation, and that one must convert X and Y in some other coordinate system to come up with "normalized" room X and Y numbers.

The theta seems to be a straightforward and predictable change in pi-pi, as you said. It goes from 0 to 3.14 or -3.14 predictably, that makes perfect sense.

November 3, 2008 9:17 AM updated: November 3, 2008 9:19 AM

I'm curious, are you directly under the spots when you try spinning? I was seeing large variations on succesive reads like you describe, when Rovio was on the base and the spots were projected about 8 feet out from the base. But when I put Rovio on the floor under the spots, the variation was in a few 100s of units. And yes, I guess we don't know if the reported XY values have undergone any preprocessing; they might be just raw instantaneous values off the detectors. I'd like to try plotting a series of reads from the same position to see if the variance is related to signal strength as RobosapienPet suggested. Also move Rovio to marked positions and try to determine the relationship of normalized room XY to the cgi reported XY values.

Oops, forgot to mention, the Evolution Robotics website says the sampling interval is 100 msec...

November 3, 2008 9:45 AM updated: November 3, 2008 9:57 AM

Can somebody post readings for Rovio in one point with different value of theta?

May be several sets for different positions. Something like:

Point 1 (near base)
(12,34,1.4)
(22,44,-1.2)
...

Point 2 (center of room)
(..,..,..)
...

Point 3 (...)
...

Will be better if points are in pattern like this:


1 2 3

4 5 6

7 8 9


3-4 values of theta and corresponding x,y values for each point will be enought :))

I'll try to do some math excersizes with this data :))

Free RoboPanda!!! :)

Yes! If something has a dump, it must be hacked :))

November 3, 2008 10:00 AM updated: November 3, 2008 10:08 AM

working on it... I copied a bunch of readings last night into Excel but didn't break into individual cells. Plz stand by...
under one spot, nose to 2nd spot (X Y theta)
-2436 -56 1.387
-2460 -78 1.387
-2429 -36 1.383
-2429 -36 1.383

rotate 180 degrees
-4254 490 -1.567
-4243 445 -1.555
-4261 446 -1.557
-4239 422 -1.554

under other spot
2484 -633 -1.645
2463 -656 -1.653
2440 -635 -1.641
2492 -644 -1.643

rotate 180 degrees
4170 -991 1.507
4099 -1001 1.501

centered between, nose to base
3 -1515 -0.168
6 -1468 -0.165
54 -1487 -0.161
33 -1377 -0.156

nose away from base
363 30 3.107
363 30 3.107
388 17 3.106
367 -21 3.105

These were done by rotating the entire Rovio, not centered about the sensor unfortunately.

November 3, 2008 10:22 AM

Can you do 90 degrees rotation for some points too?..

Free RoboPanda!!! :)

Yes! If something has a dump, it must be hacked :))

November 3, 2008 10:41 AM

OK, coming soon (someone is blocking

November 3, 2008 10:43 AM

You can try to search for extremums:
1) point with x=0 and y=0 and check behevior of values with rotating and small movements
2) tracks for which x remains 0, and check for theta and y changes
3) tracks for which y remains 0, and check for theta and x changes
4) tracks with constant value of theta (0, pi, pi/2, -pi/2)

May be this tracks/points/behaviors will give you some ideas :))

Free RoboPanda!!! :)

Yes! If something has a dump, it must be hacked :))

November 3, 2008 10:53 AM

Does web interface has some display of current position ?
You can check javascripts for some expressions with sin and cos functions :))

Free RoboPanda!!! :)

Yes! If something has a dump, it must be hacked :))

Discussion:    Add a Comment | Back to Top | Comments 1-15 of 48 | Latest Comment | 1 2 3 4 Next »

Add Your Reply

(will not be displayed)

Email me when comments are added to this thread

 
 

Please log in or register to participate in this community!

Log In

Remember

Not a member? Sign up!

Did you forget your password?

You can also log in using OpenID.

close this window
close this window