I've been searching the internet for an answer to this question, but I haven't come across anything that will help me. Basically, we have a Meka Humanoid Robot in our lab, which has a shell head in which a PointGrey USB 3.0 camera is embedded. I use the pointgrey_camera_driver for obtaining the images from the camera. The head has 2 degrees of freedom (up/down, left/right). I am intending to use this camera with the ar_pose package to detect and track AR tags on objects. I understand that camera's must be calibrated for effective use (forgive me, I don't know much about camera) which I do with the camera_calibration package.
My question is: Since this camera is "mobile" meaning since the head can move so does the camera, how would I go about calibrating it? Currently, I have the head fixed at a position and I've calibrated the camera in that position and got the parameters in the yaml file which I can load for rectification. In particular, if the head moves does the calibration file that I obtained in the previous position become invalid? If so, as asked before, how would I calibrate this camera for all of its possible field's of view (which can be obtained by moving)?
This camera has different video modes and in the mode I'm using I can get a frame rate of 21Hz (i.e. after driver is launched I get 21Hz for rostopic hz /camera/image_raw). However, when I rectify the image using image_proc, I get a frame rate of only about 3Hz on rostopic hz /camera/image_rect_color. Is this normal? Is there a way for me to increase this frame rate?
Please let me know if any more information is required. Thanks for your help!