码迷,mamicode.com
首页 > 其他好文 > 详细

ros下单目相机校正

时间:2015-07-05 15:10:37      阅读:1729      评论:0      收藏:0      [点我收藏+]

标签:

1. 安装相应的驱动与程序包。

    图像相应包   http://wiki.ros.org/camera_calibration          在gitbub下载image_pipeline :      https://github.com/ros-perception/image_pipeline 

    安装相应的驱动 

        1)uvc_camera          /camera_umd                   sudo apt-get install ros-indigo-xxxxx     (      camera_umd     jpeg_streamer  uvc_camera  )

        2)usb_cam          http://wiki.ros.org/usb_cam             /usb_cam

2. 相机校正的步骤

    1)  启动相机  uvc_camera  或者   usb_cam

         roslaunch usb_cam camera.launch           (个人的  camera.launch)  rviz 具体文件见后。(也可以自己先打开rviz 添加topic后保存,以后直接调用保存的.rviz即可)

camera.launch

<launch>
	<node pkg="rviz" type="rviz" name="rviz" 
		args="-d $(find usb_cam)/launch/camera.rviz"/>		

	<node name="usb_cam" pkg="usb_cam" type="usb_cam_node" respawn="false" output="log">
		<param name="video_device" type="string" value="/dev/video0"/>
		<param name="camera_frame_id" type="string" value="usb_cam"/>
		<param name="framerate" type="int" value="30"/>
		<param name="io_method" type="string" value="mmap"/>
		<param name="image_width" type="int" value="640"/>
		<param name="image_height" type="int" value="480"/>
		<param name="pixel_format" type="string" value="yuyv"/>
	</node>
</launch>

    2) 启动校正程序

        参见教程    http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration

yhzhao@yhzhao:~$ rostopic list
/usb_cam/camera_info
/usb_cam/image_raw     ################################
/usb_cam/image_raw/compressed 
/usb_cam/image_raw/compressed/parameter_descriptions
/usb_cam/image_raw/compressed/parameter_updates
/usb_cam/image_raw/compressedDepth


rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.0245 image:=/usb_cam/image_raw camera:=/camera

出错:如下
(‘Waiting for service‘, ‘/camera/set_camera_info‘, ‘...‘)
Service not found

运行如下语句: 角点数 棋盘格大小  topic映射
 rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.0245 image:=/usb_cam/image_raw camera:=/camera --no-service-check

注意:校正采集的角点图像要多,数量达到一定效果时,calibration 按钮会变亮,点击即可进行校正运算,结果在终端有显示,也可以选择保存。

校正输出结果:

('D = ', [-0.1976212648687889, 0.1688022413942262, 0.0124442419926021, 0.005870906198680583, 0.0])
('K = ', [485.5897704187133, 0.0, 297.2537641560215, 0.0, 491.6813624489518, 296.2003190013238, 0.0, 0.0, 1.0])
('R = ', [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0])
('P = ', [462.4408874511719, 0.0, 301.47298442859574, 0.0, 0.0, 469.7864074707031, 301.54598383033044, 0.0, 0.0, 0.0, 1.0, 0.0])
None
# oST version 5.0 parameters


[image]

width
640

height
480

[narrow_stereo]

camera matrix
485.589770 0.000000 297.253764
0.000000 491.681362 296.200319
0.000000 0.000000 1.000000

distortion
-0.197621 0.168802 0.012444 0.005871 0.000000

rectification
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000

projection
462.440887 0.000000 301.472984 0.000000
0.000000 469.786407 301.545984 0.000000
0.000000 0.000000 1.000000 0.000000



3. 启动 ros 相机对应节点发布图像topic

            carmera_haved_calibrated.launch

<launch>
	<node pkg="rviz" type="rviz" name="rviz" 
		args="-d $(find usb_cam)/launch/camera.rviz"/>		

	<node name="usb_cam" pkg="usb_cam" type="usb_cam_node" respawn="false" output="log">
		<param name="video_device" type="string" value="/dev/video0"/>
		<param name="camera_frame_id" type="string" value="usb_cam"/>
		<param name="io_method" type="string" value="mmap"/>
		<param name="image_width" type="int" value="640"/>
		<param name="image_height" type="int" value="480"/>
		<param name="pixel_format" type="string" value="yuyv"/>
		<rosparam param="D">[-0.1976212648687889, 0.1688022413942262, 0.0124442419926021, 0.005870906198680583, 0.0]</rosparam>
		<rosparam param="K">[485.5897704187133, 0.0, 297.2537641560215, 0.0, 491.6813624489518, 296.2003190013238, 0.0, 0.0, 1.0]</rosparam>
		<rosparam param="R">[1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]</rosparam>
		<rosparam param="P">[462.4408874511719, 0.0, 301.47298442859574, 0.0, 0.0, 469.7864074707031, 301.54598383033044, 0.0, 0.0, 0.0, 1.0, 0.0]</rosparam>
	</node>
