Advertisement

ROS下多个kinect在一台电脑上同时运行

阅读量:

运行环境:kinect V1,ubuntu14.04,ROS indigo,台式机(具备2个以上USB BUS,不是PORT)

课题要求在一个台式电脑上同时支持两个Kinect设备运行,并参考了已有的解决方案。但在实际调试过程中遇到了一些挑战,并针对性地进行了若干调整和优化工作。

首先,需要自己写一个launch文件,test.launch(文件名自定):

复制代码
 <launch>

    
 <!-- Parameters possible to change-->
    
 <arg name="camera1_id" default="#1" /><!--here you can change 1@0 by the serial number -->
    
 <arg name="camera2_id" default="#2" /><!--here you can change 2@0 by the  number -->
    
 <!--arg name="camera1_id" default="B00366600710131B" /--><!--here you can change 1@0 by the serial number -->
    
 <!--arg name="camera2_id" default="B00364210621048B" /--><!--here you can change 2@0 by the serial number -->
    
 <!--arg name="camera3_id" default="#3" /--><!--here you can change 3@0 by the serial number -->
    
 <arg name="depth_registration" default="true"/>
    
  
    
 <!-- Default parameters-->
    
 <arg name="camera1_name" default="kinect1" />
    
 <arg name="camera2_name" default="kinect2" />
    
 <!--arg name="camera3_name" default="kinect3" /-->
    
  
    
 <!-- Putting the time back to realtime-->
    
 <rosparam>
    
 /use_sim_time : false
    
 </rosparam>
    
  
    
 <!-- Launching first kinect-->
    
 <include file="$(find openni_launch)/launch/openni.launch">
    
 <arg name="device_id" value="$(arg camera1_id)"/>
    
 <arg name="camera" value="$(arg camera1_name)"/>
    
 <arg name="depth_registration" value="$(arg depth_registration)" />
    
  
    
 <node name="rviz" pkg="rviz" type="rviz"/>
    
 </include>
    
  
    
 <!-- Launching second kinect-->
    
 <include file="$(find openni_launch)/launch/openni.launch">
    
 <arg name="device_id" value="$(arg camera2_id)"/>
    
 <arg name="camera" value="$(arg camera2_name)"/>
    
 <arg name="depth_registration" value="$(arg depth_registration)" />
    
  
    
 <node name="rviz" pkg="rviz" type="rviz"/>
    
 </include>
    
  
    
 <!-- Launching third kinect-->
    
 <!--include file="$(find openni_launch)/launch/openni.launch"-->
    
 <!--arg name="device_id" value="$(arg camera3_id)"/-->
    
 <!--arg name="camera" value="$(arg camera3_name)"/-->
    
 <!--arg name="depth_registration" value="$(arg depth_registration)" /-->
    
 <!--/include-->
    
  
    
 </launch>
    
    
    
    
    代码解释

只要电脑配置有多个USB BUS,就可以接3个甚至更多个kinect。

将test.launch文件复制到:/opt/ros/indigo/share/openni_launch/launch

打开终端,运行:

复制代码
    roslaunch openni_launch test.launch
    
    代码解释

再打开一个终端,运行:

复制代码
    rosrun image_view image_view image:=/kinect1/rgb/image_color
    
    代码解释

再打开一个终端,运行:

复制代码
    rosrun image_view image_view image:=/kinect2/rgb/image_color
    
    代码解释

大功告成,运行结果如下图:

当然,也可以在rviz中查看两个kinect的数据。

参考链接:

http://www.aichengxu.com/view/37264
http://answers.ros.org/question/96071/accessing-multiple-kinects-in-ros-hydro/
探讨在ROS Hydro环境中获取多套Kinect设备的具体方法。

enjoy!

全部评论 (0)

还没有任何评论哟~