Quantcast
Channel: ROS Answers: Open Source Q&A Forum - RSS feed
Viewing all articles
Browse latest Browse all 130

Transforming a pointcloud2 in python

$
0
0
I've searched and searched, but can't find a good answer to this. I'm using python so don't have access to `pcl_ros` (which seems deprecated anyway?) and other answers are all for older versions of ROS (I'm using kinetic). The `tf2_sensor_msgs` looks like it's supposed to do it, but I can't import it directly (no module found). I'm using the `tf2_ros` package with a Transform buffer and listener.
self.transform_buffer = tf2.Buffer()
self.transform_listener = tf2.TransformListener(self.transform_buffer)

# Later I try:
pointcloud = self.transform_buffer.transform(pointcloud, 'base_link')
Error:
  ....

  File "/home/zac/mbot/ros/src/mbot_api/src/web_server.py", line 266, in get_laserscan
    pointcloud = ros_thread.get_velodyne_points_for_time(requested_ts)
  File "/home/zac/mbot/ros/src/mbot_api/src/web_server.py", line 135, in get_velodyne_points_for_time
    pointcloud = self.transform_buffer.transform(pointcloud, 'base_link')
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/tf2_ros/buffer_interface.py", line 63, in transform
    do_transform = self.registration.get(type(object_stamped))
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/tf2_ros/buffer_interface.py", line 202, in get
    raise TypeException('Type %s if not loaded or supported'% str(key))
TypeException

I'm receiving a PointCloud2 message in the /velodyne frame and I want to transform it into the /base_link frame.

Viewing all articles
Browse latest Browse all 130


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>