ROS 摄像头的使用

参考:

​ youtube@Articulated Robotics

​ 作者@Josh Newans博客

建议:
这个只是我的看法,强烈建议看原视频或博客

png:无损压缩

jpeg:有损压缩

  • Driver Node

    负责连接硬件设备,读取摄像头数据"image_raw"(这里的raw指的是未压缩的图片,而不是raw格式的图片),并发布到指定话题"sensor_msgs/Image",

    如果是需要压缩的图像数据"image_raw/compressed",则发布到"sensor_msgs/CompressdImage",

    二者通过 image_transport library/nodes可以互相转换

  • 坐标系

    ROS 摄像头的使用_第1张图片

    • 在ROS中,机身的坐标系为左图,一般为camera_link,而图片坐标系则为camera_link_optical,两个坐标系的x,y,z轴是不同的。

    • 在实际使用时,urdf?创建的是两帧(frame),实际数据是一样的,但是图片坐标系是机身坐标系翻转(rotate)得到的。

    • camera_link_optical需要在header中声明这一帧是optical frame。

  • 修改 .xacro文件

    这里添加了 翻转

    <joint name="camera_optical_joint" type="fixed">
        
        <origin xyz="0 0 0" rpy="${-pi/2} 0 ${-pi/2}" />
        
        <parent link="camera_link" />
        <child link="camera_link_optical" />
    joint>
    
    <link name="camera_link_optical">link>
    
    
    <camera>
        
        <horizontal_fov>1.089horizontal_fov>
        
        <image>
            <format>R8G8B8format>
            <width>640width>
            <height>480height>
        image>
        
        <clip>
            <near>0.05near>
            <far>8.0far>
        clip>
    camera>
    
    
    <plugin name="camera_controller" filename="libgazebo_ros_camera.so">
        <frame_name>camera_link_opticalframe_name>
    plugin>
    

你可能感兴趣的:(ros)