ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
2

Xtion: empty device id

asked 2013-01-10 01:09:06 -0600

liborw gravatar image

updated 2013-01-10 01:09:50 -0600

Hi,

I'm working with multiple Asus Xtions, but I have noticed that the device_id parameter is empty. Does it means that the Xtion does not have an id, which seems strange, or is it a driver problem?

Thanks

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
2

answered 2013-02-05 01:28:40 -0600

Mivia gravatar image

updated 2013-02-06 20:38:02 -0600

Update: solution suggestion

After fiddling around with the options a bit, here is my current workaround to the problem of having no serial available from the xtion.

With lsusb I determined that my PC has two separate hubs available for external USB devices, allowing me to plug in one xtion for each. Since the bus number doesn't chance, I can be sure that the xtion connected to a specific bus is always the same.

By moving the calibration files (named depth.yaml and rgb.yaml) into separate folders, I can assign the calibrations with the corresponding xtion. The serial number naming for the folders are based on a manual readning on the physical device.

This allows a fairly consistent behaviour, and for now it is sufficient to solve all my current problems with the devices having no serial number.

I include my customized .launch file below in case others have the same issue.

<launch>

<!-- Start xtion sensor 1 (on USB bus 1) -->

<include file="$(find openni_launch)/launch/openni.launch">
  <arg name="camera" default="xtion1" />

  <!-- device_id can have the following formats:
         "B00367707227042B": Use device with given serial number
         "#1"              : Use first device found
         "2@3"             : Use device on USB bus 2, address 3
         "2@0"             : Use first device found on USB bus 2
    -->
  <arg name="device_id" default="1@0" />
  <arg name="rgb_camera_info_url"   default="package://scenecamera/calibrations/C9IVVBDA13767/rgb.yaml" />
  <arg name="depth_camera_info_url" default="package://scenecamera/calibrations/C9IVVBDA13767/depth.yaml" />
  <arg name="depth_registration" default="true" />
  <arg name="publish_tf" default="true" />
</include>

<!-- Start xtion sensor 2 (on USB bus 2) -->

<include file="$(find openni_launch)/launch/openni.launch">
  <arg name="camera" default="xtion2" />
  <arg name="device_id" default="2@0" />
  <arg name="rgb_camera_info_url"   default="package://scenecamera/calibrations/C9IVVBDA13763/rgb.yaml" />
  <arg name="depth_camera_info_url" default="package://scenecamera/calibrations/C9IVVBDA13763/depth.yaml" />
  <arg name="depth_registration" default="true" />
  <arg name="publish_tf" default="true" />
</include>

</launch>

--- Original post ---

I have the same problem. Did you come up with a workaround?

As you also state; it is not impossible to run 2 Xtion PRO LIVE at the same time because of this. The initialization during launch is however very dependent on which USB devices are connected, and on which bus.

Even more critical is that I need to manually extract and rename the calibration files and then figure out a way to force the correct calibration files on each camera in the .launch file. Even if this will work, I still have to take great care with which USB-ports i choose to connect the sensors, as well as any other USB equipment.

This would be so much easier if the xtion would register with a serial number in Linux.

I'm on Ubuntu 12.04 with fuerte. Anyone know whether this an OS or ROS issue? I would love to have it fixed!

(btw, i know this is more of a comment than an answer, but for some reason i'm not allowed to use the comment feature here)

edit flag offensive delete link more

Comments

Please post comments as comments, not answers. Thank you!

bit-pirate gravatar image bit-pirate  ( 2013-02-05 11:51:49 -0600 )edit

I certainly would have, if the system would allow me to comment on other than my own answers.

Mivia gravatar image Mivia  ( 2013-02-05 23:19:35 -0600 )edit
1

Ah, you might have run into those "karma" issues. I think, you will be able to comment everywhere, once you have a bit more karma. Let's see if we can get that changed.

bit-pirate gravatar image bit-pirate  ( 2013-02-06 16:28:12 -0600 )edit

Absolutely =) I actually came up with a temporary workaround, so edited my answer so it actually is an answer now.

Mivia gravatar image Mivia  ( 2013-02-06 20:40:15 -0600 )edit

Thanks, I haven't noticed the 2@0 option, it is not documented on the wiki.

liborw gravatar image liborw  ( 2013-02-07 02:12:38 -0600 )edit

Thanks from me too :-)

Felix Endres gravatar image Felix Endres  ( 2014-02-01 01:46:24 -0600 )edit
1

answered 2013-02-05 02:23:19 -0600

dornhege gravatar image

Looks like an Xtion issue not providing a serial id:

looking at device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.2':
    KERNEL=="1-1.2.2"
    SUBSYSTEM=="usb"
    DRIVER=="usb"
    ATTR{configuration}==""
    ATTR{bNumInterfaces}==" 1"
    ATTR{bConfigurationValue}=="1"
    ATTR{bmAttributes}=="80"
    ATTR{bMaxPower}=="500mA"
    ATTR{urbnum}=="14"
    ATTR{idVendor}=="1d27"
    ATTR{idProduct}=="0600"
    ATTR{bcdDevice}=="0001"
    ATTR{bDeviceClass}=="00"
    ATTR{bDeviceSubClass}=="00"
    ATTR{bDeviceProtocol}=="00"
    ATTR{bNumConfigurations}=="1"
    ATTR{bMaxPacketSize0}=="64"
    ATTR{speed}=="480"
    ATTR{busnum}=="1"
    ATTR{devnum}=="90"
    ATTR{devpath}=="1.2.2"
    ATTR{version}==" 2.00"
    ATTR{maxchild}=="0"
    ATTR{quirks}=="0x0"
    ATTR{avoid_reset_quirk}=="0"
    ATTR{authorized}=="1"
    ATTR{manufacturer}=="PrimeSense"
    ATTR{product}=="PrimeSense Device"
edit flag offensive delete link more
1

answered 2013-01-10 17:45:10 -0600

jbinney gravatar image

updated 2013-01-10 18:33:49 -0600

If you mean the "serial id" that openni_node prints out on startup, it being empty doesn't seem to cause problems. For instance, when i have both an xtion and a kinect plugged in, when i launch openni_node i see:

jbinney@bih-> rosrun openni_camera openni_node 
[ INFO] [1357882780.783257832]: Initializing nodelet with 8 worker threads.
[ INFO] [1357882783.093636304]: Number devices connected: 2
[ INFO] [1357882783.093732672]: 1. device on bus 002:113 is a Xbox NUI Camera (2ae) from Microsoft (45e) with serial id 'B00364209203044B'
[ INFO] [1357882783.093765308]: 2. device on bus 001:06 is a PrimeSense Device (600) from PrimeSense (1d27) with serial id ''

But the xtion still works fine. I'm not sure what causes it, but i'll take a look tomorrow.

edit flag offensive delete link more

Comments

The problem is that when I have two Xtions, I can't tell which one is which?

liborw gravatar image liborw  ( 2013-01-10 19:55:04 -0600 )edit

Maybe you could write smart udev rules, which gives each device a unique name. However, the order and hence the naming will then depend on the order in which the devices have been connected to your machine.

bit-pirate gravatar image bit-pirate  ( 2013-02-05 11:54:54 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2013-01-10 01:09:06 -0600

Seen: 2,334 times

Last updated: Feb 06 '13