-
 

ros_numpy repository

Repository Summary

Checkout URI https://github.com/eric-wieser/ros_numpy.git
VCS Type git
VCS Version master
Last Updated 2023-11-03
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
ros_numpy 0.0.5

README

ros_numpy

Tools for converting ROS messages to and from numpy arrays. Contains two functions:

  • arr = numpify(msg, ...) - try to get a numpy object from a message
  • msg = msgify(MessageType, arr, ...) - try and convert a numpy object to a message

Currently supports:

  • sensor_msgs.msg.PointCloud2 ↔ structured np.array:
   data = np.zeros(100, dtype=[
     ('x', np.float32),
     ('y', np.float32),
     ('vectors', np.float32, (3,))
   ])
   data['x'] = np.arange(100)
   data['y'] = data['x']*2
   data['vectors'] = np.arange(100)[:,np.newaxis]
   
   msg = ros_numpy.msgify(PointCloud2, data)
   
   data = ros_numpy.numpify(msg)
   
  • sensor_msgs.msg.Image ↔ 2/3-D np.array, similar to the function of cv_bridge, but without the dependency on cv2
  • nav_msgs.msg.OccupancyGridnp.ma.array
  • geometry.msg.Vector3 ↔ 1-D np.array. hom=True gives [x, y, z, 0]
  • geometry.msg.Point ↔ 1-D np.array. hom=True gives [x, y, z, 1]
  • geometry.msg.Quaternion ↔ 1-D np.array, [x, y, z, w]
  • geometry.msg.Transform ↔ 4×4 np.array, the homogeneous transformation matrix
  • geometry.msg.Pose ↔ 4×4 np.array, the homogeneous transformation matrix from the origin

Support for more types can be added with:

@ros_numpy.converts_to_numpy(SomeMessageClass)
def convert(my_msg):
    return np.array(...)

@ros_numpy.converts_from_numpy(SomeMessageClass)
def convert(my_array):
    return SomeMessageClass(...)

Any extra args or kwargs to numpify or msgify will be forwarded to your conversion function

Future work

  • Add simple conversions for:

    • geometry_msgs.msg.Inertia

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/eric-wieser/ros_numpy.git
VCS Type git
VCS Version master
Last Updated 2023-11-03
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
ros_numpy 0.0.5

README

ros_numpy

Tools for converting ROS messages to and from numpy arrays. Contains two functions:

  • arr = numpify(msg, ...) - try to get a numpy object from a message
  • msg = msgify(MessageType, arr, ...) - try and convert a numpy object to a message

Currently supports:

  • sensor_msgs.msg.PointCloud2 ↔ structured np.array:
   data = np.zeros(100, dtype=[
     ('x', np.float32),
     ('y', np.float32),
     ('vectors', np.float32, (3,))
   ])
   data['x'] = np.arange(100)
   data['y'] = data['x']*2
   data['vectors'] = np.arange(100)[:,np.newaxis]
   
   msg = ros_numpy.msgify(PointCloud2, data)
   
   data = ros_numpy.numpify(msg)
   
  • sensor_msgs.msg.Image ↔ 2/3-D np.array, similar to the function of cv_bridge, but without the dependency on cv2
  • nav_msgs.msg.OccupancyGridnp.ma.array
  • geometry.msg.Vector3 ↔ 1-D np.array. hom=True gives [x, y, z, 0]
  • geometry.msg.Point ↔ 1-D np.array. hom=True gives [x, y, z, 1]
  • geometry.msg.Quaternion ↔ 1-D np.array, [x, y, z, w]
  • geometry.msg.Transform ↔ 4×4 np.array, the homogeneous transformation matrix
  • geometry.msg.Pose ↔ 4×4 np.array, the homogeneous transformation matrix from the origin

Support for more types can be added with:

@ros_numpy.converts_to_numpy(SomeMessageClass)
def convert(my_msg):
    return np.array(...)

@ros_numpy.converts_from_numpy(SomeMessageClass)
def convert(my_array):
    return SomeMessageClass(...)

Any extra args or kwargs to numpify or msgify will be forwarded to your conversion function

Future work

  • Add simple conversions for:

    • geometry_msgs.msg.Inertia

CONTRIBUTING

No CONTRIBUTING.md found.