Re: [ros-users] 2d numpy arr msgs?

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: User discussions
Date:  
To: User discussions
Subject: Re: [ros-users] 2d numpy arr msgs?
Hi Tingfan,

rospy allows you to substitute your own message
serializer/deserializers as you please. The proposal you suggest
would require custom messages as the generators have no knowledge of
MultiArrayLayouts.

cheers,
Ken

On Mon, Aug 22, 2011 at 9:09 AM, Tingfan Wu (UCSD) <> wrote:
> Hi,
> Sorry for replying an old message. But I am also interested in
> multidimensional numpy array msg.
> My proposal is to initialize the layout of a *MultiArray msg from the
> incoming numpy.ndarray information.
>
> Take Float32MultiArray for an example, the current method of
> numpy_serialization in Float32MultiArray.numpy_serialization leaves
> the layout untouched. And in the numpy_msg tutorial, the layout seems
> to be None through out the example, which seems awkward. Therefore, I
> propose to initialize the layout size and stride using the buff when
> layout is None. This can be done with a numpy specific __init__() or
> just add few lines into numpy_serialization()). Similarly, in the
> Float32MultiArray.numpy_deserialization, reshape the array according
> to the layout information.
>
> This shouldn't break cross-language compatibility  as the lowlevel
> data is still transferred using the "tostring()" mechanism as 1D
> arrays but makes the numpy users' life much easier.
>
>
> -Tingfan
> PhD Student
> Machine Perception Laboratory
> UC San Diego
>
>
>
>
>
>
> On Mon, Jun 14, 2010 at 3:27 PM, Ken Conley <> wrote:
>> The ROS msg IDL only supports 1D arrays. The reshape approach is the correct
>> approach to ensure compatibility in multiple languages.
>>
>>  - Ken
>>
>> On Mon, Jun 14, 2010 at 3:23 PM, Floris van Breugel <>
>> wrote:
>>>
>>> Hi folks,
>>>
>>> Is there a way to publish 2D numpy arrays as messages (using python)? I
>>> went through the numpy tutorial for rospy but it seems to only work for 1D
>>> arrays. I suppose one could reshape the 2D array to be 1D, and pass the
>>> shape as another message, and then reconstruct it on the other side, but
>>> maybe there's a more efficient way to do it? Or that functionality could be
>>> added to numpy_msg.py?
>>> http://www.ros.org/wiki/rospy_tutorials/Tutorials/numpy
>>>
>>> Thanks!
>>>
>>> - Floris
>>>
>>>
>>>
>>> --
>>> Floris van Breugel
>>> Caltech Graduate Student
>>> Control and Dynamical Systems
>>> (925) 963 8280
>>>
>>> Wildlife and Landscape Photographer
>>> Galleries: http://www.ArtInNaturePhotography.com/
>>> Blog: http://www.ArtInNaturePhotography.com/wordpress/
>>> 2010 CALENDARS! Now available on my website!
>>>
>>>
>>> _______________________________________________
>>> ros-users mailing list
>>>
>>> https://code.ros.org/mailman/listinfo/ros-users
>>>
>>
>>
>> _______________________________________________
>> ros-users mailing list
>>
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>>
> _______________________________________________
> ros-users mailing list
>
> https://code.ros.org/mailman/listinfo/ros-users
>