Revision history [back]

Actually, I found out how to get rid of that annoying error message. The reason for that error is that really roslaunch openni_launch openni.launch is trying to publish twice some of the topics.

I am using ROS Electric, but I think the following also applies to Fuerte:

Taking a look at the file openni.launch one can see that, among other things, it includes another launch file

<include file="$(find openni_launch)/launch/includes/device.launch">  Then, the file device.launch includes (very elegantly) some other launch files <include file="$(find openni_launch)/launch/includes/rgb.launch" ns="$(arg rgb)"> <include file="$(find openni_launch)/launch/includes/ir.launch" ns="$(arg rgb)"> <include file="$(find openni_launch)/launch/includes/depth.launch" ns="$(arg rgb)"> <include file="$(find openni_launch)/launch/includes/depth_registered.launch" ns="$(arg rgb)"> ...  The problem is that the launch file depth_registered.launch includes again the launch file depth.launch, but this time with a flag to disable the generation of the point_xyz generation. I don't know why it is doing it, I see no reason for it considering that depth.launch is already running. So, a workaround to the error of this post is to comment out the following from the depth_registered.launch file <!-- Get all the usual depth topics --> <include file="$(find openni_launch)/launch/includes/depth.launch"
ns="$(arg depth_registered)"> <arg name="manager" value="$(arg manager)" />
<arg name="points_xyz" value="false" />
<arg name="bond" value="$(arg bond)" /> </include>  If you comment those lines, the error goes away and everythin seems to work just fine. I hope this could be helpful for you too. Actually, I found out how to get rid of that annoying error message. The reason for that error is that really roslaunch openni_launch openni.launch is trying to publish twice some of the topics. I am using ROS Electric, but I think the following also applies to Fuerte: Taking a look at the file openni.launch one can see that, among other things, it includes another launch file <include file="$(find openni_launch)/launch/includes/device.launch">


Then, the file device.launch includes (very elegantly) some other launch files

<include file="$(find openni_launch)/launch/includes/rgb.launch" ns="$(arg rgb)">
<include file="$(find openni_launch)/launch/includes/ir.launch" ns="$(arg rgb)">
<include file="$(find openni_launch)/launch/includes/depth.launch" ns="$(arg rgb)">
<include file="$(find openni_launch)/launch/includes/depth_registered.launch" ns="$(arg rgb)">
...


The problem is that the launch file depth_registered.launch includes again again the launch file depth.launch, but this time with a flag to disable the generation of the point_xyz generation. I don't know why it is doing it, I see no reason for it considering that depth.launch is already running.

So, a workaround to the error of this post is to comment out the following from the depth_registered.launch file

<!-- Get all the usual depth topics -->
<include file="$(find openni_launch)/launch/includes/depth.launch" ns="$(arg depth_registered)">
<arg name="manager"    value="$(arg manager)" /> <arg name="points_xyz" value="false" /> <arg name="bond" value="$(arg bond)" />
</include>


If you comment those lines, the error goes away and everythin seems to work just fine.

I hope this could be helpful for you too.

Actually, I found out how to get rid of that annoying error message. The reason for that error is that really roslaunch openni_launch openni.launch is trying to publish twice some of the topics.

I am using ROS Electric, but I think the following also applies to Fuerte:

Taking a look at the file openni.launch one can see that, among other things, it includes another launch file

<include file="$(find openni_launch)/launch/includes/device.launch">  Then, the file device.launch includes (very elegantly) some other launch files <include file="$(find openni_launch)/launch/includes/rgb.launch" ns="$(arg rgb)"> <include file="$(find openni_launch)/launch/includes/ir.launch" ns="$(arg rgb)"> <include file="$(find openni_launch)/launch/includes/depth.launch" ns="$(arg rgb)"> <include file="$(find openni_launch)/launch/includes/depth_registered.launch" ns="$(arg rgb)"> ...  The problem is that the launch file depth_registered.launch includes again the launch file depth.launch, but this time with a flag to disable the generation of the point_xyz generation. I don't know why it is doing it, I see no reason for it considering that depth.launch is already running. So, a workaround to the error of this post is to comment out the following from the depth_registered.launch file <!-- Get all the usual depth topics --> <include file="$(find openni_launch)/launch/includes/depth.launch"
ns="$(arg depth_registered)"> <arg name="manager" value="$(arg manager)" />
<arg name="points_xyz" value="false" />
<arg name="bond" value="\$(arg bond)" />
</include>


If you comment those lines, the error goes away and everythin everything seems to work just fine.

I hope this could be helpful for you too.