ROS——关于摄像头在gazebo的仿真

1. 前言

本文旨在实现摄像头在gazebo的仿真
实现具体流程为:
照相机在rviz的显示——>添加摄像头在gazebo的外观属性——>添加gazebo提供的摄像头插件

2. 照相机在rviz的简单示意

创建名为usb_camera.xacro的文件,用于表示摄像头本体
关于xacro文件的具体含义,可以浏览该文章:ROS——xacro文件解读




    
    
         
    

    
         
    

    
    

    
       
            
                
                
                
                
            
            
                
                
                    
                
                
            

            
                
                
                    
                
            

       

       
            
            
             
       

       
            
                
                
                
            

            
                
                
                    
                
                
            

            
                
                
                    
                
            

        
    

设置摄像头为box杆件,是最为简单的示意图
通过将不同模块(诸如摄像头,kinetic等)写成相应的xacro文件,并利用总xacro文件引用这些模块,方便后期进行机器人模块组装和修改
创建名为robot.xacro文件,其引用usb_camera.xacro文件:




    
    

创建名为display的launch文件加载robot.xacro。在本文即加载摄像头:



    
    
    
    
    
    
    

rivz显示的图像如下:
ROS——关于摄像头在gazebo的仿真_第1张图片

3. 为摄像头添加gazebo的外观属性

要让杆件在gazebo有外观属性,必须在xacro文件中添加gazebo的material标签
具体形式如下:


    Gazebo/颜色

因此,usb_camera.xacro文件修改为如下:




    
    
         
    

    
         
    

    
    

    
       
            
                
                
                
                   
       
            
                
                
                    
                
                
            

            
                
                
                    
                
            

       
       
       
            Gazebo/White
       
       
       
            
            
             
       

       
            
                
                
                
            

            
                
                
                    
                
                
            

            
                
                
                    
                
            
        
        
        
            Gazebo/Black
          
    
    

上述所创建display.launch是在rviz中显示,为使摄像头能在gazebo显示,需修改对应内容,如下所示:



    
    

    
     

    
    

    
    

    
     

gazebo显示的图像如下:
ROS——关于摄像头在gazebo的仿真_第2张图片

4. 为xacro文件添加摄像头插件

截至到目前为止,camera杆件只是一个示意图
gazebo提供了摄像头插件,能够使camera杆件进行摄像等功能
示例插件代码如下:


    
        30.0
        
            1.3962634
            
                800
                800
                R8G8B8
            
            
                0.02
                300
            
            
                gaussian
                0.0
                0.007
            
        
        
            true
            0.0
            /camera
            image_raw
            camera_info
            usb_camera_link
            0.07
            0.0
            0.0
            0.0
            0.0
            0.0
        
    

4.1 传感器的类型和名字


...

由于模拟摄像头,故类型为“camera”
“name"的名字必须是唯一

4.2 图片更新的最大频率

****

4.3 摄像头的具体配置

****

  ****
  ****
  ****


  ****
  ****

4.4 链接到gazebo提供的摄像头插件


...

4.4.1 指定插件发布的话题名称

camera
image_raw
camera_info

指定/camera/image_raw是摄像头发布的图像主题话题名称
指定/camera/camera_info是摄像头发布的图像信息话题名称
(名称无强制要求,可修改)

4.4.2 为图像指定坐标系

杆件名

指定是基于哪个杆件坐标系发布的图像
因此,在usb_camera.xacro文件引用摄像头插件,修改得到:




    
    
         
    

    
         
    

    
    

    
       
            
                
                
                
                   
       
            
                
                
                    
                
                
            

            
                
                
                    
                
            

       
       
       
            Gazebo/White
       
       
       
            
            
             
       

       
            
                
                
                
            

            
                
                
                    
                
                
            

            
                
                
                    
                
            
        
        
        
            Gazebo/Black
          
        
        
            
                30.0
                
                    1.3962634
                    
                        800
                        800
                        R8G8B8
                    
                    
                        0.02
                        300
                    
                    
                        gaussian
                        0.0
                        0.007
                    
                
                
                    true
                    0.0
                    /camera
                    image_raw
                    camera_info
                    usb_camera_link
                    0.07
                    0.0
                    0.0
                    0.0
                    0.0
                    0.0
                
            
          
    

运行display.launch文件加载robot.xacro
运行命令rostopic list,查看当前发布的话题,可以看到话题/camera/image_raw被发布
运行命令rqt_image_view订阅话题/camera/image_raw,可以看到摄像头拍摄的图像
由于暂时环境为空,所以显示灰色
后期可通过添加gazebo环境来体现摄像头的功能

你可能感兴趣的:(机器人,自动驾驶)