| ARToolKit | Mailing List Archive |
|
| From: | Darran Edmundson <darran@e ............> | Received: | Jul 27, 2006 |
| To | artoolkit@h .................. | ||
| Subject: | Infinite loops and 'trivial' solutions with the ARToolkitPlus? | ||
Over the last week I've been working intermittently on integrating
ARToolkitPlus with the Ogre3d graphics engine as discussed in my message
thread on the Ogre forums:
http://www.ogre3d.org/phpBB2/viewtopic.php?t=22584
The simplest of examples is mostly working, as you can see in this 2Mb
DivX video:
http://www.edmstudio.com/ogre/06G20-artoolkitplus-rotations.avi
Issues I'm dealing with though:
1) The jitter that many people report. Undoubtedly a combination of my
camera's 320x240 resolution, poor camera calibration on my part, etc.
The RPP algorithm seems to greatly reduce the jitter - well worth trying.
2) Frequent 'trivial' (in the mathematical sense) solutions. I'll be
getting correct tile position/orientation for several image frames and
then a (0,0,0) position with 100% confidence. (I take it confidence
relates to the pattern, not the pose.) Of course I could just choose to
ignore these solutions, but it makes me wonder if I'm doing something
wrong. This happens with both available pose estimators.
3) I am seeing non-returning calls to
markerId = mTracker->calc((unsigned char*)(img->imageData));
when using the RPP pose estimator:
mTracker->setPoseEstimator(ARToolKitPlus::POSE_ESTIMATOR_RPP);
This happens repeatably (requires killing the process) and always seems
to occur with the tile at an oblique angle. I would, without
hesitation, attribute this problem to faulty integration with Ogre
except that it *never* happens when using the default algorithm. That
said, I've been unable to reproduce the lock-up using a saved image
stream feeding a looping version of the ARToolkitPlus's simple code.
I'll keep trying ... just wondered though if anyone else has experienced
this problem?
For reference, I'm using v2.0.2 of ARToolkitPlus, compiled on Windows XP
with VS Express 2005. (The Ogre details, for anyone interested, are in
the message thread mentioned above.)
Cheers,
Darran.
--
Darran Edmundson [darran@e ............]
Interactive visualization for museums and industry
http://www.edmstudio.com
|
|||
| From: | Daniel Wagner <daniel@i ...............> | Received: | Jul 27, 2006 |
| To | artoolkit@h .................. | ||
| Subject: | Re: Infinite loops and 'trivial' solutions with the ARToolkitPlus? | ||
Darran Edmundson wrote: > Over the last week I've been working intermittently on integrating > ARToolkitPlus with the Ogre3d graphics engine as discussed in my > message thread on the Ogre forums: looks great - i guess though, that your camera calibration is not quite accurate. the cube is not sitting tightly on the marker. using the MATLAB camera calibration toolbox makes this really easy, fast and accurate (once you get used to it). using a correct camera calibration also speeds up the pose estimation part. e.g. on the Gizmondo switching to a correct calibration file improved overall performance from 17 to 28 fps. > 1) The jitter that many people report. Undoubtedly a combination of > my camera's 320x240 resolution, poor camera calibration on my part, > etc. The RPP algorithm seems to greatly reduce the jitter - well worth > trying. did you try using the CONT variant of the standard pose estimator? while i did not notice that much difference i get reports from people saying it really does... RPP should be better though (in case you don't have stability problems...) > 2) Frequent 'trivial' (in the mathematical sense) solutions. I'll be > getting correct tile position/orientation for several image frames and > then a (0,0,0) position with 100% confidence. (I take it confidence > relates to the pattern, not the pose.) Of course I could just choose > to ignore these solutions, but it makes me wonder if I'm doing > something wrong. This happens with both available pose estimators. yes, the confidence factor tells how well the id detection algorithm worked, it's not about the pose. can you send me a camera image that results in such a pose estimation? > 3) I am seeing non-returning calls to > markerId = mTracker->calc((unsigned char*)(img->imageData)); > when using the RPP pose estimator: > mTracker->setPoseEstimator(ARToolKitPlus::POSE_ESTIMATOR_RPP); > This happens repeatably (requires killing the process) and always > seems to occur with the tile at an oblique angle. I would, without > hesitation, attribute this problem to faulty integration with Ogre > except that it *never* happens when using the default algorithm. That > said, I've been unable to reproduce the lock-up using a saved image > stream feeding a looping version of the ARToolkitPlus's simple code. > I'll keep trying ... just wondered though if anyone else has > experienced this problem? i already got reports on that. again, if you send me a camera image that creates this effect i'd try to look into this. in any case i advice to switch to a 2.1.x release. we think did fix some errors with the 2.1 update... bye, Daniel |
|||
| From: | Tijs de Kler <tijs@k ............> | Received: | Jul 27, 2006 |
| To | Daniel Wagner <daniel@i ...............> | ||
| Subject: | Re: Infinite loops and 'trivial' solutions with the ARToolkitPlus? | ||
This is a multi-part message in MIME format.
--------------030004020202010603010407
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Daniel Wagner wrote:
>Darran Edmundson wrote:
>
>
>>2) Frequent 'trivial' (in the mathematical sense) solutions. I'll be
>>getting correct tile position/orientation for several image frames and
>>then a (0,0,0) position with 100% confidence. (I take it confidence
>>relates to the pattern, not the pose.) Of course I could just choose
>>to ignore these solutions, but it makes me wonder if I'm doing
>>something wrong. This happens with both available pose estimators.
>>
>>
>yes, the confidence factor tells how well the id detection algorithm
>worked, it's not about the pose.
>can you send me a camera image that results in such a pose estimation?
>
I've been trying to pinpoint this bug in the past, and it has been an
evasive bugger. The one solid example i did find that went wrong 100%
was in 2.0.2 and did not bug in 2.1. Since then i moved on and use
filtering as a temporal solution.
I noticed 2 phenomena:
- The pose matrix contains NaN (not a number) values.
- The pose containsvery small incorrect positional values. These values
are not (0,0,0) but close enough. The values are also constant (same
matrix) over the program execution.
The NaN currently happens less than 1% of the frames, the small
inccorect positonal values around 4%, depending on the pose of the marker.
My current solution involves filtering these results out, since the
framerate is still high enough.
mvg,
Tijs de Kler
--------------030004020202010603010407
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Daniel Wagner wrote:
<blockquote cite="mid44C86248.4080907@i ..............." type="cite">
<pre wrap="">Darran Edmundson wrote:
</pre>
<blockquote type="cite">
<pre wrap="">2) Frequent 'trivial' (in the mathematical sense) solutions. I'll be
getting correct tile position/orientation for several image frames and
then a (0,0,0) position with 100% confidence. (I take it confidence
relates to the pattern, not the pose.) Of course I could just choose
to ignore these solutions, but it makes me wonder if I'm doing
something wrong. This happens with both available pose estimators.
</pre>
</blockquote>
<pre wrap=""><!---->yes, the confidence factor tells how well the id detection algorithm
worked, it's not about the pose.
can you send me a camera image that results in such a pose estimation?</pre>
</blockquote>
I've been trying to pinpoint this bug in the past, and it has been an
evasive bugger. The one solid example i did find that went wrong 100%
was in 2.0.2 and did not bug in 2.1. Since then i moved on and use
filtering as a temporal solution.<br>
<br>
I noticed 2 phenomena:<br>
- The pose matrix contains NaN (not a number) values.<br>
- The pose containsvery small incorrect positional values. These values
are not (0,0,0) but close enough. The values are also constant (same
matrix) over the program execution.<br>
<br>
The NaN currently happens less than 1% of the frames, the small
inccorect positonal values around 4%, depending on the pose of the
marker.<br>
My current solution involves filtering these results out, since the
framerate is still high enough. <br>
<br>
mvg,<br>
Tijs de Kler<br>
<br>
<br>
</body>
</html>
--------------030004020202010603010407--
|
|||
| From: | "Antonio Bleile" <antonio.bleile@s ........> | Received: | Jul 27, 2006 |
| To | <artoolkit@h ..................> | ||
| Subject: | RE: Infinite loops and 'trivial' solutions with the ARToolkitPlus? | ||
This is a multi-part message in MIME format.
------=_NextPart_000_0015_01C6B166.ACD0BF60
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
Hi,
I had the same problem with NaN values in my matrix, I solved it
using doubles instead of floats for the math (just switch on the
_USE_DOUBLE_
pre-processor flag).
Regards,
Toni
Daniel Wagner wrote:
Darran Edmundson wrote:
2) Frequent 'trivial' (in the mathematical sense) solutions. I'll be
getting correct tile position/orientation for several image frames and
then a (0,0,0) position with 100% confidence. (I take it confidence
relates to the pattern, not the pose.) Of course I could just choose
to ignore these solutions, but it makes me wonder if I'm doing
something wrong. This happens with both available pose estimators.
yes, the confidence factor tells how well the id detection algorithm
worked, it's not about the pose.
can you send me a camera image that results in such a pose estimation?
I've been trying to pinpoint this bug in the past, and it has been an
evasive bugger. The one solid example i did find that went wrong 100% was in
2.0.2 and did not bug in 2.1. Since then i moved on and use filtering as a
temporal solution.
I noticed 2 phenomena:
- The pose matrix contains NaN (not a number) values.
- The pose containsvery small incorrect positional values. These values are
not (0,0,0) but close enough. The values are also constant (same matrix)
over the program execution.
The NaN currently happens less than 1% of the frames, the small inccorect
positonal values around 4%, depending on the pose of the marker.
My current solution involves filtering these results out, since the
framerate is still high enough.
------=_NextPart_000_0015_01C6B166.ACD0BF60
Content-Type: text/html;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:st1=3D"urn:schemas-microsoft-com:office:smarttags" =
xmlns=3D"http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
name=3D"place"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";
color:black;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
pre
{margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
color:black;}
span.StileMessaggioDiPostaElettronica18
{mso-style-type:personal-reply;
font-family:Arial;
color:navy;}
@p ... Section1
{size:595.3pt 841.9pt;
margin:70.85pt 2.0cm 2.0cm 2.0cm;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor=3Dwhite lang=3DIT link=3Dblue vlink=3Dpurple>
<div class=3DSection1>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
lang=3DEN-GB
style=3D'font-size:10.0pt;font-family:Arial;color:navy'>Hi,<o:p></o:p></s=
pan></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
lang=3DEN-GB
style=3D'font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p>=
</span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
lang=3DEN-GB
style=3D'font-size:10.0pt;font-family:Arial;color:navy'>I had the same =
problem
with <st1:place w:st=3D"on">NaN</st1:place> values in my matrix, I =
solved it<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
lang=3DEN-GB
style=3D'font-size:10.0pt;font-family:Arial;color:navy'>using doubles =
instead of
floats for the math (just switch on the =
_USE_DOUBLE_<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
lang=3DEN-GB
style=3D'font-size:10.0pt;font-family:Arial;color:navy'>pre-processor =
flag).<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
lang=3DEN-GB
style=3D'font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p>=
</span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
lang=3DEN-GB
style=3D'font-size:10.0pt;font-family:Arial;color:navy'>Regards,<o:p></o:=
p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
lang=3DEN-GB
style=3D'font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p>=
</span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
lang=3DEN-GB
style=3D'font-size:10.0pt;font-family:Arial;color:navy'> =
Toni<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
lang=3DEN-GB
style=3D'font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p>=
</span></font></p>
<div style=3D'border:none;border-left:solid blue 1.5pt;padding:0cm 0cm =
0cm 4.0pt'>
<p class=3DMsoNormal><font size=3D3 color=3Dblack face=3D"Times New =
Roman"><span
lang=3DEN-GB =
style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D3 color=3Dblack face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt'>Daniel Wagner wrote: =
<o:p></o:p></span></font></p>
<pre wrap=3D""><font size=3D2 color=3Dblack face=3D"Courier New"><span
style=3D'font-size:10.0pt'>Darran Edmundson =
wrote:<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'> <o:p></o:p></span></font></pre>
<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt' =
type=3Dcite><pre wrap=3D""><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>2) Frequent 'trivial' (in the mathematical =
sense) solutions. I'll be<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>getting correct tile position/orientation for =
several image frames and<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>then a (0,0,0) position with 100% =
confidence. (I take it =
confidence<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>relates to the pattern, not the pose.) =
Of course I could just choose<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>to ignore these solutions, but it makes me =
wonder if I'm doing<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>something wrong. This happens with both =
available pose estimators.<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'> =
<o:p></o:p></span></font></pre></blockquote>
<pre wrap=3D""><font size=3D2 color=3Dblack face=3D"Courier New"><span
style=3D'font-size:10.0pt'>yes, the confidence factor tells how well the =
id detection algorithm<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>worked, it's not about the =
pose.<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>can you send me a camera image that results =
in such a pose estimation?<o:p></o:p></span></font></pre>
<p class=3DMsoNormal><font size=3D3 color=3Dblack face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt'>I've been trying to pinpoint this bug in the =
past, and
it has been an evasive bugger. The one solid example i did find that =
went wrong
100% was in 2.0.2 and did not bug in 2.1. Since then i moved on and use
filtering as a temporal solution.<br>
<br>
I noticed 2 phenomena:<br>
- The pose matrix contains NaN (not a number) values.<br>
- The pose containsvery small incorrect positional values. These values =
are not
(0,0,0) but close enough. The values are also constant (same matrix) =
over the
program execution.<br>
<br>
</span></font><font color=3Dnavy><span =
style=3D'color:navy'><o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D3 color=3Dblack face=3D"Times New =
Roman"><span
lang=3DEN-GB style=3D'font-size:12.0pt'>The <st1:place =
w:st=3D"on">NaN</st1:place>
currently happens less than 1% of the frames, the small inccorect =
positonal
values around 4%, depending on the pose of the marker.<br>
</span>My current solution involves filtering these results out, since =
the
framerate is still high enough. <br>
<br>
<o:p></o:p></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
</div>
</div>
</body>
</html>
------=_NextPart_000_0015_01C6B166.ACD0BF60--
|
|||
| From: | Darran Edmundson <darran@e ............> | Received: | Jul 28, 2006 |
| To | Daniel Wagner <daniel@i ...............> | ||
| Subject: | Re: Infinite loops and 'trivial' solutions with the ARToolkitPlus? | ||
Hi Daniel (and Tijs and Toni),
Thanks for the quick reply(s). I haven't had much chance to continue
experimenting with ARToolkitPlus over the last day or so. On the
weekend though I plan to:
- try the CONT variant of the standard pose estimator
- recalibrate my camera with the Matlab toolkit
- keep searching for the problem in my use of the RPP code (see below)
A clarification. In my first post I wrote:
> 2) Frequent 'trivial' (in the mathematical sense) solutions. I'll be
> getting correct tile position/orientation for several image frames and
> then a (0,0,0) position with 100% confidence. ... This happens with
> both available pose estimators.
This was incorrect. In fact, the (0,0,0) solutions are *only* occurring
when using the RPP pose estimator. Furthermore, these solutions are
only happening when calling ARToolkitPlus from within my Ogre app. That
is, if I save the image stream that the Ogre app is using, and then play
it back to your "simple" project, the problem disappears. That's a
pretty clear sign that the problem isn't your code at all, rather my
integration (either code or compiler settings). (Tijs, I'm curious if
you see the same behaviour - i.e., save a frame that your filtering is
removing and try feeding it to the "simple" demo code?) The bizarre
thing is that my Ogre application runs perfectly by simply commenting
out the one line:
mTracker->setPoseEstimator(ARToolKitPlus::POSE_ESTIMATOR_RPP);
Arghh.
> in any case i advice to switch to a 2.1.x release. we think did fix some
> errors with the 2.1 update...
Again, my error. I am, in fact, using the 2.1.0 release.
Cheers,
Darran.
--
Darran Edmundson [darran@e ............]
Interactive visualization for museums and industry
http://www.edmstudio.com
|
|||
| From: | Darran Edmundson <darran@e ............> | Received: | Jul 31, 2006 |
| To | artoolkit@h .................. | ||
| Subject: | Re: Infinite loops and 'trivial' solutions with the ARToolkitPlus? | ||
I've spent most of the weekend trying to pin down the
bizarre behaviour I've been experiencing when using the
RPP solver in ARToolkitPlus. Behaviour that only seems
to manifest when running inside of a simple Ogre3D app.
And I've got absolutely no progress to show for it :-(
For anyone interested, I've uploaded some demonstrative
movies to http://www.edmstudio.com/ogre/rpp-problem/.
They are labelled with the returned modelview matrix
and a framenumber corresponding to the webcam image.
(Ignore the poor calibration - I'm using the calibration
file for my work camera with my home webcam - but this
is *exactly* the same behaviour seen at work.)
06G31-artkp-rpp.avi: Uses the RPP pose estimator. Raw
grayscale versions of the sequence of images seen by the
webcam are saved to disk (test%0.4d.raw) as reference
data. The "flashing" occurs when a trivial modelview
matrix is returned. For example, see frame 238. The
movie stops when the RPP estimator fails to return when
passed frame 306 (it never gets shown so the last
movie frame shows 305).
06G31-artkp-standard.avi: Uses the standard pose estimator
but the same webcam data from above. No trivial modelview
matrices returned and frame 306 doesn't lock up the standard
solver. I.e. no problems whatsoever save the increased
jitter.
06G31-artkp-rpp-repeat.avi: Rerun with the RPP solver and
the reference data. Shows repeatable behaviour.
I've uploaded the three sample frames mentioned above
(320x240x1) along with the camera calibration file.
Use these in the simple ARToolkitPlus app and you'll
find that they work fine with the RPP estimator.
This I just don't understand - I keep thinking there
is some naming conflict or compile setting issue between
the RPP portion of AGToolkitPlus and Ogre.
The code I'm running is dead simple. It's a minor
variation on:
#include "ARToolKitPlus/TrackerSingleMarkerImpl.h"
void artester(void)
{
const int width = 320, height = 240, bpp = 1;
ARToolKitPlus::TrackerSingleMarker* mTracker = new
ARToolKitPlus::TrackerSingleMarkerImpl<6, 6, 36, 1, 8>(width,height);
mTracker->init("quickcam.dat", 0.1f, 10.0f);
mTracker->setPixelFormat(ARToolKitPlus::PIXEL_FORMAT_LUM);
mTracker->setPatternWidth(0.09);
mTracker->setBorderWidth(0.125f);
mTracker->activateAutoThreshold(true);
mTracker->setUndistortionMode(ARToolKitPlus::UNDIST_LUT);
mTracker->setPoseEstimator(ARToolKitPlus::POSE_ESTIMATOR_RPP);
mTracker->setMarkerMode(ARToolKitPlus::MARKER_ID_BCH);
char* fname = "Images/test0306.raw";
if(FILE* fp = fopen(fname, "rb"))
{
size_t numPixels = width*height*bpp;
unsigned char *cameraBuffer = new unsigned char[numPixels];
size_t numBytesRead = fread(cameraBuffer, 1, numPixels, fp);
fclose(fp);
int markerId = mTracker->calc(cameraBuffer);
if( markerId != -1 )
{
float conf = (float) mTracker->getConfidence();
std::cout << "Matched marker: " << markerId << " with
confidence: " << int(conf*100.0f) << std::endl;
std::cout << " ";
for(int i=0; i<16; i++)
printf("%.3f %s", mTracker->getModelViewMatrix()[i],
(i%4==3)?"\n " : "");
}
}
}
Configuration is ARToolkitPlus 2.1.1, Ogre 1.2 SDK or 1.2.2 source
(doesn't matter, same result), XP, VS Express 2005. It's 2am
here - time for sleep. Any ideas what might be causing the RPP
estimator to give these strange results?
Cheers,
Darran.
P.S. It is probably unrelated but I've been unable to compile
my code in the Ogre solution's debug mode. I get:
1>C:\Packages\ARToolkitPlus\include\ARToolKitPlus/vector.h(62) : error
C2143: syntax error : missing ';' before '.'
1>C:\Packages\ARToolkitPlus\include\ARToolKitPlus/vector.h(62) : error
C2761: 'Ogre::MemoryManager &Ogre::MemoryManager::instance(void)' :
member function redeclaration not allowed
...
namespace Vector {
static ARVec *alloc( int clm );
static int free( ARVec *v ); <<<<<< line 62
// static int disp( ARVec *v );
static ARFloat household( ARVec *x );
static ARFloat innerproduct( ARVec *x, ARVec *y );
static int tridiagonalize( ARMat *a, ARVec *d, ARVec *e );
}
|
|||
| From: | "Antonio Bleile" <antonio.bleile@s ........> | Received: | Jul 31, 2006 |
| To | <artoolkit@h ..................> | ||
| Subject: | RE: Infinite loops and 'trivial' solutions with the ARToolkitPlus? | ||
Hi, have you tried to compile with _USE_DOUBLE_ ? Cheers, Antonio > -----Original Message----- > From: owner-artoolkit@h .................. [mailto:owner- > artoolkit@h ..................] On Behalf Of Darran Edmundson > Sent: Monday, July 31, 2006 10:28 AM > To: artoolkit@h .................. > Subject: Re: Infinite loops and 'trivial' solutions with the > ARToolkitPlus? > > > [...] |
|||
| From: | Daniel Wagner <daniel@i ...............> | Received: | Jul 31, 2006 |
| To | artoolkit@h .................. | ||
| Subject: | Re: Infinite loops and 'trivial' solutions with the ARToolkitPlus? | ||
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Antonio Bleile wrote: > have you tried to compile with _USE_DOUBLE_ ? _USE_DOUBLE_ shouldn't really make a difference since the RPP pose estimator is always compiled with double (at least in the latest versions). see src/librpp/rpp_types.h for that. Daniel -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFEzdUSQVW9sHd65aQRAgIjAJ9UIR5ev8mVpceWvE8UAMHenGTw7wCfcQ7z 4+FvqkKUd8ZRtxCMhgTFay8= =1fk/ -----END PGP SIGNATURE----- |
|||
| From: | Darran Edmundson <darran@e ............> | Received: | Aug 4, 2006 |
| To | artoolkit@h .................. | ||
| Subject: | Re: Infinite loops and 'trivial' solutions with the ARToolkitPlus? | ||
Daniel Wagner wrote:
> Antonio Bleile wrote:
>> have you tried to compile with _USE_DOUBLE_ ?
> _USE_DOUBLE_ shouldn't really make a difference since the RPP pose
> estimator is always compiled with double (at least in the latest
> versions). see src/librpp/rpp_types.h for that.
Captain Nemo to the rescue:
http://www.ogre3d.org/phpBB2/viewtopic.php?p=167249#167249
"The ARToolkit uses double precision numbers. But DirectX changes all
floating point calculations to single precision, unless you specify a
special flag. If you start Ogre with "Floating point mode: fastest" (the
default), this flag is not set. So, on the Ogre setup screen, change
"Floating point mode" to "consistent" and everything works."
After 20+ hours of fruitless debugging, I am *so* glad to see this
working. We are really looking forward to using Ogre with ARToolkitPlus ...
Thanks everyone (especially Thomas) for helping to isolate and resolve
the problem.
Cheers,
Darran.
--
Darran Edmundson [darran@e ............]
Interactive visualization for museums and industry
http://www.edmstudio.com
|
|||