ROS下的openni2.launch

一、openni_camera

1.openni_camera:

OpenNI摄像机在ROS下的驱动,可以发出原始的depth、RGB、IR图像流。

OpenNI摄像包括: Microsoft Kinect, PrimeSense PSDK, ASUS Xtion Pro、Pro Live。

这是最简化的驱动程序,节点只可以发送原始数据。因此推荐使用openni2_launch安装包, 因为其中包含了对RGB-D数据的进一步处理。

 

Ubuntu下的安装:

sudo apt-get install ros--openni2-camera

或者

sudo apt-get install ros--openni2-launch

 

2.openni2_node发布的话题:

(1)RGB camera:

rgb/camera_info(sensor_msgs/CameraInfo)//相机的校准和元数据

rgb/image_raw (sensor_msgs/Image)    //来自于设备的原始数据

 

(2)Depth camera:

   depth_registration为false(关闭OpenNI registration)时:

  depth/camera_info (sensor_msgs/CameraInfo)//相机的校准和元数据

  depth/image_raw (sensor_msgs/Image) //来自于设备的原始数据,毫米表示的uint16格式深度数据。  

  Registered depth camera (aligned with RGB camera),depth_registration为true(使能OpenNI registration):

  depth_registered/camera_info (sensor_msgs/CameraInfo)//相机的校准和元数据,与depth_registered/image_raw同步。

  depth_registered/image_raw (sensor_msgs/Image)//来自于设备配准后的原始数据,毫米表示的uint16格式深度数据。

(3)IR camera:

ir/camera_info (sensor_msgs/CameraInfo) /相机的校准和元数据

ir/image_raw (sensor_msgs/Image)  //原始的uint16 IR image

(4)IR projector:

  projector/camera_info (sensor_msgs/CameraInfo)

  伪造IR projector的校准,基准以P矩阵形式编码,立体进程节点可以使用depth和projector信息作为左右对。

 

3.服务:

rgb/set_camera_info (sensor_msgs/SetCameraInfo) //设置RGB camera校准

ir/set_camera_info (sensor_msgs/SetCameraInfo)//设置IR camera校准

 

4.参数:

