Re: [Ros-kinect] Image publishing and namespaces

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Ros-kinect] Image publishing and namespaces

Jack O'Quin
2010/11/18 Stéphane Magnenat <[hidden email]>:

>>> This basically follows the stereo camera conventions, except instead
>>> of "left" and "right" they're called "rgb" and "depth". This would
>>> allow us to perform stereo calibration, to get the transform between
>>> the kinect_rgb_frame and kinect_depth_frame
>>
>> The existing ROS camera driver convention is not to publish topics in
>> the driver node namespace. Different devices are distinguished by
>> running the driver nodes in different namespaces. That fits better
>> with the rest of the image_pipeline, which also run in the same
>> namespace.
>>
>> So, perhaps the kinect_node should just publish:
>>
>> depth/image_raw
>> depth/camera_info
>> rgb/image_raw
>> rgb/camera_info
>
> I agree that consistency is a good thing, but why the convention is the
> way it is? Publishing topics in the driver node namespace seems much
> cleaner. Is it because everyone is expected to write a launch file
> remapping these names?

Yes. That's how it was explained to me.

I had the same idea of using the node's private namespace when I
started working on the camera1394 driver. I am now convinced that the
"standard" naming works better.
--
 joq
_______________________________________________
Ros-kinect mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-kinect
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Ros-kinect] Image publishing and namespaces

Jack O'Quin
On Thu, Nov 18, 2010 at 12:44 PM, Ivan Dryanovski
<[hidden email]> wrote:
> So if I understand this correctly, we publish the depth and rgb topics
> in the "/kinect" namespace? Instead of the private ("~") namespace of
> the node?
>
> /kinect/depth/image_raw
> /kinect/depth/camera_info

You'd publish it in the node's relative (not private) namespace,
without any leading '/'

depth/image_raw
depth/camera_info

If users want that to appear in the /kinect namespace, they run it in
that namespace using $ROS_NAMESPACE=kinect (for rosrun) or ns="kinect"
(in a launch file).
--
 joq
_______________________________________________
Ros-kinect mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-kinect
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Ros-kinect] Image publishing and namespaces

Patrick Mihelich
On Thu, Nov 18, 2010 at 9:00 PM, Jack O'Quin <[hidden email]> wrote:
You'd publish it in the node's relative (not private) namespace,
without any leading '/'

depth/image_raw
depth/camera_info

If users want that to appear in the /kinect namespace, they run it in
that namespace using $ROS_NAMESPACE=kinect (for rosrun) or ns="kinect"
(in a launch file).

So actually, it's a bit confusing. camera_drivers and image_pipeline have slightly different conventions, for no particularly good reason.

Camera drivers publish their topics into the "camera" namespace. The launch files in kinect_camera remap "camera" to "kinect". When launched in the top-level namespace, the published topics are "/kinect/depth/image_raw", etc.

image_proc and stereo_image_proc subscribe and publish in the namespace in which they are launched, so you push them into the camera namespace as Jack described.

None of these nodes publish/subscribe in their private namespace. That's for parameters.

Patrick

_______________________________________________
Ros-kinect mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-kinect
Loading...