turtlebot(hydro)学习笔记六:添加多个Kinect

最近研究在ros下怎么连接2台或者多台kinect   国内资料很少   翻墙找了点东西  原文在这  http://answers.ros.org/question/96071/accessing-multiple-kinects-in-ros-hydro/

我把大概意思说下 (我的环境是Ubuntu12.04  ros版本 groovy )

首先写一个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 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>

 

<!-- Openning Rviz forvisualization-->

<node name="rviz"pkg="rviz" type="rviz"/>

 

 <!-- Launching first kinect-->

   <include file="$(findopenni_launch)/launch/openni.launch">

       <arg name="device_id" value="$(arg camera1_id)"/>

       <arg name="camera" value="$(arg camera1_name)"/>

       <arg name="depth_registration" value="$(argdepth_registration)" />

    </include>

 

 <!-- Launching second kinect-->

   <include file="$(findopenni_launch)/launch/openni.launch">

       <arg name="device_id" value="$(arg camera2_id)"/>

       <arg name="camera" value="$(arg camera2_name)"/>

       <arg name="depth_registration" value="$(argdepth_registration)" />

    </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="$(argdepth_registration)" />

   </include>

 

 </launch>

 

可以看出上述是定义了3kinect 至少可以运行两台kinect 但是特别注意 kinect要插在不同的usb bus(是usb bus 不是 usb port)上我是在机箱前面插一个  机箱后面插一个如果在一个共同的usb bus 可能会出现不会识别或者数据传输受阻

将以上代码文件复制到一个txt里将名字改为test.launch (test也可以改为其他名字然后将test.launch 复制到/opt/ros/groovy/share/openi_launch/launch/下面

然后打开一个终端输入roslaunchopenni_launch openni.launch camera:=kinect_1 device_id:=#1表示启动第一个kinect

可能会出现几个以try toadvise…..开头的error 这些错误可以忽略没什么影响

然后再打开一个终端输入roslaunch openni_launchopenni.launch camera:=kinect_2 device_id:=#2 表示启动第二个kinect

然后在打开一个终端输入rosrun image_view image_viewimage:=/kinect_1/rgb/image_color然后会出现第一台kinect rbg图像

在打开一个输入rosrun image_view disparity_view image:=/kinect_1/depth/disparity  会出现第一台kinect的深度图

只是将以前运行一台kinect的语句rosrun image_view image_viewimage:=/camera/rgb/image_colorcamera改为kinect_1而已

看第二台kinect的图像只要将语句中的kinect_1改为kinect_2就行

另外古月大神的ros专栏很不错 是学习ros的很好的资料

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值