两台kinect同时运行

ubuntu14.04,indigo,kinect xbox,联想笔记本

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

lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 04f2:b541 Chicony Electronics Co., Ltd
Bus 001 Device 003: ID 8087:0a2a Intel Corp.
Bus 001 Device 010: ID 045e:02ae Microsoft Corp. Xbox NUI Camera
Bus 001 Device 008: ID 045e:02b0 Microsoft Corp. Xbox NUI Motor
Bus 001 Device 009: ID 045e:02ad Microsoft Corp. Xbox NUI Audio
Bus 001 Device 007: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 002: ID 17ef:6050 Lenovo
Bus 001 Device 014: ID 045e:02ae Microsoft Corp. Xbox NUI Camera
Bus 001 Device 012: ID 045e:02b0 Microsoft Corp. Xbox NUI Motor
Bus 001 Device 013: ID 045e:02ad Microsoft Corp. Xbox NUI Audio
Bus 001 Device 011: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

locate freenect.launch 得到文件位置,因为我的电脑用openni.launch检测不到kinect,未解决。

/opt/ros/indigo/share/freenect_launch/launch/freenect.launch

cd /opt/ros/indigo/share/freenect_launch/launch/

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

sudo gedit doublekinect_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 freenect_launch)/launch/freenect.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 freenect_launch)/launch/freenect.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。


打开终端,运行:

  1. roslaunch freenect_launchdoublekinect_test.launch  

如果报错:sudo dmesg -c

再打开一个终端,运行:

  1. rosrun image_view image_view image:=/kinect1/rgb/image_color  
rosrun image_view disparity_view image:=/kinect_1/depth/disparity 会出现第一台kinect的深度图
再打开一个终端,运行:
  1. rosrun image_view image_view image:=/kinect2/rgb/image_color 

参考链接:

http://www.aichengxu.com/view/37264
http://answers.ros.org/question/96071/accessing-multiple-kinects-in-ros-hydro/

http://blog.csdn.net/zqxf123456789/article/details/52530189


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以通过将 Kinect 传感器连接到一个计算机,然后在该计算机上启动 Kinect Studio,将 Kinect Studio 配置为允许网络数据流,并使用另一台计算机上的应用程序来访问数据流来实现在两台电脑之间共享 Kinect 数据。另外,您还可以将 Kinect 传感器连接到一个计算机,并使用该计算机上的应用程序将 Kinect 数据发送到另一台计算机,实现在两台电脑之间共享 Kinect 数据。 ### 回答2: Kinect是一款由微软公司开发的体感控制器,可以通过基于摄像头和深度传感器的技术,实现人体动作的检测和跟踪。如果要将Kinect数据输入连接到两台电脑上,可以采用以下几种方法: 1. 使用USB分线器:可以将Kinect的USB接口通过分线器分成两个接口,分别连接到两台电脑上。这样,两台电脑都可以接收到Kinect传输的数据,实现数据的共享和分析。 2. 使用网络连接:如果两台电脑在同一本地网络下,可以将Kinect连接到其中一台电脑上,然后通过网络共享功能,将Kinect传输的数据共享给另一台电脑。这样,两台电脑都可以通过网络接收到Kinect的数据。 3. 使用Kinect SDK开发软件:如果需要在两台电脑上实现对Kinect数据的处理和分析,可以使用Kinect SDK来开发相应的软件。通过在每台电脑上安装相应的软件和驱动程序,可以实现对Kinect数据的接收和处理。 总之,要将Kinect数据输入连接到两台电脑,可以通过USB分线器、网络连接或使用Kinect SDK开发相应的软件来实现数据的共享和分析。具体的方法可以根据实际需求和条件选择合适的方式。 ### 回答3: 要将Kinect数据输入连接两台电脑,有几种不同的方法可以选择。 第一种方法是使用Kinect传感器适配器。该适配器可以将Kinect传感器连接到电脑的USB接口上。如果两台电脑都有可用的USB接口,只需要将适配器插入其中一台电脑,然后将Kinect传感器连接到适配器上。在这种情况下,传感器将被识别为一个外部设备,可以通过USB连接与两台电脑进行数据传输。 第二种方法是使用网络连接。如果两台电脑都位于同一局域网内,可以使用网络连接的方式传输Kinect数据。首先,将Kinect传感器连接到一台电脑上,并安装相应的驱动程序。然后,在这台电脑上运行一个数据传输服务器程序,将Kinect数据发送到局域网上指定的地址和端口。在另一台电脑上,运行一个数据接收客户端程序,接收从服务器传输过来的Kinect数据。 第三种方法是使用专门的数据共享设备。有一些专门的设备可以用于将Kinect数据实时共享到多台电脑上。这些设备通常具有多个视频输入和输出接口,可以同时连接多台电脑并进行数据传输。在此方法中,Kinect传感器将连接到共享设备上,并通过该设备将数据同时发送到两台电脑。 无论采用哪种方法,要成功连接两台电脑并传输Kinect数据,必须确保每台电脑都安装了适当的驱动程序和相关的软件,并进行必要的网络设置。此外,还需要了解和熟悉Kinect数据的传输和处理方法,以便正确地使用数据进行相关的应用和开发工作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值