My Assistant
Range Finding - Parallax Calculations |
Dec 3 2005, 02:46 PM
Post
#1
|
|
![]() Dublin Correspondent ![]() ![]() ![]() ![]() Group: Admin Posts: 1799 Joined: 28-March 05 From: Celbridge, Ireland Member No.: 220 |
Just setting this up as a topic.
Rodolfo (RNeuhaus) has pointed out that he gets hard to interpret results when using Joe Knapp's online Parallax Calculator. I don't know the formulas behind this calculator but have been trying to work out my own. Taking (for now) that the geometries are as follows: Pancam, 16deg FOV, 300mm separation between L and R and a 1deg toe in. Navcam, 45deg FOV 200mm separation between L and R and no toe in. Parallax formula - Distance to object=half the Camera Separation/Tan angle between the point in the L+R images. (I don't think this is 100% correct for parallel cameras but it should be good to a close first approximation provided things aren't too close). Sticking with the Navcam which doesn't have any toe in my gut feel for things is that distant objects should be affected less by parallax. So taking Joe Knapps sample calculation for Navcam. Left Camera 512 pixels, right camera 500 pixels. Separation is 12 pixels so the parallax angle is 12 * (45deg/1024pixels) = 0.527344 degrees. The distance should then be (100mm/tan(0.527344 deg). That gives me 108m. Joe Knapps calculator gives me 20.3m. The Pancam is a bit trickier because of the toe in angle, I need to think a bit more about whether my default assumption that it can be compensated for by simply subtracting 64 pixels from the right image position is valid or not. Anyway - something is amiss in either my numbers or Joe Knapp's calculator. Anyone out there able to throw some light on this. |
|
|
|
![]() |
Mar 25 2006, 06:12 AM
Post
#2
|
|
|
XYL Code Genius ![]() ![]() ![]() Group: Members Posts: 138 Joined: 23-November 05 Member No.: 566 |
I understand that left and right rays only in theory should intersect at some distance.
But I wonder what's the usual error, in practice? If you shift left and right pointers vertically just a little bit, you should be able to assure the ray intersect. Just how much shift is needed, in terms of pixels or maybe degrees? |
|
|
|
Mar 25 2006, 02:57 PM
Post
#3
|
|
![]() Member ![]() ![]() ![]() Group: Members Posts: 656 Joined: 20-April 05 From: League City, Texas Member No.: 285 |
I understand that left and right rays only in theory should intersect at some distance. But I wonder what's the usual error, in practice? If you shift left and right pointers vertically just a little bit, you should be able to assure the ray intersect. Just how much shift is needed, in terms of pixels or maybe degrees? That's one of those problems which is going to have infinite solutions. If you held the ray from one camera constant, you could adjust the other camera's ray to achieve a perfect intersection. But you could move that ray about the plane spanned by the first ray and the origin of the second ray, and find infinite solutions along it. And of course there's no reason to assume that the first ray is the one to be fixed, which adds additional dimensions to the problem. It's basically a matter of constraining the error of the rays and saying that if each of the rays is allowed so much error in orientation, then the solution space is constrained to something like the intersection of two cones (where the apexes of the cones are the cameras' principal points). In addition to the Analyse dialog giving the error allowing for +/- 0.5 pixels, the provided figure for intersection gap is a measure of the distance between the intersecting rays, so to figure how many degrees that corresponds to, simple trigonometry would be to take the inverse tangent of (half the gap distance divided by the range distance). A few checks w/ Opportunity's navcam (pixel size is 0.04686770 degrees) give offsets of between 0.002 and 0.04 degrees. Likewise w/ Spirit's pancam (pixel size 0.01600068 degrees) yield offsets of between 0.003 and 0.011 degrees. This seems to further confirm that sub-pixel precision is being achieved. Someday it might be nice get a bunch of users to measure a bunch of objects, then combine the results and get a good sense of the true statistical error involved. |
|
|
|
Mar 25 2006, 09:56 PM
Post
#4
|
|
|
XYL Code Genius ![]() ![]() ![]() Group: Members Posts: 138 Joined: 23-November 05 Member No.: 566 |
But you could move that ray about the plane spanned by the first ray and the origin of the second ray, and find infinite solutions along it. Well, I mean if shift only vertically... should be one solution. This seems to further confirm that sub-pixel precision is being achieved. Oh, that's good. I tried to do something like that myself, but I'm getting much bigger vertical errors... |
|
|
|
Mar 26 2006, 12:59 AM
Post
#5
|
|
![]() Member ![]() ![]() ![]() Group: Members Posts: 656 Joined: 20-April 05 From: League City, Texas Member No.: 285 |
Oh, that's good. I tried to do something like that myself, but I'm getting much bigger vertical errors... Try zooming in before selecting points. I find this can get me down to better than half a pixel error most of the time (optimistically half that). I tend to zoom in about ten times prior to selecting important points. Lot's of times no zoom at all yields adequate results, just depends what you're up to. |
|
|
|
Mar 26 2006, 02:31 AM
Post
#6
|
|
|
XYL Code Genius ![]() ![]() ![]() Group: Members Posts: 138 Joined: 23-November 05 Member No.: 566 |
Try zooming in before selecting points. No, I mean bigger errors with my own implementation... Something wrong with my CAHVOR model... I wonder how they do "linearization" of pictures? Their results are very good, but when I tried that myself, I couldn't figure out how to select new CAHV vectors. |
|
|
|
Mar 26 2006, 04:11 PM
Post
#7
|
|
![]() Member ![]() ![]() ![]() Group: Members Posts: 656 Joined: 20-April 05 From: League City, Texas Member No.: 285 |
No, I mean bigger errors with my own implementation... Something wrong with my CAHVOR model... I wonder how they do "linearization" of pictures? Their results are very good, but when I tried that myself, I couldn't figure out how to select new CAHV vectors. If you get stuck on your CAHVOR model I'd be happy to share some tips or code with you, but I know it's more satisfying to figure out yourself. I have little experience with transforming images (other than using existing software), so I'm not sure how I'd go about linearizing one. Seems like you might be able to use the existing CAHVOR model and just choose to project to a sphere rather than a plane, or something to that effect. I don't have a good mental model of what needs to happen. |
|
|
|
Mar 26 2006, 08:21 PM
Post
#8
|
|
|
XYL Code Genius ![]() ![]() ![]() Group: Members Posts: 138 Joined: 23-November 05 Member No.: 566 |
If you get stuck on your CAHVOR model I'd be happy to share some tips or code with you, but I know it's more satisfying to figure out yourself. True, true... Besides, you probably implemented photogrammetric model, and I'd like to work with actual CAHVOR vectors. I have little experience with transforming images (other than using existing software), so I'm not sure how I'd go about linearizing one. Seems like you might be able to use the existing CAHVOR model and just choose to project to a sphere rather than a plane, or something to that effect. I don't have a good mental model of what needs to happen. Well, I think they project object rays back a plane, which is defined by new CAHV vectors. The same plane for both cameras (in the case of navcams). So when I look at the pair of their linearized images, they fit each other very well - the objects far far away have the same coordinates on both images, and objects close to the rover are always on the same row. I guess their error is much less then a pixel. |
|
|
|
Mar 26 2006, 09:00 PM
Post
#9
|
|
![]() Member ![]() ![]() ![]() Group: Members Posts: 656 Joined: 20-April 05 From: League City, Texas Member No.: 285 |
True, true... Besides, you probably implemented photogrammetric model, and I'd like to work with actual CAHVOR vectors. Actually my approach was indeed via the CAHVOR vectors, using that information combined with some simple vector analysis. I plug in a pixel coordinate, out comes a corresponding real-space vector emerging from the camera. I define a line originating at the coordinates of the C in the CAHVOR model, with the vector specifying the direction. Same for the other camera, then I find the approximate intersection of the two lines (points on each line where they're othogonal to each other, and I settle for the midpoint between those points as the photogrammetric point). I don't do any conversion to a separate photogrammetric model, I just work with what CAHVOR gives me. I have a copy of a paper somewhere which describes converting from CAHVOR to a specific photogrammetric model, but my sense is that the only purpose was to validate their equivalence. |
|
|
|
Apr 22 2006, 10:31 PM
Post
#10
|
|
![]() Member ![]() ![]() ![]() Group: Members Posts: 267 Joined: 5-February 06 Member No.: 675 |
... I have a copy of a paper somewhere which describes converting from CAHVOR to a specific photogrammetric model, but my sense is that the only purpose was to validate their equivalence. I suspect you mean Di and LI, "CAHVOR camera model and its photogrammetric conversion for planetary applications," JOURNAL OF GEOPHYSICAL RESEARCH, VOL. 109. |
|
|
|
helvick Range Finding - Parallax Calculations Dec 3 2005, 02:46 PM
RNeuhaus Good to hear from you. I have already written a no... Dec 5 2005, 03:47 PM
helvick Rodolfo,
The author (Joe Knapp) posts here as jmk... Dec 5 2005, 07:53 PM
mars_armer QUOTE (helvick @ Dec 3 2005, 06:46 AM)Taking ... Dec 5 2005, 11:40 PM
RNeuhaus Helvick, Thanks for the response. However I still ... Dec 6 2005, 03:17 AM
jamescanvin Just jumping in as I'm mentioned:
QUOTE (RNeu... Dec 6 2005, 04:24 AM
helvick QUOTE (jamescanvin @ Dec 6 2005, 05:24 AM)Jus... Dec 6 2005, 10:31 AM
jmknapp My parallax calculator could sure use some improve... Dec 6 2005, 11:57 AM
algorimancer QUOTE (jmknapp @ Dec 6 2005, 06:57 AM)...
The... Feb 11 2006, 04:02 PM
jmknapp Interesting that taking all the rotations into acc... Feb 14 2006, 09:49 PM
Tesheiner Rodolfo, just an additional reminder:
You will se... Dec 6 2005, 07:40 AM
algorimancer I have just completed a new 3D MER RangeFinder:
... Mar 2 2006, 01:51 AM
jmknapp QUOTE (algorimancer @ Mar 1 2006, 08:51 P... Mar 2 2006, 12:21 PM
algorimancer QUOTE (jmknapp @ Mar 2 2006, 06:21 AM) Ve... Mar 2 2006, 01:31 PM
djellison I know JB's out the office at the moment, but ... Mar 2 2006, 01:50 PM
algorimancer QUOTE (djellison @ Mar 2 2006, 07:50 AM) ... Mar 2 2006, 03:29 PM
MaxSt Thanks, algorimancer.
I was using these simple fo... Mar 2 2006, 10:14 PM
algorimancer QUOTE (MaxSt @ Mar 2 2006, 04:14 PM) Than... Mar 3 2006, 01:48 AM
algorimancer While it's only a day since the initial announ... Mar 3 2006, 02:02 AM
Tesheiner Thanks for this new tool, algorimancer.
QUOTE (al... Mar 3 2006, 08:36 AM
MaxSt Batch Process seems to work fine, that's very ... Mar 3 2006, 03:59 AM
algorimancer QUOTE (MaxSt @ Mar 2 2006, 09:59 PM) Batc... Mar 3 2006, 12:15 PM
jmknapp QUOTE (algorimancer @ Mar 3 2006, 07:15 A... Mar 3 2006, 02:42 PM

algorimancer QUOTE (jmknapp @ Mar 3 2006, 08:42 AM) ..... Mar 3 2006, 04:53 PM

jmknapp QUOTE (algorimancer @ Mar 3 2006, 11:53 A... Mar 4 2006, 02:05 PM
MaxSt QUOTE (algorimancer @ Mar 3 2006, 07:15 A... Mar 3 2006, 07:10 PM

algorimancer QUOTE (MaxSt @ Mar 3 2006, 01:10 PM) That... Mar 3 2006, 08:44 PM

MaxSt QUOTE (algorimancer @ Mar 3 2006, 03:44 P... Mar 3 2006, 10:23 PM

algorimancer QUOTE (MaxSt @ Mar 3 2006, 04:23 PM) That... Mar 3 2006, 10:55 PM
Tesheiner QUOTE (algorimancer @ Mar 3 2006, 01:15 P... Mar 3 2006, 08:55 PM
MaxSt QUOTE (Tesheiner @ Mar 3 2006, 03:55 PM) ... Mar 3 2006, 11:12 PM
algorimancer QUOTE (MaxSt @ Mar 3 2006, 05:12 PM) That... Mar 4 2006, 12:31 AM
djellison Then once you have a fairly populated array of val... Mar 3 2006, 08:40 AM
MaxSt Actually, that's exactly what I'm playing ... Mar 3 2006, 10:23 AM
djellison Alternatively, just write a convertor for the rele... Mar 3 2006, 11:58 AM
MaxSt No, I'm still using my simple formulas, I... Mar 4 2006, 03:01 AM
algorimancer QUOTE (MaxSt @ Mar 3 2006, 10:01 PM) I... Mar 4 2006, 04:02 PM
CosmicRocker Holy Moses! I wasn't expecting the synerg... Mar 4 2006, 06:58 AM
djellison I've been waiting 2 years for files like that.... Mar 4 2006, 07:49 AM
helvick I started this thread just looking to get a slight... Mar 4 2006, 08:35 AM
djellison 15MB 720p WMV-HD movie of it
http://www.unmannedsp... Mar 4 2006, 11:40 AM
helvick QUOTE (djellison @ Mar 4 2006, 11:40 AM) ... Mar 4 2006, 11:54 AM
algorimancer QUOTE (djellison @ Mar 4 2006, 06:40 AM) ... Mar 4 2006, 03:40 PM
djellison QUOTE (algorimancer @ Mar 4 2006, 03:40 P... Mar 4 2006, 04:11 PM
djellison Now extrapolate to the complete traverse from the ... Mar 4 2006, 12:00 PM
algorimancer Soliciting opinions for additional development ...... Mar 4 2006, 04:45 PM
MaxSt Nice video, Doug. Gives me confidence that automat... Mar 4 2006, 08:49 PM
algorimancer QUOTE (MaxSt @ Mar 4 2006, 03:49 PM) algo... Mar 4 2006, 11:43 PM
algorimancer For those of you into that whole command line thin... Mar 8 2006, 03:18 AM
Tesheiner Great tool, algorimancer.
One feature I would rea... Mar 8 2006, 02:24 PM
djellison QUOTE (Tesheiner @ Mar 8 2006, 02:24 PM) ... Mar 8 2006, 03:01 PM
algorimancer QUOTE (Tesheiner @ Mar 8 2006, 08:24 AM) ... Mar 8 2006, 08:21 PM
algorimancer Okay, the MER RangeFinder and Photogrammetry appli... Mar 9 2006, 02:35 AM
algorimancer Here is a significant new version of the MER Photo... Mar 15 2006, 03:12 AM
algorimancer Updated AlgorimancerPG photogrammetry and rangefin... Mar 16 2006, 05:29 PM
dilo Nice software. However, I have impression that err... Mar 16 2006, 11:10 PM
algorimancer QUOTE (dilo @ Mar 16 2006, 05:10 PM) Nice... Mar 16 2006, 11:47 PM
helvick QUOTE (algorimancer @ Mar 16 2006, 11:47 ... Mar 17 2006, 01:34 AM
dilo Thanks for the infos, algorimancer.
About the err... Mar 17 2006, 06:56 AM
algorimancer QUOTE (dilo @ Mar 17 2006, 12:56 AM) Your... Mar 17 2006, 01:58 PM
algorimancer Okay, per dilo's suggestions, here is an updat... Mar 18 2006, 03:22 PM
dilo Very good job, algorimancer!
Cross pointer is... Mar 18 2006, 07:16 PM
algorimancer QUOTE (dilo @ Mar 18 2006, 01:16 PM) A sm... Mar 18 2006, 08:49 PM
MaxSt Very very nice program. And very easy to use.
One... Mar 18 2006, 08:01 PM
algorimancer QUOTE (MaxSt @ Mar 18 2006, 02:01 PM) Ver... Mar 18 2006, 08:59 PM
algorimancer Here it is, per MaxSt's and Dilo's suggest... Mar 18 2006, 11:35 PM
dilo GREAT!
You do not waste time... I was reading ... Mar 19 2006, 07:30 AM
Tesheiner Thanks a lot, algorimancer!
I didn't have... Mar 19 2006, 11:25 AM
CosmicRocker This really is a sweet application. I had always... Mar 21 2006, 06:21 AM
algorimancer I just posted the next AlgorimancerPG update (vers... Mar 24 2006, 03:45 AM
Tesheiner Thanks for this new update!
And here is somet... Mar 24 2006, 09:17 AM
algorimancer QUOTE (Tesheiner @ Mar 24 2006, 03:17 AM)... Mar 24 2006, 01:44 PM
algorimancer QUOTE (Steve @ Apr 22 2006, 05:31 PM) I s... Apr 24 2006, 01:48 PM
Tesheiner Algorimacer,
Speaking of "improvements... Apr 22 2006, 07:55 PM
algorimancer QUOTE (Tesheiner @ Apr 22 2006, 02:55 PM)... Apr 26 2006, 12:44 AM
mhoward Actually MMB doesn't access the SQL server dir... Apr 26 2006, 01:43 AM
algorimancer QUOTE (mhoward @ Apr 25 2006, 08:43 PM) .... Apr 26 2006, 01:49 AM
helvick QUOTE (algorimancer @ Apr 26 2006, 01:49 ... Apr 26 2006, 02:47 PM
Tesheiner QUOTE (algorimancer @ Apr 26 2006, 02:44 ... Apr 26 2006, 08:58 PM![]() ![]() |
|
Lo-Fi Version | Time is now: 16th December 2024 - 07:32 AM |
|
RULES AND GUIDELINES Please read the Forum Rules and Guidelines before posting. IMAGE COPYRIGHT |
OPINIONS AND MODERATION Opinions expressed on UnmannedSpaceflight.com are those of the individual posters and do not necessarily reflect the opinions of UnmannedSpaceflight.com or The Planetary Society. The all-volunteer UnmannedSpaceflight.com moderation team is wholly independent of The Planetary Society. The Planetary Society has no influence over decisions made by the UnmannedSpaceflight.com moderators. |
SUPPORT THE FORUM Unmannedspaceflight.com is funded by the Planetary Society. Please consider supporting our work and many other projects by donating to the Society or becoming a member. |
|