[ros-users] 2d numpy arr msgs?

Ken Conley kwc at willowgarage.com
Mon Aug 22 16:29:59 UTC 2011


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) <t3wu at ucsd.edu> 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 <kwc at willowgarage.com> 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 <florisvb at gmail.com>
>> 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
>>> ros-users at code.ros.org
>>> https://code.ros.org/mailman/listinfo/ros-users
>>>
>>
>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>



More information about the ros-users mailing list