Fiducial Questions
from United States  [60 posts]
10 year
 Hi STeven, Wrestling with the understanding the details of the outputs from the fiducial module. I am working with a Microsoft WebCam, the Studio model, I believe. It is one of the latest cylindrical models. I working with the hallway fiducial. I printed an 8 cm square version of it. I calibrated FoV and entered the Physical Fiducial Size. Distance reads within a couple centimeters, so that is well. I assumed that the size is the size of the outer black square. == Fiducial Size == The Size output is 18 which seems wrong. The GIF is 2 cm and my image 8 cm. I would expect the size to be 8. As long as distance is good I may not need this but it would be a nice check on the distance to the fiducial == X Rotation == I finally figured this out. I think your documentation is misleading. You state: X Rotation - the rotation in the X axis of the fiducial (pan) The term "pan' threw me way off. I finally thought through the axis and realized that it is the angle created by moving the top forward or backward. I would call that tilt based on the servo control of pan/tilt mechanisms for cameras. == As you might expect, I am trying to guide the robot to a point directly in front of a fiducial and a certain distance away. The X_TRANS tells me one part of the path to follow to get to the fiducial. The Y_ROTATION tells me whether the rover is heading directly toward the fiducial or approaching from an angle. Have I got that right? Fair warning: questions will be coming fast and furious as this project reaches the final stages. Thanks, Rud
from United States  [60 posts] 10 year
 I was working with the Y_ROTATION, i.e. moving the sides of the fiducial toward or away. The movements are from the perspective of the camera, i.e. looking at the fiducial. When I move the right edge toward the camera the angle increases from 0 to 30-40 degrees. When I move the left edge toward the camera the number jumps to 359 and starts to decrease. Around 344 the number jumps to 9. It flickers between 344 and 9. Continue the rotation and it settles aournd 10 degrees and then continues to increase. (The X_ROTATION works fine. Increasing when tipped back and decreasing from 360 when tipped forward.) Thanks, Rud
Steven Gentner from United States  [1446 posts] 10 year
 Rud, Could you include an image for both issues? I.e. when the size reads incorrectly and when the angle flickers between 344 and 9? This will ensure that we are looking at the right issue. In terms of localizing your robot in front of a fiducial the trans information may or may not be correct for you. If you are looking to place the robot pointing towards the fiducial from a set distance (i.e. anywhere on a circle of X distance from the fiducial) then that will work. If however, you are looking to place the robot in spot Y that is located X distance from the fiducial then you will have to take into account the rotation of the fiducial in the Y (now corrected to Pan) direction. So its a question of how accurate you need to be. The Target Localization module was built with that precise localization in mind and takes into account the Y axis when determining where your robot  is relative to the target/fiducial. STeven.
from United States  [60 posts] 10 year
 I am using RR fiducials renamed. The fiducials directory and the ROBO are in the uploaded zip file. I was looking at the fiducials with a webcam on a pan/tilt. If you put the fiducial near where it is not recognized and pan the camera the recognition will come and go. This is the clearest time it does this. Since the image has only shifted why does the recognition get lost. This also happens when the camera is closer to the image. The Y_ROTATION issue should appear with these, also. I have video but it is too large to upload. A question: How do you handle determine distance given different size images. One image is 8x8 and the other 16x16. The GIFs are both 2x2. The module only allows one physical size. Is the ratio of the size of the GIF to the physical image a main determinant in calculating distance? Would a 4x4 GIF work with 16x16 the same as a 2x2 with and 8x8? RRSubmit.zip
Steven Gentner from United States  [1446 posts] 10 year
 Rud, Sorry for not being clear, we don't need the images of the fiducial templates, what we need are the actual raw images you see in the camera that is causing those issues. I.e. hold up the fiducial in front of a camera, snap that picture and sent it to us (assuming its values are being incorrectly reported). For example, one of the image would be when the fiducial is really near the camera and causing the loss of recognition. The reason for this is for us to see what it is about the image that is causing this loss. Also for the Y_ROTATION issue, we need to see the lighting, background, shading, etc. that may be contributing to this mistaken rotation. Its all about real images which include the noise that is naturally present in the environment. Thanks, STeven.
from United States  [60 posts] 10 year
 Took a day to get things setup for capturing this. The snaps labeled 'frame' are from an AVI I captured. Frame299 shows a rotation from the right of the camera. The angle is 37.xx degrees. The next frame, 300, shows an angle of 319.xxx degrees. I think this is the correct value. Another frame shows a rotation to the left with a rotation of 12.xxx. Again, think this is correct. That is the left rotation is from 0 up; right rotation 359 down. Actual images the rotate_right.    RRSubmit.zip
from United States  [60 posts] 10 year
 How do you handle determine distance given different size images? One image is 8x8 and the other 16x16. The GIFs are both 2x2. The module only allows one physical size. Is the ratio of the size of the GIF to the physical image a main determinant in calculating distance? Would a 4x4 GIF work with 16x16 the same as a 2x2 with and 8x8?
Steven Gentner from United States  [1446 posts] 10 year
 Rud, We see your images, but could you also post the raw images without any green outlining? The tests don't work with these annotated images. I think we know what the problem is but can't verify that your issue is resolved. The distance of the fiducials are based on the pixel dimension of the fiducial currently being recognized, the field of view and how large the actual physical fiducial should be. If you need to use more than one physical fiducial size as you have in your home beacon, you'd need to use 2 Fiducial modules. To ease performance, break the Fiducial folder into large and small so that each module only needs to process for just its fiducials. You can use the same folder for both but that would require processing for fiducials that you know you are not interested in so its best to break into two. We also detected an issue with writing the fiducial database in that folder ... typically Win7 will not allow this (we added an alert) so be sure to move the folder to somewhere that the roborealm.fiducial can be updated. STeven.
from United States  [60 posts] 10 year
 Fortunately still had it setup. Hopefully this will show the problem.

 This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.