(1)~device_id (string, default: #1)

    指定打开的设备,推荐以下格式:

    #1 :发现的第一个设备使用该编号。

    2@3 :USB总线2,地址为3。

    B00367707227042B:设备的序列名。

(2)~rgb_frame_id(string, default: /openni_rgb_optical_frame)

    RGB camera 的 tf 坐标系。

(3)~depth_frame_id(string,default:/openni_depth_optical_frame)      

   IR/depth camera 的 tf 坐标系。

(4)~rgb_camera_info_url(string,default:file://${ROS_HOME}/

camera_info/${NAME}.yaml)

    RGB camera的校准文件URL.

(5)~time_out (double)//数据流刷新超时

 

5.动态可重组参数:

(1)~image_mode (int, default: 2)

    color/grayscale image的输出模式,包括:

   SXGA_15Hz (1): 1280x1024@15Hz, 

   VGA_30Hz (2): 640x480@30Hz, 

   VGA_25Hz (3): 640x480@25Hz, 

   QVGA_25Hz (4): 320x240@25Hz, 

   QVGA_30Hz (5): 320x240@30Hz, 

   QVGA_60Hz (6): 320x240@60Hz, 

   QQVGA_25Hz (7): 160x120@25Hz, 

   QQVGA_30Hz (8): 160x120@30Hz, 

   QQVGA_60Hz (9): 160x120@60Hz

(2)~depth_mode (int, default: 2)

   depth image的输出模式,包括:

   SXGA_15Hz (1): 1280x1024@15Hz, 

   VGA_30Hz (2): 640x480@30Hz, 

   VGA_25Hz (3): 640x480@25Hz, 

   QVGA_25Hz (4): 320x240@25Hz,

   QVGA_30Hz (5): 320x240@30Hz, 

   QVGA_60Hz (6): 320x240@60Hz,

   QQVGA_25Hz (7): 160x120@25Hz, 

   QQVGA_30Hz (8): 160x120@30Hz,

   QQVGA_60Hz (9): 160x120@60Hz

(3)~depth_registration (bool, default: False)

      深度数据校准。

(4)~data_skip (int, default: 0)

     每隔N幅图像发送一幅。(rgb/depth/depth_registered/ir) N: 0 to 10

 (5)~depth_time_offset (double, default: 0.0)

    深度图像时间偏移量,单位:s. Range: -1.0 to 1.0

 (6)~image_time_offset (double, default: 0.0)

    image图像时间偏移量,单位:s. Range: -1.0 to 1.0

 (7)~depth_ir_offset_x (double, default: 5.0)

    X offset between IR and depth images Range: -10.0 to 10.0

 (8)~depth_ir_offset_y (double, default: 4.0)

    Y offset between IR and depth images Range: -10.0 to 10.0

(9)~z_offset_mm (int, default: 0)

    Z offset in mm Range: -50 to 50

 

6.openni_camera/driver nodelet和openni_node具有相同的参数。

 

二、rgbd_launch:

打开RGBD设备的launch文件,载入的节点将原始的depth/RGB/IR图像流转变成了

depth图像, disparity图像 and (registered) point clouds。

 

1.rgbd_launch包含了驱动安装包openni_launch或  freenect_launch需要的通用launch文件。

 

主要有两个重要的launch文件:

(1)processing.launch.xml:安装一系列nodelets去处理来自RGB-D driver(openni_camera or freenect_camera)

     的数据,还可以设定参数简化处理nodelets图像。

(2)kinect_frames.launch:为 Kinect安装tf tree。也可以从openni_launch or freenect_launch内部启动该文件。

 

2.rgbd_launch文件包含多个分散处理的launch文件。但只有 processing.launch.xml可以在外部修改使用。

 

processing.launch.xml参数:

(1)rgb_processing (bool, default: true)

     安装产生原始和校准的单色及多彩图像的nodelets。

     给出了来自RGB-D驱动的Bayer编码的rgb/image_raw topic。

     产生了rgb/image_mono, rgb/image_rect_mono, rgb/image_color和rgb/image_rect_color话题。

(2)debayer_processing (bool, default: true)

     设置为true说明rgb_processing=true,设置为false会导致rgb_processing只产生rgb/image_rect_color。

(3)ir_processing (bool, default: true)

设置为true,校准 IR image(ir/image_raw -> ir/image_rect_raw)

(4)depth_processing (bool, default: true)

     给出原始的深度数据并校准。

     将原始的和校准的图像数据转变为标准的格式(uint16 -> float),产生一个点云。

需要depth/image_raw,产生depth/image_rect_raw (rectified), depth/image (metric), depth/image_rect (rectified, metric), depth/points (pointcloud).

(5)depth_registered_processing (bool, default: true)

     产生深度和RGB配准的RGBD点云。

     点云的生成有两种方式:

     软件配准管线(要求:sw_registered_processing = true,

     depth_processing = true,depth_registration = false)。 

     硬件配准管线(要求:hw_registered_processing = true, 

                       depth_registration = true)

(6)disparity_processing (bool, default: true)

     由未校准的深度数据生成disparity图像。

     将depth/image_rect_raw and projector/camera_info转换成depth/disparity。

(7)sw_registered_processing (bool, default: true)

     软件管线配准处理: depth/image_rect_raw

->depth_registered/sw_registered/image_rect_raw(registered)

->depth_registered/points AND  depth_registered/disparity.

(8)hw_registered_processing (bool, default: true)

     硬件管线配准处理:

depth/image_raw->depth_registered/hw_registered/image_rect_raw(rectified)-> depth_registered/points 和 depth_registered/disparity.

 

重映射:

(1)rgb (string, default: rgb)

     重映射rgb命名空间。

(2)ir (string, default: ir)

     重映射ir命名空间。

(3)depth (string, default: depth)

     重映射depth命名空间。

(4)depth_registered (string, default: depth_registered)

     重映射depth_registered命名空间。

(5)projector (string, default: projector)

     重映射projector命名空间。

三、openni2.launch

主要是对rgbd_launch和openni_camera的包装。


 
 
 
 

 
 

 
 
 

 
 

 
 
 
 

 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 

 
 

 
 
 
  
  
  
  
    
    
    
  

   
   
      file="$(find openni2_launch)/launch/includes/device.launch.xml">
     
     
     
     
     
     
     
     
     
     
     
     
     
     
   

   
   
     
     
     
     
     
     
     
     
     
     
     
     
     
     
   

 

 
 
    file="$(find rgbd_launch)/launch/kinect_frames.launch">
   
 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 


 

转载于:https://my.oschina.net/sunzhiming/blog/408474

你可能感兴趣的:(ROS下的openni2.launch)