Using the calibration file
On the ROS calibration procedure, when we click the commit button, the node write a file to the ~/.ros/camera_info, with the name of the camera.
As far as i know today we may control the name of the camera adding the following code (need to check)
<param name="camera_name" value="vx800_camera" />
Depois de o ficheiro estar gravado, podemos fazer uma cópia do ficheiro para um pacote do ROS, de modo a que o possamos usar mais tarde, e ao mesmo tempo não correr o risco de perder o ficheiro por sobreposição de um ficheiro de calibração de outra camera com o mesmo nome.
Para isso deveremos acrescentar as seguintes linhas ao ficheiro launch que usamos para lançar o node com o driver da usb_cam.
<param name="camera_info_url" value="file:///$(find sibot_video)/camera/ms_vx800_camera.yaml" /> <param name="camera_name" value="vx800_camera" />
Globalmente o ficheiro deverá ficar parecido com este, substituindo os nomes e topicos pelos que forem apropriados.
<launch> <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" > <param name="video_device" value="/dev/video2" /> <param name="image_width" value="640" /> <param name="image_height" value="480" /> <param name="pixel_format" value="yuyv" /> <param name="camera_frame_id" value="usb_cam" /> <param name="io_method" value="mmap"/> <param name="camera_info_url" value="file:///$(find sibot_video)/camera/ms_vx800_camera.yaml" /> <param name="camera_name" value="vx800_camera" /> </node> <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen"> <remap from="image" to="/usb_cam/image_raw"/> <param name="autosize" value="true" /> </node> </launch>
Quando o node é lançado com estas informações estas são usadas para preencher o tópico: camera/camera_info
ROS_NAMESPACE=usb_cam rosrun image_proc image_proc
On a launch file we may use the following code to launch the image_proc node.
<node name="image_proc" pkg="image_proc" type="image_proc" ns="usb_cam"/>
http://wiki.ros.org/image_proc