Ask Your Question
1

Transforming PointCloud2

asked 2012-02-04 07:07:36 -0600

alfa_80 gravatar image

updated 2012-02-04 07:08:08 -0600

I would like to know if somebody knows what is the substitute for the function of transformPointCloud() for PointCloud2 data type as in this question. I've tried to go to the link provided but it seems to be deprecated(I guess) as I cannot find in my autocompletion mode.

Thanks in advance.

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
4

answered 2012-02-04 09:07:35 -0600

joq gravatar image

You had found the correct answer: pcl_ros::transformPointCloud() is the function to call.

The generated documentation link may have changed. Try looking for it starting with the main pcl_ros API page.

edit flag offensive delete link more

Comments

Why can't I use it? I've already included pcl_ros in the manifest.xml
alfa_80 gravatar imagealfa_80 ( 2012-02-05 02:54:48 -0600 )edit
Did you #include <pcl_ros/transforms.h> ?
joq gravatar imagejoq ( 2012-02-05 03:13:24 -0600 )edit
Thanks a lot. That worked! By the way, why someone said that pcl_ros is deprecated already, but when I go to the API doc, it is still someone actively committing codes last few days?
alfa_80 gravatar imagealfa_80 ( 2012-02-05 04:12:38 -0600 )edit
I never heard it was deprecated. For Fuerte, the big PCL library will become a rosdep, but pcl_ros still exists.
joq gravatar imagejoq ( 2012-02-05 04:17:26 -0600 )edit
I see, thanks a lot for the clarification.
alfa_80 gravatar imagealfa_80 ( 2012-02-05 04:24:19 -0600 )edit
Last time, i just included "#include <pcl_ros/point_cloud.h>", but this one doesn't suffice.
alfa_80 gravatar imagealfa_80 ( 2012-02-05 04:51:40 -0600 )edit
3

answered 2015-08-13 18:18:58 -0600

peci1 gravatar image

You can transform using the tf2_sensor_msgs (both C++ and Python interface, since at least Indigo):

#include <tf2_sensor_msgs.h>
#include <sensor_msgs/PointCloud2.h>
#include <geometry_msgs/TransformStamped.h>

const sensor_msgs::PointCloud2 cloud_in, cloud_out;
const geometry_msgs::TransformStamped transform;
// TODO load everything
tf2::doTransform (cloud_in, cloud_out, transform);

Or in Python:

from tf2_sensor_msgs.tf2_sensor_msgs import do_transform_cloud
cloud_out = do_transform_cloud(cloud_in, transform)

None of the codes was really tested, though I intend to use them tomorrow. If you test them and find a bug, please edit my answer. I really wonder why there aren't more tutorials for this kind of essential conversions.

edit flag offensive delete link more

Comments

What's the right data format for "transform" in python?

blueflame gravatar imageblueflame ( 2017-10-02 12:31:21 -0600 )edit

Let me post my example code here in python:

import sensor_msgs.point_cloud2 as pc2

from sensor_msgs.msg import PointCloud2

from tf2_sensor_msgs.tf2_sensor_msgs import do_transform_cloud

import tf2_ros

blueflame gravatar imageblueflame ( 2017-10-02 13:59:43 -0600 )edit

tf_buffer = tf2_ros.Buffer()

tf_listener = tf2_ros.TransformListener(tf_buffer)

transform = tf_buffer.lookup_transform("camera_link","map", rospy.Time())

pcd2_camera = do_transform_cloud(pcd2, transform)

This help to trasform pointclouds2 from "map" link into camera_link

blueflame gravatar imageblueflame ( 2017-10-02 14:03:45 -0600 )edit

@blueflame does your code actually work? because i tried to implement it but i get ImportError: No module named tf2_sensor_msgs.tf2_sensor_msgs

Please advise

lr101095 gravatar imagelr101095 ( 2018-05-16 20:07:18 -0600 )edit

Hi! Make sure you installed the tf2_sensor_msgs package for your ros distribution.

diogoa gravatar imagediogoa ( 2018-08-27 09:42:18 -0600 )edit

sudo apt-get install ros-kinetic-tf2-sensor-msgs

Markus gravatar imageMarkus ( 2019-11-24 06:25:44 -0600 )edit
-1

answered 2014-12-07 16:38:38 -0600

bzr gravatar image

Warning: pcl_ros has been depreciated.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2012-02-04 07:07:36 -0600

Seen: 3,220 times

Last updated: Aug 13 '15