</launch>


 

------------------------------------------------------------附--------------------------------------------------------------------------------------------------------------------------------------
<pre name="code" class="html">$(find usb_cam)/launch/camera.rviz文件

Panels: - Class: rviz/Displays Help Height: 78 Name: Displays Property Tree Widget: Expanded: ~ Splitter Ratio: 0.5 Tree Height: 144 - Class: rviz/Selection Name: Selection - Class: rviz/Tool Properties Expanded: - /2D Pose Estimate1 - /2D Nav Goal1 - /Publish Point1 Name: Tool Properties Splitter Ratio: 0.588679 - Class: rviz/Views Expanded: - /Current View1 Name: Views Splitter Ratio: 0.5 - Class: rviz/Time Experimental: false Name: Time SyncMode: 0 SyncSource: ImageVisualization Manager: Class: "" Displays: - Alpha: 0.5 Cell Size: 1 Class: rviz/Grid Color: 160; 160; 164 Enabled: true Line Style: Line Width: 0.03 Value: Lines Name: Grid Normal Cell Count: 0 Offset: X: 0 Y: 0 Z: 0 Plane: XY Plane Cell Count: 10 Reference Frame: <Fixed Frame> Value: true - Class: rviz/Image Enabled: true Image Topic: /usb_cam/image_raw Max Value: 1 Median window: 5 Min Value: 0 Name: Image Normalize Range: true Queue Size: 2 Transport Hint: raw Value: true - Class: rviz/Image Enabled: true Image Topic: /slam/raw_flip_image Max Value: 1 Median window: 5 Min Value: 0 Name: Image Normalize Range: true Queue Size: 2 Transport Hint: raw Value: true - Class: rviz/Image Enabled: true Image Topic: /detect_qr/qr_img Max Value: 1 Median window: 5 Min Value: 0 Name: Image Normalize Range: true Queue Size: 2 Transport Hint: raw Value: true - Class: rviz/Image Enabled: true Image Topic: /slam/qrslam/slam_map Max Value: 1 Median window: 5 Min Value: 0 Name: Image Normalize Range: true Queue Size: 2 Transport Hint: raw Value: true Enabled: true Global Options: Background Color: 48; 48; 48 Fixed Frame: odom Frame Rate: 30 Name: root Tools: - Class: rviz/Interact Hide Inactive Objects: true - Class: rviz/MoveCamera - Class: rviz/Select - Class: rviz/FocusCamera - Class: rviz/Measure - Class: rviz/SetInitialPose Topic: /initialpose - Class: rviz/SetGoal Topic: /move_base_simple/goal - Class: rviz/PublishPoint Single click: true Topic: /clicked_point Value: true Views: Current: Class: rviz/Orbit Distance: 15.7352 Enable Stereo Rendering: Stereo Eye Separation: 0.06 Stereo Focal Distance: 1 Swap Stereo Eyes: false Value: false Focal Point: X: 0 Y: 0 Z: 0 Name: Current View Near Clip Distance: 0.01 Pitch: 0.825398 Target Frame: <Fixed Frame> Value: Orbit (rviz) Yaw: 1.5604 Saved: ~Window Geometry: Displays: collapsed: false Height: 718 Hide Left Dock: false Hide Right Dock: false Image: collapsed: false QMainWindow State: 000000ff00000000fd00000004000000000000039d00000247fc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006400fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afc000000280000011f000000dd00fffffffa000000010100000002fb0000000a0049006d00610067006502000007ce000001680000073200000279fb000000100044006900730070006c00610079007301000000000000039d0000010f00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d006100670065010000014d000001220000001600ffffff000000010000037600000247fc0200000005fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000028000000b0000000b000fffffffb0000000a0049006d00610067006501000000de000000c60000001600fffffffb0000000a0049006d00610067006501000001aa000000c50000001600fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b2000000000000000000000002000004b0000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000073f0000003bfc0100000002fb0000000800540069006d006501000000000000073f000002f600fffffffb0000000800540069006d00650100000000000004500000000000000000000000200000024700000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 Selection: collapsed: false Time: collapsed: false Tool Properties: collapsed: false Views: collapsed: false Width: 1855 X: 90 Y: 153


版权声明:本文为博主原创文章,未经博主允许不得转载。

ros下单目相机校正

标签:

原文地址:http://blog.csdn.net/zyh821351004/article/details/46762295

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!