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 16 2006, 05:29 PM
Post
#2
|
|
![]() Member ![]() ![]() ![]() Group: Members Posts: 656 Joined: 20-April 05 From: League City, Texas Member No.: 285 |
Updated AlgorimancerPG photogrammetry and rangefinding application to version 2.1. The main change is the ability to save accumulated calculated results to a textfile, similar to the way this was handled by the batch procession utility before. Still haven't added a selection utility, still mentally deciding how best to handle that.
http://www.clarkandersen.com/RangeFinder.htm |
|
|
|
Mar 16 2006, 11:10 PM
Post
#3
|
|
![]() Senior Member ![]() ![]() ![]() ![]() Group: Members Posts: 2492 Joined: 15-January 05 From: center Italy Member No.: 150 |
Nice software. However, I have impression that error on distance is widely sub-estimated (using Parallax Calculator I obtained higher, more reasonable numbers)...
I would like to better know the coordinate system (xyz) you are using and I would like to precisely select points throug cross-air, instead the Windows pointer... Thanks. -------------------- I always think before posting! - Marco -
|
|
|
|
Mar 16 2006, 11:47 PM
Post
#4
|
|
![]() Member ![]() ![]() ![]() Group: Members Posts: 656 Joined: 20-April 05 From: League City, Texas Member No.: 285 |
Nice software. However, I have impression that error on distance is widely sub-estimated (using Parallax Calculator I obtained higher, more reasonable numbers)... I would like to better know the coordinate system (xyz) you are using and I would like to precisely select points throug cross-air, instead the Windows pointer... Thanks. Thank you. The error is indeed sub-estimated. The way this works is, based upon the camera models I am able to extract a unique sight-vector normal to the center of the selected pixels and originating from a known point for each camera. These vectors and the originating points are in the coordinate system in which the masthead was calibrated; there is no consistent correspondence to the rest of the rover or the ground, since the camera moves. The results are self-consistent for a particular stereo pair, but not with other stereo pairs (additional transformations of the coordinates would be required). The resulting coordinates I have (by request) transformed so that the x & y axes are generally aligned with those of the images as viewed in a monitor (x is + right, y is + up), and the origin is the midpoint between the cameras principal points. Since the cameras are not oriented in parallel (there are rotations about 3 axes relative to each other), there are some aspects of the coordinates derived from the images which are less than intuitive, however everthing seems self-consistent. As to the error... I find the photogrammetric position from the input pixels as the approximate intersection of the two resulting lines based upon the cameras principal points and the pixel-intersecting vectors. I say approximate intersection because a true intersection will never actually happen, what I find is the midpoint between those lines, and the error reported is the actual minimum distance between the lines (I state all this somewhere in the documentation). Something closer to the true error would be to take this minimum distance and add to it the size of 1 pixel at that range (also given in the results). And of course it is only as accurate as the pixels chosen by the user, so multiply that pixel size by however many pixels of precision are managed. I'm sure someone who does photogrammetry professionally could come up with a better measure of accuracy, I'm just going on geometry. As to the difference in error between this application and the parallax finder application, the major difference is that I'm calculating in 3D and the parallax finder app is working in 2D, so the majority of the accuracy difference would lie there. I'm also using the very good camera calibration data acquired in the lab prior to the launch. Taking all of that into account, the given errors (adding in pixel size at range) seem reasonable, as is the difference in results between the two applications. I might add that all the position, range, distance, and error results given by my app are in meters, which may make the error seem smaller than it is. An error of 0.5 sounds good until you think in terms of measuring the size of a meter scale object. A cross-hair point selector sounds like a good idea, I'll look into that. |
|
|
|
Mar 17 2006, 06:56 AM
Post
#5
|
||
![]() Senior Member ![]() ![]() ![]() ![]() Group: Members Posts: 2492 Joined: 15-January 05 From: center Italy Member No.: 150 |
Thanks for the infos, algorimancer.
About the error estimation, now I understand your method and the difficulty to work in 3D instead 2D, with never-intersecting lines (!). Your considerations are valid in the plane perpendicular to the line of sight (the XY plane, approximately). But in the Z (distance) direction you are forgetting to add the uncertain arising from small parallax angle errors, which is by far the main error factor for distant objects! You will agree that a very small azimut error must introduce a huge distance error for a far, small-parallax object close to horizon. At the limit, when parallax angle is comparable or smaller than angle covered by a pixel, this effect becomes dramatic! This should happens for ranges of about 300m (NavCam) or 1Km (PanCam). Now look to this plot of the ranging error as a function of distance for the MER stereo cameras, assuming a 0.25 pixel stereo correlation accuracy (from MAKI ET AL.: MARS EXPLORATION ROVER ENGINEERING CAMERAS): To estimate this z-direction error, you can start from this plot but multipling error by 2 at least... Or, you can use empiric calculation method, considering many alternative rays located 0.5 pixels around original ones and then report the range for XYZ positions separately (a little bit complicated, but I like it). -------------------- I always think before posting! - Marco -
|
|
|
|
||
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
helvick QUOTE (algorimancer @ Mar 16 2006, 11:47 ... Mar 17 2006, 01:34 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
MaxSt I understand that left and right rays only in theo... Mar 25 2006, 06:12 AM
algorimancer QUOTE (MaxSt @ Mar 25 2006, 12:12 AM) I u... Mar 25 2006, 02:57 PM
MaxSt QUOTE (algorimancer @ Mar 25 2006, 09:57 ... Mar 25 2006, 09:56 PM
algorimancer QUOTE (MaxSt @ Mar 25 2006, 03:56 PM) Oh,... Mar 26 2006, 12:59 AM
MaxSt QUOTE (algorimancer @ Mar 25 2006, 07:59 ... Mar 26 2006, 02:31 AM
algorimancer QUOTE (MaxSt @ Mar 25 2006, 08:31 PM) No,... Mar 26 2006, 04:11 PM
MaxSt QUOTE (algorimancer @ Mar 26 2006, 11:11 ... Mar 26 2006, 08:21 PM
algorimancer QUOTE (MaxSt @ Mar 26 2006, 02:21 PM) Tru... Mar 26 2006, 09:00 PM
Steve QUOTE (algorimancer @ Mar 26 2006, 05:00 ... Apr 22 2006, 10:31 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. |
|