Hello, I am trying to use the point cloud on laser data... but the transform/frame stuff is messing with me. I want to be able to get points with reference to the robot and points with reference to the fixed frame map. Currently I am looking up the transform between base_laser_link and odom which outputs points in a manner that is beyond my spatial understanding. Here is the code:
static tf::TransformListener tf_listener;
//const sensor_msgs::LaserScan::ConstPtr msg_in_myframe = tf_listener.transformPoint(
// Get the transform from the laser frame to the odometry frame
tf::StampedTransform transform;
try {
tf_listener.lookupTransform(msg->header.frame_id, "odom", ros::Time(), transform);
// Turn the laser scan into a point cloud, in the odom coordinate frame
sensor_msgs::PointCloud point_cloud;
laser_projection.transformLaserScanToPointCloud("odom", *msg, point_cloud, tf_listener);
for(vector<geometry_msgs::Point32>::iterator it = point_cloud.points.begin(); it != point_cloud.points.end(); ++it)
ss << it->x << ' '<< it->y << endl;
} catch (tf::TransformException &ex){
ROS_ERROR("%s", ex.what());
}
--
Todd Anderson
(919) 710-0546
Washington University in St. Louis Class of 2011
School of Engineering and Applied Sciences